sklearn线性回归实例
时间: 2025-05-25 11:12:31 浏览: 19
### 使用 `sklearn` 实现线性回归的示例
以下是基于 `sklearn` 的线性回归实现代码示例。此代码展示了如何加载数据集、训练模型以及评估模型性能。
#### 示例代码
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt
# 加载糖尿病数据集
diabetes = datasets.load_diabetes()
# 为了简化问题,我们只使用其中一个特征
X = diabetes.data[:, np.newaxis, 2]
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, diabetes.target, test_size=0.2, random_state=42)
# 创建线性回归对象
regressor = LinearRegression()
regressor.fit(X_train, y_train) # 训练模型
# 预测测试集的结果
y_pred = regressor.predict(X_test)
# 绘制结果
plt.scatter(X_test, y_test, color='black', label="Actual Data") # 散点表示实际数据
plt.plot(X_test, y_pred, color='blue', linewidth=3, label="Predicted Line") # 蓝色线条表示预测结果
plt.xlabel('Feature Value')
plt.ylabel('Target Value')
plt.title('Linear Regression Example with Diabetes Dataset')
plt.legend()
plt.show()
# 打印模型参数
print(f"Coefficient (Slope): {regressor.coef_[0]}")
print(f"Intercept: {regressor.intercept_}")
```
---
#### 解析
1. **数据准备**:
上述代码使用了 `datasets.load_diabetes()` 提供的数据集[^4]。为了便于可视化,选择了其中的一个特征作为输入变量 \(X\)。
2. **划分数据集**:
利用 `train_test_split` 函数将数据划分为训练集和测试集,比例为80%训练/20%测试[^3]。
3. **创建并训练模型**:
初始化 `LinearRegression` 对象,并调用其 `.fit()` 方法完成模型训练[^2]。
4. **绘图展示**:
结果通过散点图和直线的形式呈现出来,直观地展现了线性回归的效果。
5. **打印模型参数**:
输出斜率(系数)和截距,这些值存储在 `coef_` 和 `intercept_` 属性中。
---
#### 注意事项
- 如果需要处理多维特征,则无需指定单个列索引,直接传入整个矩阵即可。
- 在实际应用中,建议对数据进行标准化或归一化预处理以提高模型效果。
---
阅读全文
相关推荐


















