python机器学习0基础到入门的心得----入门篇1 k近邻算法

K-近邻算法

这个算法是机器学习最简单的一个算法, 也可以说机器学习入门的算法

本章节代码连接
需要配合机器学习实战这本书来学习

优点

  • 精度高, 可自定义k值
  • 对异常值不敏感
  • 不需要训练

缺点

  1. 时间复杂度高,O(n**m), 需要遍历n个样本, m个特征, n次距离计算
  2. 计算量大, 内存开销大
  3. 必须指定k值, k值选择不当可能会造成分类精度不准确
    1. 取小: 容易受异常点影响
    2. 取大: 容易收到最近的数据太多导致比例变化

适用的数据类型:

  • 标称型和数值型

适用场景:

  • 几千~几万的样本, 具体场景具体业务自己去测试把, 反正不适合大数据量

欧氏距离公式:这里写图片描述

本人归纳总结:

  1. 假设有一个模型, 模型中每个样本都有类别
  2. 查看数据有没有缺失值, 异常值, 如果有需要进行处理
  3. 往模型里扔一个没有类别的样本, k近邻算法会计算模型里面所有样本的欧氏距离, 在单独计算没有类别的样本的欧氏距离, 找出挨着没有类别的样本最近的那个模型里面k个样本,选出出现次数最多的类别就是分类器分类出来的(有一个样本集, 并且样本集中每个数据都存在标签, 输入没有标签的新数据, 将新数据的每个特征与样本集中数据对应特征进行比较, 然后提取样本集中特征最相似数据(最近邻)的分类标签, 只选前k个最相似的数据, 选择k个最相似的数据中出现次数最多的分类, 作为新数据的分类)
  4. 如果是文字图片的样本, 需要转换成向量

猜你喜欢

转载自blog.csdn.net/qq351469076/article/details/80762402