使用正弦函数生成一个包含两个正弦周期的数据集(振幅可自行设定),从中均匀采样 20 个 数据样本,对每个样本的目标变量 yi 添加一个随机的扰动值(扰动值不要太大),形成数据 集 D1
时间: 2024-10-19 21:12:39 浏览: 28
正弦波数据生成器(正弦波表).rar
5星 · 资源好评率100%
首先,我们可以使用Python和numpy库生成这样一个数据集。我们将创建一个函数来完成这个任务:
```python
import numpy as np
import random
def generate_sine_dataset(amplitude=1, frequency=1, num_samples=20, noise_level=0.1):
"""
生成包含两个正弦周期的数据集,添加随机扰动
"""
# 定义基本的正弦波形
t = np.linspace(0, 2 * np.pi, num=num_samples * 2, endpoint=False) # 生成两个完整周期的时间点
base_signal = amplitude * np.sin(frequency * t)
# 添加第二个正弦周期
double_sine = np.concatenate((base_signal, base_signal + np.pi), axis=0)
# 平均切割两个周期,得到所需数量的样本
data_points = double_sine[:num_samples]
# 添加随机扰动
noise = np.random.normal(scale=noise_level, size=data_points.shape)
noisy_data = data_points + noise
return noisy_data
# 示例:生成一个含有20个样本,振幅为2,频率为1,噪声水平为0.1的数据集
D1 = generate_sine_dataset(amplitude=2, frequency=1, num_samples=20, noise_level=0.1)
# 打印数据集前几个样本
print("Data set D1 (first few samples):", D1[:5])
阅读全文