1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        《如何打一場(chǎng)數(shù)據(jù)挖掘賽事》入門版

        共 3961字,需瀏覽 8分鐘

         ·

        2022-07-26 16:54


        這是一份簡(jiǎn)易的競(jìng)賽教程,我們的目的是幫助同學(xué)們邁出 AI 訓(xùn)練大師之路的第一步。數(shù)據(jù)挖掘中會(huì)有很多需要學(xué)習(xí)的地方,建議入門的同學(xué)可以暫時(shí)不用著急去弄懂各個(gè)代碼的原理,先跑通代碼,然后看代碼中的涉及的知識(shí)點(diǎn)去查詢相關(guān)資料進(jìn)行學(xué)習(xí),這樣能讓你學(xué)習(xí)更加有目標(biāo)性,也容易找到學(xué)習(xí)的樂(lè)趣。千里之行,始于足下,從這里,開(kāi)啟你的 AI 學(xué)習(xí)之旅吧!

        —— 貢獻(xiàn)者:牧小熊、駱秀韜

        一、準(zhǔn)備步驟

        1.1 平臺(tái)注冊(cè)與比賽報(bào)名

        1. 賽事鏈接:
          https://challenge.xfyun.cn/topic/info?type=diabetes&ch=ds22-dw-gzh02

        2. 注冊(cè)(記得填寫個(gè)人信息)

        點(diǎn)擊頁(yè)面右上角:注冊(cè)
        填寫個(gè)人信息,注冊(cè)成功
        1. 點(diǎn)擊報(bào)名參賽,顯示成功報(bào)名
        點(diǎn)擊:報(bào)名參賽
        報(bào)名成功

        1.2 數(shù)據(jù)下載

        數(shù)據(jù)獲取

        • 官網(wǎng)下載數(shù)據(jù):下載數(shù)據(jù)及實(shí)名認(rèn)證。
          詳細(xì)操作可查看:https://xj15uxcopw.feishu.cn/docx/doxcn11gwo7cEuAXWhCrDld4Inb
        • 請(qǐng)把數(shù)據(jù)文件和代碼文件放在同一個(gè)文件夾下,保證正常運(yùn)行

        1.3 參考資料

        python環(huán)境的搭建請(qǐng)參考:

        • Mac設(shè)備:Mac上安裝Anaconda最全教程 https://zhuanlan.zhihu.com/p/350828057
        • Windows設(shè)備:Anaconda超詳細(xì)安裝教程
           https://blog.csdn.net/fan18317517352/article/details/123035625

        二、實(shí)踐思路

        本次比賽是一個(gè)數(shù)據(jù)挖掘賽,需要選手通過(guò)訓(xùn)練集數(shù)據(jù)構(gòu)建模型,然后對(duì)驗(yàn)證集數(shù)據(jù)進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果進(jìn)行提交。

        本題的任務(wù)是構(gòu)建一種模型,該模型能夠根據(jù)患者的測(cè)試數(shù)據(jù)來(lái)預(yù)測(cè)這個(gè)患者是否患有糖尿病。這種類型的任務(wù)是典型的二分類問(wèn)題(患有糖尿病 / 不患有糖尿病),模型的預(yù)測(cè)輸出為 0 或 1 (患有糖尿?。?,未患有糖尿?。?)

        機(jī)器學(xué)習(xí)中,關(guān)于分類任務(wù)我們一般會(huì)想到邏輯回歸、決策樹(shù)等算法,在這個(gè) Baseline 中,我們嘗試使用決策樹(shù)來(lái)構(gòu)建我們的模型。我們?cè)诮鉀Q機(jī)器學(xué)習(xí)問(wèn)題時(shí),一般會(huì)遵循以下流程:

        2.1 代碼實(shí)現(xiàn)

        以下代碼,請(qǐng)?jiān)趈upyter notbook或python編譯器環(huán)境中實(shí)現(xiàn)

        #安裝相關(guān)依賴庫(kù) 如果是windows系統(tǒng),cmd命令框中輸入pip安裝,參考上述環(huán)境配置
        #!pip install sklearn
        #!pip install pandas
        #---------------------------------------------------
        #導(dǎo)入庫(kù)
        #----------------數(shù)據(jù)探索----------------
        import pandas as pd
        from sklearn.tree import DecisionTreeClassifier
        #數(shù)據(jù)預(yù)處理
        data1=pd.read_csv('比賽訓(xùn)練集.csv',encoding='gbk')
        data2=pd.read_csv('比賽測(cè)試集.csv',encoding='gbk')
        #label標(biāo)記為-1
        data2['患有糖尿病標(biāo)識(shí)']=-1
        #訓(xùn)練集和測(cè)試機(jī)合并
        data=pd.concat([data1,data2],axis=0,ignore_index=True)
        #將舒張壓特征中的缺失值填充為-1
        data['舒張壓']=data['舒張壓'].fillna(-1)

        #----------------特征工程----------------
        """
        將出生年份換算成年齡
        """

        data['年齡']=2022-data['出生年份']  #換成年齡

        """
        人體的成人體重指數(shù)正常值是在18.5-24之間
        低于18.5是體重指數(shù)過(guò)輕
        在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)

        #糖尿病家族史
        """
        無(wú)記錄
        叔叔或者姑姑有一方患有糖尿病/叔叔或姑姑有一方患有糖尿病
        父母有一方患有糖尿病
        """

        def FHOD(a):
            if a=='無(wú)記錄':
                return 0
            elif a=='叔叔或者姑姑有一方患有糖尿病' or a=='叔叔或姑姑有一方患有糖尿病':
                return 1
            else:
                return 2

        data['糖尿病家族史']=data['糖尿病家族史'].apply(FHOD)
        """
        舒張壓范圍為60-90
        """

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

        #------------------------------------
        #將處理好的特征工程分為訓(xùn)練集和測(cè)試集,其中訓(xùn)練集是用來(lái)訓(xùn)練模型,測(cè)試集用來(lái)評(píng)估模型準(zhǔn)確度
        #其中編號(hào)和患者是否得糖尿病沒(méi)有任何聯(lián)系,屬于無(wú)關(guā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)

        #----------------模型訓(xùn)練----------------
        model = DecisionTreeClassifier()
        model.fit(train, train_label) 
        y_pre=model.predict(test)
        y_pre

        #----------------結(jié)果輸出----------------
        result=pd.read_csv('提交示例.csv')
        result['label']=y_pre
        result.to_csv('result-de.csv',index=False)

        2.2 結(jié)果提交

        在提交結(jié)果處提交,提交 預(yù)測(cè)結(jié)果.csv(程序生成的CSV文件),查看自己的成績(jī)排名

        選擇剛才生成的result.csv點(diǎn)擊提交
        點(diǎn)擊我的成績(jī)查看結(jié)果

        ·················END·················

        推薦閱讀

        1. 我在字節(jié)做了哪些事

        2. 寫給所有數(shù)據(jù)人。

        3. 從留存率業(yè)務(wù)案例談0-1的數(shù)據(jù)指標(biāo)體系

        4. 數(shù)據(jù)分析師的一周

        5. 超級(jí)菜鳥(niǎo)如何入門數(shù)據(jù)分析?


        歡迎長(zhǎng)按掃碼關(guān)注「數(shù)據(jù)管道」

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            少妇高潮惨叫在线播放 | 五月天久久久 | 亚洲男人的天堂视频网在线观看+720P | 狂操狂射美女逼 | 97爱视频 | 特级西西大胆WWW147 | 国产欧美视频在线观看 | 精品国产18久久久久久怡红 | 九九在线观看视频 | 91黄色小视频 |