[爆卦]kaggle教學是什麼?優點缺點精華區懶人包

為什麼這篇kaggle教學鄉民發文收入到精華區:因為在kaggle教學這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者aaaba (小強)看板deeplearning標題[轉錄] [閒聊] 菜鳥上Kaggle: 房...


作者: pipidog (如果狗狗飛上天) 看板: Python
標題: Re: [閒聊] 菜鳥上Kaggle: 房價預測
時間: Wed Mar 7 04:33:23 2018

※ 引述《OnePiecePR (OPPR)》之銘言:
: 這裡有人玩 Kaggle 嗎?
: 其實我還沒認真坐坐下來學Python,也沒其他程式經驗。
: 只是朋友說Kaggle 很好玩,可以當作學 Python 的目標,建議每兩週作一題,我就挑戰
: 看看。
: 我做的是很久的題目,1460 筆房價資料,每筆資料79個特性。
: 訓練後,要估另外1459筆資料回傳讓網站系統估算成績。
: 我先花了四五天,整理資料(我以前 Excel 還可以),然後朋友丟一個 Lasso Regressi
: on給我,我馬上套用,算一個結果就上傳... 以為這樣就算完成一題。
: 結果被打搶,Error message 我沒看清楚。
: 那一版真的很差,預估值誤差 rmse 將近35000。
: 再花了一週時間,重新再整一次資料,邊研究別人的方法,大致加了兩招:XGB 跟 K fol
: d 誤差降低到15000 左右。我想大概是我的極限了。
: 過程中一直用的 bumpy,pandas,一下子 array, 一下子 dataframe, 花了不少時間處理
: ,應該乖乖坐下來搞懂才是。
一點想法:

1. 1460筆資料,卻有79的feature,似乎太多了.你聽過維度詛咒嗎? 建議先作特徵
選取,挑出最重要的20個feature(或者更少? 這你得試試看才知道)來作訓練:

*你說你選擇用Lasso Regression,不知是有目的的這樣作還是隨便挑的,因為Lasso
其實就是在loss裡面加入了L1懲罰,L1會導致線性擬合的時候很多參數被強迫變
成0.這意味著你也認為這79個feature裡面,其實只有幾個是真正重要的.如果是
這樣,何不一開始就先試著作特徵選取? (事實上有時候Lasso就是拿來做特徵選
取之用)

http://scikit-learn.org/stable/modules/feature_selection.html

2. 如果資料只有1千多筆,而網站又提供的另外的測試集了,建議訓練時就不要再分
測試跟訓練了. 你直接對全部的資料用corss-validation來判斷模型表現,找出
好的超參數後,就拿全部資料訓練模型就好.才一千多筆還分測試跟訓練,貴了一點.

http://scikit-learn.org/stable/modules/cross_validation.html


3. 你的數據可能非線性程度高,用Lasso自然不好,試試看SVM(支援向量機)?
一般如果是回歸問題,kernal多選用Radial basis function

http://scikit-learn.org/stable/modules/svm.html#regression


4. 沒有一個模型不能解決的事情,如果有,就給它一堆模型! 所以你可以考慮ensemble
learning,例如random forest, adaboost,..,etc.多數情況下會比用單一模型好.

http://scikit-learn.org/stable/modules/ensemble.html

5. 最後找個網站,把pandas練熟,這東西沒弄熟,洗資料會搞得你很痛苦.

https://ithelp.ithome.com.tw/users/20103511/ironman/1077?page=2
看一下14,15天.

* 最後,處理數據佔90%的時間,訓練模型只佔10%,這是很正常的...越髒的事情越花時間
,不要覺得奇怪.

