• one-hot编码组件
    • 算法介绍
    • 参数说明
    • 脚本示例
      • 运行脚本
      • 运行结果

    one-hot编码组件

    算法介绍

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

    参数说明

    名称 中文名称 描述 类型 是否必须? 默认值
    dropLast 是否删除最后一个元素 删除最后一个元素是为了保证线性无关性。默认true Boolean true
    ignoreNull 受否忽略null 忽略将不对null 编码 Boolean false
    selectedCols 选择的列名 计算列对应的列名列表 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 = OneHotTrainBatchOp().setSelectedCols(["query"]).setDropLast(False).setIgnoreNull(False)
    16. model = inOp.link(one_hot)
    17. # batch predict
    18. predictor = OneHotPredictBatchOp().setOutputCol("predicted_r").setReservedCols(["weight"])
    19. print(BatchOperator.collectToDataframe(predictor.linkFrom(model, inOp)))
    20. # stream predict
    21. inOp2 = dataframeToOperator(df, schemaStr='query string, weight long', op_type='stream')
    22. predictor = OneHotPredictStreamOp(model).setOutputCol("predicted_r").setReservedCols(["weight"])
    23. predictor.linkFrom(inOp2).print()
    24. 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