机器学习之K近邻算法

一、K近邻算法详述

       1.算法步骤

          为了判断未知实例的实例,以已知实例的实例作为参照。

          选择参数K(K个与未知实例最近邻的点,通常k是不大于20的整数)

          计算未知实例与所有已知实例的距离。

          选择K个最近K个已知实例的点。

          根据少数服从多数的投票原则,让未知实例归类为K个最近邻样本中最多数的实例。

        2.细节

          距离的衡量方法:欧式距离、余弦值、相关度、曼哈顿距离等。

        3.训练算法需要做什么 

           选择参数K以及距离衡量方法。

        4.算法优缺点

                4.1 优点:简单、易于理解、容易实现、通过对K的选择可以去噪声。

                4.2 缺点:需要大量空间存储样本数据、算法复杂度高、不适用于样本不均衡的情况。

二、K近邻算法的sklearn用法

from sklearn import neighbors
from sklearn import datasets

knn = neighbors.KNeighborsClassifier()
knn.fit(iris.data,iris.target)
predictedLabel = knn.predict([[0.1,0.2,0.3,.04]])

三、使用K近邻分类鸢尾花

           1.鸢尾花数据集(Iris)

              实例个数:150个实例

              数据维度:蕚片长度,蕚片宽度,花瓣长度,花瓣宽度。

              分类数目:三个:Iris setosa,Iris versicolor,Iris virginica

            2.实际代码

from sklearn import neighbors
from sklearn import datasets

knn = neighbors.KNeighborsClassifier()
iris = datasets.load_iris()
print iris
knn.fit(iris.data,iris.target)
predictedLabel = knn.predict([[0.1,0.2,0.3,.04]])
print predictedLabel

四、总结

            可以看到鸢尾花的数据是已经经过特征提取的四维数据,因此使用最近邻是合适的。但是现在深度学习都是直接使用图片的像素作为输入特征,特征值多,且数据量大,使用最近邻是不适合的。

 

 

         

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值