我们上面已经初步得出模型,并且效果看起来还不错,所以我们现在应该下想办法进一步优化这一个模型了。
我们在调参的时候需要将数据集分为三部分,分别是:训练集、验证集以及测试集。训练集用于模型的训练,然后我们根据验证集的结果去调整出泛化能力较强的模型,最后通过测试集得出模型的泛化能力。如果只把数据分为训练集和测试集,也许你能调出对于测试集最合适的参数,但模型的泛化能力也许并没有在测试集上表现的那么强。
由于鸢尾属植物的数据集并不大,如果将数据分为三部分的话,训练数据就太少了,可能提高不了模型的性能。在此只是简单的介绍sklearn中的调参方法。
model_seletion里面还提供自动调参的函数,以格搜索(GridSearchCV)为例。
from sklearn.model_selection import GridSearchCV
clf = LogisticRegression()
gs = GridSearchCV(clf, parameters)
gs.fit(data, label)
gs.best_params_
通过传入字典,对比使用不同的参数的估计器的效果,得出最优的参数。这里是对逻辑回归的精度进行调整。另外我们还可以使用不同的指标来选择参数,不同的指标在sklearn.metrics中
转自https://zhuanlan.zhihu.com/p/33420189