本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com
CART决策树是常用的机器学习算法,它包括CART分类树与回归树,
回归树与分类树不同的地方在于,回归树的输出是数值,分类树输出的是类别。
本文展示一个用python(sklearn)实现的简单的CART回归树例子,用于学习sklearn回归树的调用方法
下面是一个简单的回归问题的数据与建模目标
数 据
现已采集150组 鸢尾花数据,
包括鸢尾花的四个特征数据(花萼长度、花萼宽度、花瓣长度、花瓣宽度)
数据如下(即sk-learn中的iris数据):
![]()
花萼长度 sepal length (cm) 、花萼宽度 sepal width (cm)
花瓣长度 petal length (cm) 、花瓣宽度 petal width (cm)
目 标
我们希望通过采集的数据,
训练一个决策树模型,
之后应用该模型,
可以根据花萼长度、花萼宽度、花瓣长度 预测 花瓣宽度。
(一) 流 程
1. 建立决策树模型
2. 用数据训练决策树模型
3. 用训练好的决策树模型预测
(二) 代码
from sklearn.datasets import load_iris
from sklearn import tree
import pandas as pd
#----------------数据准备----------------------------
iris = load_iris() # 加载数据
x = iris.data[:,0:3]
y = iris.data[:,3]
feature_names = iris['feature_names'][0:3]
target_name = iris['feature_names'][3]
#---------------模型训练----------------------------------
clf = tree.DecisionTreeRegressor() # sk-learn的决策树模型
clf = clf.fit(x, y) # 用数据训练树模型构建()
r = tree.export_text(clf, feature_names=feature_names)
#---------------模型预测结果------------------------
text_x = x[[0,1,50,51,100,101], :]
test_y = y[[0,1,50,51,100,101]]
pred_target = clf.predict(text_x) # 预测类别
df = pd.DataFrame()
df["原y"] = test_y
df["预测y"] = pred_target
#---------------打印结果---------------------------
print("\n===模型======")
print(r)
print("\n===预测结果======")
print(df)
运行代码后,输出如下:
===预测结果======
原y 预测y
0 0.2 0.25
1 0.2 0.20
2 1.4 1.40
3 1.5 1.50
4 2.5 2.50
5 1.9 1.90
以上就是决策树做回归树的最简例子
End