关于可视化:

《机器学习实战》书中的一个小错误,P22的datingTestSet.txt这个文件,根据网上的源代码,应该选择datingTestSet2.txt这个文件。主要的区别是最后的标签,作者原来使用字符串‘veryLike’作为标签,但是Python转换会出现ValueError: invalid literal for int() with base 10: 'largeDoses'的错误。所以改成后面的文件就可以了。后面直接用1 2 3 代表not like, general like, very like。这个错误一开始用百度查不到,改用Google(反向代理),第二个链接就是。哎。。。国内啊。。。

  1. from numpy import *
  2. import operator
  3. #创建数据集
  4. def createDataSet():
  5. group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]])
  6. labels = ['A', 'A', 'B', 'B']
  7. return group, labels
  8. #根据输入测试实例进行k-近邻分类
  9. def classify0(inX, dataSet, labels, k):
  10. dataSetSize = dataSet.shape[0]
  11. diffMat = tile(inX, (dataSetSize, 1)) - dataSet
  12. sqDiffMat = diffMat ** 2
  13. sqDistances = sqDiffMat.sum(axis=1)
  14. distances = sqDistances**0.5
  15. sortedDistIndicies = distances.argsort()
  16. classCount = {}
  17. for i in range(k):
  18. voteIlabel = labels[sortedDistIndicies[i]]
  19. classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1
  20. sortedClassCount = sorted(classCount.iteritems(), key = operator.itemgetter(1), reverse=True)
  21. return sortedClassCount[0][0]
  22. #处理输入格式问题,从文件中读取数据
  23. def file2matrix(filename, dim2):
  24. fr = open(filename)
  25. arrayOLines = fr.readlines()
  26. numberOfLines = len(arrayOLines)
  27. returnMat = zeros((numberOfLines, dim2))
  28. classLabelVector = []
  29. index = 0
  30. for line in arrayOLines:
  31. line = line.strip()
  32. listFromLine = line.split('\t')
  33. returnMat[index, :] = listFromLine[0:dim2]
  34. classLabelVector.append(int(listFromLine[-1]))
  35. index += 1
  36. return returnMat, classLabelVector
  1. >>>import kNN
  2. >>> reload(kNN)
  3. <module 'kNN' from 'kNN.pyc'>
  4. >>> datingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt', 3)

得到了约会网站的数据之后,我们可以可视化出来。

利用Matplotlib创建散点图,python(x, y)内嵌这个,直接import即可。

  1. >>> mimport matplotlib.pyplot as plt
  2. >>> fig = plt.figure()
  3. >>> ax = fig.add_subplot(111) >>> ax.scatter(datingDataMat[:,1], datingDataMat[:,2])
  4. >>> plt.show()

这个是“玩视频游戏消耗时间比”和“每周所消费的冰淇淋公升数”的二维图。

需要不同的颜色来得到更好的可视化效果。

scatter函数的使用。

  1. ax.scatter(datingDataMat[:,1], datingDataMat[:, 2], 15.0*array(datingLabels), 15.0*array(datingLabels))

这句代码替换前面的对应代码,如果出现name 'array' is not defined ,请在前面加这句:

  1. from numpy import *

下面是青色,暗红色,黑色三种点,是利用了15 * datingLabels的1, 2, 3作为不同点的颜色和尺寸。

