【scikit-learn】sklearn.datasets.make_regression() 函数:合成回归数据集生成工具

sklearn.datasets.make_regression()

make_regression()sklearn.datasets 提供的 合成回归数据集生成工具,用于 创建模拟的回归数据,适用于 机器学习模型测试、特征工程、算法研究


1. make_regression() 作用

  • 生成可控的回归数据集(指定特征数、噪声、冗余特征等)。
  • 测试回归模型(如 线性回归XGBoost)。
  • 研究特征选择、噪声影响、正则化等问题

2. make_regression() 代码示例

(1) 生成回归数据

from sklearn.datasets import make_regression
import matplotlib.pyplot as plt

# 生成数据(100 个样本,1 个特征,添加 10 的噪声)
X, y = make_regression(n_samples=100, n_features=1, noise=10, random_state=42)

# 可视化数据
plt.scatter(X, y)
plt.title("合成回归数据")
plt.xlabel("Feature")
plt.ylabel("Target")
plt.show()

解释

  • n_samples=100:生成 100 个样本。
  • n_features=1:每个样本 1 个特征(便于可视化)。
  • noise=10:添加 10 的噪声,使数据更接近真实情况。

(2) 生成多特征回归数据

X, y = make_regression(n_samples=200, n_features=3, noise=5, random_state=42)

print("特征矩阵形状:", X.shape)
print("目标变量形状:", y.shape)

输出

特征矩阵形状: (200, 3)
目标变量形状: (200,)

解释

  • 3 个特征,可用于多元回归任务。

3. make_regression() 的参数

make_regression(n_samples=100, n_features=20, n_informative=2, noise=0.0, 
                bias=0.0, effective_rank=None, tail_strength=0.5, random_state=None)
参数说明
n_samples样本数(默认 100
n_features总特征数(默认 20
n_informative有效特征数(影响目标值)
noise噪声强度(默认 0.0,值越大噪声越大)
bias目标值的偏置(默认 0.0
effective_rank低秩数据的秩(用于生成相关特征)
tail_strength低秩数据的尾部强度
random_state随机种子,保证结果可复现

4. 生成稀疏特征的回归数据

X, y = make_regression(n_samples=100, n_features=10, n_informative=2, noise=5, random_state=42)

print("特征矩阵形状:", X.shape)
print("目标变量形状:", y.shape)

解释

  • n_informative=2 只有 2 个特征真正影响 y,其余 8 个是噪声。

5. make_regression() vs. 其他数据集生成函数

方法适用情况作用
make_classification()分类任务生成 分类数据
make_regression()回归任务生成 线性回归数据
make_blobs()聚类任务生成高斯分布的聚类数据
make_moons()非线性分类生成新月形数据
make_circles()非线性分类生成环形数据

6. 适用场景

  • 模拟回归任务(测试回归算法)。
  • 研究特征选择(观察冗余特征、有效特征的影响)。
  • 分析噪声对模型的影响(调整 noise )。

7. 结论

  • make_regression() 用于生成合成回归数据,支持 调整特征数量、噪声、相关性,适用于 机器学习研究和算法测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值