如何真正從0到1打一場數(shù)據(jù)挖掘賽事《進(jìn)階版》
經(jīng)過上一篇的入門學(xué)習(xí),大家已經(jīng)熟悉如何去打一場比賽,并能訓(xùn)練經(jīng)典的機(jī)器學(xué)習(xí)算法模型,去解決實(shí)際的問題。如果你還不了解,可以先學(xué)習(xí)如何真正從0到1打一場數(shù)據(jù)挖掘賽事《入門版》,然后再進(jìn)行本節(jié)的學(xué)習(xí)。
這個(gè)比賽是一個(gè)醫(yī)療領(lǐng)域的數(shù)據(jù)挖掘?qū)嵺`,賽事的任務(wù)是構(gòu)建一種模型,該模型能夠根據(jù)患者的測試數(shù)據(jù)來預(yù)測這個(gè)患者是否患有糖尿病。這種類型的任務(wù)是典型的二分類問題(患有糖尿病 / 不患有糖尿?。?。本文將以任務(wù)學(xué)習(xí)和啟發(fā)性思考的方式,幫助大家深入學(xué)習(xí)。

賽事背景:
本次比賽是一個(gè)醫(yī)療領(lǐng)域數(shù)據(jù)挖掘賽,需要選手通過訓(xùn)練集數(shù)據(jù)構(gòu)建模型,對驗(yàn)證集數(shù)據(jù)進(jìn)行預(yù)測,并將預(yù)測的結(jié)果提交到科大訊飛數(shù)據(jù)競賽平臺(tái)中,得到排名反饋。
報(bào)名地址:
https://challenge.xfyun.cn/topic/info?type=diabetes&ch=ds22-dw-zmt01
教程說明:
本教程共有6個(gè)任務(wù),任務(wù)難度逐漸增加。每個(gè)任務(wù)中分為不同的模塊,具體要求如下:
主線任務(wù)需要學(xué)習(xí)者獨(dú)立完成
支線任務(wù)為學(xué)有余力的同學(xué)獨(dú)立完成
思考為學(xué)習(xí)者提供了可以思考的方向,可通過討論或搜索獲得結(jié)果

任務(wù)1:比賽報(bào)名與環(huán)境配置
主線任務(wù):
訪問糖尿病遺傳風(fēng)險(xiǎn)檢測挑戰(zhàn)賽網(wǎng)頁,并注冊相關(guān)賬號
點(diǎn)擊頁面中賽事概要,了解比賽的賽事背景、賽事任務(wù)、提交說明、評估指標(biāo)等相關(guān)信息
安裝并配置好python的編程環(huán)境
思考:
為什么要了解比賽的相關(guān)信息?
比賽的評估指標(biāo)有哪幾種?本次比賽中為什么使用F1-score,相比其他評估指標(biāo)有什么優(yōu)勢?
任務(wù)2:數(shù)據(jù)的讀取與數(shù)據(jù)類型
主線任務(wù):
解壓比賽數(shù)據(jù),使用pandas讀取比賽數(shù)據(jù),并查看訓(xùn)練集和測試集數(shù)據(jù)大小
查看訓(xùn)練集和測試集的數(shù)據(jù)類型
思考:
為什么要查看訓(xùn)練集和測試集的大???
為什么查看訓(xùn)練集和測試集的數(shù)據(jù)類型?
參考代碼:
任務(wù)3:數(shù)據(jù)的分析與探索
主線任務(wù):
查看訓(xùn)練集和測試集的缺失值,并比訓(xùn)練集和測試集的缺失值分布是否一致
使用.corr()函數(shù)查看數(shù)據(jù)間的相關(guān)性
對訓(xùn)練集和測試集數(shù)據(jù)進(jìn)行可視化統(tǒng)計(jì)
思考:
數(shù)據(jù)中的缺失值產(chǎn)生的原因?
怎么查看數(shù)據(jù)間的相關(guān)性?如果相關(guān)性高說明了什么?
參考代碼:
任務(wù)4:數(shù)據(jù)的特征工程
主線任務(wù):
將數(shù)據(jù)中的糖尿病家族史中的文本數(shù)據(jù)進(jìn)行編碼
將數(shù)據(jù)中的舒張壓的缺失值進(jìn)行填充
將出生年份的數(shù)據(jù)轉(zhuǎn)換成年齡數(shù)據(jù)并進(jìn)行分組
對體重和舒張壓的數(shù)據(jù)進(jìn)行分組
刪除數(shù)據(jù)中的編號這一列
支線任務(wù):
計(jì)算每個(gè)個(gè)體口服耐糖量測試、胰島素釋放實(shí)驗(yàn)、舒張壓這三個(gè)指標(biāo)對糖尿病家族史進(jìn)行分組求平均值后的差值
計(jì)算每個(gè)個(gè)體口服耐糖量測試、胰島素釋放實(shí)驗(yàn)、舒張壓這三個(gè)指標(biāo)對年齡進(jìn)行分組求平均值后的差值
思考:
文本數(shù)據(jù)為什么要進(jìn)行編碼?有沒有其他的處理方法?除了編碼為連續(xù)數(shù)字,有沒有其他形式?
為什么要填充缺失值?你覺得參考代碼中將所有的缺失值全部填充為0是否正確?
為什么要將出生年份轉(zhuǎn)換成年齡?為什么要對年齡分組?
為什么對體重和舒張壓進(jìn)行了分組?這么做是否正確?
為什么要?jiǎng)h除編號這一列?
參考代碼:
任務(wù)5:模型的構(gòu)建與優(yōu)化
主線任務(wù):
構(gòu)建用于模型訓(xùn)練的訓(xùn)練集、訓(xùn)練標(biāo)簽以及測試集
從以下4個(gè)不同模型中選擇1個(gè)完成模型構(gòu)建,并提交分?jǐn)?shù)
思考:
能夠用于二分類的機(jī)器學(xué)習(xí)算法有哪些?
在邏輯回歸代碼中,為什么要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化?
本次比賽中邏輯回歸算法有較差的分?jǐn)?shù)可能有哪些原因?
參考代碼:
任務(wù)6:模型構(gòu)建的進(jìn)階:
主線任務(wù):
使用不同模型來評估預(yù)測準(zhǔn)確性
對3個(gè)預(yù)測準(zhǔn)確度最高的模型參數(shù)的搜索,并比較不同模型的預(yù)測準(zhǔn)確性
思考:
模型融合的優(yōu)點(diǎn)在哪里?
運(yùn)行主線任務(wù)1,思考這些算法為什么要較高的準(zhǔn)確度?
為什么可以通過搜索來調(diào)整模型的參數(shù)?模型參數(shù)的調(diào)整一定會(huì)讓預(yù)測更準(zhǔn)確嘛?
你覺得參考代碼中搜索的參數(shù)設(shè)置合理嘛?如果不合理應(yīng)該如何改進(jìn)?
參考代碼:
作者寄語
行文至此,數(shù)據(jù)挖掘比賽項(xiàng)目就告一段落了,經(jīng)過這2次教程的學(xué)習(xí),你應(yīng)該體驗(yàn)到了數(shù)據(jù)挖掘比賽從報(bào)名到模型構(gòu)建到優(yōu)化的全過程,這將是你打開數(shù)據(jù)科學(xué)/算法工程/數(shù)據(jù)分析的第一步。正所謂“路漫漫其修遠(yuǎn)兮,吾將上下而求索”,這一步終究只是開始,在距離你的成為AI大師還有漫長的路要探索,但這也是一個(gè)美好的開始。正所謂“千里之行,始于足下”,相信這個(gè)簡短的數(shù)據(jù)挖掘比賽教程將打開你數(shù)據(jù)挖掘的大門,若干年后,你將還會(huì)記得當(dāng)初那個(gè)跟著教程不斷嘗試的自己。也期待成長后你加入幕后的貢獻(xiàn)者團(tuán)隊(duì),我們將一起堅(jiān)持初心,幫助更多學(xué)習(xí)者成長。

點(diǎn)贊過100,更新《NLP競賽入門》