15年软件架构师经验总结:在ML领域,初学者踩过的五个坑
数据科学和机器学习正变得越来越流行,这个领域的人数每天都在增长。这意味着有很多数据科学家在构建他们的第一个机器学习模型时没有丰富的经验,而这也是错误可能会发生的地方。
近日,软件架构师、数据科学家、Kaggle 大师 Agnis Liukis 撰写了一篇文章,他在文中谈了谈在机器学习中最常见的一些初学者错误的解决方案,以确保初学者了解并避免它们。
Agnis Liukis 拥有超过 15 年的软件架构和开发经验,他熟练掌握 Java、JavaScript、Spring Boot、React.JS 和 Python 等语言。此外,Liukis 还对数据科学和机器学习感兴趣,他多次参加 Kaggle 比赛并取得好成绩,已达到 Kaggle 比赛大师级别。
以下为文章内容:
在机器学习领域,这 5 个坑,你踩过吗?
1、在需要的地方没有使用数据归一化(data normalization)
对数据进行归一化操作,然后获取特征,并将其输入到模型中,让模型做出预测,这种方法是很容易的。但在某些情况下,这种简单方法的结果可能会让人失望,因为它缺少一个非常重要的部分。
一些类型的模型需要数据归一化,如线性回归、经典神经网络等。这类模型使用特征值去乘训练值的权重。在非归一化特征的情况下,一个特征值的可能范围可能不同于另一个特征值的可能范围。
假设一个特征的值在 [0,0.001] 范围内,另一个特征的值在 [100000,200000] 范围内。对于使两个特征同等重要的模型,第一个特征的权重将比第二个特征的权重大 1 亿倍。巨大的权重可能会给模型带来严重问题,比如存在一些异常值的时候。此外,估计各种特征的重要性变得困难,因为权重大可能意味着特征很重要,但也可能只是意味着其特征值很小。
归一化后,所有特征的值都在相同的范围内,通常为 [0,1] 或 [-1,1]。在这种情况下,权重将在相似的范围内,并与每个特征的实际重要性密切对应。
总的来说,在需要的地方使用数据归一化将产生更好、更准确的预测。
2、认为特征越多越好
有人可能会认为加入所有特征是一个好主意,认为模型会自动选择并使用最好的特征。实际上,这种想法很难成真。
模型的特征越多,过拟合的风险越大。即使在完全随机的数据中,模型也能够找到一些特征(信号),尽管有时较弱,有时较强。当然,随机噪声中没有真实信号。但如果我们有足够多的噪声列,则该模型有可能根据检测到的故障信号使用其中的一部分。当这种情况发生时,模型预测质量将会降低,因为它们一定程度上基于随机噪声。
现在有许多技术帮助我们进行特征选择。但你要记住,你需要解释你拥有的每一个特征,以及为什么这个特征会帮助你的模型。
3. 在需要外推的情况下,使用基于树的模型
基于树的模型易于使用,功能强大,这也是其受欢迎的原因。然而,在某些情况下,使用基于树的模型可能是错误的。
基于树的模型无法外推,这些模型的预测值永远不会大于训练数据中的最大值,而且在训练中也永远不会输出比最小值更小的预测值。
在某些任务中,外推能力可能非常重要。例如,如果该模型预测股票价格,那么未来股票价格可能会比以往任何时候都高。在这种情况下,基于树的模型将无法直接使用,因为它们的预测几乎会超过最高历史价格。
这个问题有多种解决方案,一种解决方案是预测变化或差异,而不是直接预测价值。另一种解决方案是为此类任务使用不同类型的模型。线性回归或神经网络就可以进行外推。
4、在不需要的地方使用数据归一化
之前文章谈到了数据归一化的必要性,但情况并非总是如此,基于树的模型不需要数据归一化。神经网络可能也不需要明确的归一化,因为有些网络内部已经包含归一化层,例如 Keras 库的 BatchNormalization 操作。
在某些情况下,即使是线性回归也可能不需要数据归一化,这是指所有特征都已处于类似的值范围,并且具有相同的含义。例如,如果模型适用于时间序列数据,并且所有特征都是同一参数的历史值。
5. 在训练集和验证集 / 测试集之间泄漏信息
造成数据泄漏比人们想象的要容易,考虑以下代码段:
数据泄漏的示例特性
实际上,这两种特征(sum_feature 和 diff_feature)都不正确。它们正在泄漏信息,因为在拆分到训练集 / 测试集后,具有训练数据的部分将包含来自测试的一些信息。这将导致更高的验证分数,但当应用于实际的数据模型时,性能会更差。
正确的方法是首先将训练集 / 测试集分开,然后才应用特征生成功能。通常,分别处理训练集和测试集是一种很好的特征工程模式。
在某些情况下,可能需要在两者之间传递一些信息 —— 例如,我们可能希望在测试集和训练集上使用相同的 StandardScaler。
总而言之,从错误中吸取教训是件好事,希望上述所提供的错误示例能帮助到你。
以上是15年软件架构师经验总结:在ML领域,初学者踩过的五个坑的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在机器学习和数据科学领域,模型的可解释性一直是研究者和实践者关注的焦点。随着深度学习和集成方法等复杂模型的广泛应用,理解模型的决策过程变得尤为重要。可解释人工智能(ExplainableAI|XAI)通过提高模型的透明度,帮助建立对机器学习模型的信任和信心。提高模型的透明度可以通过多种复杂模型的广泛应用等方法来实现,以及用于解释模型的决策过程。这些方法包括特征重要性分析、模型预测区间估计、局部可解释性算法等。特征重要性分析可以通过评估模型对输入特征的影响程度来解释模型的决策过程。模型预测区间估计

