基于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 | 随机森林实战(代码+详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python识别表格图_使用Python
- 下一篇: win10系统要求配置_酒店智能化集成系