<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-06-28 00:30

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

          賽題介紹

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

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

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

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

          賽題任務

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

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

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

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

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

          評分標準

          采用二分類任務中的F1-score指標進行評價,F(xiàn)1-score越大說明預測模型性能越好,F(xiàn)1-score的定義如下:

          其中:

          賽題Baseline

          導入數(shù)據(jù)

          import pandas as pd
          import lightgbm

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

          data1=pd.read_csv('比賽訓練集.csv',encoding='gbk')
          data2=pd.read_csv('比賽測試集.csv',encoding='gbk')
          #label標記為-1
          data2['患有糖尿病標識']=-1
          #訓練集和測試機合并
          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

          訓練數(shù)據(jù)/測試數(shù)據(jù)準備

          train=data[data['患有糖尿病標識'] !=-1]
          test=data[data['患有糖尿病標識'] ==-1]
          train_label=train['患有糖尿病標識']
          train=train.drop(['編號','患有糖尿病標識'],axis=1)
          test=test.drop(['編號','患有糖尿病標識'],axis=1)

          構建模型

          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

          模型驗證

          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)

          上分建議

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

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

          整理不易,三連


          瀏覽 60
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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黄色视频在线观看 | 青青操逼视频在线观看 | 自拍偷拍在| 欧美黄色视屏一区二区三区 | 成人毛片18女人毛片软件下载 |