`

KMN算法初学

 
阅读更多
KMN算法,其实就是"人以类聚,物有群分“,可以参考下图:



在这个图中,比如蓝色,红色两个分类,来一个新的点,如何判断它是属于蓝色还是
红色分类呢,比如新来的点是绿色,则可以用如下方法判断:

1) 比K=3,则选3个离绿色的点最近的,看这个绿色的点和这些点的距离,这里是2个红色点,1个蓝色点

2) 很明显,2:1的票数,2个红色点,少数服从多数,因此是属于红色分类

   PYTHON例子:

import numpy as np
import matplotlib.pyplot as plt

比如有了10个数,已知道这10个数的是否癌症,比如1是,0:否,则

raw_data_X = [[3.393533211, 2.331273381],
              [3.110073483, 1.781539638],
              [1.343808831, 3.368360954],
              [3.582294042, 4.679179110],
              [2.280362439, 2.866990263],
              [7.423436942, 4.696522875],
              [5.745051997, 3.533989803],
              [9.172168622, 2.511101045],
              [7.792783481, 3.424088941],
              [7.939820817, 0.791637231]
             ]
raw_data_y = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]

转成矩阵:
X_train = np.array(raw_data_X)
y_train = np.array(raw_data_y)

画散点图:
plt.scatter(X_train[y_train==0,0], X_train[y_train==0,1], color='g')
plt.scatter(X_train[y_train==1,0], X_train[y_train==1,1], color='r')
plt.show()



假设新来一个点,要预测:
x = np.array([8.093607318, 3.365731514])

plt.scatter(X_train[y_train==0,0], X_train[y_train==0,1], color='g')
plt.scatter(X_train[y_train==1,0], X_train[y_train==1,1], color='r')
plt.scatter(x[0], x[1], color='b')
plt.show()

新来的点用蓝色表示,具体算法:

from math import sqrt
distances = []
for x_train in X_train:
    d = sqrt(np.sum((x_train - x)**2))
    distances.append(d)

这里是通过计算欧氏距离,求出每个点和新来的点的距离

[4.812566907609877,
 5.229270827235305,
 6.749798999160064,
 4.6986266144110695,
 5.83460014556857,
 1.4900114024329525,
 2.354574897431513,
 1.3761132675144652,
 0.3064319992975,
 2.5786840957478887]

然后排序:
np.argsort(distances)

array([8, 7, 5, 6, 9, 3, 0, 1, 4, 2])
得出最小的数,在原来矩阵的位置是8.。。。。

比如K=6,则
nearest = np.argsort(distances)

topK_y = [y_train[neighbor] for neighbor in nearest[:k]]

这里求出6个数,对应在Y特征矩阵中的值
[1, 1, 1, 1, 1, 0]
from collections import Counter
votes = Counter(topK_y)

这里求出这个数组中,0的个数多少个,1的个数多少个:
Counter({0: 1, 1: 5})
则肯定新来的值的特殊属于1分类
分享到:
评论

相关推荐

    KMN9X000RM-B209 datasheet

    三星KMN9X000RM-B209是一款2GB的eMMC和2Gb的LPDDR2内存封装芯片(MCP),它的数据手册提供了这款产品在设计、特性、电气特性和封装等方面的详细信息。这款芯片适用于多种电子设备,尤其是移动电话和智能移动设备。 ...

    Rijndael扩展算法及其JAVA实现

    | Kmn ``` 密钥矩阵的构建规则与明文相似,但其意义在于生成一系列的子密钥用于不同的轮变换过程。 #### 扩展Rijndael算法的核心步骤 Rijndael算法的核心在于其轮变换操作,这一过程包括四个主要步骤:字节...

    大数据十大算法讲解学习教案.pptx

    KMeans算法的时间复杂度上限为O(tKmn),下限为Ω(Kmn),其中t是迭代次数,K是类别数,m是记录数,n是维度数。空间复杂度为O((m+K)n),同样取决于K、m和n。 5. 影响因素: KMeans的效果受到多个因素的影响,包括初始...

    fastPPCA:基因型数据的概率PCA模型的快速EM算法

    潜在变量模型公式化导致了一种迭代EM算法,该算法用于计算具有时间复杂度O(KMN)的主成分,以每次迭代计算N个个体和M个SNP上的K个主成分。 入门 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以进行...

    KM(O(n^3))源码

    根据提供的信息,我们可以了解到这份代码实现的是KM算法(Kuhn-Munkres Algorithm),也被称为匈牙利算法的一个变种,用于解决赋权二分图的最大权匹配问题。在这个上下文中,算法的时间复杂度为O(n^3)。下面将详细...

    5800 RM-428 北欧code 0561618 升级的中文包。不用改code码!RM-428.part05

    下载完 将RM-428文件夹放在C:\Program Files\Nokia\Phoenix\Products文件夹下。 用凤凰刷机软件升级就可。我刚刚做过的。成功。如不会可咨询qq:327553981

    完全二部图Km,n的广播数rn(Km,n)

    利用图的顶点之间的距离与多水平标号的最大-最小值原理,依据顶点排序累积距离最大作为优化多水平距离标号的衡量标准,证明了完全二部图Km,n的广播数的计算公式rn(Km,n)=m+n。修正和填补了图的多水平距离标号研究领域...

    3, 4-二烷氧基取代聚噻吩的合成、表征与光学性能

    3, 4-二烷氧基取代聚噻吩的合成、表征与光学性能,韦斌,祁争健,本文利用三氯化铁氧化催化法合成了四种3, 4-二烷氧基取代聚噻吩:聚(3, 4-二戊氧基噻吩)、聚(3, 4-二辛氧基噻吩)、聚(3, 4-二(2-�

    6. 二分图与平面图 -PPT.pptx

    这表明Kn(n>6)和Kmn(m,n>3)都不是平面图,因为它们包含K5或K3,3作为子图。 平面图的构建算法通常涉及到如何有效地在不产生边交叉的情况下绘制图。对于实际应用,如电路布局或地图设计,平面图的理论提供了重要...

    高锰酸钾与氯协同预处理控制三卤甲烷的生成 (2006年)

    采用气相色谱法,以实验室配水为试验水样探讨了KMn04与Cl2协同预处理对THMs生成的控制作用。观察了Cl2投量、KMn04投量对THMs生成量及生成形态的影响,并与单独Cl2消毒时进行比较。结果表明,Cl2投量是影响KMn04与Cl2...

    k-means:C ++ 20中的K_means集群实现

    using kmn::print_clusters, kmn::k_means; // INPUT range auto const int_arr_df = array{ DataPoint ( 1 , 2 , 3 ), DataPoint ( 4 , 5 , 6 ), DataPoint ( 7 , 8 , 9 ), DataPoint ( 28 , 29 , 30 ), DataPoint...

    K_means集群:C ++ 20中的K_means集群实现

    信息图表由 要求 -std = c ++ 20 ...using kmn::print_clusters, kmn::k_means; // INPUT range auto const int_arr_df = array{ DataPoint ( 1 , 2 , 3 ), DataPoint ( 4 , 5 , 6 ), DataPoint ( 7 , 8 , 9 ),

    在酸性溶液中锰(Ⅱ)诱导过-硫酸盐的分解① (1995年)

    锰(Ⅱ)诱导过一硫酸根离子(HOOSO-3)分解速度定律是 d[HOOSO-3]/dt=KMn[HOOSO-3]1/2[mn2+]2/3/[H+]1/250℃时在H2SO4介质中,它的速度常数分别为KMn=(5.1±0.3)×10-3和(9.7±0.2)×10-3 M-1/2 S-1.速度常数对阴离子...

    商贸公司管理制度汇编.doc

    【商贸公司管理制度汇编】是XXX-KMN国际商贸有限公司对自身运营规范的全面总结,旨在为公司的日常管理和员工行为提供明确指导。这份汇编涵盖了从公司理念、组织结构到具体的人事、保密、培训、考核等多个方面,确保...

    详细的SAP销售合同配置和操作

    项目类别如KMN、WKN、WKC是区分数量合同和价值合同的关键。数量合同通常使用KMN,而价值合同使用WKN和WKC。这些项目类别会决定合同的处理逻辑和定价策略。 二、SAP销售合同操作 1. **数量合同**: 数量合同主要...

    高锰酸钾分光光度法测定药片中维生素B1的含量 (2009年)

    采用分光光度法在525nrn处测定KMn04的吸光度变化值△A。△A值与维生素B1的浓度在4~4u/mL范围内成良好的线性关系,相关系数R=0.9987,方法检出限为0.8ug/ml。将该法用于药片中维生素Bl含量的测定,相对标准偏差RsD为...

    2, 5-二(4一羧基苯基)-1, 3, 4-嗯二唑的改进合成 (2008年)

    设计了一条改进的合成路线来制备芳香羧酸类配体2,5-二(4-羧基苯基)-1,3,4-噁二唑,以4-甲基苯甲酸为原料,通过肼解关环和KMn0.氧化二步反应最终合成了2,5-二(4一羧基苯基)-1,3,4-噁二唑,产率为82%。产物...

    KMnO4与C12协同消毒在污水回用中的应用 (2005年)

    为了提高预氯化的效果,减少氯化副产物的生成量,以城市污水处理厂二级出水为试验水样,以总大肠菌群、细菌总数作为检测指标,观察了CI2、NH2 Cl单独消毒工艺以及KMnO4...KMn04与c12协同消毒工艺的消毒性能明显优于单独

    画法几何与制图 C课件:EX03.ppt

    4-1至4-5题进一步提升了难度,引入了换面法来求线段AB的实长、三角形ABC的实形、平面ABC对V面的倾角β,以及点A到平面KMN的距离。换面法是画法几何中的高级技巧,它通过变换坐标系来简化问题,以便更直观地求解空间...

Global site tag (gtag.js) - Google Analytics