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