【发布时间】:2017-03-10 23:38:54
【问题描述】:
我是数据挖掘的新手。我有一个包含董事姓名的数据集。将它们转换为 Scikit 学习估计器可以毫无问题地使用的东西的正确方法是什么?
根据我在互联网上的发现,我认为 sklearn.preprocessing.LabelEncoder 是正确的选择。
【问题讨论】:
标签: python scikit-learn data-mining categorical-data
我是数据挖掘的新手。我有一个包含董事姓名的数据集。将它们转换为 Scikit 学习估计器可以毫无问题地使用的东西的正确方法是什么?
根据我在互联网上的发现,我认为 sklearn.preprocessing.LabelEncoder 是正确的选择。
【问题讨论】:
标签: python scikit-learn data-mining categorical-data
是的,我认为 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 或 tree 的分类器配合使用。 LabelEncoder 本身是另一种选择,尽管除非您的标签上有自然排序(如教育程度或其他东西),或者除非您使用非常深的树,否则这不会很好地工作,可以分离单个标签.
【讨论】: