k近邻算法

时间:2021-04-02 19:45:21

k 近邻算法是一种基本分类与回归方法。我现在只是想讨论分类问题中的k近邻法。k近邻算法的输入为实例的特征向量,对应于特征空间的点,输出的为实例的类别。k邻近法假设给定一个训练数据集,其中实例类别已定。分类时,对新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。下面主要叙述k近邻算法,k近邻算法的模型和三个基本要素(距离度量、k值的选择、分类决策规则)

k近邻算法

k近邻算法简单、直观:给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最近邻的k个实例,这k个实例的多数属于某个类,就把该输入的实例分为这一类。

算法:(k近邻法)

输入:训练数据集

T={(x1,y1),(x2,y2)...(xN,yN)}

其中,xi属于Rn  为实例的特征向量,yi 属于 Y={c1,c2,...cK}为实例的类别,i=1,2,...N, ,实例特征向量x;

输出:实例x所属的类。

(1)根据给定的距离度量,在训练数据T中找出与x最近邻的k个点,涵盖这k个点的x的邻域记作Nk(x);

(2)在Nk(x)中根据根据分类决策规则决定x的类别y:

y=arg max sum I(yi=cj)   (i=1,2,...N)(j=1,2,...K)

I为指示函数,即当yi=cj时为1,否则为0.

k近邻法的特殊情况是k=1的情形,称为最近邻算法。对于输入的实例点x,最近邻法将训练数据中与x最邻近的点作为x的类。