最近不少朋友跟我說谁鳍,想?yún)⒓右恍C器學(xué)習(xí)的比賽们拙,不僅可以鍛煉自身算法能力稍途,而且在以后找工作的時候成為簡歷上的亮點。那么新手該如何入門機器學(xué)習(xí)競賽呢砚婆?
給大家介紹幾個常見的比賽平臺:kaggle械拍、天池、騰訊廣告算法大賽装盯。這些平臺提供的競賽題目基本來自真實業(yè)務(wù)坷虑,采用脫敏后的數(shù)據(jù)集,需要你設(shè)計算法來解決實際問題埂奈。如果你覺得單獨學(xué)習(xí)書本上的理論知識枯燥的話迄损,可以在競賽中找到樂趣,每天提交代碼账磺,刷新排行榜成績芹敌,更能將理論學(xué)以致用,融會貫通垮抗。
下面就帶領(lǐng)大家看一下機器學(xué)習(xí)實戰(zhàn)案例——二手車價格預(yù)測
主要分為以下幾步:數(shù)據(jù)探查氏捞、清洗處理、統(tǒng)計分析冒版、特征工程液茎、模型訓(xùn)練和模型評估
相關(guān)數(shù)據(jù)下載:https://tianchi.aliyun.com/competition/entrance/231784/information
數(shù)據(jù)探查
- 讀取數(shù)據(jù)
- 數(shù)據(jù)信息
- 空值查看
- 刪除空值
df.dropna(inplace=True)
清洗處理
- 字段提取數(shù)字
刪除空格后面的字符串
正則表達式提取字段中最大值
通過這樣的方法,數(shù)據(jù)就算清洗完成了
統(tǒng)計分析
- 刪除name字段
- object類統(tǒng)計
- float類統(tǒng)計
- 相關(guān)性矩陣
可以看出銷售價格(selling_price)和最大馬力(max_power)強相關(guān),其次是引擎容積(engine)捆等、年份(year)
特征工程
- 類別字段one-hot
- 數(shù)值字段標準化
- 構(gòu)建x和y
模型訓(xùn)練
- 數(shù)據(jù)集劃分
- 隨機森林
模型評估
之前訓(xùn)練的隨機森林模型與LR對比
- 訓(xùn)練線性回歸模型
隨后滞造,可以選擇將模型存儲為dump文件,使用flask搭建一個簡單的頁面栋烤,就能通過在線的方式使用該模型谒养,并返回預(yù)測結(jié)果了。
最終實現(xiàn)效果見下圖班缎,通過傳入的參數(shù)蝴光,返回預(yù)估結(jié)果她渴。
這里實現(xiàn)的只是最基礎(chǔ)的模型达址,如果想讓二手車交易價格預(yù)測更準確,還可以考慮以下提分關(guān)鍵:
理論分析:特征差異 + 樣本差異 + 模型差異
樣本擾動 不同特征組 輸出轉(zhuǎn)換 參數(shù)調(diào)整 loss函數(shù)選擇
訓(xùn)練過程融合:Bagging + Boosting
訓(xùn)練結(jié)果融合:投票法 + 平均法 + Stacking
此外一些競賽技巧趁耗,可以從《機器學(xué)習(xí)算法競賽實戰(zhàn)》中獲取沉唠,例如精細化特征工程,了解常見的特征構(gòu)建方式苛败,對數(shù)據(jù)字段進行分類然后細致的特征提嚷稹;多樣化模型融合罢屈,構(gòu)建具有差異性的模型進行融合嘀韧,降低預(yù)測結(jié)果的方差,使得最終結(jié)果更加穩(wěn)定缠捌。