以下是我读一些关于机器学习注意的问题的相关论文的自己的理解。
首先是几条总的原则:
1,.越简单越好,是建立在模型同等解释力度的基础上的。
2.数据泄露的问题,评估的时候不能用测试数据去优化模型,或则说一般而言,不能即做测试有做训练(但是有那种预测
完后回馈改进的模型存在)
3.抽样偏差,意思就是务必满足独立同分布,训练集和真实数据集应满足独立同分布,比如你对美国人民做民意调查,你不能只调查富人。
然后对于一个具体的机器学习任务而言,当我们数据比较少的时候,没得说,合理的方法是一个一个试各种模型,对它们的效果进行比较后再选取最佳模型,但是如果数据量比较大,显然就可能遇到时间上的瓶颈。而这就需要我们根据一些先验知识主观的选择模型算法,这个时候,我们应该注意什么呢?
1.正则项并不单就是控制模型复杂度的一个惩罚,它蕴含的意义是我们对模型的一个期望,你是希望它复杂度低呢,还是希望求出来的模型参数具有稀疏解呢。所以我们必须结合当前的学习任务去选择合适的正则项。而不是看到一个算法很顺眼就拿来用就ok。
2.注意数据质量的问题,如果数据质量差,存在大量异常噪声数据,我们就应该选择一些鲁棒性健壮性的算法。
3.当数据量相较数据维度比较小的时候,不要选择模型复杂度大的算法(复杂指的是算法假设的模型空间大),因为复杂度越大,所需要的数据会越大,所以有很大概率学习不到合适的模型。
4.注意全局归一化:比如说线性回归,每维特征的数值区间大小范围各不同,因此使得实际上在目标函数中不同的特征实际的贡献度不同,数值范围绝对值越大的特征,对结果的影响越大,每个vector拆开来看就相当于这一维的特征自带了一个权重大的hyper parameter。对每维特征各自归一化,相当于平衡了各自的权重,使得同个feature space上每个feature对目标函数和结果的影响度是相同的。
5.multi-collinear,不晓得肿么翻译,比如说我们做线性回归用两个变量X1,X2,真实的模型是Y = X1+X2,然后如果X1,X2是multi-collinear的话,Y = 2X1 , Y = 99X1 - 97X2和Y = X1+X2是相同模型。当然我感觉这个很少见吧,但又感觉如果你选择特征的时候找到那种效果比较重复的特征,比如说你去用面积大小,共几间房去预测房价,但其实一般而言面积越大,房间越多,所以这两个特征可能在一定程度上就multi-collinear。而由这引发的问题就是这么多模型都合适选哪一个,并且我们常规理解的线性模型中w越大的对应特征越重要就不成立啦。