python決策樹(shù)預(yù)測(cè)學(xué)生成績(jī)等級(jí)實(shí)現(xiàn)詳情
1.數(shù)據(jù)準(zhǔn)備
1.1 引入頭文件

寫(xiě)入頭文件之前,需要下載安裝所必須的依賴包。有的無(wú)法使用pip安裝的內(nèi)容,使用手動(dòng)導(dǎo)入依賴的方式.
1.2 把student_1.csv數(shù)據(jù)拖入代碼的同一文件夾下,同時(shí)讀取文件中的數(shù)據(jù)

1.3 特征選取
課件中選取16個(gè)特征值,這里我采用了所有的特征值進(jìn)行處理。

2.數(shù)據(jù)處理
2.1 對(duì)G1、G2、G3處理
對(duì)于離散值進(jìn)行連續(xù)處理,同時(shí)設(shè)置lambda函數(shù)計(jì)算G1、G2、G3。

2.2 同樣對(duì)Pedu參數(shù)進(jìn)行連續(xù)值處理

2.3 由于數(shù)據(jù)集中每個(gè)參數(shù)差異比較大,所以這里把特征參數(shù)統(tǒng)一改為數(shù)字形式

2.4 對(duì)于當(dāng)前處理過(guò)的數(shù)據(jù)集,劃分訓(xùn)練集和測(cè)試集,并設(shè)置好隨機(jī)種子等其他參數(shù)

3.訓(xùn)練得到的模型
3.1 決策樹(shù)
3.1.1 開(kāi)始對(duì)訓(xùn)練集中的數(shù)據(jù)進(jìn)行訓(xùn)練

訓(xùn)練完的模型用來(lái)設(shè)置圖像參數(shù)進(jìn)行可視化展現(xiàn)。

3.1.2 利用已經(jīng)訓(xùn)練好的模型來(lái)預(yù)測(cè)G3的值

對(duì)訓(xùn)練好的模型進(jìn)行打分。

3.1.3 對(duì)模型中的參數(shù)進(jìn)行優(yōu)化,輸出優(yōu)化后最好的分?jǐn)?shù)

3.1.4 優(yōu)化后的模型來(lái)繪制決策樹(shù)

輸出優(yōu)化后的分?jǐn)?shù)。

3.2 集成學(xué)習(xí)
重新劃分?jǐn)?shù)據(jù)集用于訓(xùn)練模型。

3.2.1 Decision Tree
這里采用集成學(xué)習(xí)的多個(gè)決策樹(shù)方式進(jìn)行訓(xùn)練模型,以及模型的評(píng)估。

3.2.2 Bagging算法
這里采用集成學(xué)習(xí)的Bagging算法進(jìn)行訓(xùn)練模型,對(duì)模型做出分?jǐn)?shù)估測(cè)。

3.2.3 這里采用集成學(xué)習(xí)的Random Forest算法進(jìn)行訓(xùn)練模型,對(duì)模型做出分?jǐn)?shù)估測(cè)

3.2.4 這里采用集成學(xué)習(xí)的AdaBoost算法進(jìn)行訓(xùn)練模型,對(duì)模型做出分?jǐn)?shù)估測(cè)

3.2.5 這里采用集成學(xué)習(xí)的GBDT算法進(jìn)行訓(xùn)練模型,對(duì)模型做出分?jǐn)?shù)估測(cè)

4.評(píng)價(jià)結(jié)果:
| 模型 | 得分 |
|---|---|
| 決策樹(shù)(優(yōu)化前) | 0.806 |
| 決策樹(shù)(優(yōu)化后) | 0.848 |
| 多個(gè)決策樹(shù) | 0.831 |
| Bagging | 0.890 |
| Random Forest | 0.882 |
| AdaBoost | 0.806 |
| GBDT | 0.865 |
5.結(jié)論分析
根據(jù)決策樹(shù)和集成學(xué)習(xí)兩大類的訓(xùn)練模型可以看出:兩種方式實(shí)現(xiàn)各有千秋,同樣由優(yōu)缺點(diǎn)。
決策樹(shù)在優(yōu)化參數(shù)前后預(yù)測(cè)結(jié)果有了較明顯的提升,并且有可視化的圖片便于觀察。集成學(xué)習(xí)中的Bagging算法對(duì)于預(yù)測(cè)結(jié)果是最好的,隨之的得分情況也是最高。但是AdaBoost算法的表現(xiàn)就相對(duì)不夠。
以上就是python決策樹(shù)預(yù)測(cè)學(xué)生成績(jī)等級(jí)實(shí)現(xiàn)詳情的詳細(xì)內(nèi)容,更多關(guān)于python決策樹(shù)預(yù)測(cè)學(xué)生成績(jī)等級(jí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python中的Logging模塊在項(xiàng)目應(yīng)用小結(jié)
Python標(biāo)準(zhǔn)庫(kù)中的logging模塊為我們提供了強(qiáng)大而靈活的日志記錄功能,本文將介紹如何使用logging模塊,并探討其在Python開(kāi)發(fā)中的實(shí)際應(yīng)用,感興趣的朋友一起看看吧2024-04-04
python實(shí)現(xiàn)AES算法及AES-CFB8加解密源碼
這篇文章主要為大家介紹了python實(shí)現(xiàn)AES算法及AES-CFB8加解密的源碼示例,有需要朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02
python實(shí)現(xiàn)K近鄰回歸,采用等權(quán)重和不等權(quán)重的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)K近鄰回歸,采用等權(quán)重和不等權(quán)重的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程
當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,因?yàn)檫M(jìn)程的運(yùn)行沒(méi)有順序,運(yùn)行起來(lái)也無(wú)法控制,如果不加以干預(yù),往往會(huì)引發(fā)數(shù)據(jù)安全或順序混亂的問(wèn)題,所以要在多個(gè)進(jìn)程讀寫(xiě)共享數(shù)據(jù)資源的時(shí)候加以適當(dāng)?shù)牟呗裕瑏?lái)保證數(shù)據(jù)的一致性問(wèn)題2023-01-01
Python實(shí)現(xiàn)視頻中添加音頻工具詳解
本文主要為大家介紹了Python中提供在無(wú)音頻的視頻中添加音頻的工具詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考一下2021-12-12

