news 2026/6/9 22:03:23

Flink ML MinMaxScaler 把特征缩放到统一区间 [min, max]

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flink ML MinMaxScaler 把特征缩放到统一区间 [min, max]

1. MinMaxScaler 做什么?

对每个特征维度 (x) 做缩放:

[x′=x−xminxmax−xmin⋅(max−min)+min][ x' = \frac{x - x_{min}}{x_{max} - x_{min}} \cdot (max - min) + min ][x=xmaxxminxxmin(maxmin)+min]

其中(xmin,xmax)(x_{min}, x_{max})(xmin,xmax)是从训练数据中统计得到的“该维度的最小值/最大值”。

2. 输入列与输出列

输入列(Input Columns)

参数名类型默认值说明
inputColVector"input"待缩放的特征向量

输出列(Output Columns)

参数名类型默认值说明
outputColVector"output"缩放后的特征向量

3. 参数(Parameters)

Key默认值类型说明
inputCol"input"String输入列名
outputCol"output"String输出列名
min0.0Double输出区间下界
max1.0Double输出区间上界

你可以把特征缩放到:

  • [0, 1](默认)
  • [-1, 1](有时更适合某些模型)
  • 任意你需要的区间

4. Java 示例代码解读(训练 + 预测)

你贴的例子非常典型:先用训练集 fit 出缩放参数(每个维度的 min/max),再对预测集 transform。

4.1 训练数据(用于统计每一维的 min/max)

DataStream<Row>trainStream=env.fromElements(Row.of(Vectors.dense(0.0,3.0)),Row.of(Vectors.dense(2.1,0.0)),Row.of(Vectors.dense(4.1,5.1)),Row.of(Vectors.dense(6.1,8.1)),Row.of(Vectors.dense(200,400)));TabletrainTable=tEnv.fromDataStream(trainStream).as("input");

这组训练数据明显包含极端值(200, 400),它会把两维的 max 拉得很大(这点在实战里要特别注意,后面会讲)。

4.2 预测数据(要做缩放)

DataStream<Row>predictStream=env.fromElements(Row.of(Vectors.dense(150.0,90.0)),Row.of(Vectors.dense(50.0,40.0)),Row.of(Vectors.dense(100.0,50.0)));TablepredictTable=tEnv.fromDataStream(predictStream).as("input");

4.3 训练 MinMaxScaler 并 transform

MinMaxScalerminMaxScaler=newMinMaxScaler();MinMaxScalerModelminMaxScalerModel=minMaxScaler.fit(trainTable);TableoutputTable=minMaxScalerModel.transform(predictTable)[0];

4.4 打印输入与输出

DenseVectorinputValue=(DenseVector)row.getField(minMaxScaler.getInputCol());DenseVectoroutputValue=(DenseVector)row.getField(minMaxScaler.getOutputCol());System.out.printf("Input Value: %-15s\tOutput Value: %s\n",inputValue,outputValue);

输出表会包含:

  • 原始列:input
  • 新增列:output(缩放后的向量)

5. 实战建议(很关键)

1)MinMaxScaler 对异常值非常敏感

因为它直接用训练集的 min/max,当训练集中出现极端值时:

  • 大部分正常样本会被压缩到非常接近 0 的小范围
  • 模型对细微差异不敏感(尤其对距离类算法影响明显)

常见解决方案:

  • 先做异常值处理(winsorize/clip)
  • 使用分位数范围做近似 min/max(工程上常见)
  • 或改用 StandardScaler(标准化)更稳

2)训练/预测必须用同一套 scaler 参数

正确姿势永远是:

  • fit(train)只在训练集上统计 min/max
  • transform(train/predict)都用同一个 model

不要在预测数据上重新 fit,否则线上会出现“同一个样本在不同批次缩放结果不同”的问题。

3)缩放区间如何选?

  • 默认[0, 1]:通用且好理解
  • [-1, 1]:如果后续模型/特征更希望以 0 为中心,可能更合适

