理所当然地使用默认损失函数刚开始的时候,均方误差作为损失函数是一个不错的默认选择。但是当涉及到处理现实世界的问题时,这种未经设计的损失函数很少能给出最优解。以欺诈检测为例。为了与您的实际业务目标保持一致,需要根据欺诈损失的美元金额对漏报进行处罚。使用均方误差会给你一个不错的结果,但不是当前最好的结果。要点:每次自定义您的损失函数,使其与您的目标紧密匹配。对所有问题使用一种算法/方法许多人在完成入门教程后开始对所有情况使用相同的算法。这个很常见,他们觉得这个算法的效果和其他算法一样。这种假设是很不好的,最终会导致不好的结果。解决方案是让数据为您选择模型。预处理数据后,将其提供给多个不同的模型并查看结果。您将了解哪些模型效果最好,哪些模型效果不佳。要点:如果您继续使用相同的算法,则可能意味着您的结果不是最好的。忽略异常值异常值有时很重要,有时可以忽略不计,这取决于具体情况。在收入预测的情况下,有时观察收入的突然和大幅波动并理解原因是有帮助的。有时离群值是由某种错误引起的,然后可以安全地忽略它们并将其从数据中删除。从模型的角度来看,一些模型对异常值更敏感。以Adaboost为例,它会把离群值当作重要的例子并给予很大的权重,而决策树可能只是简单地将离群值当作错误分类。要点:每次开始工作之前,请仔细查看您的数据以决定是否应忽略异常值,如果您不能决定,请仔细查看。周期性特征处理不当,一天24小时,一周7天,一年12个月,风向都是周期性特征。许多新手机器学习工程师并不知道将这些特征转换为表示可以保留信息,比如23点钟和0点钟非常接近。以小时为例,最好的处理方式是计算它的sin和cos,这样就可以将周期性特征表示为一个圆的(x,y)坐标。以这种方式表示时间时,23点和0点只是数字上相邻的两个数字,仅此而已。要点:如果您在研究中遇到周期性特征,但没有将它们转换为表示,那么您就是在向模型中添加垃圾数据。非标准化L1/L2正则化L1和L2正则化惩罚大系数,是正则化线性或逻辑回归的常用方法。然而,许多机器学习工程师并没有意识到在使用正则化之前对特征进行归一化的重要性。假设你有一个线性回归模型,其中一个特征是“交易金额”。如果交易金额是美元,那么它的系数应该是美分系数的100倍。这会引入偏差,使模型惩罚实际上更小的特征。为了避免这个问题,需要对特征进行归一化,以便对所有特征进行正则化。要点:正则化很棒,但如果不对特征进行正则化,可能会让人头疼。线性回归或逻辑回归的系数的绝对值作为判断特征重要性的依据。许多现成的线性回归器返回每个系数的p值。一些新手机器学习工程师认为,对于线性模型,系数的值越大,特征越重要。这是不准确的,因为变量的大小会改变系数的绝对值。如果特征共线,则可以将系数从一个特征转换为另一个特征。数据集具有的特征越多,特征共线的可能性就越大,这种对特征重要性的简单解释就越不可信。要点:重要的是要知道哪些特征对结果的影响最大,但仅凭系数无法判断。做一些项目并取得好成绩就像赢得一百万美元一样!你努力工作,研究表明你做得很好,但在任何业务中,魔鬼总是在细节中,复杂的图表偏差和错误也是如此。本文中列出的错误并非详尽无遗,而是旨在激发读者思考可能隐藏在您的解决方案中的细微问题。为了获得好的结果,重要的是完成整个过程并仔细检查以确保您不会犯常见的错误。
