线性拟合使用交叉验证的代码
时间: 2024-05-14 16:15:17 浏览: 7
以下是一个使用交叉验证的线性拟合代码示例:
```python
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import numpy as np
# 生成数据
X = np.random.rand(100, 5)
y = np.dot(X, [1, 2, 3, 4, 5]) + np.random.randn(100)
# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 线性拟合模型
lr = LinearRegression()
# 使用交叉验证训练模型
from sklearn.model_selection import cross_val_score
scores = cross_val_score(lr, X_train, y_train, cv=5, scoring='neg_mean_squared_error')
# 输出交叉验证结果
print("Cross validation scores: ", scores)
print("Average MSE: ", np.mean(-scores))
# 使用全体训练数据拟合模型
lr.fit(X_train, y_train)
# 在测试集上评估模型
y_pred = lr.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("MSE on test set: ", mse)
```
在此示例中,我们首先生成一个随机数据集 X 和 y。然后我们将数据集拆分为训练集和测试集。接下来,我们创建一个 LinearRegression 模型,并使用交叉验证训练模型(这里使用了 5 折交叉验证)。最后,我们使用全体训练数据拟合模型,并在测试集上评估模型。