K近邻分类算法
K近邻分类算法范文

K近邻分类算法范文K近邻(K Nearest Neighbors,KNN)分类算法是一种基本的机器学习算法,用于解决分类问题。
它是一种非参数算法,可以用于处理离散和连续型特征的数据集。
本文将详细介绍KNN算法的原理、步骤和算法的优缺点。
一、KNN算法原理1.计算距离:对于新样本,需要与训练集中每个样本计算距离。
常用的距离度量方法有欧式距离、曼哈顿距离和闵可夫斯基距离等。
2.选择K个最近邻居:根据距离选择K个最近邻居。
K的选择是一个重要参数,通常通过交叉验证来确定。
4.输出分类结果:将新样本标记为投票结果的类别。
二、KNN算法步骤KNN算法的步骤如下:1.数据预处理:对训练集进行数据预处理,包括特征标准化、缺失值处理和离散特征转换等。
2.特征选择:通过统计分析、特征重要性评估等方法选择合适的特征。
3.计算距离:对于新样本,计算它与训练集中每个样本的距离。
4.选择最近邻:根据距离选择K个最近邻居。
6.进行预测:将新样本标记为投票结果的类别。
7.模型评估:使用评估指标(如准确率、召回率和F1分数等)评估模型性能。
三、KNN算法的优缺点KNN算法具有以下优点:1.简单易理解:KNN算法的原理直观简单,易于理解和实现。
2.无假设:KNN算法不需要对数据做任何假设,适用于多种类型的数据。
3.非参数模型:KNN算法是一种非参数学习算法,不对数据分布做任何假设,适用于复杂的数据集。
KNN算法也有以下缺点:1.计算复杂度高:KNN算法需要计算新样本与训练集中所有样本的距离,计算复杂度较高,尤其是在大数据集上。
2.内存开销大:KNN算法需要保存整个训练集,占用内存较大。
3.对数据特征缩放敏感:KNN算法对特征缩放敏感,如果特征尺度不同,可能会导致距离计算不准确。
四、总结KNN算法是一种简单而有效的分类算法,适用于多种类型的数据。
通过计算新样本与训练集中所有样本的距离,并选择最近的K个邻居进行投票决策,可以得到新样本的分类结果。
knn算法的分类规则

knn算法的分类规则目录1.KNN 算法简介2.KNN 算法的分类规则3.KNN 算法的优缺点4.KNN 算法的应用实例正文1.KNN 算法简介KNN(k-Nearest Neighbors,k-近邻)算法是一种基于距离度量的分类和回归方法。
该算法的基本思想是:在一个数据集中,每个数据点根据其距离其他数据点的距离进行分类。
具体而言,KNN 算法会找到距离目标数据点最近的 k 个数据点,然后根据这些邻居的数据类别决定目标数据点的类别。
2.KNN 算法的分类规则KNN 算法的分类规则非常简单,可以概括为以下三个步骤:(1)计算数据点之间的距离:首先,需要计算数据集中每个数据点之间的距离。
通常使用欧氏距离、曼哈顿距离等度量方法。
(2)确定邻居数据点:根据距离度量,找到距离目标数据点最近的 k 个数据点。
这里 k 是一个超参数,可以根据实际问题和数据集的特点进行选择。
(3)决定目标数据点的类别:根据邻居数据点的类别,决定目标数据点的类别。
如果邻居数据点的类别多数为某一类别,则目标数据点也被划分为该类别;否则,目标数据点不被划分为任何类别。
3.KNN 算法的优缺点KNN 算法的优点包括:简单易懂、易于实现、对数据集的噪声不敏感、能够很好地处理不同密度的数据等。
然而,KNN 算法也存在一些缺点,如计算量大、需要存储所有数据点、对 k 的选择敏感等。
4.KNN 算法的应用实例KNN 算法在许多领域都有广泛的应用,例如文本分类、图像分类、生物信息学、金融风险管理等。
例如,在文本分类任务中,可以将文本表示为特征向量,然后使用 KNN 算法根据特征向量的距离对文本进行分类。
总之,KNN 算法是一种简单且易于实现的分类方法,适用于各种数据集和领域。
K最近邻算法

