本文主要是介绍python K-Nearest Neighbor KNN算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、最初的邻近算法,分类算法,基于实例的学习,懒惰学习。
2、算法步骤:
a、为了判断未知实例类别,选择所有已知的实例作为参考
b,选择参数k
c,计算未知实例和所有已知实例的距离
d,选择最近k个已知实例
e,根据少数服从多数,让未知实例归类为k个中最多的类别
公式:E(x,y)=(xi-yi)^2求和之后再开方
import math
def ComputeEuclideanDistance(x1,y1,x2,y2):d=math.sqrt(math.pow(x1-x2),2)+math.pow((y1-y2),2)return d
算法优点:简单,便于理解,
缺点:需要大量空间存储已知实例。算法复杂度大(需要和所有已知实例比较)。当分布不平衡时,比如某一项太多,很容易被归类为这一项
改进:考虑距离,距离加上权重。 比如1/d。
这篇关于python K-Nearest Neighbor KNN算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!