今天好热啊,30多°,也不知道这是什么神仙天气哈哈哈
我们来看看什么叫模型的复杂度
由上面三个模型,你会选择哪个呢,我会选择第二个,为什么呢?
在训练的时候,虽然c模型效果最好,但是太过于复杂,就只是对当前的数据进行过分采样,不考虑区域范围,这样子在预测数据上效果不会很好,a模型太过于简单,也会出现区域差别问题。
那么如何判断一个模型好不好,选择哪一个模型呢?
接下来引入一个概念叫泛化能力
比如模型复杂度很高,训练数据有100%的效果,而预测数据才60%,说明过拟合了,然后泛化能力太差。
另外一个模型,训练数据虽然是85%,但预测数据达到83%,这说明这个模型泛化能力好。
泛化能力主要是模型的复用性如何,可复用性高,效果好,那就好。
模型复杂度跟哪些因素有关呢
- 模型本身的选择(选择简单还是复杂的模型)
- 模型的参数个数 (参数太多也会导致模型变复杂)
- 模型的参数空间选择(空间指的是参数的集合,比如选择怎么样的参数才是最合适的)
- 模型拟合过少的样本
模型复杂度高会导致过拟合,相反会导致欠拟合
那么如何避免过拟合呢?
我们知道复杂度源于
- 模型本身的选择(选择简单还是复杂的模型)
- 模型的参数个数 (参数太多也会导致模型变复杂)
- 模型的参数空间选择(空间指的是参数的集合,比如选择怎么样的参数才是最合适的)
- 模型拟合过少的样本
那么如何去避免呢?
1、模型本身的选择 **
选择更加简单的模型
2、模型的参数个数**
减少参数的个数
3、模型的参数空间选择
进行正则项,约束要优化的参数
4、模型拟合过少的样本
获取更多的样本