您的位置:首页 > 编程语言 > Python开发

Python机器学习应用--KNN

2017-06-03 22:31 225 查看

KNN近邻分类器

一般步骤

1.计算待分类数据点,与已有数据集中的所有数据点的距离

2.取距离最小的前k个点,根据“少数服从多数”,将数据点划分为出现次数最多的那个类别

sklearn中的KNN

使用sklearn.neighbors.KNeighborsClassifier创建KNN分类器,主要参数:

n_neighbors:指定分类器中K的大小(默认值为5)

weights:设置K个点对分类结果影响的权重(默认值为平均权重“uniform”,可以选择“distance”,代表越近的点权重越大,或者传入自己编写的以距离为参数的权重计算函数

algorithm:设置用户计算临近点的方法;当数据量很大时,计算当前点与所有点的距离再选出最近的K各点,计算费时

ball_tree、kd_tree、brute选项,分别代表寻找邻居的优化算法,默认为auto,根据训练数据自动选择

其他参数:

注意参数P:

整数,可选(默认为2)

1 曼哈顿距离

2 欧式距离



2.来个小例子

来自KNeighborsClassifier文档




关于K的取值:

较大–较大领域中的数据实例进行预测,可以减小估计误差,但距离较远的样本也会对预测起作用,导致预测错误

较小–如果领域恰好是噪声点,会导致过拟合

一般,倾向于选择较小的K值,使用交叉验证法选取最优K值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息