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

歡迎訪問 生活随笔!

生活随笔

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

python

【Python-ML】SKlearn库非线性决策树回归

發布時間:2025/4/16 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python-ML】SKlearn库非线性决策树回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# -*- coding: utf-8 -*- ''' Created on 2018年1月24日 @author: Jason.F @summary: 有監督回歸學習-決策樹回歸模型,無需對數據進行特征轉換,就能處理非線性關系的數據 ''' import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np from sklearn.tree import DecisionTreeRegressor from sklearn.cross_validation import train_test_split from sklearn.ensemble import RandomForestRegressor from sklearn.metrics.regression import mean_squared_error, r2_score #導入波士頓房屋數據集 df=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data',header=None,sep='\s+') df.columns=['CRIM','ZM','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT','MEDV']#單顆決策樹回歸,MSE替代熵作為節點t的不純度度量標準 X=df[['LSTAT']].values y=df['MEDV'].values tree = DecisionTreeRegressor (max_depth=3) tree.fit(X,y) sort_idx = X.flatten().argsort() def lin_regplot(X,y,model):plt.scatter(X,y,c='blue')plt.plot(X,model.predict(X),color='red')return None lin_regplot(X[sort_idx],y[sort_idx],tree) plt.xlabel('%lower status of the population[LSTAT]') plt.ylabel('Price in $1000\'s [MEDV]') plt.show()#隨機森林,對數據集中的異常值不敏感,且無更多參數調優 #隨機森林回歸使用MSE作為單顆決策樹生成的標準,同時所有決策樹預測值的平均數作為預測目標變量的值 X=df.iloc[:,:-1].values y=df['MEDV'].values X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.4,random_state=1) forest = RandomForestRegressor(n_estimators=1000,criterion='mse',random_state=1,n_jobs=1) forest.fit(X_train,y_train) y_train_pred = forest.predict(X_train) y_test_pred = forest.predict(X_test) print ('MSE train:%.3f,test:%.3f'%(mean_squared_error(y_train,y_train_pred),mean_squared_error(y_test,y_test_pred))) print ('R^2 train:%.3f,test:%.3f'%(r2_score(y_train,y_train_pred),r2_score(y_test,y_test_pred))) #可視化效果 plt.scatter(y_train_pred,y_train_pred-y_train,c='black',marker='o',s=35,alpha=0.5,label='Training data') plt.scatter(y_test_pred,y_test_pred-y_test,c='lightgreen',marker='s',s=35,alpha=0.7,label='Test data') plt.xlabel('Predicted values') plt.ylabel('Residuals') plt.legend(loc='upper left') plt.show()

結果:

MSE train:1.642,test:11.052 R^2 train:0.979,test:0.878

總結

以上是生活随笔為你收集整理的【Python-ML】SKlearn库非线性决策树回归的全部內容,希望文章能夠幫你解決所遇到的問題。

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