K最近邻算法K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。
所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。
该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
kNN方法在类别决策时,只与极少量的相邻样本有关。
由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。
KNN算法的机器学习基础显示相似数据点通常如何彼此靠近存在的图像大多数情况下,相似的数据点彼此接近。
KNN算法就是基于这个假设以使算法有用。
KNN利用与我们童年时可能学过的一些数学相似的想法(有时称为距离、接近度或接近度),即计算图上点之间的距离。
例如,直线距离(也称为欧氏距离)是一个流行且熟悉的选择。
KNN通过查找查询和数据中所有示例之间的距离来工作,选择最接近查询的指定数字示例( K ),然后选择最常用的标签(在分类的情况下)或平均标签(在回归的情况下)。
在分类和回归的情况下,我们看到为我们的数据选择正确的K是通过尝试几个K并选择最有效的一个来完成的。
KNN算法的步骤1.加载数据2.将K初始化为你选择的邻居数量3.对于数据中的每个示例4.3.1 根据数据计算查询示例和当前示例之间的距离。
5.3.2 将示例的距离和索引添加到有序集合中6.按距离将距离和索引的有序集合从最小到最大(按升序)排序7.从已排序的集合中挑选前K个条目8.获取所选K个条目的标签9.如果回归,返回K个标签的平均值10.如果分类,返回K个标签的模式'为K选择正确的值为了选择适合你的数据的K,我们用不同的K值运行了几次KNN算法,并选择K来减少我们遇到的错误数量,同时保持算法在给定之前从未见过的数据时准确预测的能力。
K-近邻算法

K-近邻算法目录一、K-近邻算法优缺点二、K.近邻算法工作原理及示例三、K-近邻算法的一般流程四、准备:使用Python导入数据通实施kNN分类算法六、示例L改进约会网站的配对结果七:示例2:手写识别系统K-近邻算法优缺点简单地说,K.近邻算法(又称KNN)采用测量不同特征值之间的距离方法进行分类。
其优缺点及适用数据范围如下:优点:精度高、对异常值不敏感、无数据输入假定。
缺点:计算复杂度高、空间复杂度高。
适用数据罐;数值型和标称型。
示例:手写识别系统3.测试算法:之前我们将数据处理成分类器可以识别的格式,现在我们将这些数据输入到分类器,检测分类器的执行效果。
def handwritingClassTest():hwLabels=[]trainingFileList=listdirCtrainingDigits*)#获取目录中的文件内容存储于列表中m=len(trainingFileList)trainingMat=zeros((m,1024))for i in range(m):fileNameStr二traininTFileList【ilfileStr二fileNameStr・split(?H01tftake off・txta trainingMat[i/]=i mg2vector('tra i n i ng Digits/%s,%fileNameStr)dassNumStr二int(fileStr・split(''HOI)#从文件名解析分类数字hwLabels.append(classNumStr)testFileList=listdir('testDigits')iterate through the test seterrorCount=0.0mTest=len(testFileList)for i in range(mTest):fileNameStr=testFileList[i]fileStr=fileNameStr.split('.')[O]#take off.txtclassNumStr=int(fileStr.split('_')vectorUnderTest=img2vector('testDigits/%s'%fileNameStr)classifierResult=classify Of^ectorUnderTest,trainingMat,hwLabels,3)print"the classifier came back with:%d,the real answer is:%d"%(classifierResult,classNumStr)if(classifierResult!=classNumStr):errorCount+=1.0print"\nthe total number of errors is:%d"%errorCountprint”\nthe total error rate is:%f"%(errorCount/float(mTest))示例:手写识别系统(2)上述代码所示的自包含函数handwritingClassTest。
机器学习:K-近邻算法(KNN)

