python決策樹預(yù)測學(xué)生成績等級實(shí)現(xiàn)詳情
1.數(shù)據(jù)準(zhǔn)備
1.1 引入頭文件
寫入頭文件之前,需要下載安裝所必須的依賴包。有的無法使用pip安裝的內(nèi)容,使用手動導(dǎo)入依賴的方式.
1.2 把student_1.csv數(shù)據(jù)拖入代碼的同一文件夾下,同時讀取文件中的數(shù)據(jù)
1.3 特征選取
課件中選取16個特征值,這里我采用了所有的特征值進(jìn)行處理。
2.數(shù)據(jù)處理
2.1 對G1、G2、G3處理
對于離散值進(jìn)行連續(xù)處理,同時設(shè)置lambda函數(shù)計算G1、G2、G3。
2.2 同樣對Pedu參數(shù)進(jìn)行連續(xù)值處理
2.3 由于數(shù)據(jù)集中每個參數(shù)差異比較大,所以這里把特征參數(shù)統(tǒng)一改為數(shù)字形式
2.4 對于當(dāng)前處理過的數(shù)據(jù)集,劃分訓(xùn)練集和測試集,并設(shè)置好隨機(jī)種子等其他參數(shù)
3.訓(xùn)練得到的模型
3.1 決策樹
3.1.1 開始對訓(xùn)練集中的數(shù)據(jù)進(jìn)行訓(xùn)練
訓(xùn)練完的模型用來設(shè)置圖像參數(shù)進(jìn)行可視化展現(xiàn)。
3.1.2 利用已經(jīng)訓(xùn)練好的模型來預(yù)測G3的值
對訓(xùn)練好的模型進(jìn)行打分。
3.1.3 對模型中的參數(shù)進(jìn)行優(yōu)化,輸出優(yōu)化后最好的分?jǐn)?shù)
3.1.4 優(yōu)化后的模型來繪制決策樹
輸出優(yōu)化后的分?jǐn)?shù)。
3.2 集成學(xué)習(xí)
重新劃分?jǐn)?shù)據(jù)集用于訓(xùn)練模型。
3.2.1 Decision Tree
這里采用集成學(xué)習(xí)的多個決策樹方式進(jìn)行訓(xùn)練模型,以及模型的評估。
3.2.2 Bagging算法
這里采用集成學(xué)習(xí)的Bagging算法進(jìn)行訓(xùn)練模型,對模型做出分?jǐn)?shù)估測。
3.2.3 這里采用集成學(xué)習(xí)的Random Forest算法進(jìn)行訓(xùn)練模型,對模型做出分?jǐn)?shù)估測
3.2.4 這里采用集成學(xué)習(xí)的AdaBoost算法進(jìn)行訓(xùn)練模型,對模型做出分?jǐn)?shù)估測
3.2.5 這里采用集成學(xué)習(xí)的GBDT算法進(jìn)行訓(xùn)練模型,對模型做出分?jǐn)?shù)估測
4.評價結(jié)果:
模型 | 得分 |
---|---|
決策樹(優(yōu)化前) | 0.806 |
決策樹(優(yōu)化后) | 0.848 |
多個決策樹 | 0.831 |
Bagging | 0.890 |
Random Forest | 0.882 |
AdaBoost | 0.806 |
GBDT | 0.865 |
5.結(jié)論分析
根據(jù)決策樹和集成學(xué)習(xí)兩大類的訓(xùn)練模型可以看出:兩種方式實(shí)現(xiàn)各有千秋,同樣由優(yōu)缺點(diǎn)。
決策樹在優(yōu)化參數(shù)前后預(yù)測結(jié)果有了較明顯的提升,并且有可視化的圖片便于觀察。集成學(xué)習(xí)中的Bagging算法對于預(yù)測結(jié)果是最好的,隨之的得分情況也是最高。但是AdaBoost算法的表現(xiàn)就相對不夠。
以上就是python決策樹預(yù)測學(xué)生成績等級實(shí)現(xiàn)詳情的詳細(xì)內(nèi)容,更多關(guān)于python決策樹預(yù)測學(xué)生成績等級的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python棧算法的實(shí)現(xiàn)與簡單應(yīng)用示例
這篇文章主要介紹了Python棧算法的實(shí)現(xiàn)與簡單應(yīng)用,簡單講述了棧的原理并結(jié)合實(shí)例形式給出了基于棧實(shí)現(xiàn)的進(jìn)制轉(zhuǎn)換與括號匹配等相關(guān)使用技巧,需要的朋友可以參考下2017-11-11Python一行代碼實(shí)現(xiàn)快速排序的方法
排序算法是在高考或中考中出現(xiàn)頻率最多的點(diǎn),所以大家要掌握,今天小編給大家?guī)砹送ㄟ^Python一行代碼實(shí)現(xiàn)快速排序的方法,感興趣的朋友跟隨小編一起看看吧2019-04-04【Python】Python的urllib模塊、urllib2模塊批量進(jìn)行網(wǎng)頁下載文件
這篇文章主要介紹了Python的urllib模塊、urllib2模塊批量進(jìn)行網(wǎng)頁下載文件,就是一個簡單的從網(wǎng)頁抓取數(shù)據(jù)、下載文件的小程序,需要的可以了解一下。2016-11-11python中掃描條形碼和二維碼的實(shí)現(xiàn)代碼
pyzbar模塊是Python一個開源庫用于掃描和識別二維碼信息。這篇文章主要介紹了python中掃描條形碼和二維碼的示例代碼,需要的朋友可以參考下2021-10-10Python編程中對super函數(shù)的正確理解和用法解析
可能有人會想到,Python中既然可以直接通過父類名調(diào)用父類方法為什么還會存在super函數(shù)?其實(shí),很多人對Python中的super函數(shù)的認(rèn)識存在誤區(qū),本文我們就帶來在Python編程中對super函數(shù)的正確理解和用法解析2016-07-07peewee創(chuàng)建連接前的前置操作wireshark抓包實(shí)現(xiàn)
這篇文章主要為大家介紹了peewee創(chuàng)建連接前的前置操作wireshark?抓包實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10python UDP(udp)協(xié)議發(fā)送和接收的實(shí)例
今天小編就為大家分享一篇python UDP(udp)協(xié)議發(fā)送和接收的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07