在机器学习中,怎么分别计算测试集和训练集的拟合系数、mse?用代码
时间: 2024-09-18 08:05:33 浏览: 82
基于机器学习算法实现对A股股票走势预测系统源码+数据集+运行说明.zip
5星 · 资源好评率100%
在机器学习中,拟合系数(R-squared)通常用于评估回归模型的好坏,而MSE(均方误差)则是衡量模型预测值与真实值之间差异的一个指标。这里我会给出Python中使用`sklearn`库来计算这两个指标的简单示例。
首先,我们需要导入所需的库:
```python
from sklearn.metrics import r2_score, mean_squared_error
from sklearn.model_selection import train_test_split
```
假设我们有一个数据集`df`,其中包含`target`列是我们要预测的目标变量,其他列是特征:
1. **分割数据集为训练集和测试集**
```python
X = df.drop('target', axis=1)
y = df['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
2. **训练模型(例如线性回归)**
```python
# 对于线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
```
3. **计算训练集的拟合系数(R²)**
```python
train_r2 = r2_score(y_train, model.predict(X_train))
print("Training R-squared:", train_r2)
```
4. **计算训练集的MSE**
```python
train_mse = mean_squared_error(y_train, model.predict(X_train))
print("Training MSE:", train_mse)
```
5. **计算测试集的拟合系数和MSE**
```python
test_r2 = r2_score(y_test, model.predict(X_test))
test_mse = mean_squared_error(y_test, model.predict(X_test))
print("Testing R-squared:", test_r2)
print("Testing MSE:", test_mse)
```
这样我们就得到了训练集和测试集的拟合系数以及MSE。训练集的数值可能会比较高,因为模型是在这个数据上训练的;而测试集的结果更能反映模型泛化能力。
阅读全文