机器学习:K-近邻算法(KNN)机器学习:K-近邻算法(KNN)⼀、KNN算法概述KNN作为⼀种有监督分类算法,是最简单的机器学习算法之⼀,顾名思义,其算法主体思想就是根据距离相近的邻居类别,来判定⾃⼰的所属类别。
算法的前提是需要有⼀个已被标记类别的训练数据集,具体的计算步骤分为⼀下三步:1、计算测试对象与训练集中所有对象的距离,可以是欧式距离、余弦距离等,⽐较常⽤的是较为简单的欧式距离;2、找出上步计算的距离中最近的K个对象,作为测试对象的邻居;3、找出K个对象中出现频率最⾼的对象,其所属的类别就是该测试对象所属的类别。
⼆、算法优缺点1、优点思想简单,易于理解,易于实现,⽆需估计参数,⽆需训练;适合对稀有事物进⾏分类;特别适合于多分类问题。
2、缺点懒惰算法,进⾏分类时计算量⼤,要扫描全部训练样本计算距离,内存开销⼤,评分慢;当样本不平衡时,如其中⼀个类别的样本较⼤,可能会导致对新样本计算近邻时,⼤容量样本占⼤多数,影响分类效果;可解释性较差,⽆法给出决策树那样的规则。
三、注意问题1、K值的设定K值设置过⼩会降低分类精度;若设置过⼤,且测试样本属于训练集中包含数据较少的类,则会增加噪声,降低分类效果。
通常,K值的设定采⽤交叉检验的⽅式(以K=1为基准)经验规则:K⼀般低于训练样本数的平⽅根。
2、优化问题压缩训练样本;确定最终的类别时,不是简单的采⽤投票法,⽽是进⾏加权投票,距离越近权重越⾼。
四、python中scikit-learn对KNN算法的应⽤#KNN调⽤import numpy as npfrom sklearn import datasetsiris = datasets.load_iris()iris_X = iris.datairis_y = iris.targetnp.unique(iris_y)# Split iris data in train and test data# A random permutation, to split the data randomlynp.random.seed(0)# permutation随机⽣成⼀个范围内的序列indices = np.random.permutation(len(iris_X))# 通过随机序列将数据随机进⾏测试集和训练集的划分iris_X_train = iris_X[indices[:-10]]iris_y_train = iris_y[indices[:-10]]iris_X_test = iris_X[indices[-10:]]iris_y_test = iris_y[indices[-10:]]# Create and fit a nearest-neighbor classifierfrom sklearn.neighbors import KNeighborsClassifierknn = KNeighborsClassifier()knn.fit(iris_X_train, iris_y_train)KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',metric_params=None, n_jobs=1, n_neighbors=5, p=2,weights='uniform')knn.predict(iris_X_test)print iris_y_testKNeighborsClassifier⽅法中含有8个参数(以下前两个常⽤):n_neighbors : int, optional (default = 5):K的取值,默认的邻居数量是5;weights:确定近邻的权重,“uniform”权重⼀样,“distance”指权重为距离的倒数,默认情况下是权重相等。
k近邻分类算法

k近邻分类算法
K近邻分类算法是机器学习领域中使用最广泛的分类算法,它是一种基于实例的学习方法,被用于无监督学习和监督学习。
它主要由三部分组成:距离计算函数、k值的选择、分类决策的规则。
K近邻分类算法的基本原理是将新实例与已知实例进行比较,即新实例的属性值与已知实例的属性值通过某种距离函数的计算来比较,确定它们之间的距离,最后选择与新实例最近的K个已知实例,这K个实例的类别决定新实例的类别。
K近邻分类算法具有简单、快速等优点,适用于较小数据集,它可以较快速地确定新数据。
另外,它可以处理离散型和连续型属性。
缺点是当特征值的取值范围比较大时,K近邻分类算法的性能会下降,容易发生过拟合问题,而且K近邻分类算法不能给出任何数据的基础结构信息。
K近邻分类算法通常有三步:第一步,计算新数据与每个样本点的距离;第二步,选取距离最近的k个样本点,这K个样本点称为该新数据的K近邻;第三步,统计K个样本点中各类别出现的频率,新数据属于哪类,就以频率最高的类别作为新数据的类别。
K近邻分类算法的变体有很多,比如累积k近邻分类算法,它将K个近邻的数据点的概率加起来,然后从概率最大的分类中选择类别。
另外,还有加权K近邻分类算法,它给距离近的数据点更高的权重,这样近邻数据点的影响力更大。
K近邻分类算法的应用也非常广泛,比如可以用于数据分类,比
如垃圾邮件分类、文本分类;可以用于图像分类;可以用于数据挖掘,比如推荐系统;也可以用于聚类分析。
总之,K近邻分类算法是一种简单有效的分类算法,它抛弃了对数据进行建模和解释的过程,着重于实例计算过程,可以快速获得结果,应用范围也非常广泛。
k-近邻分类算法

