数据科学家、Kaggle大师发布「ML避坑宝典」
来源:新智元数据科学和机器学习正变得越来越流行。
进入这个领域的人数,每天都在增长。
这意味着,很多数据科学家在构建第一个机器学习模型时,并没有丰富的经验,所以很容易发生错误。
以下就是机器学习解决方案中一些最常见的初学者错误。
在需要的地方没有使用数据归一化
对初学者来说,把特征放入模型,然后等着它给出预测,这似乎是一件很容易的事。
但是在某些情况下,得到的结果可能会令人失望,因为你遗漏了一个非常重要的步骤。
某些类型的模型需要让数据归一化,包括线性回归、经典神经网络等。这些类型的模型使用特征值乘以训练的权重。如果特征没有被归一化,可能会发生一个特征的可能值范围与另一个特征的可能值范围非常不同的情况。
假设,一个特征的值在[0, 0.001]范围内,另一个特征的值在[100000, 200000]范围内。对于两个特征同等重要的模型,第一个特征的权重将是第二个特征的权重的100'000'000倍。巨大的权重可能会给模型带来严重的问题。例如,存在一些异常值。
此外,估计各种特征的重要性会变得非常困难,因为大权重可能意味着该特征很重要,或者可能仅仅意味着它具有较小的值。
而在归一化后,所有特征都在相同的值范围内,通常是[0, 1]或[-1, 1]。在这种情况下,权重将处于相似的范围内,并且将与每个特征的真正重要性密切对应。
总体而言,在需要的地方使用数据归一化,将产生更好、更准确的预测结果。
认为特征越多越好
有人可能认为加入的特征越多越好,这样模型就会自动选择和使用最好的特征。
在实践中,并不是这样的。在大多数情况下,具有精心设计和选择特征的模型将显著优于具有10倍以上特征的类似模型。
模型的特征越多,过拟合的风险就越大。即使在完全随机的数据中,模型也能够找到一些信号——有时更弱,有时更强。
当然,随机噪声中没有真正的信号。但是,如果我们有足够多的噪声列,那么该模型就有可能根据检测到的错误信号使用其中的一部分。发生这种情况时,模型预测质量会降低,因为它们将部分基于随机噪声。
的确存在各种用于特征选择的技术,它们可以在这种情况下提供帮助。但本文不讨论它们。
记住,最重要的是——你应该能够解释你拥有的每一个特征,明白为什么这个特性会帮助你的模型。
在需要外推法时使用基于树的模型
树模型受到欢迎的最主要原因除了它是实力担当,还有就是因为它很好用。
但是,它并不是百试百灵的。在某些情况下,使用基于树的模型很可能会是一个错误。
树模型没有推断能力。这些模型永远不会给出大于训练数据中看到的最大值的预测值。他们也永远不会输出比训练中的最小值更小的预测。
但在某些任务中,外推能力或许占据主要作用。比如,如果利用该模型预测股票价格,有可能未来的股票价格将比以往任何时候都高。所以在这种情况下,基于树的模型将不再适用,因为它们的预测结果将被限制在接近历史最高价格的水平。
那这个问题又该怎么解决呢?
其实,条条大路通罗马!
一种选择是预测变化或差异,而不是直接预测值。
另一种解决方案是对此类任务使用不同的模型类型,比如能够外推的线性回归或神经网络。
多此一举的归一化
大家一定不陌生数据归一化的重要性。但是不同的任务需要不同的归一化方式,倘若类型按错了,那便会得不偿失!
基于树的模型不需要数据归一化,因为特征原始值不会用作乘数,并且异常值也不会影响它们。
神经网络可能也不需要归一化——例如,如果网络已经包含内部处理归一化的层(例如Keras库的BatchNormalization)。
在某些情况下,线性回归可能也不需要数据归一化。这是指所有特征都在相似的值范围内,并且具有相同的含义。例如,如果模型应用于时间序列数据,并且所有特征都是同一参数的历史值。
在实践中,应用不需要的数据归一化不一定会损害模型。大多数情况下,这些情况下的结果将与跳过的归一化非常相似。但是,进行额外的不必要的数据转换会使解决方案复杂化,并且会增加引入一些错误的风险。
所以,具体是用,还是不用,实践出真知!
数据泄露
数据泄露,要比我们想象得更容易。
请看以下代码段:
实际上,「sum_feature」和「diff_feature」这两个特征都是不正确的。
它们正在「泄漏」信息,因为在拆分为训练/测试集后,具有训练数据的部分将包含测试行中的一些信息。这虽然会得到更好的验证结果,但当应用于实际数据模型时,就会性能暴跌。
正确的做法是首先进行训练/测试拆分。然后才应用特征生成功能。一般来说,分别处理训练集和测试集是一种很好的特征工程模式。
在某些情况下,必须在两者之间传递一些信息——例如,我们可能希望测试集使用相同的StandardScaler ,该StandardScaler用于训练集并在其上进行了训练。但这只是个别案例,所以,我们还是需要具体问题具体分析!
从错误中吸取教训是件好事。但最好从别人的错误中学习——希望本文所提供的错误示例能帮助到你。
参考资料:https://towardsdatascience.com/5-typical-beginner-mistakes-in-machine-learning-3544bd4109b
推荐阅读
香港理工大学IEEE Fellow 李青教授团队招收机器学习全奖博士/研究助理
西电IEEE Fellow团队出品!最新《Transformer视觉表征学习全面综述》如何做好科研?这份《科研阅读、写作与报告》PPT,手把手教你做科研香港理工大学招收大数据/机器学习博士后/博士生(全年招聘)【全奖博士招生】美国普渡大学数字孪生实验室王子然博士团队自动驾驶与VR方向香港中文大学(深圳)吴保元教授招收全奖博士/博后/访问学生
北京大学智能计算与感知实验室招收硕士/博士/科研实习生【全奖博士】香港大学招收计算机视觉方向博士/博后/研究助理一位博士在华为的22年
最新 2022「深度学习视觉注意力 」研究概述,包括50种注意力机制和方法!【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!2021李宏毅老师最新40节机器学习课程!附课件+视频资料
欢迎大家加入DLer-计算机视觉技术交流群!
大家好,群里会第一时间发布计算机视觉方向的前沿论文解读和交流分享,主要方向有:图像分类、Transformer、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。
进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)
??长按识别,邀请您进群!
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。 项目经理在线