日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

基于python的随机森林回归实现_PYTHON | 随机森林实战(代码+详解)

發布時間:2024/1/23 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于python的随机森林回归实现_PYTHON | 随机森林实战(代码+详解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是菜鳥君,之前跟大家聊過R語言的隨機森林建模,指路?R語言 | 隨機森林建模實戰(代碼+詳解),作為剛過完1024節日的碼農算法工程師來說,怎么可能只會用一種語言呢?今天就來說說Python怎么進行隨機森林的模型構建。

首先,加載一些我們需要的庫。需要注意的是,我們想進行分類預測,所以加載的是隨機森林分類功能。如果想進行回歸預測,需要加載隨機森林回歸功能哦(RandomForestRegression)。

#?-*-?coding:?utf-8?-*-from?sklearn.datasets?import?load_iris???#iris數據集from?sklearn.ensemble?import?RandomForestClassifier??#隨機森林分類from?sklearn?import?metrics??#模型結果指標庫import pandas as pd import numpy as npimport matplotlib.pyplot as plt #畫圖

然后,我們加載數據集。今天用到的是自帶的鳶尾花數據集。

# 還是用鳶尾花數據集吧iris=load_iris()#iris的4個屬性,標簽是花的種類print (iris['target'].shape)

建模這就來了!這一步,我們一共構建了兩個模型,rf1采用默認參數,也就是括號里為空。rf2指定了一些參數。都是用前130個數據作為訓練集。我們可以對比下兩者的結果有啥差異。

## 隨機森林分類器rf1 = RandomForestClassifier()rf2 = RandomForestClassifier(n_estimators=10, max_depth=None,min_samples_split=3, random_state=0)rf1.fit(iris.data[:130],iris.target[:130]) #用前130個數據作為訓練集rf2.fit(iris.data[:130],iris.target[:130]) #用前130個數據作為訓練集

模型構建結束以后,就輪到測試集了。測試集與訓練集一定是分開、獨立的。不然就沒法客觀衡量模型的預測效果啦。在這里,我們的測試集是從131行到150行的鳶尾花數據集。

testset=iris.data[131:150]y_true = iris.target[131:150]

接下來就是把兩個隨機森林模型在同一個測試集上進行預測,分別打印出預測的結果。

y_pre1 = rf1.predict(testset)y_pre2 = rf2.predict(testset)print ('rf1 prediction;',y_pre1)print?('rf2 prediction;',y_pre2)

接下來就是結果部分啦。

# Calculate metricsmse1 = metrics.mean_squared_error(y_true, y_pre1)mse2 = metrics.mean_squared_error(y_true, y_pre2)print("MSE1: %.4f" % mse1)print("MSE2: %.2f" % mse2)

從MSE結果看出,第一個模型rf1的均方誤差比第二個模型rf2的均方誤差要更大一點。說明rf1的結果比rf2要差。

Python sklearn的metrics庫十分強大,這里只是用MSE這個指標做個示范,還有準確率、靈敏度、特異度等指標,只要你需要,基本都能從這個庫里找到。

這是文檔,給你們看一部分指標

最后,隨機森林可以顯示各特征對分類的貢獻,即重要性評分。我們可以打印出重要性的分數,也可以基于這個分數來進行可視化展示。

feature_importance = rf2.feature_importances_# make importances relative to max importancefeature_importance = 100.0 * (feature_importance / feature_importance.max())print(feature_importance)?#use?inbuilt?class?feature_importances?#plot graph of feature importances for better visualizationfeat_importances = pd.Series(rf1.feature_importances_, index=pd.DataFrame(iris.data).columns)feat_importances.nlargest(5).plot(kind='barh')plt.title('Variable Importance')plt.xlabel('Relative Importance')plt.show()

天氣變冷了,只要代碼不報錯,內心就不會覺得冷,加油打工人!下個周末咱們再約,嗷~

交流QQ群:83837564

B站視頻:誰說菜鳥不會數據分析

別忘了點“在看

總結

以上是生活随笔為你收集整理的基于python的随机森林回归实现_PYTHON | 随机森林实战(代码+详解)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。