给出10个x值,计算y, y=2x 在计算出的y值上加入噪声值(噪声值范围1~3之间) 使用第一步、第二步产生的x,y作为样本数据,执行线性回归 可视化原始样本、预测结果
时间: 2024-12-02 18:18:37 浏览: 14
首先,我们按照给定的公式 `y = 2x` 来生成10个x值对应的y值:
```python
import numpy as np
# Step 1: 生成x值(范围假设从0到9)
x = np.linspace(0, 9, 10)
y_clean = 2 * x
```
接着,我们将噪声添加到y值中,噪声范围为1到3之间:
```python
# Step 2: 加入噪声
noise = np.random.randint(1, 4, size=len(x))
y_noisy = y_clean + noise
```
现在我们有了含有噪声的样本数据 `(x, y_noisy)`。
接下来执行线性回归,这里以Python的sklearn库为例:
```python
from sklearn.linear_model import LinearRegression
# Step 3: 创建并训练线性回归模型
model = LinearRegression()
model.fit(x.reshape(-1, 1), y_noisy)
# 计算预测值
y_pred = model.predict(x.reshape(-1, 1))
```
最后,我们可以对原始样本数据和预测结果进行可视化,通常用matplotlib库来做:
```python
import matplotlib.pyplot as plt
# Step 4: 可视化原始样本和预测结果
plt.figure(figsize=(10, 6))
plt.scatter(x, y_noisy, label='Original data with noise')
plt.plot(x, y_pred, 'r', label='Predicted values')
plt.title('Linear Regression on Noisy Data')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.show()
```
以上就是完整的步骤,展示了如何通过加噪样本数据执行线性回归,并进行可视化。
阅读全文