Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
XGBoost¡ª¡ª»úÆ÷ѧϰ£¨ÀíÂÛ+ͼ½â+°²×°·½·¨+python´úÂ룩
 
  19068  次浏览      29
 2019-3-11  
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬Ö÷Òª½²½âÁËËã·¨µÄ»ù±¾Ë¼Ï룬½áºÏmacOS°²×°XGBoost£¬È»ºóÓÃpythonʵÏÖ£¬ÏêÇéÇë¿´ÏÂÎÄ¡£

Ŀ¼

Ò»¡¢¼¯³ÉË㷨˼Ïë

¶þ¡¢XGBoost»ù±¾Ë¼Ïë

Èý¡¢MacOS°²×°XGBoost

ËÄ¡¢ÓÃpythonʵÏÖXGBoostËã·¨

ÔÚ¾ºÈüÌâÖо­³£»áÓõ½XGBoostËã·¨£¬ÓÃÕâ¸öË㷨ͨ³£»áʹÎÒÃÇÄ£Ð͵Ä׼ȷÂÊÓÐÒ»¸ö½Ï´óµÄÌáÉý¡£¼ÈÈ»ËüЧ¹ûÕâôºÃ£¬ÄÇôËü´ÓÍ·µ½Î²×öÁËÒ»¼þʲôÊÂÄØ£¿ÒÔ¼°ËüÊÇÔõôÑùÈ¥×öµÄÄØ£¿

ÎÒÃÇÏÈÀ´Ö±¹ÛµÄÀí½âÒ»ÏÂʲôÊÇXGBoost¡£XGBoostËã·¨ÊǺ;ö²ßÊ÷Ëã·¨ÁªÏµµ½Ò»ÆðµÄ¡£

Ò»¡¢¼¯³ÉË㷨˼Ïë

ÔÚ¾ö²ßÊ÷ÖУ¬ÎÒÃÇÖªµÀÒ»¸öÑù±¾Íù×ó±ß·Ö»òÕßÍùÓұ߷֣¬×îÖÕµ½´ïÒ¶×Ó½áµã£¬ÕâÑùÀ´½øÐÐÒ»¸ö·ÖÀàÈÎÎñ¡£ ÆäʵҲ¿ÉÒÔ×ö»Ø¹éÈÎÎñ¡£

¿´ÉÏÃæÒ»¸öͼÀý×ó±ß£ºÓÐ5¸öÑù±¾£¬ÏÖÔÚÏë¿´ÏÂÕâ5¸öÈËÔ¸²»Ô¸ÒâÈ¥ÍæÓÎÏ·£¬Õâ5¸öÈËÏÖÔÚ¶¼·Öµ½ÁËÒ¶×Ó½áµãÀïÃæ£¬¶Ô²»Í¬µÄÒ¶×Ó½áµã·ÖÅ䲻ͬµÄÈ¨ÖØÏÕýÊý´ú±íÕâ¸öÈËÔ¸ÒâÈ¥ÍæÓÎÏ·£¬¸ºÊý´ú±íÕâ¸öÈ˲»Ô¸ÒâÈ¥ÍæÓÎÏ·¡£ËùÒÔÎÒÃÇ¿ÉÒÔͨ¹ýÒ¶×Ó½áµãºÍȨֵµÄ½áºÏ£¬À´×ÛºÏµÄÆÀÅе±Ç°Õâ¸öÈ˵½µ×ÊÇÔ¸Ò⻹ÊDz»Ô¸ÒâÈ¥ÍæÓÎÏ·¡£ÉÏÃæ¡¸tree1¡¹ÄǸöСÄк¢ËüËù´¦µÄÒ¶×Ó½áµãµÄȨֵÊÇ+2£¨¿ÉÒÔÀí½âΪµÃ·Ö£©¡£

