数据科学和机器学习正变得越来越流行。
进入这个领域的人数,每天都在增长。
这意味着,很多数据科学家在构建第一个机器学习模型时,并没有丰富的经验,所以很容易发生错误。
以下就是机器学习解决方案中一些最常见的初学者错误。
在需要的地方没有使用数据归一化
对初学者来说,把特征放入模型,然后等着它给出预测,这似乎是一件很容易的事。
但是在某些情况下,得到的结果可能会令人失望,因为你遗漏了一个非常重要的步骤。
某些类型的模型需要让数据归一化,包括线性回归、经典神经网络等。这些类型的模型使用特征值乘以训练的权重。如果特征没有被归一化,可能会发生一个特征的可能值范围与另一个特征的可能值范围非常不同的情况。
假设,一个特征的值在[0, 0.001]范围内,另一个特征的值在[100000, 200000]范围内。对于两个特征同等重要的模型,第一个特征的权重将是第二个特征的权重的100'000'000倍。巨大的权重可能会给模型带来严重的问题。例如,存在一些异常值。
此外,估计各种特征的重要性会变得非常困难,因为大权重可能意味着该特征很重要,或者可能仅仅意味着它具有较小的值。
而在归一化后,所有特征都在相同的值范围内,通常是[0, 1]或[-1, 1]。在这种情况下,权重将处于相似的范围内,并且将与每个特征的真正重要性密切对应。
总体而言,在需要的地方使用数据归一化,将产生更好、更准确的预测结果。
认为特征越多越好
有人可能认为加入的特征越多越好,这样模型就会自动选择和使用最好的特征。
在实践中,并不是这样的。在大多数情况下,具有精心设计和选择特征的模型将显著优于具有10倍以上特征的类似模型。
模型的特征越多,过拟合的风险就越大。即使在完全随机的数据中,模型也能够找到一些信号——有时更弱,有时更强。
当然,随机噪声中没有真正的信号。但是,如果我们有足够多的噪声列,那么该模型就有可能根据检测到的错误信号使用其中的一部分。发生这种情况时,模型预测质量会降低,因为它们将部分基于随机噪声。
的确存在各种用于特征选择的技术,它们可以在这种情况下提供帮助。但本文不讨论它们。
记住,最重要的是——你应该能够解释你拥有的每一个特征,明白为什么这个特性会帮助你的模型。
在需要外推法时使用基于树的模型
树模型受到欢迎的最主要原因除了它是实力担当,还有就是因为它很好用。
但是,它并不是百试百灵的。在某些情况下,使用基于树的模型很可能会是一个错误。
树模型没有推断能力。这些模型永远不会给出大于训练数据中看到的最大值的预测值。他们也永远不会输出比训练中的最小值更小的预测。
但在某些任务中,外推能力或许占据主要作用。比如,如果利用该模型预测股票价格,有可能未来的股票价格将比以往任何时候都高。所以在这种情况下,基于树的模型将不再适用,因为它们的预测结果将被限制在接近历史最高价格的水平。
那这个问题又该怎么解决呢?
其实,条条大路通罗马!
一种选择是预测变化或差异,而不是直接预测值。
另一种解决方案是对此类任务使用不同的模型类型,比如能够外推的线性回归或神经网络。
多此一举的归一化
大家一定不陌生数据归一化的重要性。但是不同的任务需要不同的归一化方式,倘若类型按错了,那便会得不偿失!
基于树的模型不需要数据归一化,因为特征原始值不会用作乘数,并且异常值也不会影响它们。
神经网络可能也不需要归一化——例如,如果网络已经包含内部处理归一化的层(例如Keras库的BatchNormalization)。
在某些情况下,线性回归可能也不需要数据归一化。这是指所有特征都在相似的值范围内,并且具有相同的含义。例如,如果模型应用于时间序列数据,并且所有特征都是同一参数的历史值。
在实践中,应用不需要的数据归一化不一定会损害模型。大多数情况下,这些情况下的结果将与跳过的归一化非常相似。但是,进行额外的不必要的数据转换会使解决方案复杂化,并且会增加引入一些错误的风险。
所以,具体是用,还是不用,实践出真知!
数据泄露
数据泄露,要比我们想象得更容易。
请看以下代码段:
实际上,「sum_feature」和「diff_feature」这两个特征都是不正确的。
它们正在「泄漏」信息,因为在拆分为训练/测试集后,具有训练数据的部分将包含测试行中的一些信息。这虽然会得到更好的验证结果,但当应用于实际数据模型时,就会性能暴跌。
正确的做法是首先进行训练/测试拆分。然后才应用特征生成功能。一般来说,分别处理训练集和测试集是一种很好的特征工程模式。
在某些情况下,必须在两者之间传递一些信息——例如,我们可能希望测试集使用相同的StandardScaler ,该StandardScaler用于训练集并在其上进行了训练。但这只是个别案例,所以,我们还是需要具体问题具体分析!
从错误中吸取教训是件好事。但最好从别人的错误中学习——希望本文所提供的错误示例能帮助到你。
以上是机器学习天降福音!数据科学家、Kaggle大师发布「ML避坑宝典」的详细内容。更多信息请关注PHP中文网其他相关文章!

尽管它无法提供训练有素的治疗师的人类联系和直觉,但研究表明,许多人很乐意与相对无面和匿名的AI机器人分享他们的担忧和担忧。 这是否总是好我

人工智能(AI)是一种技术数十年的技术,正在彻底改变食品零售业。 从大规模的效率提高和成本降低到精简的各种业务功能的流程,AI的影响是Undeniabl

让我们来谈谈。 对创新AI突破的分析是我正在进行的AI中正在进行的福布斯列覆盖的一部分,包括识别和解释各种有影响力的AI复杂性(请参阅此处的链接)。此外,对于我的comp

保持专业形象需要偶尔的衣柜更新。 在线购物方便时,它缺乏面对面尝试的确定性。 我的解决方案? AI驱动的个性化。 我设想AI助手策划服装Selecti

谷歌翻译新增语言学习功能 据Android Authority报道,应用专家AssembleDebug发现,最新版本的谷歌翻译应用包含一个新的“练习”模式的测试代码,旨在帮助用户通过个性化活动来提高他们的语言技能。此功能目前对用户不可见,但AssembleDebug能够部分激活它并查看其一些新的用户界面元素。 激活后,该功能会在屏幕底部添加一个新的“毕业帽”图标,标有“Beta”徽章,表明“练习”功能最初将以实验形式发布。 相关的弹出提示显示“练习为你量身定制的活动!”,这意味着谷歌将生成定制的

麻省理工学院的研究人员正在开发Nanda,这是为AI代理设计的开创性的Web协议。 Nanda的缩写是网络代理和分散的AI,通过添加Internet功能,使AI Agen能够构建人类的模型上下文协议(MCP)。

Meta的最新冒险:与Chatgpt竞争的AI应用程序 Facebook,Instagram,WhatsApp和Threads的母公司Meta正在启动新的AI功能应用程序。 这个独立的应用程序Meta AI旨在直接与Openai的Chatgpt竞争。 杠杆

导航AI网络攻击的上升潮流 最近,CISO的杰森·克林顿(Jason Clinton)拟人化,强调了与非人类身份相关的新兴风险 - 作为机器对机器的通信增殖,维护这些“身份”


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Linux新版
SublimeText3 Linux最新版

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