机器学习(1)--机器学习实战学习记录

在新环境linux和不太熟悉的python语言环境下开始了机器学习的学习。

首先学的就是k近邻算法。

k近邻算法很简单,简单来说,就是在一个平面坐标系上给出一些坐标,其中一些标记为A,一些标记为B,将他们作为训练样本,输入测试样本的时候,k近邻算法会根据测试样本的坐标,算出训练样本中所有点离该点的距离,取最近的前k个点中大部分点属于的那个类别标记作为该点的标记。


这是书上一个样例代码

from numpy import *
import operator

def createDataSet():
	group = array([[1,1.1],[1,1],[0,0],[0,0.1]])
	labels = ['A','A','B','B']
	return group,labels

def classify0(inX, dataSet, labels, k): 
	#inX is the data needed to be classsified
	#dataSet is sample training data
	#k is how many nearest neighbors should be choosed
    dataSetSize = dataSet.shape[0]
    #shape[0] is the length of row, shape[1] is of coloum
    diffMat = tile(inX, (dataSetSize,1)) - dataSet
    #tile means new a x*y matrix,x is row. with all pivot is inX
    print diffMat
    sqDiffMat = diffMat**2
    print sqDiffMat
    sqDistances = sqDiffMat.sum(axis=1)
   # c = np.array([[0, 2, 1], [3, 5, 6], [0, 1, 1]])
    #print c.sum()
    #print c.sum(axis=0)
    #print c.sum(axis=1)
    #answers are 19, [3 8 8], [ 3 14  2]
    print sqDistances


这是学习这个代码的笔记

note for mathine learing

python{
	1.reload()
	2.Python 字典(Dictionary) get()函数返回指定键的值,如果值不在字典中返回默认值。
	3.sorted{
		描述

		sorted() 函数对所有可迭代的对象进行排序操作。

		    sort 与 sorted 区别:

		    sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

		    list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

		语法

		sorted 语法:

		sorted(iterable[, cmp[, key[, reverse]]])

		参数说明:

		    iterable -- 可迭代对象。
		    cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
		    key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
		    reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

	}
	4.dict.iteritems():将字典转化成二元列表
	5.x.itergetter(a):获取x第a个域的元素
}

numpy{
	1.array and matrix are different.
	2.mat(array): from array to mat
	3. Matname.I: the reverse of Matname
	4.matname.shape:建立一个4×2的矩阵c, c.shape[1]为第一维的长度,c.shape[0] 为第二维的长度。
	5.tile numpy.tile([0,0],(2,1))#在列方向上重复[0,0]1次,行2次
	6.argsort(): sort and return index

}

看了一下书上的kNN手写识别算法,想通过python+opencv实现一个用k近邻算法识别鼠标做图做出的数字图像。同时学习一下opencv,熟悉一下python。

KNN手写识别算法已经发在另一篇博客里面了。


刚刚发现可以直接通过opencv调用knn算法


knn = cv2.ml.KNearest_create()
knn.train(trainData,responses)
ret, results, neighbours ,dist = knn.find_nearest(newcomer, 3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值