用UCI的鲍鱼数据集用梯度下降法进行线性回归拟合并计算均方误差的python代码
时间: 2024-10-08 21:01:27 浏览: 55
python处理UCI鲍鱼数据集
4星 · 用户满意度95%
在Python中,我们可以使用sklearn库来进行线性回归和UCI的数据集处理,包括鲍鱼数据集(Sea扇贝数据)。以下是使用梯度下降法(而非sklearn自带的最小二乘法)进行线性回归并计算均方误差的一个简单示例:
首先,你需要安装必要的库:
```bash
pip install numpy pandas sklearn
```
然后,使用以下代码:
```python
import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# 加载波士顿房价数据集
boston = load_boston()
X = boston.data
y = boston.target
# 将数据分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义学习率和迭代次数
learning_rate = 0.01
epochs = 1000
# 初始化权重和偏置
weights = np.zeros(X_train.shape[1])
bias = 0
# 梯度下降算法
for _ in range(epochs):
y_pred = np.dot(X_train, weights) + bias
errors = y_pred - y_train
gradient_weights = (1 / len(y_train)) * np.dot(X_train.T, errors)
gradient_bias = (1 / len(y_train)) * np.sum(errors)
# 更新权重和偏置
weights -= learning_rate * gradient_weights
bias -= learning_rate * gradient_bias
# 对测试集做预测
y_pred_test = np.dot(X_test, weights) + bias
# 计算均方误差
mse = np.mean((y_test - y_pred_test)**2)
print(f"均方误差(MSE): {mse}")
#
阅读全文