机器学习实战(python)-Ch02KNN-Notes

Chapter2 KNN

1.numpy.tile函数

格式:tile(A,reps) 
* A:array_like 
* 输入的array 
* reps:array_like 
* A沿各个维度重复的次数

举例:A=[1,2] 
1. tile(A,2) 
结果:[1,2,1,2] 
2. tile(A,(2,3)) 
结果:[[1,2,1,2,1,2], [1,2,1,2,1,2]] 
3. tile(A,(2,2,3)) 
结果:[[[1,2,1,2,1,2], [1,2,1,2,1,2]], 
[[1,2,1,2,1,2], [1,2,1,2,1,2]]]

reps的数字从后往前分别对应A的第N个维度的重复次数。

 

2.numpy.shape函数

shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的形状,比如shape[0]就是读取矩阵第一维度的长度。

 

 

3.numpy.sum函数(axis=)

python内建函数的sum应该是默认的axis=0 就是普通的相加,当加入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)
结果分别是:19, [3 8 8], [ 3 14  2]
#axis=0, 表示列。
#axis=1, 表示行。

 

4.字典的get方法

dict.get(key, "NO")

如果key在字典中不存在,返回第二个参数的值,例如这里返回"NO"

 

5.numpy.argsort函数

array.argsort()返回的是array数组中的值的从小到大的索引

例如x = [2,4,3,1]

注意这里numpy的数组要用它自己的array函数来定义,不能直接定义数组

 

6. sorted函数

 

a = {'math':98, 'english':100, 'PE':77}
b = sorted(a.iteritems(), key=operator.itemgetter(1), reverse=True)

 

iteritems是循环迭代字典a中的每一个key-value对,itemgetter(1)表示排序是根据value的值排序(0则是key),reverse=True代表降序

 

横轴:每年飞行里程数  纵轴:玩电子游戏时间

绿色:不具魅力  蓝色:魅力一般  红色:极具魅力

Helen女士的择偶标准挺不错0.0

 

7.numpy.min() numpy.max()

numpy里的min(0)、max(0) 参数0表示列中取得最小值,而不是选取当前行的最小值,这也是用来处理矩阵的

 

8.使用open(filename)函数时出现错误:

File "/Users/qcy/PycharmProjects/MachineLearning/KNN.py", line 109, in img2vector
fr = open(filename)
TypeError: function takes at least 2 arguments (1 given)

这是由于在from os import * 时,把os.open()函数引入了,从而覆盖了python的built-in的open()函数,这两个open()函数使用的方法是不一样的。所以只import需要使用的函数就行,改成from os import listdir

 

总结:KNN这个算法其实挺笨的,它并没有真正的使用训练集训练出一个模型,而是在测试时直接把测试的矩阵扩大到训练矩阵的规模,然后做一个距离的计算,取前K个,哪个类别的归类多就归到哪类。这种分类方式准确率还行,但是它运行的时间和占用的空间可能太过庞大了。 通过这一章也熟悉了使用numpy库对矩阵进行操作。“KNN另一个缺陷时它无法给出任何数据的基础结构信息,因此我们也无法知晓平均实例样本和典型实例样本具有什么特征。”  (???)

 

 

转载于:https://www.cnblogs.com/Rivrr/p/6362658.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猜1-10的数字python脚本

#!/usr/bin/python#coding:utf-8import randomnumrandom.randint(1,10)while True:caiint(raw_input(请输入随机数字:))if cai num:print 猜对了exit()elif cai > num:print 猜大了else:print 猜小了非交互式的cp脚本#!/usr/bin/python#coding:utf-8import sysfile1sys.arg…

惯量匹配和最佳传动比

惯量是刚体绕轴转动惯性的度量,转动惯量是表征刚体转动惯性大小的物理量。它是伺服选型的重要标准,如果惯量匹配不好,会导致电机运行不稳定。如小惯量电机制动性能好,运行反应速度快,适用于轻负载、高速定位的环境;而中…

【pyqt5学习】——滑动条的使用slider

1、获取滑动条当前值: 滑动条名称.value() self.threshold1 self.horizontalSlider.value() self.threahold2 self.horizontalSlider_2.value() 2、滑动条值改变信号绑定槽函数 滑动条名称.valueChanged.connect(槽函数) # 滑条值变化 self.horizontalSlider.valu…

hibernate多对一单向外键

