回归决策树模拟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()
相关推荐
木头程序员6 小时前
大模型边缘部署突破:动态推理技术与精度-延迟-能耗帕累托优化
大数据·人工智能·计算机视觉·自然语言处理·智能手机·数据挖掘
综合热讯8 小时前
脑机接口赋能 认知障碍诊疗迈入精准时代
人工智能·机器学习·数据挖掘
周周爱喝粥呀8 小时前
LLM 中的自回归模型与非自回归模型:GPT 和 BERT 的区别
人工智能·gpt·ai·回归
海棠AI实验室9 小时前
专栏导读:你将交付什么、如何学、如何做作品集
python·数据挖掘
十三画者9 小时前
【文献分享】SpatialZ弥合从平面空间转录组学到三维细胞图谱之间的维度差距
人工智能·数据挖掘·数据分析·数据可视化
龙腾AI白云10 小时前
【无标题】
深度学习·数据挖掘
2501_9411440310 小时前
在不确定性中构建确定性:一次互联网技术实践的随笔记录
决策树·散列表·启发式算法
数据猿11 小时前
Data Agent,是数据分析的唯一解?
数据挖掘·数据分析
Dxy123931021611 小时前
如何让AI给我们做数据分析:从数据清洗到洞察生成的完整指南
人工智能·数据挖掘·数据分析
YangYang9YangYan11 小时前
2026大专大数据与财务管理学数据分析指南
大数据·数据挖掘·数据分析