<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          最新數(shù)據(jù)挖掘競賽解決方案梳理!

          共 4321字,需瀏覽 9分鐘

           ·

          2022-07-05 00:31

           Datawhale賽事 
          作者:牧小熊,華中農(nóng)業(yè)大學(xué),Datawhale成員

          賽題介紹

          科大訊飛:糖尿病遺傳風(fēng)險(xiǎn)檢測挑戰(zhàn)賽。背景:截至2022年,中國糖尿病患者近1.3億。中國糖尿病患病原因受生活方式、老齡化、城市化、家族遺傳等多種因素影響。同時(shí),糖尿病患者趨向年輕化。

          糖尿病可導(dǎo)致心血管、腎臟、腦血管并發(fā)癥的發(fā)生。因此,準(zhǔn)確診斷出患有糖尿病個(gè)體具有非常重要的臨床意義。糖尿病早期遺傳風(fēng)險(xiǎn)預(yù)測將有助于預(yù)防糖尿病的發(fā)生。

          賽事地址http://challenge.xfyun.cn/topic/info?type=diabetes&ch=ds22-dw-gzh01

          源代碼https://github.com/datawhalechina/competition-baseline

          賽題任務(wù)

          在這次比賽中,您需要通過訓(xùn)練數(shù)據(jù)集構(gòu)建糖尿病遺傳風(fēng)險(xiǎn)預(yù)測模型,然后預(yù)測出測試數(shù)據(jù)集中個(gè)體是否患有糖尿病,和我們一起幫助糖尿病患者解決這“甜蜜的煩惱”。

          賽題數(shù)據(jù)

          賽題數(shù)據(jù)由訓(xùn)練集和測試集組成,具體情況如下:

          • 訓(xùn)練集:共有5070條數(shù)據(jù),用于構(gòu)建您的預(yù)測模型
          • 測試集:共有1000條數(shù)據(jù),用于驗(yàn)證預(yù)測模型的性能。

          其中訓(xùn)練集數(shù)據(jù)包含有9個(gè)字段:性別、出生年份、體重指數(shù)、糖尿病家族史、舒張壓、口服耐糖量測試、胰島素釋放實(shí)驗(yàn)、肱三頭肌皮褶厚度、患有糖尿病標(biāo)識(shí)(數(shù)據(jù)標(biāo)簽)。

          評(píng)分標(biāo)準(zhǔn)

          采用二分類任務(wù)中的F1-score指標(biāo)進(jìn)行評(píng)價(jià),F(xiàn)1-score越大說明預(yù)測模型性能越好,F(xiàn)1-score的定義如下:

          其中:

          賽題Baseline

          導(dǎo)入數(shù)據(jù)

          import pandas as pd
          import lightgbm

          數(shù)據(jù)預(yù)處理

          data1=pd.read_csv('比賽訓(xùn)練集.csv',encoding='gbk')
          data2=pd.read_csv('比賽測試集.csv',encoding='gbk')
          #label標(biāo)記為-1
          data2['患有糖尿病標(biāo)識(shí)']=-1
          #訓(xùn)練集和測試機(jī)合并
          data=pd.concat([data1,data2],axis=0,ignore_index=True)

          #特征工程
          """
          人體的成人體重指數(shù)正常值是在18.5-24之間
          低于18.5是體重指數(shù)過輕
          在24-27之間是體重超重
          27以上考慮是肥胖
          高于32了就是非常的肥胖。
          """

          def BMI(a):
              if a<18.5:
                  return 0
              elif 18.5<=a<=24:
                  return 1
              elif 24<a<=27:
                  return 2
              elif 27<a<=32:
                  return 3
              else:
                  return 4
              
          data['BMI']=data['體重指數(shù)'].apply(BMI)
          data['出生年份']=2022-data['出生年份']  #換成年齡
          #糖尿病家族史
          """
          無記錄
          叔叔或者姑姑有一方患有糖尿病/叔叔或姑姑有一方患有糖尿病
          父母有一方患有糖尿病
          """

          def FHOD(a):
              if a=='無記錄':
                  return 0
              elif a=='叔叔或者姑姑有一方患有糖尿病' or a=='叔叔或姑姑有一方患有糖尿病':
                  return 1
              else:
                  return 2
              
          data['糖尿病家族史']=data['糖尿病家族史'].apply(FHOD)
          data['舒張壓']=data['舒張壓'].fillna(-1)
          """
          舒張壓范圍為60-90
          """

          def DBP(a):
              if a<60:
                  return 0
              elif 60<=a<=90:
                  return 1
              elif a>90:
                  return 2
              else:
                  return a
          data['DBP']=data['舒張壓'].apply(DBP)
          data

          訓(xùn)練數(shù)據(jù)/測試數(shù)據(jù)準(zhǔn)備

          train=data[data['患有糖尿病標(biāo)識(shí)'] !=-1]
          test=data[data['患有糖尿病標(biāo)識(shí)'] ==-1]
          train_label=train['患有糖尿病標(biāo)識(shí)']
          train=train.drop(['編號(hào)','患有糖尿病標(biāo)識(shí)'],axis=1)
          test=test.drop(['編號(hào)','患有糖尿病標(biāo)識(shí)'],axis=1)

          構(gòu)建模型

          def select_by_lgb(train_data,train_label,test_data,random_state=2022,metric='auc',num_round=300):
              clf=lightgbm
              train_matrix=clf.Dataset(train_data,label=train_label)

              params={
                      'boosting_type''gbdt',  
                      'objective''binary',
                      'learning_rate'0.1,
                      'metric': metric,
                      'seed'2020,
                      'nthread':-1 }
              model=clf.train(params,train_matrix,num_round)
              pre_y=model.predict(test_data)
              return pre_y

          模型驗(yàn)證

          test_data=select_by_lgb(train,train_label,test)
          pre_y=pd.DataFrame(test_data)
          pre_y['label']=pre_y[0].apply(lambda x:1 if x>0.5 else 0)
          result=pd.read_csv('提交示例.csv')
          result['label']=pre_y['label']
          result.to_csv('baseline.csv',index=False)

          上分建議

          本題中的模型部分用了相當(dāng)簡單的方法,lightgbm算法中沒有進(jìn)行交叉數(shù)據(jù)驗(yàn)證,同時(shí)也僅僅使用了默認(rèn)參數(shù),因此選手可以在這個(gè)Baseline的基礎(chǔ)上進(jìn)行進(jìn)一步的參數(shù)優(yōu)化于模型融合,同時(shí)注意到本公開的算法中特征工程構(gòu)建進(jìn)行了一部分的演示,選手可以根據(jù)糖尿病的相關(guān)醫(yī)學(xué)特點(diǎn)進(jìn)行對(duì)特征進(jìn)一步挖掘,從而提升比賽的成績~

          關(guān)注Datawhale公眾號(hào),回復(fù)“數(shù)據(jù)挖掘”可邀請進(jìn)數(shù)據(jù)挖掘賽事交流群,已在的不用再加入。

          整理不易,點(diǎn)三連

          瀏覽 96
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一级免费毛片网 | 麻豆91精品91久久久 | 人妻丰满熟妇av无码区波多野 | 日本在线黄色视频 | 天天躁日日躁狠狠躁欧美男男 |