1、常见的分类算法主要有:
(1)KNN算法
(2)贝叶斯方法
(3)决策树
(4)人工神经网络
(5)支持向量机(SVM)
2、KNN算法
(1)KNN应用场景:
比方说样本中有很多零食、很多电器、很多服装,给一个未知样本,把样本归于哪一类?就可以用KNN算法。分别计算未知样本和已知的每个样本之间距离,选择前K个距离最近的样本,把该未知样本归到这K个样本所在类别较多的类当中。
(2)KNN算法实现步骤
①计算已知类别数据集中的点与未知样本之间的距离。
②按照距离递增次序排序
③选取前k个点(即距离最小的k个点)
④确定前k个点所在类别的出现频率
⑤返回前k个点出现频率最高的类别作为未知样本的预测分类。
import numpy as np import operator as op def kNN(k,datasets,labels,x): datasize=datasets.shape[0] diffMat=(tile(x,(datasize,1))-datasets)**2 distance=(diffMat.sum(axis=1))**0.5 sort_distance=argsort(distance) dic_k={} for i in range(k): dic_key=labels[sort_distance[i]]] dic_k[dic_key]=dic_k.get(dic_key,0)+1 dic_count=sorted(dic_k.items(),key=operator.itemgetter(1),reverse=True) return dic_count[0][0]