Python学习-机器学习实战-ch02KNN_part1
来源:互联网 发布:python inceptor 编辑:程序博客网 时间:2024/05/17 19:56
开始学习《机器学习实战》这本书,感觉书很好,很适合我。
第二章:KNN(k近邻)part1
======================================================================================
KNN的简单实现:
KNN.py
from numpy import *import operatordef creatDataSet(): group=array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels=['A','A','B','B'] return group,labelsdef classify(inX,dataSet,labels,k): #待分类为inX #训练集为dataSet dataSetSize=dataSet.shape[0] #shape函数是numpy.core.fromnumeric中的函数 #读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。 diffMat=tile(inX,(dataSetSize,1))-dataSet #求输入向量与训练集的差 #tile位于numpy.lib.shape_base中 # 功能是重复某个数组。比如tile(A,n),功能是将数组A重复n次,构成一个新的数组, sqDiffMat=diffMat**2 sqDistances=sqDiffMat.sum(axis=1) #一般默认sum(axis=0),即普通求和 #sum(axis=1)表示矩阵的每一行向量相加 distances=sqDistances**0.5 #欧式距离 sortedDistIndicies=distances.argsort() #argsort函数返回的是数组值从小到大的索引值 classCount={} for i in range(k): voteILabel=labels[sortedDistIndicies[i]] classCount[voteILabel]=classCount.get(voteILabel,0)+1 #get函数表示:若参数voteILabel在classCount中,返回classCount[voteILabel],否则返回0 sortedClassCount=sorted(classCount.items(),key=operator.itemgetter(1),reverse=True) #sorted(iterable, cmp=None, key=None, reverse=False) #iterable:是可迭代类型;cmp:用于比较的函数,比较什么由key决定;key:用列表元素的某个属性和函数进行作为关键字; #iteritems函数是字典内的键对值 #operator.itemgetter函数用于获取对象的哪些维度的数据 #reverse:false为升序,true为降序 return sortedClassCount[0][0]
执行时,IDE的语句:
>>> import os>>> os.chdir("D:\learnPY\MachineLearningPY")>>> import KNN>>> group,labels=KNN.creatDataSet()>>> grouparray([[ 1. , 1.1], [ 1. , 1. ], [ 0. , 0. ], [ 0. , 0.1]])>>> labels['A', 'A', 'B', 'B']>>> KNN.classify([0,0],group,labels,3)'B'
这是一个KNN的简单小例子。与书中相比我加了一点备注。最近又想开始学习python,许多之前的基本结构啊,函数啊都忘了(本来就不会好吗)
加油吧!
0 0
- Python学习-机器学习实战-ch02KNN_part1
- python与机器学习实战
- bayes python 机器学习实战
- python 机器学习实战KNN
- python机器学习实战:Adaboost
- Python机器学习实战教程
- 机器学习实战python实例
- Python机器学习实战与kaggle实战
- 机器学习实战笔记(Python实现)-01-机器学习实战
- 机器学习实战笔记(Python实现)-01-机器学习实战
- 机器学习实战笔记(Python实现)-01-机器学习实战
- Python学习-机器学习实战-ch02KNN_part2
- Python学习-机器学习实战-ch02KNN_part3
- Python学习-机器学习实战-ch04 Bayes
- Python学习-机器学习实战-ch07 AdaBoost
- Python机器学习实战<二>:机器学习概述
- 从零开始机器学习实战1---python安装
- 基于Python的机器学习实战:AadBoost
- SqlServer表死锁的解决方法
- Myeclipse中快速定位到指定行
- 深度优先遍历与广度优先遍历
- JavaScript中闭包的简单应用
- View事件
- Python学习-机器学习实战-ch02KNN_part1
- 二维数组和指向指针的指针 ,指针做形参做局部变量以及内存分配
- Bitmap中的config
- 回调函数的声明及使用(序)
- IOS面试技巧
- Jquery MiNi UI V3.0 在线示例
- RabbitMQ监控(1)——RabbitMQ简介
- 理想团队模式构建的设想以及对软件流程的理解
- didReceiveMemoryWarning