ftrl训练

功能介绍

该组件是一个在线学习的组件,支持在线实时训练模型。

参数说明

名称 中文名称 描述 类型 是否必须? 默认值
labelCol 标签列名 输入表中的标签列名 String
vectorCol 向量列名 向量列对应的列名,默认值是null String null
vectorSize 向量长度 向量的长度 Integer
featureCols 特征列名数组 特征列名数组,默认全选 String[] null
withIntercept 是否有常数项 是否有常数项,默认true Boolean true
timeInterval 时间间隔 数据流流动过程中时间的间隔 Integer 1800
l1 L1 正则化系数 L1 正则化系数,默认为0。 Double 0.0
l2 正则化系数 L2 正则化系数,默认为0。 Double 0.0
alpha 希腊字母:阿尔法 经常用来表示算法特殊的参数 Double 0.1
beta 希腊字母:贝塔 经常用来表示算法特殊的参数 Double 1.0

脚本示例

运行脚本

  1. data = np.array([
  2. [2, 1, 1],
  3. [3, 2, 1],
  4. [4, 3, 2],
  5. [2, 4, 1],
  6. [2, 2, 1],
  7. [4, 3, 2],
  8. [1, 2, 1],
  9. [5, 3, 2]])
  10. df = pd.DataFrame({"f0": data[:, 0],
  11. "f1": data[:, 1],
  12. "label": data[:, 2]})
  13. batchData = dataframeToOperator(df, schemaStr='f0 int, f1 int, label int', op_type='batch')
  14. streamData = dataframeToOperator(df, schemaStr='f0 int, f1 int, label int', op_type='stream')
  15. model = LogisticRegressionTrainBatchOp() \
  16. .setFeatureCols(["f0", "f1"]) \
  17. .setLabelCol("label") \
  18. .setMaxIter(5).linkFrom(batchData);
  19. models = FtrlTrainStreamOp(model) \
  20. .setFeatureCols(["f0", "f1"]) \
  21. .setLabelCol("label") \
  22. .setTimeInterval(1) \
  23. .setAlpha(0.1) \
  24. .setBeta(0.1) \
  25. .setL1(0.1) \
  26. .setL2(0.1).setVectorSize(2).setWithIntercept(True) \
  27. .linkFrom(streamData);
  28. FtrlPredictStreamOp(model) \
  29. .setPredictionCol("pred") \
  30. .setReservedCols(["label"]) \
  31. .setPredictionDetailCol("details") \
  32. .linkFrom(models, streamData).print()
  33. StreamOperator.execute()

运行结果

  1. label pred details
  2. 1 1 {"1":"0.9999917437501057","2":"8.2562498943117...
  3. 1 1 {"1":"0.965917838185468","2":"0.03408216181453...
  4. 2 2 {"1":"0.00658782416074899","2":"0.993412175839...
  5. 1 1 {"1":"0.9810760570397847","2":"0.0189239429602...
  6. 1 1 {"1":"0.9998904582473768","2":"1.0954175262323...
  7. 2 2 {"1":"0.00658782416074899","2":"0.993412175839...
  8. 1 1 {"1":"0.9999996598523875","2":"3.4014761252088...
  9. 2 2 {"1":"2.0589409516880153E-5","2":"0.9999794105...