1樓:我是誰
用lgb,只能跑到0.92970908,就是上不了0.93。特徵基本沒動,只是調引數,不知道baseline怎麼搞出0.93的。現在正在學習best。
比賽前的直播
1.預處理
1)確認資料是否完整(Nan、型別異常)
2)將String(Object)型別,準換成Category(可以使用Onehot或LabelEncoder)
LabelEncoder將每個類對映為遞增的數,比如男女對映為0和1;LabelEncoder也可以自己寫對映。
3)資料標準化(MinmaxScaler或StandardScaler)
4) 儲存資料(因為部分預處理過程會比較耗時,所以需要保留中間結果)
2.模型選擇
優先判斷是回歸還是分類
快速提交一次再修改
3.提交資料後
模型是否符合你的預期 ?
線下得分(val auc)和線上成績(test auc)差異大嗎 ?(有錯誤)
需要調整特徵嗎?
程式存在Bug嗎?
如果成績不錯,注意保留程式,如果有複賽,需要覆盤。
特徵質量決定了分數高度,調參只會讓你跟逼近這個高度。
比賽後冠軍直播
一、資料分為:1.結構化資料(行與行無關)2.時間序列
二、特徵:
1.類別特徵(分為有序和無序,在python裡面是object)
object_columns = train.columns[train.dtypes == 'object'].tolist()
使用One-hot編碼或者LabelEncoder放入lgb
2.數值特徵
三、特徵工程
1.lgb:①保持單調性的變換沒用
②類別特徵在劃分的時候可以認為節點的左右兩邊分別是列舉,而數值則是排好序後劃分。比如1,2,3,4,5,數值左子節點是5種,1,12,123,1234,12345;而類別左子節點則是2^5種。類別在lgb實現中是預排序後大概遍歷,不是真的遍歷,所以類別的labelEncoder的編碼有時候影響比賽結果,可以自己寫。
③NAN和-1一樣表示缺失,有時將其處理為單獨的乙個類
2.粗粒化(季度,存款)、細粒化(這一年的總天數)、週期化非單調(本月第幾周,年齡段)
3.特徵組合
①特徵組合統計
month,day和[『campaign』,'job', 'marital', 'education',
'default', 'housing', 'loan', 'contact',
'poutcome']列表裡面的分別選,得到三個屬性分組,然後併入原表
②特徵相互統計
f_a = ['job', 'marital', 'education']
f_b = ['balance', 'duration']對f_a的每個分組,對f_b中的每個分別統計min,max,mean.std
四、trick
1.bagging 多個lgb組合
2.樣本遷移可以將train和test分別做標記,混起來,用隨機森林區分,區分不出來說明train和test很相似,否則train和test差別很大要處理,將train裡面更靠近test的賦予更大權重。
關於ont-hot和labelEncoder的使用:
1.one-hot(fit,transform)
import numpy as np
from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1],[1, 0, 2]])
print ("enc.n_values_ is:",enc.n_values_)
print( "enc.feature_indices_ is:",enc.feature_indices_)
print (enc.transform([[0, 1, 1]]).toarray())
結果enc.n_values_ is: [234] #每一列的種數
enc.feature_indices_ is: [0259] #合計種數,最後是9種
[[ 1. 0. 0. 1. 0. 0. 1. 0. 0.]]#0-1,2-4,5-8列分別表示原來的三列
2.LabelEncoder
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit([1,5,67,100])
le.transform([1,1,100,67,5])
結果array([0,0,3,2,1])
2樓:瑞思拜
作為一名工人,而心懷一顆演算法心的我,參與到了機器學習的大軍中。雖然現在水平有限,停留在理解基本模型原理的調庫俠水平,但是通過參加比賽,算是體驗了比賽的感覺,希望以後自己能多提高水平。
3樓:ccc
這次比賽收穫還是比較豐富的,從乙個二分類問題做切入點,特徵也只有十幾個,大家在電腦是隨便跑個lgbm都是0.91的樣子,本以為會是乙個很輕鬆的比賽,結果發現真正認識什麼是比賽,競賽爭得不是0.01的差距,而是萬分位之後的準確度,特別是越簡單的特徵,越不好做提公升。
這次做了lgbm+xgboost融合,也試著按自己的理解做了一些特徵工程,重要變數重新建模,網格調參找最優等等,對於我來說,還是蠻有意思的嘗試。
4樓:學習路上的行人
算是體驗了比賽的氛圍。
也從中收穫了不少,學習機器學習不僅僅要掌握理論知識,將理論運用起來其實也是十分重要的,pandas也學了不短的時間了,但是到了真正需要的時候總是腦子中有印象,但總是沒有辦法很流暢的寫出來。說白了就是實戰能力不行,這一方面需要多加練習。
pandas的確是處理特徵的利器,但要用的好不練是不行的,對於xgb和lgb的使用也算是有個乙個提公升,對於以前沒有注意到的細節也有了更深的感悟。
部落格位址
5樓:熱心市民陳女士
剛提交完成績,0.899排名三百多厚著臉皮來分享一下,不過這個成績對於我這個小白來說已經很滿意了。
我用的是隨機森林的演算法,沒學過特徵工程,對特徵的提取、資料的處理不清楚。導致後面只靠調參對模型的精度提公升不大。我自己反覆組合資料裡面的特徵,分數也是忽高忽低,我甚至把所有有特徵都放進去過,結果出現了過擬合,訓練集精度達到了0.
94,測試集只有0.6,這個過程讓我明白了特徵的提取和資料的處理對於建模的重要性。
然後是模型的選擇,網上大佬說lgb模型效果很好,可是我不知道什麼是lgb啊,我只知道線性回歸,svm,和隨機森林。要學的還很多。還有模型融合,em.......
參賽之前一臉懵逼到現在提交乙個對於我來說還算可以的分數,已經進步不小了,比賽過程中認識到了自己的不足,體會到了比賽的樂趣,看著自己的分數和名次一點點提高還是蠻有成就感的。
你是否參與了深度之眼和華為雲舉辦的KPI異常檢測演算法比賽活動,感覺怎麼樣?
ML飯 駐紮在bilibili的深小享 深度之眼week2打卡 學習內容 邏輯回歸 代價函式梯度回歸公式推導 用邏輯回歸解決多分類問題 使用sklearn對鳶尾花和Mnist手寫資料集進行分類。筆記打卡截圖 Spainstaking week3打卡 深度之眼 駐紮在bilibili的深小享決策樹和整...
在影象處理領域,深度學習是否全面代替了傳統的非神經網路的影象識別方法?
開栓要冷藏 深度學習的方法並不是萬能的,比如在大家傳統認為的深度學習強項Direction,有時也會直接用色度圖的方式來實現,簡單快捷,準確率不會差太多。 深度學習讓好多非專業人士找到了識別,分割影象的辦法。但是不了解傳統的影象處理方法是不行的。你會發現基本上除了GPU加速,大部分都是以前的東西,煥...
配新眼鏡後,輔視眼比主視眼更清晰了,這樣是否會加深輔視眼的度數?
小哲 一般來說,配鏡需要達到雙眼平衡 特殊情況下,如果無法達到雙眼平衡,盡量保持注釋眼清晰。若不是主導眼更清晰,可能存在配鏡驗光時有過矯 欠矯的情況,這2種情況都容易導致近視增加。驗光時有視疲勞也會導致當時驗光不太精準。如有配戴不適也建議去配鏡處複查或者有專業驗光資質的地方進行複查。當然,用眼姿勢也...