生成Friedman #2回归问题数据集

在统计学和机器学习领域,回归问题是研究数据之间关系的重要方法之一。Friedman #2回归问题是一个著名的合成数据集,它由J. Friedman和L. Breiman提出,用于测试回归模型的性能。这个数据集包含四个独立的输入特征,这些特征在不同的区间内均匀分布,并且输出值是根据一个特定的公式计算得到的。

具体来说,输入特征X由四个部分组成,它们的取值范围分别是:第一个特征X[0]在0到100之间,第二个特征X[1]在40*pi到560*pi之间,第三个特征X[2]在0到1之间,第四个特征X[3]在1到11之间。这些特征的分布是均匀的,这意味着在它们的取值范围内,每个值出现的概率是相同的。

输出值y是根据输入特征X计算得到的,计算公式如下:

y(X) = sqrt((X[:,0]**2) + ((X[:,1]*X[:,2] - 1/(X[:,1]*X[:,3]))**2)) + noise * N(0,1)

其中,noise是添加到输出值中的高斯噪声的标准差,N(0,1)表示标准正态分布。这个公式包含了平方、乘法和除法等操作,因此可以生成复杂的非线性关系。

Python中,可以使用sklearn库来生成这个数据集。sklearn库提供了一个名为make_friedman2的函数,它可以根据用户指定的样本数量、噪声水平和随机种子来生成数据集。下面是一个使用这个函数生成数据集的示例代码:

from sklearn.datasets import make_friedman2 # 设置随机种子以确保结果可复现 random_state = 42 # 生成数据集 X, y = make_friedman2(random_state=random_state) # 打印数据集的形状 print(X.shape) # 输出: (100, 4) print(y.shape) # 输出: (100,) # 打印前三个输出值 print(list(y[:3])) # 输出: [1229.4..., 27.0..., 65.6...]

在这个示例中,首先从sklearn.datasets模块导入make_friedman2函数。然后,设置了一个随机种子,以确保每次运行代码时生成的数据集都是相同的。接下来,调用make_friedman2函数生成数据集,并打印出输入特征X和输出值y的形状。最后,打印出前三个输出值,以展示数据集的分布情况。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485