sklearn-回归树(波士顿房价)

参数

class sklearn.tree.DecisionTreeRegressor (criterion=’mse’,
splitter=’best’, max_depth=None,min_samples_split=2,
min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features=None,random_state=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None, presort=False)

交叉验证

在这里插入图片描述

from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeRegressor
boston = load_boston()
regressor = DecisionTreeRegressor(random_state=0)
#交叉验证
print(cross_val_score(regressor,boston.data,boston.target,cv=10,
               #scoring = "neg_mean_squared_error"
               #默认返回R平方
               ))

一维回归的图像绘制

import numpy as np
from sklearn.tree import DecisionTreeRegressor
import matplotlib.pyplot as plt

#创建一条含有噪声的正弦曲线
rng = np.random.RandomState(1)#生成随机数种子
X = np.sort(5 * rng.rand(80,1),axis=1)#生成0~5之间随机数,80行1列的矩阵,升序由axis=0控制
y = np.sin(X).ravel()#生成正弦曲线,使用ravel降维,变成一维
y[::5] += 3 *(0.5 - rng.rand(16))#给某些数据加噪声
#y[::5]切片,步长为5,取80/5=16个,切片加上16个 3*(-0.5~0.5)的值(即为噪声)
plt.figure()
plt.scatter(X,y,s=20)
#print(plt.show()) #画出有噪音的散点图

#实例化,训练模型
regr_1 = DecisionTreeRegressor(max_depth=2)
regr_2 = DecisionTreeRegressor(max_depth=5)
regr_1=regr_1.fit(X,y)
regr_2=regr_2.fit(X,y)

#导入测试集,预测结果
X_test = np.arange(0.0,5.0,0.01)[:,np.newaxis]#生成测试集
#np.arrange(开始点,结束点,步长) 生成有序数组的函数
#把测试集放到回归树里面必须是2维,所以要增维,l[:,np.newaxis]把l增维,l[np.newaxis,:]把l降维
#print(X_test.shape)
y_1 = regr_1.predict(X_test)#预测结果
y_2 = regr_2.predict(X_test)
#print(y_1,y_2)

#画图
plt.figure()#生成画布
#scatter画散点图
plt.scatter(X, y, s=20, edgecolor="black",c="darkorange", label="data")
#s:尺寸,edgecolor:边框颜色,c:点的颜色,lable:数据
plt.plot(X_test, y_1, color="cornflowerblue",label="max_depth=2", linewidth=2)#plot画线
plt.plot(X_test, y_2, color="yellowgreen", label="max_depth=5", linewidth=2)
plt.xlabel("data")#x,y轴的名字
plt.ylabel("target")
plt.title("Decision Tree Regression")#图的名称
plt.legend()
print(plt.show())  #显示图

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值