决策树(回归)

回归树重要参数,属性,接口

决策树(回归)和决策树(分类)的参数,属性和接口基本是一样的。
sklearn里面的计算都是不能够干涉的,它会自己按照公式计算。
回归树衡量分支质量的指标有三种:
1)mse均方差
2)‘friedman_mse’费尔曼德均方误差
3)‘mae’绝对平均误差
属性最重要的依然是‘feature_importances_’,接口依然是‘apply’,‘fit’,‘score’,‘predict’最为核心。
在这里插入图片描述

在回归树中,MSE不只是我们的分支质量衡量标准,也是我们最常用的衡量回归树回归质量的指标。 当我们在使用交叉验证,或者其他方法获取回归树结果时,我们往往选择均方误差作为我们的评估(在分类树中这个指标是score代表的是预测准确率)。在回归中,我们追求的是,MSE越小越好。
然而,回归树的接口score返回的是R平方,并不是MSE。R平方被定义如下:
在这里插入图片描述

交叉验证

交叉验证是用来观察模型稳定性的一种方法,我们将数据分为n份,依次使用1份作为验证集,其他n-1份作为测试集,多次计算模型的精确性来评估模型的平均准确程度。
训练集和测试集的划分会干扰模型的结果,因此使用交叉验证n次的结果求出的平均值,是对模型效果更好的一个度量。

在这里插入图片描述

我们来看看回归树是怎样工作的

#导入需要的算法和模块
from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score #交叉验证
from sklearn.tree import DecisionTreeRegressor

bosten=load_boston()
regressor=DecisionTreeRegressor(random_state=0)
cross_val_score(regressor,bosten.data,bosten.target,cv=10,
                scoring='neg_mean_squared_error'               
                )
#交叉验证cross_val_score的用法

#scoring=‘neg_mean_squared_error’ ,指标是负均方误差,绝对值越小越好。
#不写scoring时,默认是以R平方作为指标,越接近1越好。

回归树的实例(一维回归的图像绘制)

#1.导入需要的库
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier

#2.创建一个含有噪声的正弦曲线
rng=np.random.RandomState(1)   #随机数种子
x=np.sort(5*rng.rand(80,1),axis=0)  #生成0-5之间的随机的x的取值
y=np.sin(x).ravel()   #生成正弦曲线
y[::5]+=3*(0.5-rng.rand(16))  #在正弦曲线上加噪声

#画图玩玩
plt.figure()
plt.scatter(x,y,edgecolor='black',c='red',label='data',linewidth=2)
plt.legend()
plt.show()

#3.实例化&训练模型
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)

#4.测试集导入模型,预测结果
x_test=np.arange(0,5,0.01)[:,np.newaxis]
y_1=regr_1.predict(x_test)
y_2=regr_2.predict(x_test)
#np.arange(开始点,结束点,步长)
#了解增维切片np.newaxis的用法
a=np.array([1,2,3,4])
a[:,np.newaxis]
a[np.newaxis.:]

#5.绘制图像
plt.figure()
plt.scatter(x,y,edgecolor='black',c='red',label='data')
plt.plot(x_test,y_1,c='red',label='max_depyh=2',linewidth=2)  
plt.plot(x_test,y_2,c='yellowgreen',label='max_depth=5',linewidth=2) 
plt.xlabel('data') 
plt.ylabel('target')  
plt.title('Decision Tree Regression')                        
plt.legend()
plt.show()


在这里插入图片描述
可见,回归树学习了近视正弦曲线的局部线性回归。我们可以看到,如果树的最大深度(由max_depth参数控制)设置太高,则决策树学习得太精细,它从训练数据中学到了很多细节,包括噪声的呈现,从而使模型偏离真实的正弦曲线,形成过拟合。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值