【机器学习实战】学习笔记 | K-近邻算法

本文介绍了K-近邻算法的工作原理、优缺点以及适用数据类型。算法通过比较新数据与样本集特征距离来分类,其精度高但计算复杂度高。适用场景包括数值型和离散型数据。流程包括数据收集、准备、分析、测试和实际应用。案例展示了二维数据如何通过计算欧式距离找到最近的k个点,以确定测试样本的类别。
摘要由CSDN通过智能技术生成

k-近邻算法采用测量不同特征值之间的距离方法进行分类。knn算法不需要经过训练就可以直接计算测试集。knn算法并不一定完全正确,错误率为输出错误的次数除以总的执行次数。

优缺点:

  • 优点:
    • 精度高
    • 对异常值不敏感
    • 无数据输入假定
  • 缺点:
    • 计算复杂度高
    • 空间复杂度高
    • 样本可能不平衡
    • 无法给出数据的内在含义
  • 适用数据范围:数值型和离散型数据;

原理:

  • 每个训练数据集中的每个数据都有相应的标签,输入没有标签的新数据之后,将新数据每个特征与样本集中每个数据对应的特征进行比较。
  • 然后算法提取出样本集中最相似的前k个数据分类标签。
  • 再计算这k个标签中每类出现的概率,将新样本划分为概率最大的那个标签中。
  • k的由来:只选择样本数据集中最相似的前k个数据,k通常是不大于20.

K-近邻算法的一般流程

  • 收集数据:可以使用爬虫进行数据的收集,也可以使用第三方提供的免费或收费的数据。一般来讲,数据放在txt文本文件中,按照一定的格式进行存储,便于解析及处理。
  • 准备数据:使用Python解析、预处理数据。
  • 分析数据:可以使用很多方法对数据进行分析,例如使用Matplotlib将数据可视化。
  • 测试算法:计算错误率。
  • 使用算法:错误率在可接受范围内,就可以运行k-近邻算法进行分类。

案例:
输入一个二维测试集,算出它与所有训练集的距离,取前k个距离最近的点并统计这k个点类别的频率,输出频率最大的类别即为测试集最可能的类别。

import numpy as np
import operator
'''
group-数据集
labels-分类标签
'''
def createDataSet():
    #四组二维特征
    group=np.array([[1,101]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值