Óõ¥¸ö¾ö²ßÊ÷ºÃÏñЧ¹ûÒ»°ãÀ´Ëµ²»ÊÇÌ«ºÃ£¬»òÕß˵¿ÉÄÜ»áÌ«¾ø¶Ô¡£Í¨³£ÎÒÃÇ»áÓÃÒ»ÖÖ¼¯³ÉµÄ·½·¨£¬¾ÍÊÇÒ»¿ÃÊ÷Ч¹û¿ÉÄܲ»Ì«ºÃ£¬ÓÃÁ½¿ÃÊ÷ÄØ£¿

¿´Í¼ÀýÓұߵġ¸tree2¡¹£¬ËüºÍ×ó±ßµÄ²»Í¬ÔÚÓÚËüʹÓÃÁËÁíÍâµÄÖ¸±ê£¬³öÁËÄêÁäºÍÐԱ𣬻¹¿ÉÒÔ¿¼ÂÇʹÓõçÄÔÆµÂÊÕâ¸ö»®·ÖÊôÐÔ¡£Í¨¹ýÕâÁ½¿ÃÊ÷¹²Í¬°ïÎÒÃǾö²ßµ±Ç°Õâ¸öÈËÔ¸²»Ô¸ÒâÍæÓÎÏ·£¬Ð¡Äк¢ÔÚ¡¸tree1¡¹µÄȨֵÊÇ+2£¬ÔÚ¡¸tree2¡¹µÄȨֵÊÇ+0.9£¬ ËùÒÔСÄк¢×îÖÕµÄȨֵÊÇ+2.9£¨¿ÉÒÔÀí½âΪµÃ·ÖÊÇ+2.9£©¡£ÀÏÒ¯Ò¯×îÖÕµÄȨֵҲÊÇͨ¹ýÒ»ÑùµÄ¹ý³ÌµÃµ½µÄ¡£

ËùÒÔ˵£¬ÎÒÃÇͨ³£ÔÚ×ö·ÖÀà»òÕ߻عéÈÎÎñµÄʱºò£¬ÐèÒªÏëÒ»ÏëÒ»µ©Ñ¡ÔñÓÃÒ»¸ö·ÖÀàÆ÷¿ÉÄܱí´ïЧ¹û²¢²»ÊǺܺã¬ÄÇô¾ÍÒª¿¼ÂÇÓÃÕâÑùÒ»¸ö¼¯³ÉµÄ˼Ïë¡£ÉÏÃæµÄͼÀýÖ»ÊǾÙÁËÁ½¸ö·ÖÀàÆ÷£¬Æäʵ»¹¿ÉÒÔÓиü¶à¸ü¸´ÔÓµÄÈõ·ÖÀàÆ÷£¬Ò»Æð×éºÏ³ÉÒ»¸öÇ¿·ÖÀàÆ÷¡£

¶þ¡¢XGBoost»ù±¾Ë¼Ïë

XGBoostµÄ¼¯³É±íʾÊÇʲô£¿ÔõôԤ²â£¿Çó×îÓŽâµÄÄ¿±êÊÇʲô£¿¿´ÏÂͼµÄ˵Ã÷Äã¾ÍÄÜһĿÁËÈ»¡£

ÔÚXGBoostÀÿ¿ÃÊ÷ÊÇÒ»¸öÒ»¸öÍùÀïÃæ¼ÓµÄ£¬Ã¿¼ÓÒ»¸ö¶¼ÊÇÏ£ÍûЧ¹ûÄܹ»ÌáÉý£¬ÏÂͼ¾ÍÊÇXGBoostÕâ¸ö¼¯³ÉµÄ±íʾ£¨ºËÐÄ£©¡£

Ò»¿ªÊ¼Ê÷ÊÇ0£¬È»ºóÍùÀïÃæ¼ÓÊ÷£¬Ï൱ÓÚ¶àÁËÒ»¸öº¯Êý£¬ÔÙ¼ÓµÚ¶þ¿ÃÊ÷£¬Ï൱ÓÚÓÖ¶àÁËÒ»¸öº¯Êý...µÈµÈ£¬ÕâÀïÐèÒª±£Ö¤¼ÓÈëеĺ¯ÊýÄܹ»ÌáÉýÕûÌå¶Ô±í´ïЧ¹û¡£ÌáÉý±í´ïЧ¹ûµÄÒâ˼¾ÍÊÇ˵¼ÓÉÏеÄÊ÷Ö®ºó£¬Ä¿±êº¯Êý£¨¾ÍÊÇËðʧ£©µÄÖµ»áϽµ¡£

