說明:這是一個(gè)機(jī)器學(xué)習(xí)實(shí)戰(zhàn)項(xiàng)目(附帶數(shù)據(jù)+代碼+文檔+視頻講解),如需數(shù)據(jù)+代碼+文檔+視頻講解可以直接到文章最后獲取。
1.項(xiàng)目背景
Stacking通??紤]的是異質(zhì)弱學(xué)習(xí)器(不同的學(xué)習(xí)算法被組合在一起),stacking學(xué)習(xí)用元模型組合基礎(chǔ)模型。stacking 的概念是學(xué)習(xí)幾個(gè)不同的弱學(xué)習(xí)器,并通過訓(xùn)練一個(gè)元模型來組合它們,然后基于這些弱模型返回的多個(gè)預(yù)測結(jié)果輸出最終的預(yù)測結(jié)果。
本項(xiàng)目應(yīng)用Stacking回歸算法通過集成隨機(jī)森林回歸、極端隨機(jī)森林回歸、Adaboost回歸、梯度提升樹回歸、決策樹回歸五個(gè)算法進(jìn)行建模、預(yù)測及模型評估。
2.數(shù)據(jù)獲取
本次建模數(shù)據(jù)來源于網(wǎng)絡(luò)(本項(xiàng)目撰寫人整理而成),數(shù)據(jù)項(xiàng)統(tǒng)計(jì)如下:
數(shù)據(jù)詳情如下(部分展示):
3.數(shù)據(jù)預(yù)處理
3.1 用Pandas工具查看數(shù)據(jù)
使用Pandas工具的head()方法查看前五行數(shù)據(jù):
關(guān)鍵代碼:
3.2 數(shù)據(jù)缺失查看
使用Pandas工具的info()方法查看數(shù)據(jù)信息:
從上圖可以看到,總共有10個(gè)變量,數(shù)據(jù)中無缺失值,共1000條數(shù)據(jù)。
關(guān)鍵代碼:
3.3 數(shù)據(jù)描述性統(tǒng)計(jì)
通過Pandas工具的describe()方法來查看數(shù)據(jù)的平均值、標(biāo)準(zhǔn)差、最小值、分位數(shù)、最大值。
關(guān)鍵代碼如下:
4.探索性數(shù)據(jù)分析
4.1 y變量直方圖
用Matplotlib工具的hist()方法繪制直方圖:
從上圖可以看到,y變量主要集中在-200~200之間。
4.2 相關(guān)性分析
從上圖中可以看到,數(shù)值越大相關(guān)性越強(qiáng),正值是正相關(guān)、負(fù)值是負(fù)相關(guān)。 ?
5.特征工程
5.1 建立特征數(shù)據(jù)和標(biāo)簽數(shù)據(jù)
關(guān)鍵代碼如下:
5.2 數(shù)據(jù)集拆分
通過train_test_split()方法按照80%訓(xùn)練集、20%測試集進(jìn)行劃分,關(guān)鍵代碼如下:
6.構(gòu)建Stacking回歸模型
主Stacking回歸算法通過集成隨機(jī)森林回歸、極端隨機(jī)森林回歸、Adaboost回歸、梯度提升樹回歸、決策樹回歸五個(gè)算法進(jìn)行建模,用于目標(biāo)回歸。
6.1第一層模型參數(shù)
關(guān)鍵代碼如下:
?6.2第一層模型特征重要性
?通過上圖可以看出,隨機(jī)森林模型特征重要性排名為x5、x6等。
通過上圖可以看出,極端隨機(jī)樹模型特征重要性排名為x5、x6等。
?通過上圖可以看出,AdaBoost模型特征重要性排名為x5、x6等。
通過上圖可以看出,Gradient Boost模型特征重要性排名為x5、x6等。?
通過上圖可以看出,所有模型特征重要性排名為x5、x6、x1等。
6.3 五種模型相關(guān)性分析
針對五種模型的預(yù)測結(jié)果進(jìn)行相關(guān)性分析,通過上圖可以看出大于0的為正相關(guān) 數(shù)值越大相關(guān)性越強(qiáng);小于0的為負(fù)相關(guān)。
6.4 第二層模型參數(shù)
關(guān)鍵代碼如下:
7.模型評估
7.1 評估指標(biāo)及結(jié)果
評估指標(biāo)主要包括可解釋方差值、平均絕對誤差、均方誤差、R方值等等。
從上表可以看出,R方0.9707,為模型效果較好。
關(guān)鍵代碼如下:
7.2 真實(shí)值與預(yù)測值對比圖
從上圖可以看出真實(shí)值和預(yù)測值波動(dòng)基本一致,模型擬合效果良好。 ??文章來源:http://www.zghlxwxcb.cn/news/detail-429061.html
8.結(jié)論與展望
綜上所述,本項(xiàng)目采用了應(yīng)用Stacking回歸算法通過集成隨機(jī)森林回歸、極端隨機(jī)森林回歸、Adaboost回歸、梯度提升樹回歸、決策樹回歸五個(gè)算法進(jìn)行建模及模型評估,最終證明了我們提出的模型效果較好。?文章來源地址http://www.zghlxwxcb.cn/news/detail-429061.html
# 本次機(jī)器學(xué)習(xí)項(xiàng)目實(shí)戰(zhàn)所需的資料,項(xiàng)目資源如下: # 項(xiàng)目說明: # 鏈接:https://pan.baidu.com/s/1VPWFSTp8cDrvLKYUYXiqvQ # 提取碼:vqs0 # 用Pandas工具查看數(shù)據(jù) print(df.head()) print('******************************') # 數(shù)據(jù)缺失值統(tǒng)計(jì) print(df.info()) print('******************************') # 描述性統(tǒng)計(jì)分析 print(df.describe().round(4)) print('******************************') # y變量分布直方圖 fig = plt.figure(figsize=(8, 5)) # 設(shè)置畫布大小 plt.rcParams['font.sans-serif'] = 'SimHei' # 設(shè)置中文顯示 plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負(fù)號'-'顯示為方塊的問題 data_tmp = df['y'] # 過濾出y變量的樣本 # 繪制直方圖 bins:控制直方圖中的區(qū)間個(gè)數(shù) auto為自動(dòng)填充個(gè)數(shù) color:指定柱子的填充色 plt.hist(data_tmp, bins='auto', color='g') plt.xlabel('y') plt.ylabel('數(shù)量')
到了這里,關(guān)于Python實(shí)現(xiàn)Stacking回歸模型(隨機(jī)森林回歸、極端隨機(jī)樹回歸、AdaBoost回歸、GBDT回歸、決策樹回歸)項(xiàng)目實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!