hibernate多对一单向外键: 描述: 转载于:https://www.cnblogs.com/blogofwyl/p/5402197.html

Spring在bean配置文件中定义电子邮件模板

在上一篇Spring电子邮件教程,硬编码的所有电子邮件属性和消息的方法体中的内容,这是不实际的,应予以避免。应该考虑在Spring bean 配置文件中定义电子邮件模板。1.Spring的邮件发件人Java类使用 Spring的MailSender接口发送电子邮件&#xff…

斐波那契数列规律的计算。

斐波那契数列就是某一个数,总是前两个数之和,比如0,1,1,2,3,5,8。由于输出是一串数字,可以用列表的结构存储。开始时,列表中有两个值,即0&#xf…

【PyQt5学习】——颜色面板使用(QcolorDialog)

from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * BB = QDialogButtonBox# 颜色窗口 class ColorDialog(QColorDialog):def __init__(self, parent=None):super(ColorDialog, self).__init__(parent)self.setOption(QColorDialog.ShowAlph…

PropertyPlaceholderConfigurer实现配置文件读取

PropertyPlaceholderConfigurer实现配置文件读取 PropertyPlaceholderConfigurer类的主要的用法是将BeanFactory里定义的内容放在一个.properties的文件中. PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实…

算法练习5---快速排序Java版

基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序…

OPENCV回调函数

OPENCV回调函数 回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方法直接调用…

PostCSS自学笔记(二)【番外篇二】

图解PostCSS的插件执行顺序 文章其实是一系列的早就写完了. 才发现忘了发在SegmentFault上面, 最早发布于https://gitee.com/janking/Inf... 这次我继续研究PostCSS的插件的执行顺序。 之前有研究过做过假设,在插件列表中,PostCSS的插件执行顺序自上而下…

【Python学习】——实现文本的朗读(pyttsx3)

import pyttsx3engine = pyttsx3.init() engine.say(三角形)engine.runAndWait() 1、导入第三方库 import pyttsx32、创建朗读器 engine = pyttsx3.init() 3、输入需要朗读的文本 engine.say(三角形) 4、开始朗读并且发声(这一步不能少,不然没有声音) engine.runAndWait() 参…

linux命令详解——iostat

简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 安装 yum install -y sysstat 语法 i…

highgui基础 OpenCV trackbar

在调试程序或者程序执行时需要调整某个变量的值亦或是参数的值,我们需要一个简单方便的操作,滚动条就是一个非常使用的工具。通过鼠标点击对滚动条进行拖动操作以期实现调整某个参数的值。下面例程参见Opencv 安装目录 samples tutorial_code文件夹。 #i…

汇编 if else

知识点: if else 逆向还原代码一、了解if else结构 sub esp,8 00401029 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] 0040102C |. 3B45 F8 CMP EAX,DWORD PTR SS:[EBP-8] 0040102F |. 7E 10 JLE SHORT ifelse01.00401041 //表示 else部…

chrome浏览器开发模式实现跨域

2019独角兽企业重金招聘Python工程师标准>>> 增加如下参数, --disable-web-security --user-data-dir 启动项变为: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir 转载于…

【纠错】——QThread: Destroyed while thread is still running

目录 错误 出现场景 解决方案 原始代码 修改后的代码 错误 QThread: Destroyed while thread is still running 出现场景 在对目标缺陷检测的GUI设计的时候,为了避免界面的卡顿,于是想着利用线程QThread来解决这个问题,但是做好后&#xf…

Java怎样处理EXCEL的读取

须要包:poi-3.5.jar、poi-ooxml-3.5.jar 实例: [java] view plaincopy public class ProcessExcel { private Workbook wb null; private Sheet s null; private Row row null; public ProcessExcel(String filePath) …

C#替换字符串起始/结尾指定的字符串

#region 替换字符串起始位置(开头)中指定的字符串/// <summary> /// 替换字符串起始位置(开头)中指定的字符串 /// </summary> /// <param name"s">源串</param> /// <param name"searchStr">查找的串</param> /…

腐蚀函数cvErode 和 膨胀函数cvDilate

Erode腐蚀&#xff0c; Dilate膨胀&#xff0c;这两个形态学函数总是成对出现&#xff0c;前者可以消除较小的点如噪音&#xff0c;后者可以使不连通的图像合并成块。 void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* elementNULL, int iterations1 ); void cvDi…