热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SciKitLearn标签编码器导致错误“参数必须是字符串或数字”

我有点困惑-在这里创建ML模型。我正在尝试从“大”数据框(180列)中获

我有点困惑-在这里创建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 :(“参数必须是字符串或数字”,“在索引LockTenor处发生”)

所以我转到LockTenor字段并查看所有不同的值:

df.LockTenor.unique()

这将导致以下结果:array([60.0,45.0,'z',90.0,75.0,30.0],dtype = object)

对我来说似乎是所有字符串和数字。...它是否消除了错误,因为它是浮点数,不一定是INT?


您会收到此错误消息,因为确实有浮点数字符串的组合。看一下这个例子:

# Preliminaries
import pandas as pd
from sklearn.preprocessing import LabelEncoder
# Create DataFrames
# df1 has all floats
d1 = {'LockTenor':[60.0,45.0,15.0,90.0,75.0,30.0]}
df1 = pd.DataFrame(data=d1)
print("DataFrame 1")
print(df1)
# df2 has a string in the mix
d2 = {'LockTenor':[60.0,'z',30.0]}
df2 = pd.DataFrame(data=d2)
print("DataFrame 2")
print(df2)
# Create encoder
le = LabelEncoder()
# Encode first DataFrame 1 (where all values are floats)
df1 = df1.apply(lambda col: le.fit_transform(col),axis=0,result_type='expand')
print("DataFrame 1 encoded")
print(df1)
# Encode first DataFrame 2 (where there is a combination of floats and strings)
df2 = df2.apply(lambda col: le.fit_transform(col),result_type='expand')
print("DataFrame 2 encoded")
print(df2)

如果运行此代码,您将看到df1的编码没有问题,因为它的所有值都是浮点数。无论是谁,您都会报告df2的错误。

一个简单的解决方法是将列强制转换为字符串。您可以在相应的lambda函数中执行此操作:

df2 = df2.apply(lambda col: le.fit_transform(col.astype(str)),result_type='expand')

作为其他建议,我建议您查看一下数据,看看它们是否正确。对我来说,在同一列中混合使用浮点数和字符串有点奇怪。

最后,我想指出sci-kit's LabelEncoder performs a simple encoding of variables,它执行一键编码。如果您愿意,我建议您看看OneHotEncoder

,

试试这个:

df[cat] = le.fit_transform(df[cat].astype(str))

推荐阅读
author-avatar
Happy的紫璐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有