【机器学习笔记】【决策树】【回归树】( 二 )


这就好比是我们之前的种苹果树的例子,我们同样多次做实验,然后求一个平均的效果,来看看我们的模型到底有多么稳定
二、交叉验证的简单使用 1.导入相关的数据包
#导入波士顿房价数据 。因为回归处理的是连续性变量,而我们之前的红酒并不是连续性变量from sklearn.datasets import load_bostonfrom sklearn.model_selection import cross_val_scorefrom sklearn.tree import DecisionTreeRegressor#交叉验证cross_val_score的用法
2.查看我们的数据
#查看波士顿房价boston=load_boston()boston
#查看波士顿房价的数据boston.data
#查看波士顿数据集的特征矩阵,将标签取出来boston.target
3.实例化并使用交叉验证
#实例化,regressor是回归的意思,regressor = DecisionTreeRegressor(random_state=0)#第一个参数是哦我们实例化好之后的模型#第二个参数是完整的数据集的数据,不需要划分测试集和训练集#因为我们的交叉验证会自动帮助我们划分测试集和训练集的,所以我们需要传一个完整的数据#第三个参数是波士顿数据的标签,同样也是一个完整的标签,不用划分成测试集的标签和训练集的标签#第四个参数cv是告诉我们的机器,交叉验证需要进行十次,将数据分成十份,每一次取一份作为我们的测试集,剩下的九份作为我们的训练集#第五个参数scoring,交叉验证返回的结果是最后的分数打分,下面的代码也就是在说用neg_mean_squared_error对我们的数据集进行打分#这里我们将我们的交叉验证划分为十份,也就是说我们会有10个不同的打分,如果不填写的话,默认打分是使用R^2,(数据结果越接近1越好)#但是我们上述中所说的,我们回归最常用的是均方误差,并且最好用负的均方误差cross_val_score(regressor, boston.data, boston.target, cv=10,scoring = "neg_mean_squared_error")
三、一维回归的图像绘制 1.导入相关的库
#实例:一维回归的图像绘制#1.导入相关的库#numpy是帮助我们生成图上需要的数据点的import numpy as npfrom sklearn.tree import DecisionTreeRegressor#是用来画图的import matplotlib.pyplot as plt
2.创建一条含有噪声的正弦曲线
在这一步,我们的基本思路是,先创建一组随机的,分布在0~5上的横坐标轴的取值(x),然后将这一组值放到sin函数中去生成纵坐标的值(y),接着再到y上去添加噪声 。全程我们会使用numpy库来为我们生成这个正弦曲线 。
#使用numpy生成一个随机数种子rng = np.random.RandomState(1)rng
#生成八十行一列的随机数,然后将每一个数据的值都乘上5,然后再将这些数据排序,axis=0,逐行按列进行排序#为什么一定要生成一个二维的数据?#因为到时候我们要把我们的八十行数据分成测试集和训练集,我们要把测试集中的数据导入回归树中,让回归树进行拟合#但是拟合的这些接口都是需要传入二维的数据的,如果真的只有一个特征值的话,也需要使用reshape(-1,1)进行升维X = np.sort(5 * rng.rand(80,1), axis=0)X
#使用numpy中的正弦函数,但是这个正弦的数据我们希望是一维的,也就是说我们需要将其降维,也就是使用函数ravel(),将我们的数据降成一维#X是我们的标签,x可以是多维的,可以是两列,但是我们的y不可以,因为我们处理的是单标签问题,所以我们的y的数据只能是一维的y = np.sin(X).ravel()y