實戰(zhàn)天池精準醫(yī)療大賽之三_分類回歸與排序

1. 說明

?開賽第一周掙扎在前100的邊緣,第二周掙扎在前20的邊緣突颊,第三周懶得弄了鲁豪,坐等換數(shù)據(jù)。初賽的前100名可進復賽律秃,所以在前100中排名前后也沒啥意義爬橡,開始的時候覺得自己分數(shù)蒙的成份很高,換了數(shù)據(jù)就完蛋棒动,然后不斷改進糙申,坐實;后來就有點瞎叫勁了船惨。又傲嬌又膽小柜裸,也沒結交到隊友,至今還是孤軍作戰(zhàn)粱锐。記錄一下本周收獲疙挺,也不知這些都公開之后會不會被打出排行榜[哭臉]。

2. 分類與回歸

?所有回歸都可以抽象成分類卜范,比如訓練集有100個數(shù)衔统,最差的情況下就是分成100個類鹿榜,或者處理成99次二分類海雪。而對于具體數(shù)值的回歸,可通過其所屬類別中的元素計算舱殿,比如:中值奥裸,均值,期望值沪袭,評估函數(shù)最佳值等等湾宙。
?細數(shù)參與過的幾個比賽:醫(yī)療大賽是切分正常和糖尿病,微博互動是切分正常和巨量互動冈绊,淘寶穿搭是切分普通組合和常見的組合侠鳄,人品預測是切分普通和人品不好的,股票是切分普通和大漲的死宣∥岸瘢基本都是從正常中尋找反常數(shù)據(jù),幾乎都可以當成不均衡的分類問題處理毅该,而且它們有個共同的特點博秫,就是越特殊的值權重越大潦牛,比如說預測對一個高血糖值對評分的貢獻多過上百個普通值。
?把分類理解成數(shù)據(jù)的抽象挡育,可簡化問題巴碗,也可以在其上運用復雜的計算。同樣是使用GBDT類的算法即寒,分類就比回歸靈活很多橡淆,尤其是二分類。

3. 排序(Rank)

?排序可以視為一種算法母赵,或者算法中的一個實用的小工具明垢。比如特征工程中的排序特征,排序更常見的是用在評價函數(shù)之中市咽。
?比如本題原本是一個回歸問題痊银,我們把它當成分類處理,分類的邊界劃在哪施绎?是界定正常值的6.1溯革,還是界定糖尿病的11.1,還是中值谷醉?問題的核心是:把從黑到白的柔和過渡通過劃邊界描述成了非黑即白的二元對立——人通常也是這么做的致稀,比如,把人分為好人與壞人俱尼。
?排序提供了一種輔助的方法:它把所有人排了序抖单,越靠前是好人的可能性越大。如果越靠前越容易是反常數(shù)據(jù)遇八,那么取前N個就可以輕松地過濾數(shù)據(jù)和分類矛绘,搜索引擎也是類似的排序原理。
?具體到本題刃永,我是先對所有數(shù)據(jù)做回歸货矮,然后用不同邊界分類篩出各個檔位的特殊數(shù)據(jù),用該檔的均值預測特殊數(shù)據(jù)斯够,其中用排序控制特殊數(shù)據(jù)的多少囚玫。原理非常簡單,不過還需要調整算法读规,比如在分類中想要找可能性最大的前N個抓督,不考慮其它,和把所有數(shù)據(jù)都盡量正常分類束亏,做法肯定不同铃在,詳見后面“基于排序的評價函數(shù)”。

4. 正常與反常

?上面說到枪汪,本題我用了分類加回歸涌穆,分類那么好怔昨,為什么還加回歸呢?像上面“分類與回歸”中說到的100個數(shù)回歸等99次二分類宿稀,從這個角度看分類和回歸本來是一個東西趁舀,只是粒度不同。也就是說處理任何問題祝沸,都需要在不同粒度下分析矮烹。
?舉個例子,追漲殺跌和低買高賣明顯是不同的操作策略罩锐。

在藍色點賣出奉狈,綠色點買入,相對于黑色的趨勢線是低買高賣(細粒度)涩惑,而根據(jù)黑色上升趨勢線操作又是追漲行為(組粒度)仁期。這里趨勢就是常態(tài),請注意:常態(tài)不僅是不動的狀態(tài)竭恬,一條橫線跛蛋,也有可能是斜線或者曲線,它可以是用回歸擬合出來的模型痊硕;而藍色和綠色點就是反常赊级,反常沒有一定之規(guī),主要看常態(tài)是什么岔绸。比如大家都上輔導班理逊,你不上就反常了。

5. 基于排序的評價函數(shù)

?這里主要基于xgboost工具盒揉,它提供排序的評價函數(shù)有:ams晋被,auc,pre预烙,ndcg墨微,map。其中大多數(shù)找不到相應的中文說明扁掸,建議看源碼:xgboost/src/metric/rank_metric.cc

(1) xgboost相關說明

i. 評價函數(shù)
xgboost中,一般通過eval_metric設置軟件自帶的評價函數(shù)最域,也可以通過feval自定義評價函數(shù)谴分。評價函數(shù)包括回歸相關的,分類相關的镀脂,這里主要介紹排序相關的牺蹄。一般評價函數(shù)的輸入變量是訓練數(shù)據(jù)和預測值。輸出是評價函數(shù)名稱和評價分值薄翅。

ii. 參數(shù)
有些評價函數(shù)可以帶參數(shù)沙兰,形如:ndcg@2氓奈,ndcg@,ndcg@2-鼎天。一般是從1-0的排序舀奶,如果設置了減號,可以支持從0向1的排序斋射。

