Python机器学习及实践——基础篇11(回归树)

发布时间:2024-11-11 15:49

回归树在选择不同特征作为分裂节点的策略上,与基础篇6的决策树的思路类似。不同之处在于,回归树叶节点的数据类型不是离散型,而是连续型。决策树每个叶节点依照训练数据表现的概率倾向决定了其最终的预测类;而回归树的叶节点确实一个个具体的值,从预测值连续这个意义上严格地讲,回归树不能成为“回归算法”。因为回归树的叶节点返回的是“一团”训练数据的均值,而不是具体的,连续的预测值。

下面使用回归树对美国波士顿房训练数据进行学习,并对测试数据进行预测:

from sklearn.tree import DecisionTreeRegressor

dtr = DecisionTreeRegressor()

dtr.fit(X_train, y_train)

dtr_y_predict = dtr.predict(X_test)

使用如下代码,对默认配置的回归树在测试集上的性能做出评估。并且,该代码的输出结果优于基础篇8中的LR与SGDR的性能表现。因此,可以初步推断,“美国波士顿房价预测”问题的特征值与目标值之间存在一定的非线性关系。

print 'R-squared value of DecisionTreeRegressor:', dtr.score(X_test, y_test)

print 'The mean squared error of DecisionTreeRegressor:', mean_squared_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(dtr_y_predict))

print 'The mean absoluate error of DecisionTreeRegressor:', mean_absolute_error(ss_y.inverse_transform(y_test), ss_y.inverse_transform(dtr_y_predict))

R-squared value of DecisionTreeRegressor: 0.694084261863

The mean squared error of DecisionTreeRegressor: 23.7211023622

The mean absoluate error of DecisionTreeRegressor: 3.14173228346

特点分析:在系统地介绍了决策(分类)树与回归树之后,可以总结这类树模型的优点:1、树模型可以解决非线性特征的问题;2、树模型不要求对特征标准化和统一量化,即数值型和类别型特征都可以直接被应用在树模型的构建和预测过程中;3、因为上述原因,树模型也可以直观地输出决策过程,使得预测结果具有可解释性。

同时,树模型也有一些显著的缺陷:1、正是因为树模型可以解决辅复杂的非线性拟合问题,所以更加容易因为模型搭建过于复杂而丧失对新数据预测的精度(泛化力);2、树模型从上之下的预测流程会因为数据细微的更改而发生较大的结构变化,因此预测稳定性较差;3、依托训练数据构建最佳的树模型是NP难问题,即在有限时间内无法找到最优解的问题,因此我们所使用类似贪婪算法的解法只能找到一些次优解,这也是为什么我们经常借助集成模型,再多个次优解中寻觅更高的模型性能。

网址:Python机器学习及实践——基础篇11(回归树) https://www.yuejiaxmz.com/news/view/32754

相关内容

机器学习(七):提升(boosting)方法
护理实习生个人实习总结(精选11篇)
Python实现简单算法乘法:提升编程效率与逻辑思维
python+flask计算机毕业设计个人财务管理系统的设计与实现(程序+开题+论文)
python+flask计算机毕业设计个人时间管理APP(程序+开题+论文)
基础护理小知识通用12篇
教育与生活——关于“教育回归生活”的哲学思考 >> 教育研究
2023年个人健身计划(实用11篇)
生活学习计划(实用15篇)
从经验视角谈“教育回归生活世界”

随便看看