拖了很久本该写下的,前几天学习了python的基本操作和numpy,matplotlib库等。昨天实现了一个《机器学习实战》的例子,很好的一本书,讲解很清晰并且csdn能下载全套的数据。
很简单的一个例子,讲解了KNN分类器的基本应用,kNN的基本知识不在此赘述,numpy和matplotlib的基本知识也可以在百度经验上查到。
接下来进行一个更复杂的KNN分类器问题,约会网站的预测。
执行代码:
import kNN
group, lavels = kNN.createDataSet()
group
lavels
kNN.kNN([0, 0], group, lavels, 3)
kNN.py代码
#!/usr/bin/python
#coding=utf-8
#k近邻
from numpy import *
import operator
#数据集
def createDataSet():
group = array([[1.0, 1.1],[1.0, 1.0], [0.1, 0], [0, 0]])
labels = ('A', 'A', 'B', 'B')
return group, labels
#kNN
def kNN(inX, group, labels, k):
lines = group.shape[0]
a = tile(inX ,(lines, 1)) - group
a = a ** 2
sq = a.sum(axis = 1)
sq = sq ** 0.5
sq = sq.argsort()
dic = {}
for i in range(0, k):
label = labels[sq[i]]
dic[label] = dic.get(label, 0) + 1
res = sorted(dic.iteritems(), key = operator.itemgetter(1), reverse = True)
return res[0][0]