最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【人工智能】決策樹與隨機森林方式的泰坦尼克號幸存者預(yù)測報告

2021-02-26 16:10 作者:Aiello筱郁  | 我要投稿

編譯器:Pycharm2019+Anaconda虛擬環(huán)境

Python版本:3.7

所需Python模塊:

此外此次所有用到的文件、文檔、圖片均會在百度網(wǎng)盤的鏈接或在我的微信公眾號中給出

一、?對決策樹及問題本身的認(rèn)識

在正式運用隨機森林算法之前,必須用普通的決策樹對解決泰坦尼克號幸存者預(yù)測進行實驗驗證,找到針對該問題的模型優(yōu)化的可行性方法。

決策樹?是一種基本的分類與回歸方法,學(xué)習(xí)通常包含三個步驟:特征選擇、決策樹的生成和決策樹的剪枝。決策樹實際上就是尋找最純凈的劃分方法,向著讓特征“混亂度”(熵)降低最快的方向劃分,當(dāng)劃分到一定純度則停止分類,生成決策樹,學(xué)習(xí)這個過程生成我們需要的智能模型;而過度追求純度會忽視類別的本質(zhì),造成過擬合現(xiàn)象,這時就需要“剪枝”,剔除掉多余的影響。

根據(jù)決策樹的實現(xiàn)步驟——

① 首先做的是讀取、標(biāo)記數(shù)據(jù)、丟棄一定的無關(guān)數(shù)據(jù)。這里所用的方法同教材(《scikit-learn機器學(xué)習(xí):常用算法原理及編程實戰(zhàn)》)中的相同,就不單獨列出了,需要對決策樹有初步了解的還可以?參考文章末尾?給出的鏈接。

1. 讀取數(shù)據(jù)函數(shù)read_dataset
2.繪制評估曲線函數(shù)plot_curve

② 隨后以適應(yīng)大數(shù)據(jù)量計算的簡單交叉驗證方法,需調(diào)用train_test_split函數(shù)將從train.csv中讀取的891個樣本分為訓(xùn)練數(shù)據(jù)集(tr)和交叉驗證數(shù)據(jù)集(cv)。

train_test_split函數(shù)是按一定比例隨機選取,因為兩部分?jǐn)?shù)據(jù)集的獨立性,同時也利于解決過擬合的問題。

數(shù)據(jù)處理完畢后,可以先進行決策樹的生成觀察結(jié)果進行有指向性的優(yōu)化工作。第一次初始化生成樹的效果(兩數(shù)據(jù)集的驗證準(zhǔn)確率)如下:

可以直觀看到訓(xùn)練數(shù)據(jù)集準(zhǔn)確率極高,存在過擬合風(fēng)險,多次運行驗證數(shù)據(jù)集的結(jié)果的確相差較大。用安裝的graphviz生成該決策樹的樹狀圖:


titanic_init.png

得到的模型十分復(fù)雜,準(zhǔn)備從著手進行改進,先從判斷信息混亂程度的標(biāo)準(zhǔn)(用informationentropy還是Gini impurity)與對應(yīng)的結(jié)束閥值(min_impurity_decrease)入手。

上圖中定義的im_threshold函數(shù)顯示的是以基尼不純度(Gini impurity)為指標(biāo)的最佳閥值尋找過程,同樣,生成的決策樹和一次交叉驗證結(jié)果如下:

此次修改參數(shù)過后的的決策樹模型

不僅擬合的曲線效果不錯,決策樹也被簡化了很多,交叉驗證數(shù)據(jù)集的準(zhǔn)確率也比較可觀。不過準(zhǔn)確率雖然有時能達到很高的值,穩(wěn)定性有所欠缺,作另外兩次檢測不改變參數(shù)分別得到的結(jié)果:

這次的預(yù)測效果甚至超過了后面的隨機森林,而且測試集準(zhǔn)確率比訓(xùn)練集還高一些,但穩(wěn)定性不好是確定的

在此基礎(chǔ)上試著去衡量其他指標(biāo)共同限制下模型的擬合情況設(shè)置criterion(標(biāo)準(zhǔn))、min_impurity_decrease(閥值)、max_depth(深度)、min_samples_split(節(jié)點劃分后的樣本數(shù))。如下圖通過自己定義的函數(shù)im_multiply構(gòu)建所需的字典param_grid,調(diào)用GridSearchCV來實現(xiàn),找到的最佳參數(shù)組合以及調(diào)整后再次擬合繪制的決策樹模型,示例圖:

注意 best?param:最佳參數(shù)配比
其中一次高準(zhǔn)確率的決策樹模型