iii. weight
權重是通過scale_pos_weight或者作為DMatrix參數(shù)設置的育勺,比如正例和反例的比例為1:4,將scale_pos_weight設為4罗岖,在計算時正例將乘權重4涧至。weight在有些評估函數(shù)中也發(fā)揮作用,比如ams和auc桑包。

2) xgboost提供的評價函數(shù)

i. PRE
PRE全稱是Precision南蓬,即準確率。根據(jù)實際和預測的不同哑了,一般有四種情況:tp蓖康,fn,fp垒手,tn蒜焊,如下圖所示:

實圈代表實際為真,空圈代表實際為假科贬,tp是預測成真實際也是真的泳梆;tn為預測是假實際也是假的,fp是實際是假預測成了真榜掌,fn是實際是真預測成了假优妙。精確率Precision和召回率Recall是常用的技術指標。

Precision指的是在所有預測成真的實例中實際為真的比例憎账,也就是綠占圓的比例套硼。該評價可以加參數(shù),即只計算排序后前N個實例的精確率胞皱。

ii. MAP
MAP全稱是Mean Average Precision邪意。翻成中文是平均精度均值,即對均值再求均值反砌,求的是所有類的average precision的平均雾鬼,公式如下:

其中Q是類數(shù),AveP(q)是q類的精度均值宴树。

iii. MDCG
MDCG全稱是Normalized Discounted Cumulative Gain策菜。公式如下:

其中p是數(shù)據(jù)項數(shù),reli是第i項的評分結果,分子表示評級越高分值越高又憨,分母是排名越靠前分母值越小分值越高翠霍。DCG是當前所有條目的評分,而IDCG是對當前所有評級評分蠢莺。
NDCG是一種源自搜索引擎的算法寒匙,越靠前權重越大,單項評級越高權值越大浪秘,求最累加得分蒋情。
具體說明見:https://en.wikipedia.org/wiki/Discounted_cumulative_gain

iv. AUC
AUC全稱是Area Under Curve,曲線下面積耸携,其中曲線指的是ROC曲線棵癣,ROC的橫軸是假陽率fpr,縱軸是tpr真陽率夺衍,公式如下:

利用tpr和fpr畫出的曲線狈谊,形如:

ROC曲線上的每個位置描述了在不同分界點上tpr和fpr的大小,而曲線下面積描述了該模式對各種分界的綜合成績沟沙。
AUC對類別是否均衡并不敏感河劝,幾乎是分類常用的評估算法。

v. AMS
AMS全稱是Approximate Median Significance矛紫,公式如下:

其中s,b分別是未經正則化的真正例(TP)和假正例(FP)赎瞎,br是常數(shù)化正則項設為10,log是自然對數(shù)颊咬。
它的格式是ams@k务甥,其中參數(shù)k是個百分比,指定topn占數(shù)據(jù)的百分比喳篇,它主要評估序列的前n項敞临。評價函數(shù)求出的是序列中最大的ams值,及它所在的位置麸澜。
AMS是Kaggle的Higgs Boson比賽中的評價函數(shù)挺尿,詳見源碼:xgboost/demo/kaggle-higgs。這種評分標準用得不太多炊邦。

6. 一些想法

?我覺得寫算法和寫應用有個明顯的不同:寫應用可以大量借鑒別人的代碼编矾,API都是一樣的,你能做的我也能做铣耘,但算法比賽不同洽沟,照抄照搬還想超過人家基本不可能。
?在看別人代碼的時候蜗细,最終成果可能只有幾百行,但是推理和嘗試的代碼量比成果多得多,這部分最終并沒呈現(xiàn)出來炉媒,看似簡單的答案只是冰山一角踪区。因此,有時看了人家的答案吊骤,覺得每句都能理解缎岗,到了自己做的時候,還是照貓畫虎白粉,只能微調传泊。
?我覺得恐怕還是要在實戰(zhàn)中磨煉自己的套路。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鸭巴,一起剝皮案震驚了整個濱河市眷细,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹃祖,老刑警劉巖溪椎,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異恬口,居然都是意外死亡校读,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門祖能,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歉秫,“玉大人,你說我怎么就攤上這事养铸⊙丬剑” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵揭厚,是天一觀的道長却特。 經常有香客問我,道長筛圆,這世上最難降的妖魔是什么裂明? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮太援,結果婚禮上闽晦,老公的妹妹穿的比我還像新娘。我一直安慰自己提岔,他們只是感情好仙蛉,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碱蒙,像睡著了一般荠瘪。 火紅的嫁衣襯著肌膚如雪夯巷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天哀墓,我揣著相機與錄音趁餐,去河邊找鬼。 笑死篮绰,一個胖子當著我的面吹牛后雷,可吹牛的內容都是我干的。 我是一名探鬼主播吠各,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼臀突,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贾漏?” 一聲冷哼從身側響起候学,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎磕瓷,沒想到半個月后盒齿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡困食,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年边翁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硕盹。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡符匾,死狀恐怖,靈堂內的尸體忽然破棺而出瘩例,到底是詐尸還是另有隱情啊胶,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布垛贤,位于F島的核電站焰坪,受9級特大地震影響,放射性物質發(fā)生泄漏聘惦。R本人自食惡果不足惜某饰,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望善绎。 院中可真熱鬧黔漂,春花似錦、人聲如沸禀酱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剂跟。三九已至减途,卻和暖如春酣藻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背观蜗。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工臊恋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衣洁,地道東北人墓捻。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像坊夫,于是被迫代替她去往敵國和親砖第。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容