k-近邻分类算法K近邻分类算法是一种基于实例的分类算法,它的主要思想是通过计算每个样本点与其周围的k个最近邻点的距离来确定该点的类别。
该算法主要应用于分类问题中,并且在实际应用过程中具有很好的可用性、易实现性和理解性。
算法原理算法首先通过确定k值来确定分类的邻域大小,以及根据k值的选择来确定分类的准确性和鲁棒性。
之后通过计算每个样本点与其邻域内k个最近邻点之间的距离来确定该样本点所属的分类。
具体流程如下:1.确定数据集中的k值和距离度量标准;2.对于每个待分类的样本点,计算与其邻域中k个最近邻点之间的距离;3.根据邻域中k个最近邻点的类别来确定该样本点所属的类别;4.重复步骤2和3,直到所有待分类的样本点均被分类完毕;5.给出分类结果。
距离度量标准在k-近邻分类算法中,距离度量标准是非常重要的,因为它决定了样本点之间距离的计算方式。
目前常见的距离度量标准有欧式距离、曼哈顿距离和切比雪夫距离。
欧式距离:$d=\sqrt{{\sum_{i=1}^{n}{(x_i-y_i)^2}}}$优缺点1.基于实例,不需要对数据进行任何假设和理论分析;2.算法的可预测性高,具有很好的分类性能;3.没有过拟合的现象,可以对复杂的数据集进行分类;4.整体而言,k-近邻分类算法非常容易理解和实现。
1.计算量比较大,对于大型数据集而言,算法的效率较低;2.对于高维数据集而言,容易出现维数灾难问题,即算法的效果会逐渐降低;3.容易受到异常值的影响,且在分类决策区域方面可能存在不连续的问题。
应用场景k-近邻分类算法广泛应用于模式识别、数据挖掘和生物信息学等领域,特别适合处理较小的数据集。
目前该算法已被应用于医疗诊断、电子商务、物联网等领域,既可以用于分类问题,也可以用于回归问题。
同时,对于分类问题而言,该算法并不适用于类别数比较多或类别间存在相互交叉的情况。
因此,在实际应用过程中,应根据具体情况来选择算法,以达到最佳的分类效果。
k近邻分类算法

