【机器学习】决策树的使用和代码示例(二)

机器学习学习笔记

  • Sklearn入门
  • 决策树(一)——分类树
  • 决策树(二)——回归树

文章目录

  • 1 重要参数,属性及接口
    • criterion
    • 交叉验证
    • 代码实现

在这里插入图片描述

1 重要参数,属性及接口

criterion

回归树衡量分枝质量的指标,支持的标准有三种:

1)输入"mse"使用均方误差mean squared error(MSE),父节点和叶子节点之间的均方误差的差额将被用来作为特征选择的标准,这种方法通过使用叶子节点的均值来最小化L2损失

2)输入“friedman_mse”使用费尔德曼均方误差,这种指标使用弗里德曼针对潜在分枝中的问题改进后的均方误差

3)输入"mae"使用绝对平均误差MAE(mean absolute error),这种指标使用叶节点的中值来最小化L1损失,属性中最重要的依然是feature_importances_,接口依然是apply, fit, predict, score最核心。
在这里插入图片描述

其中N是样本数量,i是每一个数据样本,fi是模型回归出的数值,yi是样本点i实际的数值标签。

所以MSE的本质,其实是样本真实数据与回归结果的差异。

在回归树中,MSE不只是我们的分枝质量衡量指标,也是我们最常用的衡量回归树回归质量的指标,当我们在使用交叉验证,或者其他方式获取回归树的结果时,我们往往选择均方误差作为我们的评估(在分类树中这个指标是score代表的预测准确率)。

在回归中,我们追求的是,MSE越小越好。

交叉验证

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)
cross_val_score(regressor, boston.data, boston.target, cv=10, 
                scoring = "neg_mean_squared_error") 
                #交叉验证cross_val_score的用法

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

代码实现

导库、数据集

from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeRegressor

建立回归树,实例化

regressor = DecisionTreeRegressor(random_state=0)

使用交叉验证对数据进行评分(cv=10)scoring默认值是r2

cross_val_score(regressor, boston.data, boston.target, cv=10,
scoring = "neg_mean_squared_error")

你可能感兴趣的:(机器学习,决策树,机器学习)