代码之家  ›  专栏  ›  技术社区  ›  Tom

如何转换分类特征[重复]

  •  -1
  • Tom  · 技术社区  · 8 年前

    我对机器学习有点陌生,我正在研究一个分类/回归问题。

    有两种可选方法可以转换此功能,

    1.为每个类别提供一个数字索引,如下所示:

    date           weather        indexedWeather
    2017-11-01      Sunny              0
    2017-11-02      Cloudy             1
    2017-11-03      Snow               3
    2017-11-04      Cloudy             1
    2017-11-05      Windy              2
    2017-11-06      Sunny              0
    2017-11-07      Snow               3
    2017-11-08      Cloudy             1
    

    Spark MLLib具有 VectorIndexer Transformer来完成此任务

    2.将该特征转换为二进制向量:

    date           weather         indexedWeather
    2017-11-01      Sunny              1 0 0 0
    2017-11-02      Cloudy             0 1 0 0
    2017-11-03      Snow               0 0 1 0
    2017-11-04      Cloudy             0 1 0 0
    2017-11-05      Windy              0 0 0 1
    2017-11-06      Sunny              1 0 0 0
    2017-11-07      Snow               0 0 1 0
    2017-11-08      Cloudy             0 1 0 0
    

    Spark MLLib不为此类任务提供转换器。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Shaido MadHadders    8 年前

    对于第二种方法,实际上Spark中有一个变压器为您实现了这一点: OneHotEncoder . 在这种情况下,它应该与 StringIndexer 看见 here 用于文档。

    如果您希望算法考虑这一点,那么应该使用一个热编码器。