Flink ML 数据类型:Vector 向量类型入门(DenseVector / SparseVector)

Flink ML 支持:

  1. Flink Table API 支持的全部类型

    例如:BOOLEAN / INT / BIGINT / DOUBLE / STRING / ARRAY / MAP / ROW / TIMESTAMP 等。

  2. Flink ML 在此基础上补充的类型

    最典型就是 Vector(向量),用于表示模型输入的特征。

2. Vector 是什么?

在 Flink ML 中,Vector 表示一个 double 数组形式的向量,并且有两个具体实现:

  • DenseVector(稠密向量)

    • 大部分维度都有值(或你希望用数组直接存储所有维度)
    • 适合维度不算特别高、或者特征不是很稀疏的场景
  • SparseVector(稀疏向量)

    • 只有少量维度有非零值
    • 适合高维稀疏特征(比如 one-hot、词袋、特征哈希等)

无论 Dense 还是 Sparse,Flink ML 的 Vector 都具备这些共同特点:

  • 向量在创建时就固定 size(维度)
  • 支持按 0-based 下标读取 / 设置某一维的 double 值
  • 都用于表达"特征列",常见列名是 features

3. Vectors 工具类:创建向量更方便

Flink ML 提供了 Vectors 工具类,用来快速构造 DenseVector / SparseVector。

4. Java 示例:构造 SparseVector

你给的示例含义是:

  • 向量维度 n = 4(即下标范围 0~3)
  • 只有下标 0,2,3 是非零维度
  • 对应值分别是 0.1, 0.3, 0.4
java 复制代码
int n = 4;
int[] indices = new int[] {0, 2, 3};
double[] values = new double[] {0.1, 0.3, 0.4};

SparseVector vector = Vectors.sparse(n, indices, values);

这等价于一个完整的 dense 表达:

text 复制代码
[0.1, 0.0, 0.3, 0.4]

5. 你在工程里什么时候用 Dense / Sparse?

用 DenseVector 的典型情况

  • 特征维度较小(比如几十维、几百维)
  • 大多数维度都有值(不稀疏)
  • 特征已经是数值型统计特征(pv/click/avg_duration 等)

用 SparseVector 的典型情况

  • 特征维度很高(几千、几万甚至更高)

  • 绝大多数维度都是 0(稀疏)

  • 常见于:

    • one-hot 编码后的离散特征
    • 文本特征(词袋/TF-IDF)
    • 特征哈希

6. 实用小提示:SparseVector 的注意事项

在构造稀疏向量时,建议保证:

  • indices.length == values.length
  • indices 取值范围必须在 [0, n-1]
  • indices 最好是严格递增且不重复(很多实现会假设这一点,或性能更好)
相关推荐
初恋叫萱萱1 分钟前
模型瘦身实战:用 `cann-model-compression-toolkit` 实现高效 INT8 量化
大数据
互联网科技看点34 分钟前
孕期科学补铁,保障母婴健康-仁合益康蛋白琥珀酸铁口服溶液成为产妇优选方案
大数据
Dxy12393102161 小时前
深度解析 Elasticsearch:从倒排索引到 DSL 查询的实战突围
大数据·elasticsearch·搜索引擎
Hello.Reader1 小时前
Flink 文件系统通用配置默认文件系统与连接数限制实战
vue.js·flink·npm
YongCheng_Liang1 小时前
零基础学大数据:大数据基础与前置技术夯实
大数据·big data
AC赳赳老秦1 小时前
2026国产算力新周期:DeepSeek实战适配英伟达H200,引领大模型训练效率跃升
大数据·前端·人工智能·算法·tidb·memcache·deepseek
鹏说大数据1 小时前
Spark 和 Hive 的关系与区别
大数据·hive·spark
B站计算机毕业设计超人1 小时前
计算机毕业设计Hadoop+Spark+Hive招聘推荐系统 招聘大数据分析 大数据毕业设计(源码+文档+PPT+ 讲解)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
B站计算机毕业设计超人1 小时前
计算机毕业设计hadoop+spark+hive交通拥堵预测 交通流量预测 智慧城市交通大数据 交通客流量分析(源码+LW文档+PPT+讲解视频)
大数据·hive·hadoop·python·spark·毕业设计·课程设计
数据架构师的AI之路1 小时前
深入了解大数据领域Hive的HQL语言特性
大数据·hive·hadoop·ai