# 模型评估\_模型评估方法

![异世界.png](/files/nw6rbg3z9dn5dtlrsTKh)

\[TOC]

## 模型评估方法

## Holdout检验

> `Holdout检验`是最简单也是最直接的验证方法，它将原始的样本集合随机划分成训练集和验证集两部分。
>
> 比方说，对于一个点击率预测模 型，我们把样本按照70%\~30%的比例分成两部分，70%的样本用于模型训练；30%的样本用于模型验证，包括绘制$$ROC$$曲线、计算精确率和召回率等指标来评估模型性能。
>
> Holdout 检验的`缺点`很明显，即在验证集上计算出来的最后评估指标与原始分组有很大关系。
>
> 为了消除随机性，研究者们引入了“交叉检验”的思想。

## 交叉验证

> `k-fold交叉验证`:
>
> 1. 首先将全部样本划分成k个大小相等的样本子集；
> 2. 依次遍历这k个子集，每次把当前子集作为验证集，其余所有子集作为训练集，进行模型的训练和评估；
> 3. 最后把k次评估指标的平均值作为最 终的评估指标。在实际实验中，k经常取10。
>
> `留一验证`: 每次留下1个样本作为验证集，其余所有样本作为测试集。
>
> 样本总数为$$n$$，依次对$$n$$个样本进行遍历，进行$$n$$次验证，再将评估指标求平均值得到最终的评估指标。
>
> 在样本总数较多的情况下，`留一验证法的时间开销极大`。
>
> 事实上，留一验证是`留p验证`的特例。留$$p$$验证是每次留下$$p$$个样本作为验证集，而从$$n$$个元素中选择$$p$$个元素有$$C$$种可能，因此它的时间开销更是远远高于留一验证，故而很少在实际工程中被应用。

## 自助法

> 不管是Holdout检验还是交叉检验，都是基于划分训练集和测试集的方法进行模型评估的。
>
> 然而，当样本规模比较小时，将样本集进行划分会让训练集进一步减小，这可能会影响模型训练效果。
>
> 有没有能维诗训练集样本规模的验证方法呢？自助法可以比较好地解决这个问题。 `自助法`是基于自助采样法的检验方法。
>
> 对于总数为$$n$$的样本集合， 进行$$n$$次有放回的随机抽样，得到大小为$$n$$的训练集。
>
> $$n$$次采样过程中， 有的样本会被重复采样，有的样本没有被抽出过，将这些没有被抽出的样本作为验证集，进行模型验证，这就是自助法的验证过程。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://narutohyc.gitbook.io/ml/mo-xing-ping-gu/mo-xing-ping-gu-mo-xing-ping-gu-fang-fa.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
