KNN(K近邻)算法小结

K近邻算法是一种基于邻近度的分类方法,它根据最近的K个邻居的类别来决定新样本的类别。当K=3,绿色点被分类为红三角;K=5,被分类为蓝正方形。算法适用于分类和回归,但易受样本不平衡影响,可通过加权方法优化。错误率是评估其性能的关键指标。
摘要由CSDN通过智能技术生成

1.K近邻算法的介绍:

K近邻算法是一个理论上比较成熟的分类算法,也是机器学习中的基本算法。该方法的思路为:如果一个样本在特征空间中的K个最相似(即特征空间中最邻近)的样本中的大多数属于某一类别,那么这个样本也属于这个类别。用官方的话来说,就是给定一个训练数据集,对新的输入实例,在训练数据集中找到K个最邻近的数据点,这K个数据点大多属于某一类,那么这个实例也属于这一类。基本的过程为:将新的数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取出样本中最相似的分类标签,一般提取出的样本K不大于20,找出这K个中次数最多的分类,即作为这个数据的分类。不足之处就是计算量比较大。

2.算法的基本步骤:

1.计算已知类别数据集中的点与当前点的距离;

2.按照距离递增次序进行排序;

3.选取与当前距离最小的K个点;

4.确定前K个点所在类别的出现频率,

5.返回前K个点所出现频率最高的类别作为当前点的预测分类;

3.算法的举例:

寻找中间绿色点为哪一类:

当 K=3时,绿色点的最近3个邻居是一个小蓝正方形和2个红小三角形,少数从属于多数,基于统计的方法,这个绿色待分类点属于红色小三角形一类。

当K= 5时,绿色点的最近5个邻居时两个小红三角形和三个小蓝正方形。还是少数从属于多数,这个绿色待分类点属于小蓝正方形。

当K为其他值时,方法依次类推,距离的计算公式一般为欧式距离的计算。              

4.案例代码显示

# -*- coding: UTF-8 -*-
import numpy as np
import operator
 
"""
函数说明:创建数据集
 
Parameters:
    无
Returns:
    group - 数据集
    labels - 分类标签
Modify:
    2017-07-13
"""
def createDataSet():
    #四组二维特征
    group = np.array([[1,101],[5,89],[108,5],[115,8]])
    #四组特征的标签
    labels = ['喜欢','喜欢','不喜欢','不喜欢']
    return group, labels
 
"""
函数说明:kNN算法,分类器
 
Parameters:
    inX - 用于分类的数据(测试集)
    dataSet - 用于训练的数据(训练集)
    labes - 分类标签
    k - kNN算法参数,选择距离最小的k个点
Returns:
    sortedClassCount[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值