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。