如何处理 scikit 学习中的标称数据,python?

How to handle nominal data in scikit learn, python?

我是数据挖掘新手。我有一个包含董事姓名的数据集。将它们转换为 Scikit 学习估算器可以毫无问题地使用的东西的正确方法是什么?

根据我在互联网上找到的信息,我认为 sklearn.preprocessing.LabelEncoder 是正确的选择。

是的,我认为 LabelEncoder 是正确的选择。以下示例来自 Scikit-Learn 文档。

le = preprocessing.LabelEncoder()
le.fit(["paris", "paris", "tokyo", "amsterdam"])
list(le.classes_) # ['amsterdam', 'paris', 'tokyo']
le.transform(["tokyo", "tokyo", "paris"]) # array([2, 2, 1]...)
list(le.inverse_transform([2, 2, 1])) # ['tokyo', 'tokyo', 'paris']

取决于您使用的模型类型,make_pipeline(LabelEncoder, OneHotEncoder)pd.get_dummies) 是通常的选择,并且可以很好地与来自 linear_model 或 [=13= 的分类器一起使用]. LabelEncoder 本身会是另一种选择,尽管这不会很好地工作,除非你的标签上有自然顺序(比如教育水平或其他),或者除非你使用非常深的树,它们能够分开个人标签。