【问题标题】:How to handle nominal data in scikit learn, python?如何在 scikit learn、python 中处理名义数据?
【发布时间】:2017-03-10 23:38:54
【问题描述】:

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

根据我在互联网上的发现,我认为 sklearn.preprocessing.LabelEncoder 是正确的选择。

【问题讨论】:

    标签: python scikit-learn data-mining categorical-data


    【解决方案1】:

    是的,我认为 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']
    

    【讨论】:

      【解决方案2】:

      取决于您使用的模型类型,make_pipeline(LabelEncoder, OneHotEncoder)pd.get_dummies) 是通常的选择,并且可以很好地与来自 linear_modeltree 的分类器配合使用。 LabelEncoder 本身是另一种选择,尽管除非您的标签上有自然排序(如教育程度或其他东西),或者除非您使用非常深的树,否则这不会很好地工作,可以分离单个标签.

      【讨论】:

      • 我要将“董事姓名”转换为整数,因此名称没有顺序(是吗?),那么我应该使用 OneHotEncoder?
      • 是的,没错,我已经更详细地编辑了我的答案
      猜你喜欢
      • 2015-07-16
      • 2018-07-07
      • 2012-10-15
      • 2020-03-26
      • 2014-03-31
      • 2012-07-26
      • 2012-07-11
      • 2013-10-02
      • 1970-01-01
      相关资源
      最近更新 更多