机器学习: 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
相关文章推荐
- LeetCode OJ——Submission Details
- c++_5: 函数的特性
- TCP及socket通信原理
- 建立升序链表
- 求车速
- 读入bmp格式图像文件
- uva 1631——Locker
- 第三个Sprint ------第七天
- STM32启动方式
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
- Android 高仿微信(QQ)滑动弹出编辑、删除菜单效果,增加下拉刷新功能
- 数据结构中表达式求值问题
- Double Cola
- 参加南京未来网络SDN大会的整理
- 引擎设计跟踪(九.14.2j) TableView工具填坑以及多国语言
- 杭电 3665 Seaside(最短路)(弗洛伊德过)
- JavaWeb自学之html学习笔记 Day-1
- 5.2 calendar--通用日期的相关函数(3)
- 黑马程序员--Java编程之API阶段总结
- 5.2 calendar--通用日期的相关函数(3)