K-近邻算法
这个算法是机器学习最简单的一个算法, 也可以说机器学习入门的算法
优点
- 精度高, 可自定义k值
- 对异常值不敏感
- 不需要训练
缺点
- 时间复杂度高,O(n**m), 需要遍历n个样本, m个特征, n次距离计算
- 计算量大, 内存开销大
- 必须指定k值, k值选择不当可能会造成分类精度不准确
- 取小: 容易受异常点影响
- 取大: 容易收到最近的数据太多导致比例变化
适用的数据类型:
- 标称型和数值型
适用场景:
- 几千~几万的样本, 具体场景具体业务自己去测试把, 反正不适合大数据量
欧氏距离公式:
本人归纳总结:
- 假设有一个模型, 模型中每个样本都有类别
- 查看数据有没有缺失值, 异常值, 如果有需要进行处理
- 往模型里扔一个没有类别的样本, k近邻算法会计算模型里面所有样本的欧氏距离, 在单独计算没有类别的样本的欧氏距离, 找出挨着没有类别的样本最近的那个模型里面k个样本,选出出现次数最多的类别就是分类器分类出来的(有一个样本集, 并且样本集中每个数据都存在标签, 输入没有标签的新数据, 将新数据的每个特征与样本集中数据对应特征进行比较, 然后提取样本集中特征最相似数据(最近邻)的分类标签, 只选前k个最相似的数据, 选择k个最相似的数据中出现次数最多的分类, 作为新数据的分类)
- 如果是文字图片的样本, 需要转换成向量