k近邻算法(knn)与k-means算法的对比

k近邻算法(knn)是一种基本的分类与回归的算法,k-means是一种基本的聚类方法。

k近邻算法(knn)

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

影响因素:

  1. k值的选择。k的值小,则近似误差小,估计误差大;k的值大,则近似误差大,估计误差小。(近似误差即算法在训练集上的误差,估计误差即算法在测试集上的误差。近似误差小,会出现过拟合的现象,即模型在训练集上预测误差小,在未知的测试集上则表现差,此时模型并非最优模型;估计误差小,则模型在未知的测试集上的误差小,模型接近于最优模型);
  2. 距离的计算。距离计算的是样本在特征空间的邻近程度,通常用欧式距离或者曼哈顿距离;
  3. 分类决策规则。往往采用多数表决。

k-means算法

k-means算法的基本步骤如下:

  1. 随机选择k个样本作为初始化的中心点;
  2. 分别计算其它样本到这k个中心点的距离,并分别将这些样本划分给距离最近的那个中心;
  3. 重新计算k类样本的均值,得到新的k个中心点;
  4. 重复步骤2和3,直到样本到中心点的距离不再改变,或者迭代达到一定次数为止。

Reference:

  1. https://www.cnblogs.com/PiPifamily/p/8520405.html
  2. https://blog.csdn.net/weixin_37895339/article/details/78794190

原文地址:https://www.cnblogs.com/wumh7/p/9452788.html

时间: 2024-10-15 17:05:55

k近邻算法(knn)与k-means算法的对比的相关文章

04_有监督学习--分类模型--K 近邻(kNN)

有监督学习--分类模型--K 近邻(kNN)0.引入依赖1.数据的加载和预处理2.核心算法实现3.测试4.自动化测试 有监督学习--分类模型--K 近邻(kNN) 0.引入依赖 import numpy as np # 数值计算.矩阵运算.向量运算import pandas as pd # 数值分析.科学计算 # 这里直接引入 sklearn 里的数据集 --> iris 鸢尾花from sklearn.datasets import load_irisfrom sklearn.model_se

python用K近邻(KNN)算法分类MNIST数据集和Fashion MNIST数据集

一.KNN算法的介绍 K最近邻(k-Nearest Neighbor,KNN)分类算法是最简单的机器学习算法之一,理论上比较成熟.KNN算法首先将待分类样本表达成和训练样本一致的特征向量:然后根据距离计算待测试样本和每个训练样本的距离,选择距离最小的K个样本作为近邻样本:最后根据K个近邻样本判断待分类样本的类别.KNN算法的正确选取是分类正确的关键因素之一,而近邻样本是通过计算测试样本与每个训练集样本的距离来选定的,故定义合适的距离是KNN正确分类的前提. 本文中在上述研究的基础上,将特征属性值

机器学习--K近邻 (KNN)算法的原理及优缺点

一.KNN算法原理 K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法. 它的基本思想是: 在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类. KNN算法的描述: (1)计算测试数据与各个训练数据之间的距离: (2)按照距离的递增关系进行排序: (3)选取距离最小的K个点: (4)确定前K个点所在类别的出现频率   (5

K近邻法(KNN)原理小结

K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出了.这里就运用了KNN的思想.KNN方法既可以做分类,也可以做回归,这点和决策树算法相同. KNN做回归和分类的主要区别在于最后做预测时候的决策方式不同.KNN做分类预测时,一般是选择多数表决法,即训练集里和预测的样本特征最近的K个样本,预测为里面有最多类别数的类别.而KNN做回归时,一般是选择平均

机器学习实战python3 K近邻(KNN)算法实现

台大机器技法跟基石都看完了,但是没有编程一直,现在打算结合周志华的<机器学习>,撸一遍机器学习实战, 原书是python2 的,但是本人感觉python3更好用一些,所以打算用python3 写一遍.python3 与python2 不同的地方会在程序中标出. 代码及数据:https://github.com/zle1992/MachineLearningInAction/tree/master/ch2 k-近邻算法优点:精度高.对异常值不敏感.无数据输入假定.缺点:计算复杂度高.空间复杂度高

基于稀疏矩阵的k近邻(KNN)实现

一.概述 这里我们先来看看当我们的数据是稀疏时,如何用稀疏矩阵的特性为KNN算法加速.KNN算法在之前的博文中有提到,当时写的测试程序是针对稠密矩阵数据的.但实际上我们也会遇到不少的稀疏数据,而且有很多是有意而为之的,因为稀疏数据具有稠密数据无法媲美的存储和计算特性,这对工程应用中的内存需求和实时需求是很重要的.所以这里我们也来关注下稀疏矩阵的存储和其在knn算法中的应用举例. 大家都知道,所谓稀疏矩阵,就是很多元素为零的矩阵,或者说矩阵中非零元素的个数远远小于矩阵元素的总数,如上图.如果我们只

K近邻分类算法实现 in Python

K近邻(KNN):分类算法 * KNN是non-parametric分类器(不做分布形式的假设,直接从数据估计概率密度),是memory-based learning. * KNN不适用于高维数据(curse of dimension) * Machine Learning的Python库很多,比如mlpy(更多packages),这里实现只是为了掌握方法 * MATLAB 中的调用,见<MATLAB分类器大全(svm,knn,随机森林等)> * KNN算法复杂度高(可用KD树优化,C中可以用

机器学习经典算法详解及Python实现--K近邻(KNN)算法

(一)KNN依然是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习所有算法中理论最简单,最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>=1)个距离最近的邻居进行分类判断(投票法)或者回归.如果K=1,那么新数据被简单分配给其近邻的类.KNN算法算是监督学习还是无监督学习呢?首先来看一下监督学习和无监督学习的定义.对于监督学习,数据都有明确的label(分类针对离散分布,回归针对连续分布),根据机器学习产

机器学习经典算法具体解释及Python实现--K近邻(KNN)算法

(一)KNN依旧是一种监督学习算法 KNN(K Nearest Neighbors,K近邻 )算法是机器学习全部算法中理论最简单.最好理解的.KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K>=1)个距离近期的邻居进行分类推断(投票法)或者回归.假设K=1.那么新数据被简单分配给其近邻的类.KNN算法算是监督学习还是无监督学习呢?首先来看一下监督学习和无监督学习的定义.对于监督学习.数据都有明白的label(分类针对离散分布,回归针对连续分布),依据机器学习产

k近邻算法理论(一)

时间 :2014.07.05 地点:基地 ----------------------------------------------------------------------------------- 一.简述 K近邻法(k-nearest neighbor,kNN)是一种基本分类与回归方法.k近邻的输入为实例的特征向量,对应特征空间中的点,输出为实例的类别.k近邻算法的基本思想是:给定训练数据集,实例类别已定,在对目标实例进行分类时,我们根据与目标实例k个最近邻居的训练实例的类别,通过