日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xgboost小试

發(fā)布時間:2024/1/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xgboost小试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. virtualenv 創(chuàng)建一個虛擬環(huán)境

virtualenv xgboost-env cd xgboost-env

2. 下載代碼

git clone --recursive https://github.com/dmlc/xgboost

--recursive : 下載所有關(guān)聯(lián)的包

3. 編譯

cd xgboost make -j4

“-j4”是4核并行的意思

?

4. 運(yùn)行demo

cd demo/binary_classification python mapfeat.py python mknfold.py agaricus.txt 1 ../../xgboost mashroom.conf

查看打印結(jié)果

5. 代碼解析

demo/binary_classification下是一個根據(jù)對蘑菇特征對其是否有毒進(jìn)行判別對一個demo。數(shù)據(jù)源來自https://archive.ics.uci.edu/ml/datasets/Mushroom,數(shù)據(jù)中包括蘑菇對形狀、顏色等特征,以及是否有毒的標(biāo)簽。原始數(shù)據(jù)存放在agaricus-lepiota.data里,內(nèi)容如下所示。它有23列,其中第一列是標(biāo)簽列,p表示有毒,e表示沒有毒。后面的22列是22個特征對應(yīng)的特征值。

p,x,s,n,t,p,f,c,n,k,e,e,s,s,w,w,p,w,o,p,k,s,u e,x,s,y,t,a,f,c,b,k,e,c,s,s,w,w,p,w,o,p,n,n,g e,b,s,w,t,l,f,c,b,n,e,c,s,s,w,w,p,w,o,p,n,n,m p,x,y,w,t,p,f,c,n,n,e,e,s,s,w,w,p,w,o,p,k,s,u e,x,s,g,f,n,f,w,b,k,t,e,s,s,w,w,p,w,o,e,n,a,g e,x,y,y,t,a,f,c,b,n,e,c,s,s,w,w,p,w,o,p,k,n,g e,b,s,w,t,a,f,c,b,g,e,c,s,s,w,w,p,w,o,p,k,n,m ... ...

agaricus-lepiota.fmap 文件里存放特征映射關(guān)系,比如蘑菇頭形狀(cap-shap)為鐘型(bell)的用b表示,圓錐型(conical)的用c表示;蘑菇頭顏色(cap-color)為棕色(brown)的用n表示,淺黃色(buff)的用b表示,等等。總共22個特征映射,對應(yīng)agaricus-lepiota.data里的第1~22列(第0列為標(biāo)簽)。

1. cap-shape: bell=b,conical=c,convex=x,flat=f,knobbed=k,sunken=s 2. cap-surface: fibrous=f,grooves=g,scaly=y,smooth=s 3. cap-color: brown=n,buff=b,cinnamon=c,gray=g,green=r,pink=p,purple=u,red=e,white=w,yellow=y 4. bruises?: bruises=t,no=f 5. odor: almond=a,anise=l,creosote=c,fishy=y,foul=f, musty=m,none=n,pungent=p,spicy=s 6. gill-attachment: attached=a,descending=d,free=f,notched=n 7. gill-spacing: close=c,crowded=w,distant=d ... ...

數(shù)據(jù)源的詳細(xì)解釋,可以看文件agaricus-lepiota.names。

?

mapfeat.py: 把原始數(shù)據(jù)agaricus-lepiota.data轉(zhuǎn)換成LibSVM格式的數(shù)據(jù)文件的腳本。LibSVM的格式中,每一行表示一個實(shí)例。其中第一列是標(biāo)簽(lable)。在二分法里,1表示正樣本,0表示負(fù)樣本。后面每一列都是一個key:value的鍵值對。如下面所示,第一行的"101"表示編號為101的特征,"1.2"表示該特征的特征值。

1 101:1.2 102:0.03 0 1:2.1 10001:300 10002:400

?

通過執(zhí)行下面的命令,把原始數(shù)據(jù)轉(zhuǎn)換成LibSVM格式,并存放在新生成的agaricus.txt里。

python mapfeat.py

agaricus.txt文件格式如下,第一列的“1”表示正樣本(有毒),“0”表示負(fù)樣本(無毒)。第一行第二列的“3”表示第3個特征,即“cap-shap是否為convex”,“1”表示“是”(原始數(shù)據(jù)用x表示)。“10”表示第10個特征,即"cap-surface是否為smooth", 1表示是(原始數(shù)據(jù)用s表示)。以此類推。

1 3:1 10:1 11:1 21:1 30:1 34:1 36:1 40:1 41:1 53:1 58:1 65:1 69:1 77:1 86:1 88:1 92:1 95:1 102:1 105:1 117:1 124:1 0 3:1 10:1 20:1 21:1 23:1 34:1 36:1 39:1 41:1 53:1 56:1 65:1 69:1 77:1 86:1 88:1 92:1 95:1 102:1 106:1 116:1 120:1 0 1:1 10:1 19:1 21:1 24:1 34:1 36:1 39:1 42:1 53:1 56:1 65:1 69:1 77:1 86:1 88:1 92:1 95:1 102:1 106:1 116:1 122:1 ... ...

?

下面的命令將數(shù)據(jù)隨機(jī)分成訓(xùn)練集(agaricus.txt.train)和測試集(agaricus.txt.test)兩部分,80%的數(shù)據(jù)分配給訓(xùn)練集,20%分配給測試集。

python mknfold.py agaricus.txt 1

?

訓(xùn)練之

../../xgboost mushroom.conf

mushroom.conf里存放訓(xùn)練時的一些配置參數(shù)。

程序會打印一些訓(xùn)練過程中的內(nèi)容,并最終生成模型,叫0002.model。

?

預(yù)測

../../xgboost mushroom.conf task=pred model_in=0002.model

這個命令用0002.model對測試集進(jìn)行預(yù)測,并將預(yù)測結(jié)果生成到pred.txt文件里。pred.txt的行數(shù)與test集中一直,每一行有一個介于[0-1]的值,它表示對該行樣本對預(yù)測。值越接近與1,則表示越可能為正樣本(有毒),越接近于0表示越可能是負(fù)樣本(無毒)。可以拿預(yù)測值與test集中對實(shí)際標(biāo)簽對比,看看正確性如何。

?

保存模型

通過下面命令,可以把模型轉(zhuǎn)換成容易閱讀對格式。

../../xgboost mushroom.conf task=dump model_in=0002.model name_dump=dump.raw.txt ../../xgboost mushroom.conf task=dump model_in=0002.model fmap=featmap.txt name_dump=dump.nice.txt

?

在訓(xùn)練過的模型上繼續(xù)訓(xùn)練

../../xgboost mushroom.conf model_in=0002.model num_round=2 model_out=continue.model

這個命令會在?0002.mode模型上在進(jìn)行兩輪boost,然后把結(jié)果存為continue.model。注意:使用這種方法時,中途不能改變?mushroom.conf 里面的配置。

?

多線程

如果系統(tǒng)支持多線程,可以增加nthread參數(shù)來進(jìn)行并行計(jì)算。比如nthread=10表示10個線程同時計(jì)算。

?

?

?

https://xgboost.readthedocs.io/en/latest//get_started/index.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的xgboost小试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。