【发布时间】:2020-03-11 02:08:33
【问题描述】:
我有点困惑 - 在这里创建一个 ML 模型。
我正处于尝试从“大型”数据框(180 列)中获取分类特征并对其进行一次性处理的步骤,以便找到特征之间的相关性并选择“最佳”特征.
这是我的代码:
# import labelencoder
from sklearn.preprocessing import LabelEncoder
# instantiate labelencoder object
le = LabelEncoder()
# apply le on categorical feature columns
df = df.apply(lambda col: le.fit_transform(col))
df.head(10)
运行时出现以下错误:
TypeError: ('argument must be a string or number', 'occurred at index LockTenor')
所以我前往 LockTenor 字段并查看所有不同的值:
df.LockTenor.unique()
这会导致以下结果:
array([60.0, 45.0, 'z', 90.0, 75.0, 30.0], dtype=object)
在我看来就像所有的字符串和数字。错误是因为它是浮点数而不一定是 INT 引起的吗?
【问题讨论】:
-
您好。如果将
df.apply(lambda col: le.fit_transform(col))更改为df.apply(lambda col: LabelEncoder().fit_transform(col))会发生什么?我想知道您的编码器是否对随后的fit_transform调用感到困惑,因为它没有被重新初始化。
标签: python machine-learning scikit-learn feature-selection one-hot-encoding