回归决策树模拟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()
相关推荐
DisonTangor1 天前
跃阶星辰开源Step 3.7 Flash:原生多模态,最高生成速度400 Tokens/s
人工智能·语言模型·数据挖掘·开源·aigc
weixin_468466851 天前
图像分类技术落地应用与实战指南
人工智能·深度学习·ai·分类·数据挖掘·图像分类·模型部署
春日见1 天前
强化学习方法分类:
人工智能·机器学习·分类·数据挖掘·强化学习
搞科研的小刘选手1 天前
【大数据方向专题研讨会】第三届大数据与数字化管理国际学术会议(ICBDDM 2026)
大数据·信息安全·数据挖掘·云计算·可视化·供应链·信息管理
lqqjuly1 天前
低秩分解与低秩适配——从矩阵分析基础到 LoRA/QLoRA
决策树·机器学习·矩阵
高洁011 天前
设备故障?数字孪生提前预警
深度学习·机器学习·数据挖掘·transformer·知识图谱
悟乙己1 天前
Boosting 回归模型的超参数调优包HGBoost介绍
回归·集成学习·boosting
机器学习之心1 天前
BiLSTM-BP加权组合模型回归预测:MATLAB实现与三模型对比分析
matlab·回归·bilstm-bp
张驰咨询公司2 天前
COPQ四分类模型与六西格玛降本:一个动力电池企业的数据分析实战
数据挖掘·数据分析
l14372332672 天前
跨语种配音中的情感保留:从情绪分类到细粒度副语言还原的技术实现
人工智能·分类·数据挖掘