Èç¹ûÒ¶×Ó½áµãµÄ¸öÊýÌ«¶à£¬ÄÇô¹ýÄâºÏµÄ·çÏÕ»áÔ½´ó£¬ËùÒÔÕâÀïÒªÏÞÖÆÒ¶×Ó½áµãµÄ¸öÊý£¬ËùÒÔÔÚÔ­À´Ä¿±êº¯ÊýÀïÒª¼ÓÉÏÒ»¸ö³Í·£Ïomega(ft)¡¹¡£

ÕâÀï¾Ù¸ö¼òµ¥µÄÀý×Ó¿´¿´³Í·£Ïomega(ft)¡¹ÊÇÈçºÎ¼ÆËãµÄ£º

Ò»¹²3¸öÒ¶×Ó½áµã£¬È¨ÖØ·Ö±ðÊÇ2£¬0.1£¬-1£¬´øÈ롸omega(ft)¡¹Öо͵õ½ÉÏÃæÍ¼ÀýµÄʽ×Ó£¬³Í·£Á¦¶ÈºÍ¡¸lambda¡¹µÄÖµÈËΪ¸ø¶¨¡£

XGBoostËã·¨ÍêÕûµÄÄ¿±êº¯Êý¼ûÏÂÃæÕâ¸ö¹«Ê½£¬ËüÓÉ×ÔÉíµÄËðʧº¯ÊýºÍÕýÔò»¯³Í·£Ïomega(ft)¡¹Ïà¼Ó¶ø³É¡£

¹ØÓÚÄ¿±êº¯ÊýµÄÍÆµ¼±¾ÎÄÕ²»×÷Ïêϸ½éÉÜ¡£¹ý³Ì¾ÍÊÇ£º¸øÄ¿±êº¯Êý¶ÔÈ¨ÖØÇ󯫵¼£¬µÃµ½Ò»¸öÄܹ»Ê¹Ä¿±êº¯Êý×îСµÄÈ¨ÖØ£¬°ÑÕâ¸öÈ¨ÖØ´ú»Øµ½Ä¿±êº¯ÊýÖУ¬Õâ¸ö»Ø´ú½á¹û¾ÍÊÇÇó½âºóµÄ×îСĿ±êº¯ÊýÖµ£¬ÈçÏ£º

ÆäÖеÚÈý¸öʽ×ÓÖеÄÒ»½×µ¼¶þ½×µ¼µÄÌݶÈÊý¾Ý¶¼ÊÇ¿ÉÒÔËã³öÀ´µÄ£¬Ö»ÒªÖ¸¶¨ÁËÖ÷º¯ÊýÖеÄÁ½¸ö²ÎÊý£¬Õâ¾ÍÊÇÒ»¸öÈ·¶¨µÄÖµ¡£ÏÂÃæ¸ø³öÒ»¸öÖ±¹ÛµÄÀý×ÓÀ´¿´ÏÂÕâ¸ö¹ý³Ì¡£

£¨ÕâÀï¶à˵һ¾ä£ºObj´ú±íÁ˵±ÎÒÃÇÖ¸¶¨Ò»¸öÊ÷µÄ½á¹¹µÄʱºò£¬ÔÚÄ¿±êÉÏ×î¶à»á¼õÉÙ¶àÉÙ£¬ÎÒÃÇ¿ÉÒÔ°ÑËü½Ð×ö½á¹¹·ÖÊý£¬Õâ¸ö·ÖÊýԽСԽºÃ£©

