Python KNN最近邻分类算法
2016-11-14 23:08
197 查看
KNN最近邻算法:利用向量之间的距离来分类。
步骤:
第一步:计算新样本与已知分类样本之间的距离。
第二步:将所求距离按从小到大排列。
第三步:选取距离最近的k个样本。
第四步:将新样本归为以上k个样本大多数中的一类。
以下为KNN最近邻分类算法的python代码:
第一部分:KNN分类代码
步骤:
第一步:计算新样本与已知分类样本之间的距离。
第二步:将所求距离按从小到大排列。
第三步:选取距离最近的k个样本。
第四步:将新样本归为以上k个样本大多数中的一类。
以下为KNN最近邻分类算法的python代码:
第一部分:KNN分类代码
# -*- coding: utf-8 -*- """ Created on Mon Feb 22 13:21:22 2016 K-NearestNeighbor """ import numpy as np import operator class KNNClassifier(): """Thisis a Nearest Neighbor classifier. """ #定义k的值 def __init__(self, k=3): self._k = k #计算新样本与已知分类样本的距离并从小到大排列 def _calEDistance(self, inSample, dataset): m = dataset.shape[0] diffMat = np.tile(inSample, (m,1)) -dataset bb47 sqDiffMat = diffMat**2 #每个元素平方 sqDistances = sqDiffMat.sum(axis = 1) #求和 distances = sqDistances** 0.5 #开根号 return distances.argsort() #按距离的从小到达排列的下标值 def _classify0(self, inX, dataSet, labels): k = self._k dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize,1)) -dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances**0.5 sortedDistIndicies = distances.argsort() classCount={} for i in range(k): voteIlabel = labels[sortedDistIndicies[i]] classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1 sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] #对一个样本进行分类 def _classify(self, sample, train_X, train_y): |
相关文章推荐
- 用python实现kNN分类算法
- python 机器学习KNN分类算法
- <基础原理进阶>机器学习算法python实现【1】--分类简谈&KNN算法
- 机器学习与数据挖掘-K最近邻(KNN)算法的实现(java和python版)
- python 实现 knn分类算法 (Iris 数据集)
- 关于K最近邻分类算法(KNN)的综述
- python起步之knn分类算法(三)
- KNN最邻近规则分类算法实践实现【Python实现】
- 数据挖掘10大算法(6)-K最近邻(KNN)算法的实现(java和python版)
- kNN:k-nearest neighbor classification(K最近邻分类算法,KNN)
- 在opencv3中实现机器学习算法之:利用最近邻算法(knn)实现手写数字分类
- K最近邻分类算法(KNN)
- 用Python开始机器学习(4:KNN分类算法)
- k最近邻算法(KNN)的简介和python实现
- 最近邻(kNN,k-NearestNeighbor), 贝叶斯(Bayes), BPNN 人工神经网络(BPNN)算法之花的分类
- 4.1 最近邻规则分类算法(KNN)
- 用Python开始机器学习(4:KNN分类算法)
- kNN:k-nearest neighbor classification(K最近邻分类算法,KNN)
- kNN分类算法python实现