機械学習実戦2-12-2
2523 ワード
機械学習実戦という本は私のような初心者に向いています.本では重要な機械学習アルゴリズムとpython実装コードを紹介した.プログラミング能力が一般的なため、私は勉強の過程で多くの分からないコードに出会った.心を込めて注釈をして、書き続けて、自分を向上させて、入門の学習者を助けることができることを望んでいます.筆者の能力には限界があり、間違ったところは読者に指摘して理解してほしい.
第二章K~近隣アルゴリズム
準備:
from numpy import*import operatordef createDataSet():group=array([1.0,1.1],[1.0,1.0],[0,0],[0,0.1])#データセット.4つの点座標labels=['A','A','B','B']#ラベルを含む
return group,labels
プログラムリスト2-1
第二章K~近隣アルゴリズム
準備:
from numpy import*import operatordef createDataSet():group=array([1.0,1.1],[1.0,1.0],[0,0],[0,0.1])#データセット.4つの点座標labels=['A','A','B','B']#ラベルを含む
return group,labels
プログラムリスト2-1
def classify0(inX,dataSet,labels,k):#inX: ,dataSet: , CReatDataSet group,labels: ,k
dataSetSize = dataSet.shape[0]#
diffMat = tile(inX,(dataSetSize,1)) - dataSet#tile ,inX , datasetsize , , dataset
sqDiffMat = diffMat**2# , ,
sqDistances = sqDiffMat.sum(axis=1)#sum axis 1 , 0 ~
distances = sqDistances**0.5# , ,
sortedDistIndicies = distances.argsort()# (argsort ), ,
classCount = {}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]]# K ,sorteddistindicies[i] group , labels
classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1# , +1,get , voteilabel , 0
sortedClassCount = sorted(classCount.iteritems(),key = operator.itemgetter(1),reverse = True)#sorted , reverse True ,operator itemgetter , 。 iteritems() python3.0 , items(),
return sortedClassCount[0][0]# ,
プログラムリスト2-2# Numpy
def file2matrix(filename):
fr = open(filename)# , , , open('F:\\ \\MLiA_SourceCode\\machinelearninginaction\\Ch02\\datingTestSet.txt')
arrayOLines = fr.readlines()# ,
numberOfLines = len(arrayOLines)# ,
returnMat = zeros((numberOfLines,3))# numberOfLines ,3
classLabelVector = []
index = 0
for line in arrayOLines:
line = line.strip()#strip
listFromLine = line.split('\t')# tab('\t')
returnMat[index,:] = listFromLine[0:3]#listFromLine[0:3] , returnMat[index,:] , index , index
classLabelVector.append(int(listFromLine[-1]))# -1 ,
index += 1
return returnMat,classLabelVector
自分でずっと书くことができることを望んで、同じくいくつかの人を助けることができることを望んで、みんなはいっしょに进歩します