同學們好!
經過2個週末4天上課
小編隱約感覺離機器學習又近了辣麼一丟丟
原因是身為賣課的確保直播順利的小編
跟著大家一起上了AI100的第一門直播課
《XGBoost 從基礎到實戰》
原本沒神馬基礎的小編
想象聽課時心情是這樣的
▼
並且有些條件反射也是無法控制的
▼
然額,聽完全部課程下來
面對敲耐心認真的講師
熱心互助探討的同學們
小編只想筆!!芯!!
下面將本次課程花絮及總結分享出來
感染更多的小夥伴加入組織
1
先來一波買家秀
課堂上小夥伴的調戲評價
課後回訪小夥伴
課程頁面買家秀
(木有水軍 童叟無欺)
2
再來感受一下交流群
3
一天不分享點東西就難受
1. xgbooost安裝
1) Windows和Linux下的安裝指南 by:燕子
http://blog.csdn.net/xizero00/article/details/73008330
2) Win10下的安裝指南:
這裡有個win10的,基本follow 官網安裝步驟 by:燕子 http://blog.csdn.net/xxzhangx/article/details/54908500
3) 加速git等命令的方法: by:開心的派大星
https://91tianlu.me/knowledgebase.php?action=displayarticle&id=7
4) 在windows下用Linux命令的方法: by: 開心的派大星
https://mp.weixin.qq.com/s?__biz=MzA4NzQzMzU4Mg==&mid=2652917522&idx=3&sn=42f48492add0fdb9d8b5bb94a92853d6
如果用的是windows,想在上面用linux,可以裝雙系統或者是裝虛擬機還有一個比較好的辦法,就是docker
5)Gordon Doo:xgboost 安裝 http://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost
可以download 這個 ,然後pip install whl文件。
補充:whl格式本質上是一個壓縮包,裡面包含了py文件,以及經過編譯的pyd文件。使得可以在不具備編譯環境的情況下,選擇合適自己的python環境進行安裝。安裝方法很簡單,進入命令行輸入:
pip install xxxx.whl
或者如果是升級
pip install -U xxxx.whl
最好別用gcc7 肯定編譯出問題 修改還麻煩不一定成功。by:土豆
2. graphviz安裝
MAC裡,我是 brew install graphviz 解決的問題 by:土豆
linux裡我是 pip install graphviz by: 開心的派大星
3. GPU加速
GPU Accelerated XGBoost by: 開心的派大星
http://dmlc.ml/2016/12/14/GPU-accelerated-xgboost.html
4. Spark
A Full Integration of XGBoost and Apache Spark by: 開心的派大星
http://dmlc.ml/2016/10/26/a-full-integration-of-xgboost-and-spark.html
5. 參數調整
一個調整參數的利器: by: 開心的派大星
reiinakano/xcessiv: A web-based application for quick, scalable, and automated hyperparameter tuning and stacked ensembling in Python.
https://github.com/reiinakano/xcessiv
6. 行業應用
CTR預估中GBDT與LR融合方案 by: Goron Doo推薦
http://m.blog.csdn.net/lilyth_lilyth/article/details/48032119#0-tsina-1-63291-397232819ff9a47a7b7e80a40613cfe1
基本思想:用GBDT提取特徵,然後將特徵送入LR分類器,實現CTR預估
GBDT特徵提取:將樣本x送入GBDT的每棵樹,得到該樣本在樹中葉子結點的信息作為特徵。
4
在XGBoost路上棋逢對手
1. 不均衡數據處理
開心的派大星分享:解決真實世界問題:如何在不平衡類上使用機器學習?
http://yuenshome.space/?p=3554
開心的派大星進一步解釋了SMOTE:就是合成新樣本的方法,這個想法很有意思。
已知同一(少數)類的樣本,將這一類下的兩個臨近的樣本點連接起來,連線 中間的位置作為新的樣本,通過該方式合成新樣本。
咖喱牛肉土豆:我比較贊同4改進算法。增加少數類權重。
開心的派大星:或者是在損失計算裡對這些較少類特別處理,給個係數:class_weight
xgboost參數scale_pos_weight就是幹這個用的,可參考demo中Higgs Boson代碼中的實現。
Austen: 負樣本抽樣成幾份,再分別和所有正樣本樣本融合訓練,結果在再求平均也是可以. (派大星點評:bagging的思想)
西瓜:樣本不均衡問題,我覺得是有個隱含前提的,那就是真實的分佈應該是均衡的。有些情況,比如訪問某網站男女比例,真實就是4:1,你訓練的時候樣本就是4:1的,你均衡一下反而不好
Austen:不平衡數據下的評判標準通常可以通過auc,f1等來進行評價,如果正樣本過少的情況下好像可以用異常檢測
5
超nice冒老師答疑摘選
SO 木有老師指導的課程不完美
Q: xgboost用於可用於迴歸嗎?
A:課程示例程序有兩類分類(蘑菇分類、Higgs Bosons)和多類分類任務(Otto)。Xgboost也可用於迴歸和排序,可參考xgboost文檔:
https://github.com/dmlc/xgboost/tree/master/demo
Q:One-hot編碼
A:one-hot 是一種將類別型特徵轉換為數值型特徵的一種方式,。若某類別型特徵共有K種可能的取值,則這維特徵 one-hot 編碼後變成了K維,即若第 i 個樣本的特徵取值為 xi=k , 則其輸出的 K 維特徵中第 k 維 為1,其餘各維為 0。可以參考sklearn的文檔說明:
http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html
Q:XGBoost對特徵工程敏感?需要像線性迴歸裡面看特徵的相關性,多重共線性什麼的嗎?
A:xgboost對特徵敏感。一種說法是特徵工程覺得了系統性能的上界,好的學習算法能儘可能接近這個上限。
特徵的相關性雖然沒有對線性模型影響那麼大,還是會影響的。如果特徵相關,也是先去相關(直接去掉或PCA降維等)
Q:在用scikit-learn訓練一個分類問題時,比如說支持向量機或者xgb,最後train出來的分類邊界的表達式能不能從代碼中輸出呢?
A:xgboost是非參數模型,不能從代碼中輸出分類邊界。
svm是可以寫出決策邊界的:This parameters can be accessed through the members dual_coef_ which holds the product, support_vectors_ which holds the support vectors, and intercept_ which holds the independent term
請參考
http://scikit-learn.org/stable/modules/svm.html
Q:用xgb如果要給一個模型解釋一般怎麼做?
A:xgboost是集成模型,犧牲了可解釋性。
看完以上分享,你有沒有心動呢?
如果沒有!
小編換個顏色再問一遍!
你有沒有心動呢??
快點報名加入組織吧!!
http://edu.ai100.com.cn/course/57
最後小編忍不住賣弄下,請問
如何根據蘑菇的22個特徵判斷蘑菇是否有毒?
知道請留言
不知道就快報名啦~~
一大群小夥伴在課程群裡等著你
熱烈討論 共同進步
組隊衝擊各大算法競賽
美女老師為你保駕護航