【问题标题】:Spark - StringIndexer Vs OneHotEncoderEstimatorSpark - StringIndexer 与 OneHotEncoderEstimator
【发布时间】:2021-02-02 13:32:34
【问题描述】:

我正在学习 Spark,我在其中一个教程中有以下代码。我知道数据帧是下面代码中的一种热编码,但我不明白为什么要使用 StringIndexer? StringIndexer 是否应该与 OneHotEncoderEstimator 一起使用? val si = new StringIndexer() .setHandleInvalid("保持") .setInputCol(ProcuctTypeCol) .setOutputCol(ProcuctTypeSIOutCol)

val ohe = new OneHotEncoderEstimator()
      .setHandleInvalid("keep")
      .setInputCols(Array(si.getOutputCol))
      .setOutputCols(Array(ProductTypeOHEOutCol))

val pipeline = new Pipeline()
  .setStages(Array(si, ohe))

谢谢

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    SI 将字符串值转换为整数,OHE 在 ohe 编码中生成整数,如果你的列是 int 像 1,2,3 你可以直接应用 OHE。但是,如果您在字符串中的标签如 A,B,C 您必须先使用 SI 然后链接 OHE

    【讨论】:

      猜你喜欢
      • 2021-08-31
      • 2016-07-06
      • 1970-01-01
      • 2019-06-27
      • 2016-04-13
      • 2018-06-16
      • 2016-08-03
      • 1970-01-01
      相关资源
      最近更新 更多