栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

KNN算法在Spark RNN flow中的应用

KNN算法在Spark RNN flow中的应用

文章目录
  • KNN算法原理
  • 一、KNN分类算法
  • 二、三个问题
    • 1.K值如何选取
    • 2.距离如何度量
    • 特征归一化
    • 4. KNN优缺点
  • 三、RDD Flow


KNN算法原理 一、KNN分类算法

KNN是一种基本分类, 回归方法.
简单而言, 分类过程为:
给定一个训练数据集, 对于新的输入实例, 在训练数据集中找到与该实例最邻近的K个实例, 即这K 个实例的多数属于某个类, 该实例分类到这个类中.

如下图, 若K=3, 绿色圆点最邻近3个点为2红1蓝, 属于红色
若K=5, 绿色圆点最邻近4个点为2红3蓝, 属于蓝色

二、三个问题 1.K值如何选取

选取k条距离最短的样本点,这里的k是根据具体情况而设定的,即根据实际情况选取参与投票的样本点数;
K过小: 整体模型复杂, 易过拟合, 容易学习到噪声 e.g. K=1
K=N: 无论输入什么, 都将简单预测为实例中最多的类, 相当于没有训练
一般选取一个较小值, 采取交叉验证法来选取最优的K值

2.距离如何度量

读取测试数据, 训练数据, 计算测试数据与训练数据之间的距离, 通常使用欧氏距离.

特征归一化

例: 一个人身高(cm)与脚码(尺码)大小来作为特征值,类别为男性或者女性。我们现在如果有5个训练样本,分布如下:A
[(179,42),男] B [(178,43),男] C [(165,36)女] D [(177,42),男] E
[(160,35),女] 测试样本 F[(167,43)], 预测性别.

第一维身高特征是第二维脚码特征的4倍左右,那么在进行距离度量的时候,我们就会偏向于第一维特征。这样造成俩个特征并不是等价重要的,最终可能会导致距离计算错误,从而导致预测错误。

K=3时: 最近的前三个分别是C,D,E三个样本,那么由C,E为女性,D为男性,女性多于男性得到我们要预测的结果为女性。

实际上脚码为43的女性可能性更低

最后按照少数服从多数的原则进行分类,即这k个样本点属于哪个类型的数量最多,则将该未知分类的样本点分类为这个数量最多的类。

如果有多个特征呢? 则需要特征归一化.

4. KNN优缺点

优点:
(1)理论成熟,思想简单,既可以用来做分类也可以用来做回归;
(2)可用于非线性分类;
(3)训练时间复杂 度低,为O(n^{2});
(4) 和朴素贝叶斯之类的算法比,对数据没有假设,准确度高,对异常点不敏感
缺点:
(1)计算量大,尤其是特征数非常多的时候;
(2)样本不平衡的时候,对稀有类别的预测准 确率低;
(3)kd树,球树之类的模型建立需要大量的内存;
(4)使用懒散学习方法,基本上不学习,导致预测 时速度比起逻辑回归之类的算法慢;
(5)KNN模型可解释性不强。

三、RDD Flow

sc.textFile().map():
textFile()将文件内容全部读出, 一行为一条记录
RDD中两种类型操作: transformation, action
transformation如map方法, 根据旧数据集产生新数据集
broadcast: 广播变量

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/632892.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号