回归决策树模拟sin函数

python 复制代码
# -*-coding:utf-8-*-
import numpy as np
from sklearn import tree
import matplotlib.pyplot as plt

plt.switch_backend("TkAgg")
# 创建了一个随机数生成器对象 rng
rng=np.random.RandomState(1)
print("rng",rng)
#5*rng.rand(80,1)生成一个80行、1列的数组,数组中的每个元素都是从0到5之间的随机数。然后,np.sort函数对这个数组进行排序,axis=0表示按行(也就是每一列)排序。
#axis=0,数组只有行,没有列
X=np.sort(5*rng.rand(80,1),axis=0)

#ravel()把二维数组变为一位数组
y=np.sin(X).ravel()



#选取0,5,10,15,20....,让这些下标数字加上噪声
y[::5]+=3*(0.5-rng.rand(16))

regr_1=tree.DecisionTreeRegressor(max_depth=2)
regr_2=tree.DecisionTreeRegressor(max_depth=5)
clf1=regr_1.fit(X,y)
clf2=regr_2.fit(X,y)

#转为二维数组
X_test=np.reshape( np.arange(0.0,5.0,0.01),(-1,1) )
# X_test=np.arrange(0.0,5.0,0.01)[:,np.newaxis]

y_1=regr_1.predict(X_test)
y_2=regr_2.predict(X_test)


plt.figure()
plt.scatter(X,y,s=20,edgecolors="black",c="darkorange",label="data")
plt.plot(X_test,y_1,color="cornflowerblue",label="max_depth=2",linewidth=2)
plt.plot(X_test,y_2,color="yellowgreen",label="max_depth=5",linewidth=2)
plt.xlabel("data")
plt.ylabel("target")
plt.title("Decision Tree Regreesion")
plt.legend()
plt.show()
相关推荐
BioRunYiXue18 小时前
技术干货 | LiP-MS全流程解析:从实验设计到数据分析
大数据·前端·javascript·人工智能·算法·数据挖掘·数据分析
hai31524754319 小时前
十种编程语言的概率统计视角分析:统计对象分类与统计编程
人工智能·分类·数据挖掘
数智化管理手记21 小时前
指标管理数据更新滞后严重?指标管理平台如何实现指标实时更新监控?
大数据·网络·数据库·人工智能·数据挖掘
卡兹墨1 天前
彩笔运维勇闯机器学习--决策树
运维·决策树·机器学习
hqyjzsb1 天前
AI应用人才需求爆发:区分AI研发与AI应用,普通人学习路线清晰指南
人工智能·学习·金融·数据挖掘·数据分析·创业创新·业界资讯
我要见SA姐11 天前
彩笔运维勇闯机器学习:多项式回归
运维·机器学习·回归
玩美数据1 天前
全球化问卷样本库与数据分析平台:海量样本、本地化服务驱动
数据挖掘·数据分析
attitude.x2 天前
2026年大数据分析软件推荐:性能与安全对比
安全·数据挖掘·数据分析
执笔画流年呀2 天前
校园问卷调查与数据分析平台的设计与实现
数据挖掘·数据分析
你想知道什么?2 天前
决策树-学习笔记
笔记·学习·决策树