码迷,mamicode.com
首页 > 编程语言 > 详细

机器学习算法学习---处理分类问题常用算法(二)

时间:2019-04-29 20:58:38      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:实现   简单的   for   eve   k-近邻算法   原理   sha   1.0   比较   

k-近邻算法采用测量不同特征值之间的距离方法进行分类。

优点:精度高、对异常值不敏感、无数据输入假定。

缺点:计算复杂度高、空间复杂度高。

适用范围:数值型、标称型。

工作原理:存在一个样本数据集合(训练样本集),并且样本集中每个数据都存在标签。输入没有标签的新数据后,将数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相近数据的分类标签。

python实现简单的KNN算法如下:

 

KNN
from numpy import *
import operator
def getDataSet():
group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])
labels=[‘A‘,‘A‘,‘B‘,‘B‘]
return group,labels
def classfy0(inX,dataSet,labels,k):
dataSetSize=dataSet.shape[0]
diffMat=tile(inX,(dataSetSize,1))-dataSet
sqdiffMat=diffMat**2
sqDistances=sqdiffMat.sum(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.items(),key=operator.itemgetter(1),reverse=True)
return sortedClassCount[0][0]
group,labels=getDataSet()
print(classfy0([0,0],group,labels,3))
 

 

该算法用到的距离计算为欧式距离公式。

机器学习算法学习---处理分类问题常用算法(二)

标签:实现   简单的   for   eve   k-近邻算法   原理   sha   1.0   比较   

原文地址:https://www.cnblogs.com/zhenpengwang/p/10792648.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!