第2章k-近邻算法(kNN)引言本章介绍kNN算法的基本理论以及如何使用距离测量的方法分类物品。
其次,将使用python从文本文件中导入并解析数据,然后,当存在许多数据来源时,如何避免计算距离时可能碰到的一些常见的错识。
2.1 k-近邻算法概述k-近邻(k Nearest Neighbors)算法采用测量不同特征之间的距离方法进行分类。
它的工作原理是:存在一个样本数据集合,并且样本集中每个数据都存在标签,即我们知道样本每一数据与所属分类的对应关系。
输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据的分类标签。
一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。
最后,选择k个最相似数据中出现次数最多的分类,作为新数据的分类。
k-近邻算法的优点是精度高,对异常值不敏感,无数据输入假定;缺点是计算复杂度高、空间复杂度高。
适用于数值和离散型数据。
2.1.1 准备知识:使用python导入数据首先,创建名为kNN.py的python模块,然后添加下面代码:from numpy import * #引入科学计算包import operator #经典python函数库。
运算符模块。
#创建数据集def createDataSet():group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])labels=['A','A','B','B']return group,labels测试:>>> import kNN>>> group,labels=kNN.createDataSet()注意:要将kNN.py文件放到Python27文件夹下,否则提示找不到文件。
2.2.2 实施kNN算法使用k-近邻算法将每组数据划分到某个类中,其伪代码如下:对未知类别属性的数据集中的每个点依次执行以下操作:1.计算已知类别数据集中的点与当前点之间的距离;2.按照距离递增交序排序;3.选取与当前点距离最小的k个点;4.确定前k个点所在类别的出现频率;5.返回前k个点出现频率最高的类别作为当前点的预测分类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K近邻分类算法(K –nearest neighbors,简称KNN)
1算法的提出与发展
最初的近邻法是由Cover和Hart与1968年提出的,随后得到理论上深入的分析与研究,是非参数法中最重要的方法之一。
2算法原理
2.1 基本原理
最近邻方法(k-nearest neighbor,简称kNN)是一种简洁而有效的非参数分类方法,是最简单的机器学习算法之一,该算法最初由Cover和Hart提出的,用于解决文本的分类问题。
K 近邻算法是最近邻算法的一个推广。
该规则将是一个测试数据点x分类为与它最接近的K 个近邻中出现最多的那个类别。
K 近邻算法从测试样本点x开始生长,不断的扩大区域,直到包含进K 个训练样本点为止,并且把测试样本点x归为这最近的K 个训练样本点中出现频率最大的类别。
其中测试样本与训练样本的相似度一般使用欧式距离测量。
如果K 值固定,并且允许训练样本个数趋向于无穷大,那么,所有的这K 个近邻都将收敛于x。
如同最近邻规则一样,K 个近邻的标记都是随机变量,概率P(w i|x),i=1,2,…,K 都是相互独立的。
假设P(w m|x)是较大的那个后验概率,那么根据贝叶斯分类规则,则选取类别w m。
而最近邻规则以概率P(w m|x)选取类别。
而根据K近邻规则,只有当K个最近邻中的大多数的标记记为w m,才判定为类别w m。
做出这样断定的概率为
通常K值越大,选择类别w m概率也越大。
2.2K值的选择
K近邻规则可以被看作是另一种从样本中估计后验概率P(w i|x)的方法。
为了得到可高的估计必须是的K值越大越好。
另一方面,又希望又希望x的K 个近邻x 距离x1越近越好,因为这样才能保证P(w i|x1)尽可能逼近P(w i|x)。
在选取K 值的时候,就不得不做出某种折衷。
只有当n趋近于无穷大时,才能保证K 近邻规则几乎是最优的分类规则。
K值的选择:需要消除K值过低,预测目标容易产生变动性,同时高k值时,预测目标有过平滑现象。
推定k值的有益途径是通过有效参数的数目这个概念。
有效参数的数目是和k值相关的,大致等于n/k,其中,n是这个训练数据集中实例的数目。
确定K的值:通过实验确定。
进行若干次实验,取分类误差率最小的k值。
2.3算法步骤
1)依公式计算Item 与D1、D2 ……、Dj 之相似度。
得到Sim(Item, D1)、Sim(Item,
D2)……、Sim(Item, Dj)。
2)将Sim(Item, D1)、Sim(Item, D2)……、Sim(Item, Dj)排序,若是超过相似度门槛t则放入
邻居案例集合NN。
3)自邻居案例集合NN中取出前k名,依多数决,得到Item可能类别。
3KNN优缺点
优点:1)原理简单,实现起来比较方便;
2)支持增量学习;
3)能对超多边形的复杂决策空间建模。
缺点:1)样本的不均衡可能造成结果错误:如果一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数。
2)计算量较大,需要有效的存储技术和并行硬件的支撑:因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。
4KNN的改进
针对上述KNN算法的几个主要缺陷,主要有以下三类改进方法:
1)为了降低样本的不均衡对结果造成的不好影响可以采用权值的方法(和该样本距离小的邻居权值大)来改进。
2)对于计算量大的问题目前常用的解决方法是事先对已知样本点进行剪辑,事先去除对分类作用不大的样本。
这样可以挑选出对分类计算有效的样本,使样本总数合理地减少,以同时达到减少计算量,有减少存储量的双重效果。
该算法比较适用于样本容量比较大的类域的自动分类,而那些样本容量较小的类域采用这种算法比较容易产生误分。
3)对样本进行组织与整理,分群分层,尽可能将计算压缩到在接近测试样本领域的小范围内,避免盲目地与训练样本集中的每个样本进行距离计算。
4.1 快速搜索近邻法
其基本思想是将样本集按邻近关系分解成组,给出每组的质心所在,以及组内样本至该质心的最大距离。
这些组又可形成层次结构,即组又分子组,因而待识别样本可将搜索近邻的范围从某一大组,逐渐深入到其中的子组,直至树的叶结点所代表的组,确定其相邻关系。
这种方法着眼于只解决减少计算量,但没有达到减少存储量的要求。
用树结构表示样本分级:
➢p: 树中的一个结点,对应一个样本子集K p
➢N p : K p中的样本数
➢M p : K p中的样本均值
➢r p : 从K p中任一样本到M p的最大距离
◆规则1:
如果满足:
则K p中的样本都不可能是x的最近邻,B是算法执行中当前到x的最近距离
◆规则2:
如果满足:
则x i不是x的最近邻
4.2剪辑近邻法
其基本思想是,利用现有样本集对其自身进行剪辑,将不同类别交界处的样本以适当方式筛选,可以实现既减少样本数又提高正确识别率的双重目的。
剪辑的过程是:将样本集K N分成两个互相独立的子集:test集K T和reference集K R。
首先对K T中每一个X i在K R中找到其最近邻的样本Y i(X i) 。
如果Y i与X i不属于同一类别,则将X i从K T中删除,最后得到一个剪辑的样本集K TE(剪辑样本集),以取代原样本集,对待识别样本进行分类。
4.3压缩近邻法
利用现有样本集,逐渐生成一个新的样本集,使该样本集在保留最少量样本的条件下,仍能对原有样本的全部用最近邻法正确分类,那末该样本集也就能对待识别样本进行分类,并保持正常识别率。
定义两个存储器,一个用来存放即将生成的样本集,称为Store;另一存储器则存放原样本集,称为Grabbag。
其算法是:
1)初始化。
Store是空集,原样本集存入Grabbag;从Grabbag中任意选择一样本放入Store
中作为新样本集的第一个样本。
2)样本集生成。
在Grabbag中取出第i个样本用Store中的当前样本集按最近邻法分类。
若分类错误,则将该样本从Grabbag转入Store中,若分类正确,则将该样本放回Grabbag 中。
3)结束过程。
若Grabbag中所有样本在执行第二步时没有发生转入Store的现象,或
Grabbag已成空集,则算法终止,否则转入第二步。
5KNN应用举例
(1)文本分类
该算法的基本思路是:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的K 篇文本,根据这K 篇文本所属的类别判定新文本所属的类别,具体的算法步骤如下:
STEP 1:根据特征项集合重新描述训练文本向量
STEP 2:在新文本到达后,根据特征词分词新文本,确定新文本的向量表示
STEP 3:在训练文本集中选出与新文本最相似的K 个文本,计算公式为:
其中,K 值的确定目前没有很好的方法,一般采用先定一个初始值,然后根据实验测试的结果调整K 值,一般初始值定为几百到几千之间。
STEP 4:在新文本的K 个邻居中,依次计算每类的权重,计算公式如下:
其中,x为新文本的特征向量,Sim(x,di)为相似度计算公式,与上一步骤的计算公式相同,而y(di,Cj)为类别属性函数,即如果di 属于类Cj ,那么函数值为1,否则为0。
STEP 5:比较类的权重,将文本分到权重最大的那个类别中。
(2)电影类别的判定
简单说一下这个数据的意思:这里用打斗次数和接吻次数来界定电影类型,如上,接吻多的是Romance类型的,而打斗多的是动作电影。
还有一部名字未知(这里名字未知是为了防止能从名字中猜出电影类型),打斗次数为18次,接吻次数为90次的电影,它到底属于哪种类型的电影呢?
KNN算法要做的,就是先用打斗次数和接吻次数作为电影的坐标,然后计算其他六部电影与未知电影之间的距离,取得前K个距离最近的电影,然后统计这k个距离最近的电影里,属于哪种类型的电影最多,比如Action最多,则说明未知的这部电影属于动作片类型。