【进阶】Scikit-Learn:模型评估与选择
发布时间: 2024-06-26 13:08:01 阅读量: 68 订阅数: 105
![【进阶】Scikit-Learn:模型评估与选择](https://scikit-learn.org/0.15/_images/plot_underfitting_overfitting_0011.png)
# 1. 模型评估基础**
模型评估是机器学习中至关重要的步骤,它可以帮助我们了解模型的性能并指导模型选择。模型评估的目标是量化模型在给定数据集上的表现,并确定模型是否满足我们的需求。
模型评估涉及使用各种指标来衡量模型的准确性、鲁棒性和泛化能力。这些指标可以分为两大类:回归模型评估指标和分类模型评估指标。回归模型评估指标用于评估连续目标变量的模型,而分类模型评估指标用于评估离散目标变量的模型。
# 2. 模型评估指标
### 2.1 回归模型评估指标
回归模型用于预测连续值,其评估指标侧重于预测值与真实值之间的差异。常见的回归模型评估指标包括:
#### 2.1.1 均方误差 (MSE)
MSE 是预测值与真实值之间的平方差的平均值。它衡量了预测值与真实值之间的整体偏差。MSE 越小,模型的预测性能越好。
**公式:**
```
MSE = (1/n) * Σ(y_i - y_hat_i)^2
```
其中:
* n:样本数量
* y_i:真实值
* y_hat_i:预测值
#### 2.1.2 平均绝对误差 (MAE)
MAE 是预测值与真实值之间的绝对差的平均值。它衡量了预测值与真实值之间的平均偏差。MAE 越小,模型的预测性能越好。
**公式:**
```
MAE = (1/n) * Σ|y_i - y_hat_i|
```
#### 2.1.3 R² 得分
R² 得分衡量了模型预测值与真实值之间的相关性。它表示模型预测值解释真实值变异的程度。R² 得分介于 0 和 1 之间,1 表示完美拟合,0 表示无相关性。
**公式:**
```
R² = 1 - (Σ(y_i - y_hat_i)^2 / Σ(y_i - y_bar)^2)
```
其中:
* y_bar:真实值的平均值
### 2.2 分类模型评估指标
分类模型用于预测离散值,其评估指标侧重于预测值与真实值之间的匹配程度。常见的分类模型评估指标包括:
#### 2.2.1 准确率
准确率是正确预测的样本数量与总样本数量的比值。它衡量了模型整体的预测准确性。
**公式:**
```
准确率 = (TP + TN) / (TP + TN + FP + FN)
```
其中:
* TP:真阳性(预测为正且真实为正)
* TN:真阴性(预测为负且真实为负)
* FP:假阳性(预测为正但真实为负)
* FN:假阴性(预测为负但真实为正)
#### 2.2.2 精度
精度是真阳性与所有预测为正的样本数量的比值。它衡量了模型预测为正的样本中实际为正的比例。
**公式:**
```
精度 = TP / (TP + FP)
```
#### 2.2.3 召回率
召回率是真阳性与所有真实为正的样本数量的比值。它衡量了模型预测出所有实际为正的样本的比例。
**公式:**
```
召回率 = TP / (TP + FN)
```
# 3. 模型选择技术
### 3.1 交叉验证
交叉验证是一种用于评估机器学习模型性能的技术,它通过将数据集划分为多个子集来实现。每个子集依次用作测试集,而其余子集用作训练集。通过对所有可能的子集组合进行多次训练和评估,可以获得模型性能的更可靠估计。
#### 3.1.1 k 折交叉验证
k 折交叉验证是交叉验证最常用的方法之一。它将数据集随机划分为 k 个大小相等的子集(折)。然后,依次将每个折用作测试集,而其余 k-1 个折用作训练集。这个过程重复 k 次,每个折都被用作测试集一次。最后,k 次迭代的性能指标(例如准确率或 MSE)的平均值被用作模型的性能估计。
#### 3.1.2 留一法交叉验证
留一法交叉验证是另一种交叉验证方法,它将数据集划分为 n 个子集,其中 n 是数据集中的样本数。然后,依次将每个样本用作测试集,而其余 n-1 个样本用作训练集。这个过程重复 n 次,每个样本都被用作测试集一次。与 k 折交叉验证相比,留一法交叉验证的计算成本更高,但它可以提
0
0