上一篇文章我们讲述了如何实现PAC以及使用sklearn库,并且调用已经实现了的方法来实现特征提取,来实现降维以及删除不必要特征防止正则化的效果。
当然,压缩数据的方法不止这些,比如利用线性的LDA有监督的实现特征提取,它与PAC的区别在于它是有监督需要类标的,所以在效果上来说对于分类算法LDA有着更加优秀的效果。
除了PAC,LDA之外,我们还可以利用核(kernel)技术来实现将我们已知的特征映射到更高维的空间之后再使用标准的PAC将它们映射到一个比初始更低维度的特征空间中。
以上就是对上一篇文章的回顾与总结。如果还没有看过我上一篇文章的小伙伴,当当当当,看我的传送门:
再见灬不见:无监督数据降维技术-主成分分析(PAC)的Python实现zhuanlan.zhihu.com这次我们主要讲的是模型的评估与我们的参数调优。
首先在原来我们常用的方法就是将我们的数据集分成两部分,一部分用来训练我们的模型,一部分用来对我们训练好的模型进行评估,但是如果我们数据集的分割不够客观,或者说不够理想,就有可能出现评分极高或者评分极低的情况,所以我们还需要改进我们的评估方式:
一:holdout方法:
除去长篇大论,其实它就是在原本我们分割成训练集与测试集的基础上,将训练集进一步分成了训练集2.0与验证集,然后利用训练集2.0与验证集不断的进行参数的调优和训练,最终选择好的参数与模型在测试上进行最终评价。
但是这种方法虽有一定的改进,但是还是对我们如何划分数据集敏感,下面我们介绍我们最常用的K折交叉验证
二:K折交叉验证:
简单来说,就是将我们的数据集划分成K份,一份为测试集,剩下的为训练集,重复K次,保证每一份数据都成为过测试集
我们的scikit-learn库中也实现了这些方法,函数名cross_val_scores参数中的cv代表K的值。
上边就是对我们模型评价的介绍
下面我们要聊一聊参数调优的过程
对于我们的一个模型,以逻辑斯蒂回归为例,我们可以调节的参数C,我们称之为超参,实际上C调节的是正则化项的系数的倒数,如果C过大,对于极端系数的惩罚太低,就有可能出现过拟合的情况,C过小,就有可能出现欠拟合的状态,所以我们需要调节C的值,来让我们的模型拥有更好的效果。下面就是我们的两个方法来观察当前系数与模型的效果:
一:学习曲线