本文将介绍如何通过学习曲线来有效识别机器学习模型中的过拟合和欠拟合。欠拟合和过拟合1、过拟合如果一个模型对数据进行了过度训练,以至于它从中学习了噪声,那么这个模型就被称为过拟合。过拟合模型非常完美地学习了每一个例子,所以它会错误地分类一个看不见的/新的例子。对于一个过拟合的模型,我们会得到一个完美/接近完美的训练集分数和一个糟糕的验证集/测试分数。略有修改:"过拟合的原因:用一个复杂的模型来解决一个简单的问题,从数据中提取噪声。因为小数据集作为训练集可能无法代表所有数据的正确表示。"2、欠拟合如

在iPhone上面临滞后,缓慢的移动数据连接?通常,手机上蜂窝互联网的强度取决于几个因素,例如区域、蜂窝网络类型、漫游类型等。您可以采取一些措施来获得更快、更可靠的蜂窝互联网连接。修复1–强制重启iPhone有时,强制重启设备只会重置许多内容,包括蜂窝网络连接。步骤1–只需按一次音量调高键并松开即可。接下来,按降低音量键并再次释放它。步骤2–该过程的下一部分是按住右侧的按钮。让iPhone完成重启。启用蜂窝数据并检查网络速度。再次检查修复2–更改数据模式虽然5G提供了更好的网络速度,但在信号较弱

特斯拉机器人Optimus最新视频出炉,已经可以在厂子里打工了。正常速度下,它分拣电池(特斯拉的4680电池)是这样的:官方还放出了20倍速下的样子——在小小的“工位”上,拣啊拣啊拣:这次放出的视频亮点之一在于Optimus在厂子里完成这项工作,是完全自主的,全程没有人为的干预。并且在Optimus的视角之下,它还可以把放歪了的电池重新捡起来放置,主打一个自动纠错:对于Optimus的手,英伟达科学家JimFan给出了高度的评价:Optimus的手是全球五指机器人里最灵巧的之一。它的手不仅有触觉

哭死啊,全球狂炼大模型,一互联网的数据不够用,根本不够用。训练模型搞得跟《饥饿游戏》似的,全球AI研究者,都在苦恼怎么才能喂饱这群数据大胃王。尤其在多模态任务中,这一问题尤为突出。一筹莫展之际,来自人大系的初创团队,用自家的新模型,率先在国内把“模型生成数据自己喂自己”变成了现实。而且还是理解侧和生成侧双管齐下,两侧都能生成高质量、多模态的新数据,对模型本身进行数据反哺。模型是啥?中关村论坛上刚刚露面的多模态大模型Awaker1.0。团队是谁?智子引擎。由人大高瓴人工智能学院博士生高一钊创立,高

C++中机器学习算法面临的常见挑战包括内存管理、多线程、性能优化和可维护性。解决方案包括使用智能指针、现代线程库、SIMD指令和第三方库,并遵循代码风格指南和使用自动化工具。实践案例展示了如何利用Eigen库实现线性回归算法,有效地管理内存和使用高性能矩阵操作。

机器学习是人工智能的重要分支,它赋予计算机从数据中学习的能力,并能够在无需明确编程的情况下改进自身能力。机器学习在各个领域都有着广泛的应用,从图像识别和自然语言处理到推荐系统和欺诈检测,它正在改变我们的生活方式。机器学习领域存在着多种不同的方法和理论,其中最具影响力的五种方法被称为“机器学习五大派”。这五大派分别为符号派、联结派、进化派、贝叶斯派和类推学派。1.符号学派符号学(Symbolism),又称为符号主义,强调利用符号进行逻辑推理和表达知识。该学派认为学习是一种逆向演绎的过程,通过已有的

最近,军事圈被这个消息刷屏了:美军的战斗机,已经能由AI完成全自动空战了。是的,就在最近,美军的AI战斗机首次公开,揭开了神秘面纱。这架战斗机的全名是可变稳定性飞行模拟器测试飞机(VISTA),由美空军部长亲自搭乘,模拟了一对一的空战。5月2日,美国空军部长FrankKendall在Edwards空军基地驾驶X-62AVISTA升空注意,在一小时的飞行中,所有飞行动作都由AI自主完成!Kendall表示——在过去的几十年中,我们一直在思考自主空对空作战的无限潜力,但它始终显得遥不可及。然而如今,
