初学者在从事机器学习或数据科学项目时经常遇到的一些常见错误?在这里,我们列出了这些最常见的错误。在机器学习中,有很多方法可以构建产品或解决方案,每种方法都有不同的假设。很多时候,导航和识别哪些假设是合理的并不容易。任何刚接触机器学习的人都会犯错误,事后看来,这些错误往往会让人感到委屈。本文创建了新手机器学习工程师常犯的一些常见错误的清单。希望您能从这些常见错误中吸取教训,并创造出更可靠的解决方案,带来真正的价值。想当然地使用默认损失函数均方误差在刚开始的时候是相当不错的,可以说是一个惊人的默认值,但是对于现实世界的应用,很少有这种未经设计的损失函数可以给出解决方案。以欺诈检测为例。为了与业务目标保持一致,您真正想要的是根据欺诈造成的美元损失金额按比例惩罚漏报。而使用均方误差可能会给你带来好的结果,但永远不会给你当前最先进的结果。成为机器学习工程师|第3步:选择您的工具查看本文以了解您可以使用的不同ML工具。要点:始终构建与您的解决方案目标非常匹配的自定义损失函数。对所有问题使用一种算法/方法许多人会完成他们的第一个教程,然后立即开始在他们能想象到的每个用例中使用他们学到的相同算法。它很熟悉,他们认为它的工作原理与任何其他算法一样。这是一个错误的假设,可能会导致糟糕的结果。让您的数据为您选择模型。预处理数据后,将其输入许多不同的模型并查看结果。您将清楚了解哪些模型效果最好,哪些效果不佳。成为机器学习工程师|第2步:选择流程查看本文并掌握您的流程。要点:如果您发现自己一遍又一遍地使用相同的算法,则可能意味着您没有获得最佳结果。忽略异常值根据上下文,异常值可能很重要或完全被忽略。以污染预测为例,空气污染可能会出现大峰值,最好查看它们并了解它们发生的原因。在由某种类型的传感器错误引起的异常情况下,忽略它们并将它们从数据中删除是安全的。从模型的角度来看,有些人比其他人对异常值更敏感。在Adaboost的情况下,它非常重视离群值,决策树可能只是将每个离群值视为错误分类。成为机器学习工程师|第2步:选择一个过程并通过最佳实践来避免此错误要点:在开始工作之前,请始终关注您的数据并决定是忽略异常值还是仔细查看它们未正确处理周期性特征时间日、星期几、一年中的月份和风向是周期性特征的示例。许多新的机器学习工程师认为不可能将这些特征转换为可以保留信息的表示,例如23小时和0小时彼此接近且相距不远。以小时为例,处理此问题的最佳方法是计算sin和cos分量,以便将循环特征表示为(x,y)圆的坐标。在这种小时表示中,23小时和0小时在数字上彼此相邻,正如它们应该的那样。很多人都要求提供代码示例:这里(https://gist.github.com/anonymous/7ce6274c630dabd70960c6d7fdd6c580)要点:如果你有周期函数,并且你不转换它们,那么你就开始使用模型垃圾数据.没有归一化的L1/L2正则化L1和L2正则化惩罚大系数,是调整线性或逻辑回归的常用方法,但是,许多机器学习工程师并没有意识到在应用正则化之前对函数进行归一化很重要。假设您有一个线性回归模型,其中事务是一个特征。标准化所有函数并将它们置于平等地位,以便所有函数的标准化都相同。要点:正则化很棒,但如果您没有标准化函数,则可能会很麻烦将线性或逻辑回归中的系数解释为特征重要性线性回归函数通常返回每个系数的p值。很多时候,这些系数会让新手机器学习工程师认为对于线性模型来说,系数值越大,特征越重要。由于变量的大小会改变系数的绝对值,因此这种情况很少见。如果特征共线,则可以将系数从一个特征转移到另一个特征。数据集具有的特征越多,特征共线的可能性就越大,对特征重要性的简单解释就越不可靠。要点:了解哪些特征对结果有很大影响很重要,但不要假设您可以查看系数。他们通常不会讲述整个“故事”。做一些项目并取得好成绩可以为你赢得一百万美元。你努力工作,结果证明你做得很好,但就像在任何行业一样,细节决定成败,即使是天马行空的情节也可能掩盖偏见和错误。此列表并非详尽无遗,而只是让读者思考可能隐藏在解决方案中的所有小问题。为了取得好的结果,重要的是要遵循您的流程并经常仔细检查您是否没有犯一些常见的错误。如果你觉得这篇文章有用,你会从我的机器学习工程师那里得到很多东西|第2步:选择流程文章。它可以帮助您对流程进行故障排除,使您能够更轻松地发现错误并获得更好的结果。
