机器学习实战笔记2——KNN及其实现

任务安排

1、机器学习导论       8、核方法
2、KNN及其实现      9、稀疏表示
3、K-means聚类      10、高斯混合模型
4、主成分分析          11、嵌入学习
5、线性判别分析      12、强化学习
6、贝叶斯方法          13、PageRank
7、逻辑回归              14、深度学习

KNN及其实现

Ⅰ 分类与聚类

      首先,我们先来区分下两个重要概念,分类与聚类
分类:
      事先已知道数据集中包含多少种类,从而对数据集中每一样本进行分类,且所分配的标签必须包含在已知的标签集中,属于监督学习

聚类:
      将数据对象的集合分成相似的对象类(簇)的过程。使得同一类(簇)中的对象之间具有较高的相似性,而不同类(簇)中的对象具有较高的相异性,并且事先不知道数据集本身有多少类别,属于无监督学习

      正所谓,物以类聚,人以群分,对于分类和聚类的应用也大相径庭
      分类应用:对一个学校的在校大学生进行性别分类,我们知道有且仅可为“男”,“女”两类
      聚类应用:对于在校大学生,同学们根据自己的兴趣爱好等因素 n n n 个小团体
由此我们知道,分类与聚类:
不同点:
      分类已知种类个数与类型进行区分;
      聚类的种类个数与类型均未知;

共同点:
      分类与聚类的类中有很高相似性类间有很高相异性

Ⅱ 定义

      KNN 算法,是数据挖掘分类技术中最简单的一种
      KNN(K-NearestNeighbor),K 最近邻分类算法,K 是指最近的 K 个邻居,而测试样本可以根据这 K 个邻居的特征值来代表,KNN 算法,就是通过测量不同特征值之间的距离来实现的
在这里插入图片描述

★Ⅲ 算法剖析

输入:训练样本 { x i , y i xi,yi xiyi} i = 1 n ^{n}_{i=1} i=1n,测试样本 x x x,近邻个数 K K K,距离函数 d i s t dist dist
输出:测试样本的预测类别 y y y
      1.计算测试数据与各个训练数据之间的距离;
      2.按照距离的递增关系进行排序;
      3.选取距离最小的 K 个点;
      4.分别确定前 K 个点所在类别的出现频率;
      5.返回前 K 个点中出现频率最高的类别作为测试数据的预测分类;
(老师还给了个看着挺复杂的公式)

y ← arg ⁡ m a x ∑ i = 1 K δ ( y , f ( s i ) ) ( y ∈ f ( X ) y←\arg max{∑^K_{i=1}δ(y,f(si))}(_{y∈f(X)} yargmaxi=1Kδ(y,f(si))(yf(X)

      记 x x x K K K 个最近邻为 S 1 、 S 2 … … S k S1、S2……Sk S1S2Sk
       f ( X ) f(X) f(X) 是类别映射函数
      脉冲函数 δ ( x , y ) δ(x,y) δ(x,y) 当且仅当 x = y x=y x=y 时取1,其他为0
      通俗点理解,右边的 ∑ ∑ 函数是计数器,符合一类的+1,最终把最多的一类赋值给 y y y(即 x x x 的预测类别)

Ⅳ 距离的求法

      分析了这么多,归根结底,KNN 算法的核心是求距离(即每个训练样本点与测试样本点之间的距离),下面介绍几种常见距离:

★1、欧几里得距离(Euclidean Distance):

就是我们最常见的距离求法,衡量多维空间各点之间的绝对距离
d i s t ( X , Y ) = ∑ i = 1 n ( x i − y i ) 2 dist(X,Y)=\sqrt{∑^n_{i=1}(xi-yi)^2} dist(X,Y)=i=1n(xiyi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值