机器学习实战:KNN 代码注释(python)
2017-06-29 23:01
731 查看
基础部分注释:
上述是knn部分的代码,使用方式为
group, labels = kNN.createDataSet();#创建数据集
kNN.classify0([0,0], group, labels, 3);#
归一化特征值:
normMat, ranges, minvals = kNN.autoNorm(datingDataMat)
先写到这里。。
from numpy import * import operator from os import listdir
def createDataSet(): group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels = ['A','A','B','B'] return group, labels
def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0]#第一维的值,例如dataSet为group,则结果为4 diffMat = tile(inX, (dataSetSize,1)) - dataSet#求差,tile作用:重复,后面是沿着各个维度重复次数 sqDiffMat = diffMat**2#求差的平方 sqDistances = sqDiffMat.sum(axis=1)#axis = 1每一行相加,axis = 0每一列相加 distances = sqDistances**0.5 sortedDistIndicies = distances.argsort()#将元素从小到大排列,并输出下标的index classCount={} for i in range(k): voteIlabel = labels[sortedDistIndicies[i]] classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1#存入当前label以及对应的类别值,d.get(k, v)意思是如果k在d中,则返回d[k],否则返回v sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)#对类别字典进行逆排序,级别数目多的往前放,operator.it 8aa9 emgetter(1)代表和元素的第一个域进行比较 return sortedClassCount[0][0]
上述是knn部分的代码,使用方式为
group, labels = kNN.createDataSet();#创建数据集
kNN.classify0([0,0], group, labels, 3);#
归一化特征值:
def autoNorm(dataSet): minVals = dataSet.min(0) maxVals = dataSet.max(0) ranges = maxVals - minVals normDataSet = zeros(shape(dataSet)) m = dataSet.shape[0] normDataSet = dataSet - tile(minVals, (m,1)) normDataSet = normDataSet/tile(ranges, (m,1)) #element wise divide return normDataSet, ranges, minVals使用方法:
normMat, ranges, minvals = kNN.autoNorm(datingDataMat)
先写到这里。。
相关文章推荐
- 机器学习实战 第二章KNN(1)python代码及注释
- 机器学习实战_初识kNN算法_理解其python代码
- 读书笔记:机器学习实战(1)——章2的knn代码和个人改进与注释
- 机器学习实战之KNN算法识别手写数字_代码注释
- 代码注释:机器学习实战第7章 利用AdaBoost元算法提高分类性能
- 机器学习实战--KNN代码解析
- 机器学习实战python版归一化数值和测试kNN算法以及构建完整可用系统
- 代码注释:机器学习实战第8章 预测数值型数据:回归
- 基于Python的机器学习实战:KNN
- 机器学习实战python版第三章决策树代码理解
- 机器学习实战 KNN代码
- 机器学习实战-AdaBoost-python代码
- Python 学习笔记(Machine Learning In Action)K-近邻算法(KNN)机器学习实战
- 机器学习实战代码 第三章3-1注释
- 代码注释:机器学习实战第5章 Logistic回归
- 代码注释:机器学习实战第12章 使用FP-growth算法来高效发现频繁项集
- 机器学习实战——python实现knn算法
- 代码注释:机器学习实战第10章 利用K-均值聚类算法对未标注数据分组
- 机器学习实战-边学边读python代码(5)
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(二)