zoukankan      html  css  js  c++  java
  • KNN和K-means的区别

    knn

    算法思路:
    如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

    k近邻模型的三个基本要素:

    1. k值的选择:k值的选择会对结果产生重大影响。较小的k值可以减少近似误差,但是会增加估计误差;较大的k值可以减小估计误差,但是会增加近似误差。一般而言,通常采用交叉验证法来选取最优的k值。
    2. 距离度量:距离反映了特征空间中两个实例的相似程度。可以采用欧氏距离、曼哈顿距离等。
    3. 分类决策规则:往往采用多数表决。

    k-means

    算法步骤:
    1. 从n个数据中随机选择 k 个对象作为初始聚类中心;
    2. 根据每个聚类对象的均值(中心对象),计算每个数据点与这些中心对象的距离;并根据最小距离准则,重新对数据进行划分;
    3. 重新计算每个有变化的聚类簇的均值,选择与均值距离最小的数据作为中心对象;
    4. 循环步骤2和3,直到每个聚类簇不再发生变化为止。

    k-means方法的基本要素:

        1. k值的选择:也就是类别的确定,与K近邻中k值的确定方法类似。
        2. 距离度量:可以采用欧氏距离、曼哈顿距离等。
    KNN K-Means
    1.KNN是分类算法 

    2.监督学习 

    3.喂给它的数据集是带label的数据,已经是完全正确的数据

    1.K-Means是聚类算法 

    2.非监督学习 

    3.喂给它的数据集是无label的数据,是杂乱无章的,经过聚类后才变得有点顺序,先无序,后有序

    没有明显的前期训练过程,属于memory-based learning 有明显的前期训练过程
    K的含义:来了一个样本x,要给它分类,即求出它的y,就从数据集中,在x附近找离它最近的K个数据点,这K个数据点,类别c占的个数最多,就把x的label设为c K的含义:K是人工固定好的数字,假设数据集合可以分为K个簇,由于是依靠人工定好,需要一点先验知识
  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/roscangjie/p/11406863.html
Copyright © 2011-2022 走看看