flink-ml 技术调研

# 环境要求
依赖Flink Table API (flink-version:1.14.0以上)


# 分类模型
1. KNN (最邻近规则分类)
2. 逻辑回归
3. 朴素贝叶斯
# 聚类模型
4. kmeans
# 其他模型
5. 热编码算法


# maven依赖
(1) 使用工件flink-ml-core_2.12来开发自定义 ML 算法
(2) 使用工件flink-ml-core_2.12和flink-ml-iteration_2.12开发需要迭代的自定义 ML 算法
(3) 使用工件flink-ml-lib_2.12以使用中现成的 ML 算法。
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-ml-core_2.12</artifactId>
  <version>2.0.0</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-ml-iteration_2.12</artifactId>
  <version>2.0.0</version>
</dependency>
<dependency>
  <groupId>org.apache.flink</groupId>
  <artifactId>flink-ml-lib_2.12</artifactId>
  <version>2.0.0</version>
</dependency>
注:
聚类是降维,十个对象类的问题转化为三个对象类的问题
分类是预测,已知某个对象的特征向量,判断这个对象属于哪一类别



一、有监督学习算法介绍 (分类、回归)
# KNN (最邻近规则分类)
1. 思想
为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K(奇数) 计算未知实例与所有已知实例的距离 选择最近K个已知实例 根据少数服从多数的投票法则,让未知实例归类为K个最邻近样本中最多数的类别

2. 训练数据
    特征向量        结果标签
5.3,3.7,1.5,0.2,Iris-setosa
5.0,3.3,1.4,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
6.4,3.2,4.5,1.5,Iris-versicolor
......

3. 训练参数
k = 7 (已知节点的个数)
split = 0.87 (切分训练数据和测试数据)

4. 测试代码
https://github.com/ainusers/deep-learning/blob/master/%E5%85%A5%E9%97%A8%E7%AF%87/%E5%9F%BA%E7%A1%80/2.%20%E7%9B%91%E7%9D%A3%E5%AD%A6%E4%B9%A0%20-%20%E5%88%86%E7%B1%BB/2.%20%E6%9C%80%E9%82%BB%E8%BF%91%E8%A7%84%E5%88%99%E5%88%86%E7%B1%BB(KNN)/%E4%BB%A3%E7%A0%81/KNN-custom.py

5. 测试结果
Train set: 129
Test set: 20
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-setosa', actual='Iris-setosa'
>predicted='Iris-versicolor', actual='Iris-versicolor'
>predicted='Iris-versicolor', actual='Iris-versicolor'
>predicted='Iris-versicolor', actual='Iris-versicolor'
>predicted='Iris-versicolor', actual='Iris-versicolor'
>predicted='Iris-versicolor', actual='Iris-versicolor'
>predicted='Iris-versicolor', actual='Iris-virginica'
>predicted='Iris-virginica', actual='Iris-virginica'
>predicted='Iris-virginica', actual='Iris-virginica'
>predicted='Iris-virginica', actual='Iris-virginica'
>predicted='Iris-virginica', actual='Iris-virginica'
>predicted='Iris-virginica', actual='Iris-virginica'
Accuracy: 95.0%

6. 可视化辅助理解
https://github.com/ainusers/deep-learning/blob/master/%E5%85%A5%E9%97%A8%E7%AF%87/%E5%9F%BA%E7%A1%80/2.%20%E7%9B%91%E7%9D%A3%E5%AD%A6%E4%B9%A0%20-%20%E5%88%86%E7%B1%BB/2.%20%E6%9C%80%E9%82%BB%E8%BF%91%E8%A7%84%E5%88%99%E5%88%86%E7%B1%BB(KNN)/%E5%9B%BE%E7%89%87/KNN_%E7%AE%97%E6%B3%95%E7%BC%BA%E7%82%B9.png



# 朴素贝叶斯
1. 思想
对于给出的待分类项,求解在待分类项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别



二、无监督学习算法介绍 (聚类)
# K-means
1. 在线效果演示
https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

2. 思想
事先并不清楚数据集的标记,假设一共有k种分类,在散点图中随机选取k个位置的中心点,通过不断的循环计算数据点距离选取k种中心点,标记为距离最近点的颜色,之后对当前k种中心点分别求取平均值,重新计算中心点,直至结果不会发生变化,模型训练结束

3. 测试代码
https://github.com/ainusers/deep-learning/blob/master/%E5%85%A5%E9%97%A8%E7%AF%87/%E5%9F%BA%E7%A1%80/4.%20%E9%9D%9E%E7%9B%91%E7%9D%A3%E5%AD%A6%E4%B9%A0%20-%20%E8%81%9A%E7%B1%BB/1.%20k-means/%E4%BB%A3%E7%A0%81/k-means.py

4. 可视化辅助理解
https://github.com/ainusers/deep-learning/blob/master/%E5%85%A5%E9%97%A8%E7%AF%87/%E5%9F%BA%E7%A1%80/4.%20%E9%9D%9E%E7%9B%91%E7%9D%A3%E5%AD%A6%E4%B9%A0%20-%20%E8%81%9A%E7%B1%BB/1.%20k-means/%E5%9B%BE%E7%89%87/k-means%E7%AE%97%E6%B3%95%E7%A4%BA%E4%BE%8B.png



三、扩展内容
# dbscan (聚类场景,优先使用)
1. 在线效果演示
https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/
# iforest (异常检测,优先使用)
# LightGBM (分类场景,优先使用)
# 1. 机器学习算法在网络安全方向的应用
https://github.com/404notf0und/AI-for-Security-Learning

# 2. 人工智能赋能安全应用案例
https://www.gsma.com/greater-china/wp-content/uploads/2021/02/AI-in-Security_cn.pdf

# 3. 机器学习算法
https://github.com/NLP-LOVE/ML-NLP

# 4. 机器学习在网络空间安全研究中的应用
http://cjc.ict.ac.cn/online/bfpub/zl-20171225155556.pdf

# 5. 网络安全中机器学习(资料)
https://github.com/jivoi/awesome-ml-for-cybersecurity/blob/master/README_ch.md

# 6. 安全数据科学和AI安全算法的学习资料
https://github.com/0xMJ/AI-Security-Learning

# 7. flink-ml 扩展机器学习算法
https://github.com/flink-extended/dl-on-flink

# 8. flink-ml公开演讲ppt
https://max.book118.com/html/2022/0123/6124125230004113.shtm

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值