【Kaggle_ML学习】5.Underfitting-and-overfitting
文章目录
在这篇文章最后,你将会了解到 Underfitting和 Overfitting两个概念,并且能够运用这些idea来使你的模型更加准确
1. Experimenting With Different Models
根据上一篇文章所学习的内容,你现在有了测量模型准确率的可靠方法,接着你可以试着建立其他的models来看看哪个可以帮你做最准确的预测。
你可以在scikit-learn的文档中找到许多models,我们前面几章所用到的DecisionTreeRegressor就是一种,并且tree model也有很多种类,其中其最重要的一点就是选择tree的深度(depth)。
回想我们第一篇文章提到了decision tree
,在实际运用中,我们也常会遇到一些10次split的tree,当这个tree变得越深(越多次split/分叉)时,我们的整个数据集(dataset)也会被慢慢分成一些较少的数据子集(fewer house in this case)在各个leaf node
(没有子节点的node)中。
如果一个tree只有一次split,那么dataset被分成了2个groups,也就意味着每个leaf中都会有比先前更少的house,如果每个group被再一次split,将会得到4个groups,以此类推。
最后当我们split 10 次后,就会得到2^10(1024)个leaf nodes,拥有非常少的house的leaf也将会作出非常接近实际值的预测,但是它却可能对新的data作出非常不可靠的预测(因为每个预测都只建立在较少的house上了)
这个现象就称为Overfitting(指model于training data几乎完美契合,却与validation data和其他new data契合点的很差)
另一