news 2026/4/30 17:50:55

Flink ML LinearRegression 用 Table API 训练线性回归并输出预测值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flink ML LinearRegression 用 Table API 训练线性回归并输出预测值

1. LinearRegression 做什么?

它学习一个线性函数(简化表达):

[y^=w⋅x+b][ \hat{y} = w \cdot x + b ][y^=wx+b]

其中:

  • (x)(x)(x)是特征向量(Vector)
  • (w)(w)(w)是权重向量(模型参数)
  • (b)(b)(b)是偏置
  • (y^)(\hat{y})(y^)是预测值(prediction)

2. 输入列与输出列

输入列(Input Columns)

参数名类型默认值说明
featuresColVector"features"特征向量
labelColInteger(示例实际用 Double)"label"要预测的连续标签
weightColDouble"weight"样本权重(可选)

你贴的示例里labelweight都是 Double,这更符合回归场景。

输出列(Output Columns)

参数名类型默认值说明
predictionColInteger(实际为 Double)"prediction"预测值

3. 参数详解(Parameters)

LinearRegressionModel(模型)常用参数:

Key默认值说明
featuresCol"features"特征列名
predictionCol"prediction"预测列名

LinearRegression(训练器)额外参数:

Key默认值说明
labelCol"label"标签列名
weightColnull权重列名(可选)
maxIter20最大迭代次数
reg0.0正则化系数(L2/L1 混合由 elasticNet 控制)
elasticNet0.0ElasticNet 参数:0=纯L2,1=纯L1
learningRate0.1学习率
globalBatchSize32全局 batch 大小
tol1e-6收敛阈值(迭代停止条件之一)

工程建议(很实用):

  • 特征尺度差异大:先StandardScaler再 LR,收敛更稳
  • 数据量大/噪声大:适当加reg,防过拟合、也更稳定
  • 收敛慢:调大maxIter或调学习率(learningRate)但要谨慎

4. Java 示例逐段解读(fit + transform)

你给的示例是“训练后再对同一份数据做预测”,方便验证效果。

4.1 构造输入表:features + label + weight

DataStream<Row>inputStream=env.fromElements(Row.of(Vectors.dense(2,1),4.0,1.0),Row.of(Vectors.dense(3,2),7.0,1.0),Row.of(Vectors.dense(4,3),10.0,1.0),Row.of(Vectors.dense(2,4),10.0,1.0),Row.of(Vectors.dense(2,2),6.0,1.0),Row.of(Vectors.dense(4,3),10.0,1.0),Row.of(Vectors.dense(1,2),5.0,1.0),Row.of(Vectors.dense(5,3),11.0,1.0));TableinputTable=tEnv.fromDataStream(inputStream).as("features","label","weight");
  • features是二维向量
  • label是回归目标(Double)
  • weight全是 1.0(表示每个样本权重一样)

4.2 创建训练器并指定权重列

LinearRegressionlr=newLinearRegression().setWeightCol("weight");

如果你不需要样本权重,完全可以不设weightCol

4.3 训练模型 + 预测

LinearRegressionModellrModel=lr.fit(inputTable);TableoutputTable=lrModel.transform(inputTable)[0];
  • fit():在 Table 上训练,得到模型
  • transform():输出表会多一个prediction

4.4 读取输出:对比 label 与 prediction

doubleexpectedResult=(Double)row.getField(lr.getLabelCol());doublepredictionResult=(Double)row.getField(lr.getPredictionCol());System.out.printf("... Expected Result: %s \tPrediction Result: %s\n",expectedResult,predictionResult);

5. 实战用法:最常见的两条链路

链路 A:数值特征 → StandardScaler → LinearRegression

如果你的特征量纲差别大(金额、次数、时长混在一起),强烈推荐:

  • VectorAssembler(拼特征)
  • StandardScaler(标准化)
  • LinearRegression(训练)

链路 B:类别特征(StringIndexer + OneHot)+ 数值特征 → VectorAssembler → LinearRegression

当你的输入既有类别又有数值时:

  • StringIndexer:字符串类别 → index
  • OneHotEncoder:index → 稀疏向量
  • VectorAssembler:数值列 + 类别向量 拼成 features
  • LinearRegression:训练回归

6. 小结

Flink ML 的 LinearRegression 使用非常标准化:

  • 输入:features(Vector)+label(Double)+ 可选weight(Double)
  • 训练:lr.fit(table)
  • 预测:model.transform(table)输出prediction
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 5:54:11

Unity游戏翻译革命:XUnity Auto Translator 完整实战指南

Unity游戏翻译革命&#xff1a;XUnity Auto Translator 完整实战指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球游戏市场蓬勃发展的今天&#xff0c;语言障碍成为许多玩家面临的首要问题。XUn…

作者头像 李华
网站建设 2026/4/30 3:21:26

PyTorch镜像中配置邮件报警机制:训练完成通知

PyTorch镜像中配置邮件报警机制&#xff1a;训练完成通知 在深度学习项目开发中&#xff0c;一个再熟悉不过的场景是&#xff1a;晚上提交了一个长达12小时的模型训练任务&#xff0c;第二天早上才想起去检查是否跑完。更糟的是&#xff0c;训练中途崩溃了&#xff0c;而你直到…

作者头像 李华
网站建设 2026/5/1 5:47:00

PyTorch镜像中运行Time Series时序预测模型

PyTorch镜像中运行Time Series时序预测模型 在工业物联网、智能电网和量化交易等场景中&#xff0c;时间序列数据的实时建模与精准预测正变得越来越关键。面对海量高频采集的数据流——比如每分钟更新一次的电力负荷、每秒波动的股票价格或设备传感器的周期性读数——传统统计方…

作者头像 李华
网站建设 2026/5/1 6:56:18

jiyutrainer下载安装困难?PyTorch镜像内置一键启用

jiyutrainer下载安装困难&#xff1f;PyTorch镜像内置一键启用 在深度学习项目开发中&#xff0c;你是否也曾被这样的问题困扰过&#xff1a;明明 nvidia-smi 显示驱动正常&#xff0c;GPU 也在线&#xff0c;可一运行 PyTorch 就提示 torch.cuda.is_available() 返回 False&am…

作者头像 李华
网站建设 2026/5/1 6:50:35

PyTorch镜像中使用tensorboardX记录训练指标

PyTorch镜像中使用tensorboardX记录训练指标 在深度学习项目开发过程中&#xff0c;一个常见的痛点是&#xff1a;明明代码逻辑正确&#xff0c;模型结构也无误&#xff0c;但训练几小时后才发现损失不降、准确率上不去——而此时却没有任何中间过程可供排查。这种“黑盒训练”…

作者头像 李华
网站建设 2026/4/24 12:35:23

2025最新!专科生必看9款AI论文软件测评:开题报告文献综述神器推荐

2025最新&#xff01;专科生必看9款AI论文软件测评&#xff1a;开题报告&文献综述神器推荐 2025年专科生论文写作工具测评&#xff1a;精准推荐&#xff0c;高效提效 随着AI技术的不断进步&#xff0c;越来越多的学术辅助工具走进了高校学生的日常学习中。对于专科生而言&a…

作者头像 李华