日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

用Python實(shí)現(xiàn)GBDT算法并處理Iris數(shù)據(jù)集

系統(tǒng) 2495 0

GBDT,梯度提升樹(shù)屬于一種有監(jiān)督的集成學(xué)習(xí)方法,與之前學(xué)習(xí)的監(jiān)督算法類(lèi)似,同樣可以用于分類(lèi)問(wèn)題的識(shí)別和預(yù)測(cè)問(wèn)題的解決。該集成算法體現(xiàn)了三個(gè)方面的又是,分別是提升Boosting、梯度Gradient、決策樹(shù)Decision Tree。“提升”是指將多個(gè)弱分類(lèi)器通過(guò)線(xiàn)下組合實(shí)現(xiàn)強(qiáng)分類(lèi)器的過(guò)程;“梯度”指的是在Boosting過(guò)程中求解損失函數(shù)時(shí)增加了靈活性和便捷性,“決策樹(shù)”是指算法所使用的弱分類(lèi)器為CART決策樹(shù),該決策樹(shù)具有簡(jiǎn)單直觀(guān)、通俗易懂的特性。

GBDT模型對(duì)數(shù)據(jù)類(lèi)型不做任何限制,既可以是連續(xù)的數(shù)值型,也可以是離散的字符型(但在Python的落地過(guò)程中需要將字符型變量做數(shù)值化處理或者啞變量處理)。相對(duì)于SVM模型來(lái)說(shuō),較少參數(shù)的GBDT具有更高的準(zhǔn)確率和更少的運(yùn)算時(shí)間,GBDT模型在面對(duì)異常數(shù)據(jù)時(shí)具有更強(qiáng)的穩(wěn)定性。由于上面種種優(yōu)點(diǎn),GBDT常常被廣大用戶(hù)所采用。

最具代表的提升樹(shù)算法為AdaBoost算法,即:

?

其中F(x)是由M棵基礎(chǔ)決策樹(shù)構(gòu)成的最終提升樹(shù),F(xiàn)_(m-1) (x)表示經(jīng)過(guò)m-1輪迭代后的提升樹(shù),α_m為第m棵基礎(chǔ)決策樹(shù)所對(duì)應(yīng)的權(quán)重,f_m (x)為第m棵基礎(chǔ)決策樹(shù)。
AdaBoost算法在解決分類(lèi)問(wèn)題時(shí),它的核心就是不停地改變樣本點(diǎn)的權(quán)重,并將每一輪的基礎(chǔ)決策樹(shù)通過(guò)權(quán)重的方式進(jìn)行線(xiàn)性組合。該算法在迭代過(guò)程中需要進(jìn)行如下四個(gè)步驟:

用Python實(shí)現(xiàn)GBDT算法并處理Iris數(shù)據(jù)集_第1張圖片

在這里舉一個(gè)簡(jiǎn)單的例子。如下表:

x

0

1

2

3

4

5

6

7

8

9

y

1

1

1

-1

-1

-1

1

1

1

-1

用Python實(shí)現(xiàn)GBDT算法并處理Iris數(shù)據(jù)集_第2張圖片

故第一輪迭代結(jié)果為:

x

0

1

2

3

4

5

6

7

8

9

y實(shí)際

1

1

1

-1

-1

-1

1

1

1

-1

預(yù)測(cè)得分

0.424

0.424

0.424

-0.424

-0.424

-0.424

-0.424

-0.424

-0.424

-0.424

y預(yù)測(cè)

1

1

1

-1

-1

-1

-1

-1

-1

-1

顯然6、7、8三個(gè)點(diǎn)的預(yù)測(cè)結(jié)果是錯(cuò)的,所以它們對(duì)應(yīng)的權(quán)重也是最大的,在進(jìn)入第二輪時(shí),模型會(huì)更加關(guān)注這三個(gè)點(diǎn)。

AdaBoost算法具體在Python上的實(shí)現(xiàn)方式為導(dǎo)入sklearn中的子模塊ensemble,從中調(diào)用AdaBoostClassifier類(lèi)。

在這里我再次使用Iris數(shù)據(jù)集進(jìn)行測(cè)試,原碼及效果為如下:

            adaBoost =
            
               ensemble.AdaBoostClassifier()
adaBoost.fit(x_train,y_train)
predict 
            
            =
            
               adaBoost.predict(x_test)

            
            
              print
            
            (
            
              '
            
            
              Accuracy: 
            
            
              '
            
            
              ,metrics.accuracy_score(y_test,predict))

            
            
              print
            
            (
            
              '
            
            
              Report :\n
            
            
              '
            
            ,metrics.classification_report(y_test,predict))
            

Accuracy: 0.7
Report :
precision recall f1-score support

0.0 1.00 0.92 0.96 12
1.0 0.62 0.67 0.64 12
2.0 0.33 0.33 0.33 6

micro avg 0.70 0.70 0.70 30
macro avg 0.65 0.64 0.64 30
weighted avg 0.71 0.70 0.71 30


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 平顶山市| 巢湖市| 昌江| 宁阳县| 湄潭县| 马尔康县| 太原市| 德安县| 延寿县| 法库县| 碌曲县| 金秀| 阳信县| 巍山| 崇州市| 武强县| 阜新| 凤阳县| 沙田区| 尤溪县| 田东县| 新疆| 临夏市| 阿拉善右旗| 原阳县| 贡觉县| 伊通| 射洪县| 宝鸡市| 米脂县| 竹北市| 镇巴县| 台山市| 政和县| 宜川县| 闸北区| 德惠市| 越西县| 云霄县| 屯昌县| 临西县|