很多學(xué)習(xí)機(jī)器學(xué)習(xí)的同學(xué)來參加數(shù)據(jù)挖掘比賽,發(fā)現(xiàn)數(shù)據(jù)挖掘比賽和自己學(xué)過的機(jī)器學(xué)習(xí)理論完全不一致.
所以,我決定寫一篇入門文章給那些新人。
必須掌握的庫scikit-learn scipy? seaborn matplotlib pandas?Hyperopt
特征分類:連續(xù)數(shù)字特征 序數(shù)特征 類別特征 時(shí)間特征 坐標(biāo)特征 文本特征
序數(shù)特征:定義為無限循環(huán)有限個(gè)數(shù)字佃延。 比如 某一列只有 1 2 3?
類別特征:類別特征和序數(shù)特征相似 只不過表現(xiàn)形式是由字符來表示 比如某一列只由A B C表示
文本特征:定義為一句很長的字符,我們可以通過詞袋模型或者word2vec進(jìn)行處理
模型分類:
模型分為tree-based model和no-tree-based-model
tree-based-model 自帶feature-scale的功能 所以標(biāo)準(zhǔn)化啥的意義不大
no-tree-based-model:神經(jīng)網(wǎng)絡(luò) 線性回歸等.
1 數(shù)據(jù)挖掘比賽流程
?第一步:看比賽介紹
?第二步:讀取數(shù)據(jù) 了解數(shù)據(jù)維度? 是否有缺失值 了解特征的類別
?第三步:整合訓(xùn)練集和測試集作為一個(gè)新的大集合:new_data
?第四步:填充缺失值 具體方法可以通過特征之間的關(guān)系填充 隨機(jī)森林預(yù)測等
?第五步:數(shù)據(jù)清洗 刪除重復(fù)行 檢測異常值
?第六步:找出新特征 這些需要通過特征的類別去專門的學(xué)習(xí)不同類別的特征處理的方法
比如(序數(shù)特征:你要考慮是否使用one-hot,類別特征你要先轉(zhuǎn)化為序數(shù)特征,然后考慮特征是否具有分級性,比如手機(jī)A 手機(jī)B 手機(jī)C 那么這個(gè)序數(shù)特征就需要使用one-hot編碼)
?第七步:選擇模型,調(diào)用自動調(diào)參方法,根據(jù)模型選擇one-hot,是否標(biāo)準(zhǔn)化等
第八步:選擇驗(yàn)證函數(shù)與驗(yàn)證方法 比如Auc 均方誤差.不同的驗(yàn)證函數(shù)應(yīng)用于不同的任務(wù),這些也需要讀者自己去探索,學(xué)習(xí).
第九步:重復(fù)以上操作
可以使用的模型xgboost,lgb,隨機(jī)森林等
知識只是避免我們走彎路,但是真正好的效果還是需要自己一步步探索.不要依賴知識,但是知識一定是不可缺少的一部分.