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

机器学习实战(python)-Ch02KNN-Notes相关推荐

  1. 01、python数据分析与机器学习实战——Python数据可视化库-Matplotlib

    Matplotlib介绍 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. Matplotlib基础 1.折线图绘制 假设,我 ...

  2. 01、python数据分析与机器学习实战——python数据分析处理库-Pandas

    pandas介绍 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. panda ...

  3. 01、python数据分析与机器学习实战——Python科学计算库-Numpy

    深度学习--学习目录 NumPy介绍 NumPy系统是Python的一种开源的数值计算扩展. 这种工具可用来存储和处理大型矩阵, 比Python自身的嵌套列表(nested list structur ...

  4. 机器学习实战 | Python 信用卡欺诈检测其实特简单

    本文旨在使用 XGBoost.随机森林.KNN.逻辑回归.SVM 和决策树解决分类问题.喜欢记得收藏.关注.点赞. 注:文末提供技术交流群 案例简介 假设你受雇于帮助一家信用卡公司检测潜在的欺诈案件, ...

  5. 01、python数据分析与机器学习实战——Python可视化库Seaborn

    seaborn简介 Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图. seaborn基础 i ...

  6. 机器学习实战python版决策树以及Matplotlib注解绘制决策树

    这一章代码比较难懂,主要是matplotlib的函数调用参数多,调用灵活,让初学者费解. <span style="font-size:18px;"><span ...

  7. 【A-003】python数据分析与机器学习实战 Python科学计算库 Pandas数据分析处理库(二)

    目录: 处理缺失数据制作透视图删除含空数据的行和列多行索引使用apply函数 本节要处理的数据来自于泰坦尼克号的生存者名单,它的数据如下: PassengerId Survived Pclass .. ...

  8. 机器学习实战笔记(Python实现)-03-朴素贝叶斯

    --------------------------------------------------------------------------------------- 本系列文章为<机器 ...

  9. 机器学习实战笔记(Python实现)-04-Logistic回归

    转自:机器学习实战笔记(Python实现)-04-Logistic回归 转自:简单多元线性回归(梯度下降算法与矩阵法) 转自:人工神经网络(从原理到代码) Step 01 感知器 梯度下降

最新文章

  1. [转]Android fragment 重叠问题——通过hide,show方式导致的解决方法
  2. boost::geometry::closeable_view用法的测试程序
  3. ycsb 测试验证模式的mongodb
  4. 数据结构与算法--5.Python实现十大排序算法
  5. OPPO 正式发布 ColorOS 7,“轻”装上阵带来多项亮眼新功能……
  6. 【IoT】基于NB-IoT的CoAP协议浅析
  7. 北京大学数学科学学院2006/9/20声明:坚持真理、追求卓越zz
  8. QT Designer前端页面添加的图标在程序运行时不显示解决方法
  9. JMETER性能测试从入门到精通高级篇 - 分布式压测部署之负载机的设置(详解教程)
  10. Install Oracle on RHEL5 - step by step
  11. 芯原股份正式加入UCIe产业联盟
  12. Qt开发 之 Windows资源管理器模仿 并 小超越
  13. SL会员商城系统后台管理模板
  14. Android实现通过浏览器点击链接打开本地应用(APP)
  15. 随笔--初到青岛,爱意油然而生
  16. 【hadoop权威指南第四版】第六章MR的工作原理【笔记+代码】
  17. 【代码质量】-阿里巴巴java开发手册(代码质量提升神器)学习笔记
  18. android按钮显示注册成功,Android中给按钮注册事件的四种方法
  19. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
  20. .pnmrc和.vuerc和.yarnrc等等文件

热门文章

  1. 深度学习基础知识介绍
  2. matlab内存不足问题
  3. r语言模型评估:_情感分析评估:对自然语言处理的过去和未来的反思
  4. 概率编程编程_概率编程语言的温和介绍
  5. C语言编译流程:预处理、编译、汇编、链接
  6. 贷款被拒,因为你的征信黑洞太多
  7. 希望我不会“伤心至死”
  8. 怎么样从一个疯狂下载者成为一个学习者
  9. java 什么是servlet_JavaWeb解释一下什么是 servlet?
  10. idea 代码格式化插件_IDEA非常棒的插件,阿里巴巴约定成文的代码公约规范