您的位置:首页 > 其它

机器学习: k-近邻(kNN)

2015-12-13 19:23 155 查看

1. k-nn描述:

给定一个训练数据集,对于新输入的实例,在训练集中找到与该实例最近的k个实例,统计这k个实例中多数的类别,就把该类别作为新输入实例的类别。

2. 参数:

距离度量:

Lp距离(欧式距离、曼哈顿距离等)、皮尔逊距离、夹脚余弦距离。。。





k的选择:

如果k较小,相当于模型过于复杂,容易过拟合;

k过大,相当于模型变得简单,容易欠拟合。

在应用中,k值一般取一个比较小的数值。通常采用交叉验证法来选取最优的k值。



3. python代码:

我的实现:

https://github.com/autoliuweijie/MachineLearning/tree/master/kNN

sickit-learn:

python:

#Import Library
from sklearn.neighbors import KNeighborsClassifier
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create KNeighbors classifier object model
KNeighborsClassifier(n_neighbors=6) # default value for n_neighbors is 5
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)


4. 扩展:



稍加改变,例如对k个实例加权,可以用于回归。

参考:

[1]《统计学习方法》 李航 2012年3月第一版
[2]《机器学习实战》 Peter Harrington
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: