对机器学习中的特征应用不同的转换[关闭]

Posted

技术标签:

【中文标题】对机器学习中的特征应用不同的转换[关闭]【英文标题】:Apply different transformations on features in machine learning [closed] 【发布时间】:2021-11-18 02:19:17 【问题描述】:

我有像 Amount(20-100K$)、Percent1(i.e. 0-1)、Percent2(i.e.0-1) 这样的功能。此处金额值介于 20-100000 美元之间,百分比列的小数介于 0-1 之间。这些特征是正偏的,所以我在 Percent1、Percent2 列上使用 powertransformer 对 Amount、Yeo-Johnson 应用了对数转换。

在列上应用不同的转换是否正确,它会影响模型性能还是应该对所有列进行相同的转换?

【问题讨论】:

我投票结束这个问题,因为它与 help center 中定义的编程无关,而是关于 ML 理论和/或方法 - 请参阅 ***.com/tags/machine-learning/info 【参考方案1】:

这是关于了解转型的好处

所以当我们谈论诸如 f(x1,x2) = w1x1 + w2x2

之类的方程时

那么如果 x1 大约是 100,000 的数量

如果 x2 大约是 1.0,比如百分比

同时,功能 1 的更新速度将比功能 2 快 100,000

从数学上讲,当您更新权重时,权重方程将类似于

    w1 = w1 - lr*(x1) w2 = w2 - lr*(x2)

这里的lr代表学习率

那么你是说数量特征比百分比特征好很多

这就是为什么通常将数据转换为相同的分布以不使一个特征比另一个特征更好

【讨论】:

我将在这些列上应用 StandardScaler 以使所有这些功能达到相同的规模。因此所有特征在模型构建中的权重都相同。【参考方案2】:

在我们回答问题之前需要了解一些事情。

答案取决于您使用的型号。在某些模型中,最好不同输入的范围相同。一些模型对此是不可知的。当然,有时人们也可能对为输入分配不同的优先级感兴趣。

回到您的问题,根据模型,应用不同的转换可能绝对没有害处,或者可能存在性能差异。

例如:线性回归模型会受到特征转换的极大影响。然而,有监督的神经网络很可能不会。

你可能想检查这个 *** 问题:https://stats.stackexchange.com/questions/397227/why-feature-transformation-is-needed-in-machine-learning-statistics-doesnt-i

【讨论】:

我正在使用 RandomForest、XGboost、Adaboost 等集成分类器。进行不同的转换会对这些分类器产生影响。

以上是关于对机器学习中的特征应用不同的转换[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在机器学习中赋予文本作为特征和价值? [关闭]

机器学习朴素贝叶斯-01

sklearn学习:特征提取

使用 python 将列文本数据转换为特征以用于机器学习

AutoEncoders在NLP中的应用

机器学习中的数据准备