--
★人生中最溫暖的夏天是在紐約的冬天

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 73.66.168.95
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1520368414.A.CE9.html
※ 編輯: pipidog (73.66.168.95), 03/07/2018 04:51:15
aszx4510: 感謝教學 獲益良多 03/07 05:58
stoltzman: 感謝大大分享!獲益良多! 03/07 07:18
vfgce: kaggle的測試集,通常不附target..沒辦法用cross-validation 03/07 07:30
vfgce: emsemble learning通常也沒有比單一模型好很多.. 03/07 07:32
vfgce: pandas真的要好好學,但sklearn最大問題在於對類別屬性的 03/07 07:37
vfgce: 處理不佳. 03/07 07:37
vfgce: pandas已經有category,但sklearn還無法使用 03/07 07:39
vfgce: 目前只有Y能夠以分類處理,X的部分都轉成int,然後被轉成 03/07 07:42
pipidog: v大,同意,sklearn跟pandas真的整合度很糟糕... 03/07 07:43
pipidog: 但可見未來似乎也不太可能改善,只能靠耐心處理了 03/07 07:43
vfgce: flaot去處理了.這是頗不合理的處理方式.... 03/07 07:44
vfgce: 用過R的大概知道我說的是什麼..這部分希望sklearn能否直接 03/07 07:45
vfgce: 支援pandas就方便多了. 03/07 07:45
Luluemiko: 推 03/07 09:33
leo021566: 推 03/07 11:32
goldflower: ensemble現在應該一堆都直接無腦XGBoost了XD 03/07 15:58
neil987: 不妨玩玩看PCA 03/07 16:03
EGsux: 比較好處理 category好的方法就是 one hot 然後pca了 但是 03/07 16:20
EGsux: category類用來做 regression也不要太期待accuracy 03/07 16:20
EGsux: test set當然沒 target比賽就是那樣 要用 training 來做cv 03/07 17:03
vfgce: 所以你有一堆數值和類別混合的data,用python做真的會想XXX 03/07 17:07
vfgce: R內建有factor類別,套件也多能配合,用起來方便多了. 03/07 17:08
vfgce: 明明sklearn是一個豐富的PACKAGE,當初怎沒將這個考慮進去. 03/07 17:21
vfgce: 用上決策樹的感受特別明顯. 03/07 17:23
vfgce: ONE HOT 也不是萬靈丹,當屬性含有很多類別時,會製造出更多 03/07 17:25
vfgce: 屬性,整個屬性維度又更大. 03/07 17:29
vfgce: R內建的FACOTR,套件大多考慮到這一層,用起來方便多了. 03/07 17:31
vfgce: 或許SKLEARN 只考慮到配合NUMPY使用,但這問題應該還多人都 03/07 17:32
vfgce: 遇到了. 希望後面的版正能修正這個問題... 03/07 17:33
cc9i: 髒 這體會有同感 03/07 21:23
fischcheng: 受教啦,感謝! 03/08 04:38
Raymond0710: 推 03/08 08:28
f496328mm: 提供一個關於 category 轉換的方法 03/08 10:51
f496328mm: 在kaggle上用過, 效果不錯 03/08 10:51
f496328mm: https://goo.gl/LqCNjP 03/08 11:19
bestchiao: 感謝上面f大分享 很詳細 03/08 16:09

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.8.6.231
※ 文章網址: https://www.ptt.cc/bbs/deeplearning/M.1520642760.A.2B2.html
NBAPredictor: 小弟不專業 但Lasso在N>P的情況使用到底有什麼意義? 03/10 13:04
NBAPredictor: 之前面臨到的情況都是P>>N才會使用到LASSO 03/10 13:05
NBAPredictor: 且使用的都是Group Lasso 03/10 13:05
NBAPredictor: 1460*79 直覺的作法就是拉Stepwise L2挑Feature 03/10 13:08
NBAPredictor: 相關係數 變異數等一次統包都考慮到了 03/10 13:09
NBAPredictor: 這篇提到Lasso有什麼特別的用法嗎 03/10 13:09
hl4: N和P分別是指什麼? 03/10 15:31
seasa2016: 推 03/10 22:10
f496328mm: N是data數,p是variable數 03/11 12:42
f496328mm: lasso就只是很單純的迴歸+ penalty term,並沒有說p>n 03/11 12:44
f496328mm: 才能用 03/11 12:44
NBAPredictor: 對啊 可是不知道有什麼好處 03/11 16:47
aaaba: 做 selection 的前提不就暗示了存在 sparsity?所以用一下 03/11 16:57
aaaba: lasso 也是滿合理的。實務上當然不會那麼理想,就是多個 03/11 16:57
aaaba: 方法可以踹看看這樣 03/11 16:57
NBAPredictor: 也是 踹看看 03/11 17:13
Wush978: LASSO可以壓縮模型,因為參數為0的在怖署時可以刪除 03/11 17:58

你可能也想看看

搜尋相關網站