机器学习入门书籍:《机器学习实践》读书笔记

机器学习入门书籍:《机器学习实践》读书笔记(一)kNN

这里是书上的第一段代码
嗯,虽然很简单,但是写出来真的很有成就感的说(毕竟这里是大一的零基础(自闭
书上是要将电影分类,数据的结构如下:

【标签(labels):【横坐标:亲吻次数】【纵坐标:打斗场景】】
数据是用小数字取代了的,这样方便计算

东西全写在注释里面了呀~

代码段:

// 这里是源码君
>>> from numpy import*
>>> import operator
>>> def createDataSet():
	dataset = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])//初始化数据集,每一行都是一个二维坐标
	labels = ["爱情片","爱情片","动作片","动作片"]//初始化标签
	return dataset,labels//设定返回值

>>> a,b=createDataSet()
>>> def classifier(inX,dataSet,labels,k):
	dataSetSize = dataSet.shape[0]//找出数据集的行数
	diffMat = tile(inX,(dataSetSize,1)) - dataSet//用numpy自带函数tile将inX,也就是欲将考察的点坐标“以行为单位,重复dataset的行数那么多遍”
	sqDiffMat=diffMat**2//“**2”将两点坐标差分别平方
	sqDistances=sqDiffMat.sum(axis=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]

输入 :

// 这里是输入君
classifier([0,0],a,b,3)

输出:

// 这里是输出君
“动作片”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值