机器学习实战之k-近邻算法(3)---如何可视化数据的更多相关文章

  1. 02机器学习实战之K近邻算法

    第2章 k-近邻算法 KNN 概述 k-近邻(kNN, k-NearestNeighbor)算法是一种基本分类与回归方法,我们这里只讨论分类问题中的 k-近邻算法. 一句话总结:近朱者赤近墨者黑! k ...

  2. 机器学习实战笔记--k近邻算法

    #encoding:utf-8 from numpy import * import operator import matplotlib import matplotlib.pyplot as pl ...

  3. 《机器学习实战》——K近邻算法

    三要素:距离度量.k值选择.分类决策 原理: (1) 输入点A,输入已知分类的数据集data (2) 求A与数据集中每个点的距离,归一化,并排序,选择距离最近的前K个点 (3) K个点进行投票,票数最 ...

  4. 《机器学习实战》-k近邻算法

    目录 K-近邻算法 k-近邻算法概述 解析和导入数据 使用 Python 导入数据 实施 kNN 分类算法 测试分类器 使用 k-近邻算法改进约会网站的配对效果 收集数据 准备数据:使用 Python ...

  5. 机器学习实战python3 K近邻(KNN)算法实现

    台大机器技法跟基石都看完了,但是没有编程一直,现在打算结合周志华的<机器学习>,撸一遍机器学习实战, 原书是python2 的,但是本人感觉python3更好用一些,所以打算用python ...

  6. 机器学习03:K近邻算法

    本文来自同步博客. P.S. 不知道怎么显示数学公式以及排版文章.所以如果觉得文章下面格式乱的话请自行跳转到上述链接.后续我将不再对数学公式进行截图,毕竟行内公式截图的话排版会很乱.看原博客地址会有更 ...

  7. 机器学习随笔01 - k近邻算法

    算法名称: k近邻算法 (kNN: k-Nearest Neighbor) 问题提出: 根据已有对象的归类数据,给新对象(事物)归类. 核心思想: 将对象分解为特征,因为对象的特征决定了事对象的分类. ...

  8. 机器学习 Python实践-K近邻算法

    机器学习K近邻算法的实现主要是参考<机器学习实战>这本书. 一.K近邻(KNN)算法 K最近邻(k-Nearest Neighbour,KNN)分类算法,理解的思路是:如果一个样本在特征空 ...

  9. 机器学习:1.K近邻算法

    1.简单案例:预测男女,根据身高,体重,鞋码 import numpy as np import matplotlib import sklearn from skleran.neighbors im ...

  10. 机器学习实战笔记-2-kNN近邻算法

    # k-近邻算法(kNN) 本质是(提取样本集中特征最相似数据(最近邻)的k个分类标签). K-近邻算法的优缺点 例 优点:精度高,对异常值不敏感,无数据输入假定: 缺点:计算复杂度高,空间复杂度高: ...

随机推荐

  1. 4_8.springboot2.x嵌入式servlet容器启动原理解析

    问题描述: 什么时候创建嵌入式的Servlet容器工厂? 什么时候获取嵌入式的Servlet容器并启动Tomcat? *获取嵌入式的Servlet容器工厂: 1).SpringBoot应用启动运行ru ...

  2. C++ 系列:extern

    extern 作用1:声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部. 例1:创建一个工程,里面 ...

  3. 2016.8.18上午纪中初中部NOIP普及组比赛

    2016.8.18上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1336 翻!车!啦!好吧,那是因为大神归来. 进度: 比赛:AC ...

  4. IDA*算法——骑士精神

    例题 骑士精神 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者 ...

  5. HTML+css 小组件

    1.三角 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  6. Python-包与常用模块(2)

    目录 包 导入包内包 相对导入和绝对导入 注意事项 time模块 datetime模块 random模块 argparse 模块 configparser模块 hashlib模块和hmac模块 typ ...

  7. TokuDB安装

    安装TokuDB 1, 创建mysql数据目录 #顺便把临时目录创建好 mkdir -p /data/mysql/tmp groupadd -r mysql useradd -g mysql -r - ...

  8. NFS+mou

    前言 有两台电脑,Linux操作系统,服务器和客户端,IP不同,但是可以相互访问. 客户端想访问服务器的文件系统 准备工作 假设 服务器的ip为 192.168.0.100,要分享为公共文件夹的目录为 ...

  9. nc 文件的nan识别

    表现形式:print()结果为 --      打印type为numpy.ma.core.MaskedConstant 使用 if type(x) == np.ma.core.MaskedConsta ...

  10. hibernate查询timestamp条件

    参考https://blog.csdn.net/zuozuoshenghen/article/details/50540661 Mysql中Timestamp字段的格式为yyyy-MM-dd HH-m ...