KNN分类器
监督学习
knn:通过样本和样本之间的距离来进行分类
样本属于临近样本中大多数样本的归属类
- 1.基于python 设计knn分类器
- 2.数据获取:txt、csv、xlsx
- 3.测试算法
- 4.使用算法
注: 若是各特征之间的数据级差距过大,将会影响分类效果,所以分类之前要进行数据处理
1. knn核心算法(python)
## knn.py
import numpy as np
import operator
def knn(X, dataSet, label, k):
## 分类器:knn分类算法的python实现
## X:一待分类样本的特征集;dataSet:模型的训练集;k:k类
diff = np.tile(X, (dataSet.shape[0], 1)) - dataSet
d = (diff**2).sum(axis=1)**0.5
sortd1 = d.argsort()
classCount = {
}
for i in range(k):
votell = label[sortd1[i]]
classCount[votell] = classCount.get(votell, 0)+1
sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
2. 数据归一化
## normalization.py