例如:

MinMaxScalerscaler=newMinMaxScaler().setMin(-1.0).setMax(1.0);

4)通常会放进 Pipeline

MinMaxScaler 常见组合:

  • VectorAssembler → MinMaxScaler → KMeans/KNN/SVM/LR
  • Bucketizer → OneHot → LR(这里 MinMaxScaler 不一定必需)

6. 小结

MinMaxScaler 是 Flink ML 特征工程中最常用的“缩放器”之一:

  • 输入:inputCol(Vector)
  • 输出:outputCol(Vector)
  • fit()在训练集上学习每一维的 min/max
  • transform()把新数据线性映射到[min, max](默认[0,1]

它简单高效,但要特别注意异常值带来的“压缩效应”。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 20:41:07

YOLO目标检测API支持OCR后处理,多模态结果输出

YOLO目标检测API支持OCR后处理&#xff0c;多模态结果输出 在智能制造车间的质检流水线上&#xff0c;一台摄像头扫过刚下线的工业设备——它不仅要识别出“铭牌区域”是否存在&#xff0c;还要准确读取上面印制的序列号、生产日期和电压参数。过去&#xff0c;这需要两个独立系…

作者头像 李华
网站建设 2026/6/6 11:44:14

YOLO模型镜像提供多种CUDA版本选择,兼容老旧GPU

YOLO模型镜像提供多种CUDA版本选择&#xff0c;兼容老旧GPU 在智能制造车间的边缘服务器上&#xff0c;一台搭载 Tesla K80 的工控机正试图加载最新的 YOLOv8 推理服务——结果却因 libcudart.so.12 缺失而崩溃。这并非个例&#xff1a;大量企业仍在使用基于 Kepler、Maxwell 或…

作者头像 李华
网站建设 2026/6/6 12:55:20

YOLOv9-Tiny极致压缩,可在Jetson Nano上运行

YOLOv9-Tiny极致压缩&#xff0c;可在Jetson Nano上运行 在智能制造车间的流水线上&#xff0c;一个微型摄像头正实时扫描着快速移动的零件——没有连接云端服务器&#xff0c;也没有依赖昂贵的GPU集群&#xff0c;它的“大脑”仅仅是一块售价不足百美元的NVIDIA Jetson Nano开…

作者头像 李华
网站建设 2026/6/6 11:43:43

学长亲荐10个AI论文平台,自考毕业论文格式规范必备!

学长亲荐10个AI论文平台&#xff0c;自考毕业论文格式规范必备&#xff01; AI工具助力论文写作&#xff0c;轻松应对自考挑战 在自考论文写作过程中&#xff0c;许多学生常常面临格式不规范、内容重复率高、逻辑不清晰等难题。而随着AI技术的不断发展&#xff0c;越来越多的智…

作者头像 李华
网站建设 2026/6/9 21:36:47

三家公司融资最高超3亿元;央视罕见近10分钟聚焦3D打印;2030年规模有望达1500亿元|库周报

2025年12月28日&#xff0c;以下是过去一周内3D打印行业发生的事情&#xff0c;包括“大事件” 、“行业动态” 、“趣制造” 、“融资/并购” 、“新产品”等内容。—— 大事件 ——央视罕见近10分钟专题聚焦3D打印2025年12月24日&#xff0c;CCTV-13新闻频道《科技推动力》用…

作者头像 李华
网站建设 2026/6/8 15:03:41

YOLO目标检测API支持Webhook事件推送

YOLO目标检测API支持Webhook事件推送 在现代工业视觉系统的演进中&#xff0c;一个明显趋势正在浮现&#xff1a;AI不再只是“看得见”的工具&#xff0c;而是要成为能“自动反应”的智能中枢。以一条自动化质检流水线为例——当摄像头发现产品缺陷时&#xff0c;系统不仅要识别…

作者头像 李华