可以看到兩個驗證數(shù)據(jù)的驗證結(jié)果十分接近,過擬合問題得到一定解決,而且決策樹較之前者更為簡化,預(yù)測時的效率進一步提高,穩(wěn)定性也提高了。但因為限制過多影響了機器學(xué)習(xí)的敏銳性,預(yù)測的準(zhǔn)確率沒有前者來得高,而且在尋找最優(yōu)參數(shù)時因為組合增多導(dǎo)致的計算量變大,使算法 運行時間過長 ,雖然尋找最優(yōu)參數(shù)只需運行一次,但性價比相對還是不高。


二、隨機森林方式的模型優(yōu)化

隨機森林 便是在決策樹基礎(chǔ)上的一種集成學(xué)習(xí)(Ensemble Learning)方法,在結(jié)構(gòu)上同普通的決策樹相一致,起到了避免對某一關(guān)聯(lián)性較大發(fā)特征作出“傾向性”決策的危險,而為了衡量分析這個優(yōu)化過程的好壞我們可以首先通過定義的函數(shù)plot_learning_curve簡單繪制其本身的學(xué)習(xí)曲線:

默認(rèn)狀態(tài)下隨機森林優(yōu)化的學(xué)習(xí)曲線

可以看到訓(xùn)練數(shù)據(jù)集一直保持著極高的準(zhǔn)確率,同交叉驗證數(shù)據(jù)集的差距很明顯,存在?過擬合?現(xiàn)象,必須進行參數(shù)的優(yōu)化,方法同普通決策樹中的優(yōu)化思路(建立所需的字典,依次檢驗找到最佳)一致,其中一個重要的參數(shù)就是隨機森林的?決策樹生成數(shù)量n_estimators?。和普通決策樹的方案一樣,自行定義im_RandomForest函數(shù)來找到最優(yōu)的參數(shù)組合,如圖得到結(jié)果:

三個參量:max_depth、min_samples_split、n_estimators

增添參數(shù)后二次進行擬合,并畫出優(yōu)化過后的模型學(xué)習(xí)曲線,且對test.csv中的數(shù)據(jù)進行預(yù)測。

由于隨機森林生成了多條決策樹進行選擇,整個集成學(xué)習(xí)是較為抽象的(樹和森林的解釋雖然比較形象),為了直觀一點看到?jīng)Q策樹的結(jié)果,且不嫌麻煩的話,我們可以全部已圖像來生成,全部列出是一件難以實現(xiàn)的工作,在這里只給出其中一條:

隨機森林中的第5號決策樹

根據(jù)最優(yōu)參數(shù)配置運行完畢,觀察學(xué)習(xí)曲線,可以看到曲線擬合較為成功,解決了過擬合的問題。為了再比較兩種標(biāo)準(zhǔn)對擬合模型的影響,又用gini作為標(biāo)準(zhǔn)進行了一次擬合與預(yù)測,結(jié)果二者的區(qū)別并不明顯,最終運行結(jié)果、決策樹模型、學(xué)習(xí)曲線效果如下:

最終運行結(jié)果
學(xué)習(xí)曲線效果
titanic_lastgini.png

參考文章:

https://blog.csdn.net/alionsss/article/details/88173945

https://www.cnblogs.com/bonelee/p/8036024.html

https://www.cnblogs.com/baby-lily/p/10646226.html

https://blog.csdn.net/submarineas/article/details/85727804

https://blog.csdn.net/guolindonggld/article/details/101135001

《scikit-learn機器學(xué)習(xí):常用算法原理及編程實戰(zhàn)》_黃永昌


本文所用代碼(注意讀取文檔運行時的相對路徑是否正確)、文件文檔(包括訓(xùn)練集測試集)、圖片壓縮包:

鏈接:https://pan.baidu.com/s/1YzGX48luWolJsNkEg9pZ4A?

提取碼:sh8s?

此二維碼時效7天,過期還可以到公眾號【邊緣之海】回復(fù) “決策樹” 私戳獲取~




【人工智能】決策樹與隨機森林方式的泰坦尼克號幸存者預(yù)測報告的評論 (共 條)

分享到微博請遵守國家法律
虞城县| 资兴市| 迭部县| 湟中县| 灵武市| 秦皇岛市| 鄂州市| 巩留县| 华蓥市| 新竹市| 高邮市| 辛集市| 鞍山市| 长葛市| 喀喇沁旗| 曲水县| 岳西县| 霍城县| 汽车| 万盛区| 和平区| 偃师市| 九龙城区| 库尔勒市| 高青县| 札达县| 鹿泉市| 中西区| 民权县| 修水县| 惠州市| 咸阳市| 察哈| 舒兰市| 灯塔市| 行唐县| 林周县| 临武县| 农安县| 东乡族自治县| 榆社县|