mah*_*kya 123 machine-learning data-mining data-analysis scikit-learn
我注意到,当在特定数据集(矩阵)上使用One Hot编码并将其用作学习算法的训练数据时,与使用原始矩阵本身作为训练数据相比,它在预测准确性方面提供了明显更好的结果.这种性能提升如何发生?
Fre*_*Foo 253
许多学习算法要么学习每个特征的单个权重,要么使用样本之间的距离.前者是逻辑回归等线性模型的情况,易于解释.
假设您的数据集只有一个分类特征"国籍",其值为"UK","French"和"US".假设不失一般性,将它们编码为0,1和2.然后在线性分类器中对此特征赋予权重w,这将基于约束w×x + b> 0做出某种决定. ,或等效地w×x <b.
现在的问题是重量w不能编码三向选择.w×x的三个可能值是0,w和2×w.这三个都导致相同的决定(他们都是<b或≥b)或"英国"和"法国"导致相同的决定,或"法国"和"美国"给出相同的决定.模型不可能知道"UK"和"US"应该被赋予相同的标签,"French"则是奇怪的.
通过单热编码,您可以有效地将特征空间炸成三个特征,每个特征都会得到自己的权重,因此决策函数现在为w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b,其中所有x都是布尔值.在这个空间中,这种线性函数可以表达任何可能性的总和/分离(例如"英国或美国",这可能是说英语的人的预测因子).
类似地,任何基于标准距离度量(例如k-最近邻居)的学习者将在没有单热编码的情况下混淆.使用朴素编码和欧几里德距离,法国和美国之间的距离是1.美国和英国之间的距离是2.但是使用单热编码,[1,0,0],[0,1]之间的成对距离,0]和[0,0,1]都等于√2.
对于所有学习算法都不是这样; 决策树和派生模型,如随机森林,如果足够深,可以处理分类变量而无需单热编码.
| 归档时间: |
|
| 查看次数: |
35923 次 |
| 最近记录: |