During/After one-hot 编码,是否可以用另一列的值代替二进制标志?
During/After one-hot encoding, is it possible to have another column's value instead of the binary flag?
我想知道是否有任何方法可以在单热编码后将我的分类列转换为来自另一列的值,而不是现有类别之一中的二进制“1”?
我的数据框如下所示:
ID Location Amount Quantity
1 TEXAS 12342 1
2 CALIFORNIA 23423 4
标签和单热编码后,我得到了这个:
ID Location_TEXAS Location_CALIFORNIA Amount Quantity
1 1 0 12342 1
2 0 1 23423 4
是否可以在编码列中使用金额而不是二进制值?
想要的结果:
ID Location_TEXAS Location_CALIFORNIA Amount Quantity
1 12342 0 12342 1
2 0 23423 23423 4
之后,我可以完全删除金额列。
这是我用于标签编码和one-hot编码的代码:
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
如果可行,请告诉我。任何帮助将不胜感激。
这会破坏 one-hot 编码状态变量的目的。 OHE 的想法是,对于每个观察,只有一个编码特征是 "hot"。
此外,这会使您的状态和数量特征线性不可分,这将不允许模型独立于位置权重改变数量权重。如果没有非常具体的理由,我会说这不是一个好主意。
我想知道是否有任何方法可以在单热编码后将我的分类列转换为来自另一列的值,而不是现有类别之一中的二进制“1”?
我的数据框如下所示:
ID Location Amount Quantity
1 TEXAS 12342 1
2 CALIFORNIA 23423 4
标签和单热编码后,我得到了这个:
ID Location_TEXAS Location_CALIFORNIA Amount Quantity
1 1 0 12342 1
2 0 1 23423 4
是否可以在编码列中使用金额而不是二进制值?
想要的结果:
ID Location_TEXAS Location_CALIFORNIA Amount Quantity
1 12342 0 12342 1
2 0 23423 23423 4
之后,我可以完全删除金额列。
这是我用于标签编码和one-hot编码的代码:
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
如果可行,请告诉我。任何帮助将不胜感激。
这会破坏 one-hot 编码状态变量的目的。 OHE 的想法是,对于每个观察,只有一个编码特征是 "hot"。
此外,这会使您的状态和数量特征线性不可分,这将不允许模型独立于位置权重改变数量权重。如果没有非常具体的理由,我会说这不是一个好主意。