one-hot编码

算法介绍

one-hot编码,也称独热编码,对于每一个特征,如果它有m个可能值,那么经过 独热编码后,就变成了m个二元特征。并且,这些特征互斥,每次只有一个激活。 因此,数据会变成稀疏的,输出结果也是kv的稀疏结构。

参数说明

名称 中文名称 描述 类型 是否必须? 默认值
dropLast 是否删除最后一个元素 删除最后一个元素是为了保证线性无关性。默认true Boolean true
ignoreNull 受否忽略null 忽略将不对null 编码 Boolean false
selectedCols 选择的列名 计算列对应的列名列表 String[]
reservedCols 算法保留列名 算法保留列 String[] null
outputCol 输出结果列列名 输出结果列列名,必选 String

脚本示例

运行脚本

  1. data = np.array([
  2. ["assisbragasm", 1],
  3. ["assiseduc", 1],
  4. ["assist", 1],
  5. ["assiseduc", 1],
  6. ["assistebrasil", 1],
  7. ["assiseduc", 1],
  8. ["assistebrasil", 1],
  9. ["assistencialgsamsung", 1]
  10. ])
  11. # load data
  12. df = pd.DataFrame({"query": data[:, 0], "weight": data[:, 1]})
  13. inOp = dataframeToOperator(df, schemaStr='query string, weight long', op_type='batch')
  14. # one hot train
  15. one_hot = OneHotEncoder()\
  16. .setSelectedCols(["query"])\
  17. .setDropLast(False)\
  18. .setIgnoreNull(False)\
  19. .setOutputCol("predicted_r")\
  20. .setReservedCols(["weight"])
  21. model = one_hot.fit(inOp)
  22. model.transform(inOp).print()
  23. # stream predict
  24. inOp2 = dataframeToOperator(df, schemaStr='query string, weight long', op_type='stream')
  25. model.transform(inOp2).print()
  26. StreamOperator.execute()

运行结果

  1. weight predicted_r
  2. 0 1 $6$4:1.0
  3. 1 1 $6$3:1.0
  4. 2 1 $6$2:1.0
  5. 3 1 $6$3:1.0
  6. 4 1 $6$1:1.0
  7. 5 1 $6$3:1.0
  8. 6 1 $6$1:1.0
  9. 7 1 $6$0:1.0