【问题标题】:random forest with characters in scikit-learn/pythonscikit-learn/python 中带有字符的随机森林
【发布时间】:2016-05-18 03:14:10
【问题描述】:

我有一个字符列和数字,但我想对字符列进行分类并应用随机森林分类器。我意识到有 OneHotEncoder 但在任何地方都没有示例。那么我如何对字符进行分类,例如将“f”和“m”转换为 (0,1) 等整数的性别列?

【问题讨论】:

    标签: python machine-learning scipy scikit-learn ipython


    【解决方案1】:

    使用LabelEncoder,它接受一个字符串数组并将其转换为一个整数数组。

    例子:

    from sklearn.preprocessing import LabelEncoder
    import pandas as pd
    
    data = pd.DataFrame()
    
    data['age'] = [17,33,47]
    data['gender'] = ['m','f','m']
    
    enc = LabelEncoder()
    
    print(data)
    enc.fit(data['gender'])
    data['gender'] = enc.transform(data['gender'])
    print(data)
    

    输出:

       age gender
    0    17      m
    1    33      f
    2    47      m
       age  gender
    0    17       1
    1    33       0
    2    47       1
    

    【讨论】:

      【解决方案2】:

      或者,您可以使用pandas's get_dummies function,它执行标签编码和一次热编码。

      在:

      import pandas as pd
      s = pd.DataFrame(list('abca'))
      s = pd.get_dummies(s)
      print s
      

      输出:

          a   b   c
      0   1   0   0
      1   0   1   0
      2   0   0   1
      3   1   0   0
      

      【讨论】:

        猜你喜欢
        • 2017-03-01
        • 2017-03-26
        • 2015-03-28
        • 2013-04-26
        • 2016-06-22
        • 2015-09-16
        • 2012-03-10
        • 2017-12-10
        • 2016-05-27
        相关资源
        最近更新 更多