天池精準醫療大賽 個人賽後總結(一)

2021-08-15 06:00:30 字數 1110 閱讀 7787

一條工程狗也有自己的資料探勘夢,自己

這部分主要是如何處理缺失值的問題。特徵大概可以劃分為四大類:肝功能、腎功能、血常規、B肝(缺失資料均為整類缺失,即檢查人沒有做該部分的檢查),除了血常規意外其他三大類均有大量缺失值,尤其是B肝這一項,缺失值達到了一半以上。初步考慮:填充缺失量如此大的資料將帶來無法控制的誤差,可否簡單認為是否做B肝五項檢查和血糖值之間有潛在聯絡。於是將B肝五項轉化為是否做B肝檢查乙個特徵。其他三大類的資料可以用均值、中位數、回歸**的方式填充。通過簡單的視覺化各項特徵資料大致服從了正態分佈,於是我這裡採用了最簡單常用的均值填充。

(1)相關性分析:採用了皮爾遜相關係數,分析了各個特徵和血糖值之間線性相關性,並按線性相關性對各個特徵排序,使用的是scipy中的現有函式。其中排名前五的特徵分別為年齡(0.265)、甘油三酯 (0.259)、低密度脂蛋白膽固醇(0.166)、總膽固醇(0.163)、*鹼性磷酸酶( 0.162)。可以作為特徵篩選的初步參考,但是皮爾遜相關係數只能衡量線性相關性,無法深入挖掘特徵間的聯絡。但是優點是計算速度快,結果直觀,取值範圍是[-1,1],符號表示相關性的正負,絕對值表示相關強度。

(2)年齡分布:因為在皮爾遜相關係數中年齡相關性最高(後續採用xgboost發現年齡的重要度最高),故此單獨分析了這個特徵。最小的是3歲,最大的是93歲,均值45歲,1/4和3/4 中位數分別為35歲和54歲,符合正態分佈。對訓練集中年齡進行排序,發現從小到大為3、6、15、19、20,測試集中年齡均大於19歲,因此在這裡將訓練集中年齡為3、6的樣本作為雜訊處理。

(3)血糖值的分布:本次比賽**的是血糖值,簡單的視覺化了一下血糖值的分布。可以發現血糖值的分布大多數集中在4-12中,其中有乙個血糖值為38的點,可以作為異常值處理。

根據前輩們的經驗,xgboost是乙個一拿到資料就可以優先嘗試的演算法,於是直接選擇了比賽大殺器xgboost作為第乙個演算法模型。用了sklearn裡的cv作為驗證集調參。

做了簡單的資料預處理、資料分析、選擇了乙個以往比賽都取得不錯成績的演算法,第一天提交結果為0.84,排在第八名,這個結果遠遠超過了自己的預期,也增加了自己的信心,同時準備好了打持久戰的準備。

實戰天池精準醫療大賽之一 資料分析

1 缺失資料 有大量的缺失值,特徵分四類,分別是B肝 血常規 肝功能 腎功能,一般的缺失值都是缺失整個類別資料 由於患者未做某項檢查 除血常規以外,其餘三項都有大量的缺失值,尤其是B肝類檢查,多一半都是空值。如果去掉這些資料,將會損失3 4的資料量。假設 醫生不要求做該項檢查,說明他認為該項指標基本...

資料探勘實戰之天池精準醫療大賽(5) 特徵工程1

現在開始資料探勘中最玄妙也是最重要的部分 特徵工程 feature engineering 初學機器學習,一般只是對此概念及相關內涵有所了解,此處試圖以實踐性的角度,詳細闡述特徵工程。引用一句老掉牙的話,資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。好特徵即使使用一般的模型,也...

個人賽第一場解題總結

a 大王叫我來巡山吶 crawling in process.crawling failed time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice fzu 2167 descript...