¶ÔÓÚÿ´ÎÀ©Õ¹£¬ÎÒÃÇÒÀ¾ÉҪö¾ÙËùÓпÉÄܵķ½°¸¡£¶ÔÓÚij¸öÌØ¶¨µÄ·Ö¸î£¬ÎÒÃÇÒª¼ÆËã³öÕâ¸ö·Ö¸îµÄ×ó×ÓÊ÷µÄµ¼ÊýºÍºÍÓÒ×ÓÊýµ¼ÊýºÍÖ®ºÍ£¨¾ÍÊÇÏÂͼÖеĵÚÒ»¸öºìÉ«·½¿ò£©£¬È»ºóºÍ»®·ÖǰµÄ½øÐбȽϣ¨»ùÓÚËðʧ£¬¿´·Ö¸îºóµÄËðʧºÍ·Ö¸îǰµÄËðʧÓÐûÓз¢Éú±ä»¯£¬±ä»¯Á˶àÉÙ£©¡£±éÀúËùÓзָѡÔñ±ä»¯×î´óµÄ×÷Ϊ×îºÏÊʵķָ

Èý¡¢MacOS°²×°XGBoost

ÓÃpip°²×°XGBoost

µÚÒ»²½, °²×°HomeBrew.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com /Homebrew/ install/master/install)"

 

HomeBrewÊÇMacµÄÒ»¸ö°ü¹ÜÀíÈí¼þ, ÀàËÆÓÚLinuxÀïÃæµÄapt-get

µÚ¶þ²½, °²×°llvm

brew install llvm

µÚÈý²½£¬°²×°clang-omp

brew install clang-omp

ÓÐÈËÌáµ½clang-ompÒѾ­´ÓHomeBrewÒÆ³ýÁË, Èç¹ûÕÒ²»µ½clang-omp¿ÉÒÔ³¢ÊÔ

brew install --with-clang llvm

µÚËIJ½£¬°²×°XGBoost

pip install xgboost

 

²âÊÔһϣ¬´ó¹¦¸æ³É£¡

ËÄ¡¢ÓÃpythonʵÏÖXGBoostËã·¨

pima-indians-diabetes.csvÎļþÖаüÀ¨ÁË8ÁÐÊýÖµÐÍ×Ô±äÁ¿£¬ºÍµÚ9ÁÐ0-1µÄ¶þ·ÖÀàÒò±äÁ¿£¬µ¼Èëµ½pythonÖÐÓÃXGBoostËã·¨×ö̽Ë÷ÐÔ³¢ÊÔ£¬µÃµ½Ô¤²âÊý¾ÝµÄ׼ȷÂÊΪ77.95%¡£

import xgboost
from numpy import loadtxt
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# ÔØÈëÊý¾Ý¼¯
dataset = loadtxt('pima-indians-diabetes.csv', delimiter=",")
# split data into X and y
X = dataset[:,0:8]
Y = dataset[:,8]

# °ÑÊý¾Ý¼¯²ð·Ö³ÉѵÁ·¼¯ºÍ²âÊÔ¼¯
seed = 7
test_size = 0.33
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size, random_state=seed)

# ÄâºÏXGBoostÄ£ÐÍ
model = XGBClassifier()
model.fit(X_train, y_train)

# ¶Ô²âÊÔ¼¯×öÔ¤²â
y_pred = model.predict(X_test)
predictions = [round(value) for value in y_pred]

# ÆÀ¹ÀÔ¤²â½á¹û
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: %.2f%%" % (accuracy * 100.0))

 

½á¹ûÊä³ö£º

Accuracy: 77.95%

ÔÚpythonµÄXGBoost°üÖÐ×îÖØÒªµÄº¯ÊýÊÇXGBClassifier()£¬º¯ÊýÖÐÉæ¼°µ½¶àÖÖ²ÎÊý£¬´ËÍ⻹¿ÉÒÔ¹Ø×¢plot_importance()£¬¸ü¶àµÄ˵Ã÷ÎÒ½«ÔÚÒÔºó½øÐиüС£

 

 

   
19068 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