1、引入所需库
# 引入所需库
import numpy as np
from sklearn.tree import DecisionTreeRegressor
from sklearn import model_selection
import matplotlib.pyplot as plt
2、产生随机的数据集的函数
creat_data函数产生的数据集是在sin(x)函数基础之上添加了若干个随机噪声产生的。x是随机在0~1之间产生的,y是sin(x),其中y每隔5个点添加一个随机噪声。然后将数据集随机切分成训练集和测试集。指定测试集样本大小为原样本集的0.25倍。
def creat_data(n): #n为数据集容量
np.random.seed(0)
X = 5 * np.random.rand(n, 1)
y = np.sin(X).ravel()
noise_num=(int)(n/5)
y[::5] += 3 * (0.5 - np.random.rand(noise_num)) # 每第5个样本,就在该样本的值上添加噪音
return model_selection.train_test_split(X, y,
test_size=0.25,random_state=1) # 拆分原始数据集为训练集和测试集,其中测试集大小为元素数据集大小的 1/4
# 返回元组:训练样本集、测试样本集、训练样本集对应的值、测试样本集对应的值
3、测试函数:
在test_DecisionTreeRegressor函数中,给出了对x上每个点的预测值(考虑到连续值有无穷多,采取的方式是[0,5]之间,步长为0.01)。
<