机器学习实战之k-近邻算法(3)---如何可视化数据
2014-11-29 17:23
513 查看
关于可视化:
《机器学习实战》书中的一个小错误,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(反向代理),第二个链接就是。哎。。。国内啊。。。
得到了约会网站的数据之后,我们可以可视化出来。
利用Matplotlib创建散点图,python(x, y)内嵌这个,直接import即可。
这个是“玩视频游戏消耗时间比”和“每周所消费的冰淇淋公升数”的二维图。
需要不同的颜色来得到更好的可视化效果。
scatter函数的使用。
这句代码替换前面的对应代码,如果出现name 'array' is not defined ,请在前面加这句:
《机器学习实战》书中的一个小错误,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(反向代理),第二个链接就是。哎。。。国内啊。。。
from numpy import * import operator #创建数据集 def createDataSet(): group = array([[1.0, 1.1], [1.0, 1.0], [0, 0], [0, 0.1]]) labels = ['A', 'A', 'B', 'B'] return group, labels #根据输入测试实例进行k-近邻分类 def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = tile(inX, (dataSetSize, 1)) - dataSet sqDiffMat = diffMat ** 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.iteritems(), key = operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] #处理输入格式问题,从文件中读取数据 def file2matrix(filename, dim2): fr = open(filename) arrayOLines = fr.readlines() numberOfLines = len(arrayOLines) returnMat = zeros((numberOfLines, dim2)) classLabelVector = [] index = 0 for line in arrayOLines: line = line.strip() listFromLine = line.split('\t') returnMat[index, :] = listFromLine[0:dim2] classLabelVector.append(int(listFromLine[-1])) index += 1 return returnMat, classLabelVector
>>>import kNN >>> reload(kNN) <module 'kNN' from 'kNN.pyc'> >>> datingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt', 3)
得到了约会网站的数据之后,我们可以可视化出来。
利用Matplotlib创建散点图,python(x, y)内嵌这个,直接import即可。
>>> mimport matplotlib.pyplot as plt >>> fig = plt.figure() >>> ax = fig.add_subplot(111) >>> ax.scatter(datingDataMat[:,1], datingDataMat[:,2]) >>> plt.show()
这个是“玩视频游戏消耗时间比”和“每周所消费的冰淇淋公升数”的二维图。
需要不同的颜色来得到更好的可视化效果。
scatter函数的使用。
ax.scatter(datingDataMat[:,1], datingDataMat[:, 2], 15.0*array(datingLabels), 15.0*array(datingLabels))
这句代码替换前面的对应代码,如果出现name 'array' is not defined ,请在前面加这句:
from numpy import *下面是青色,暗红色,黑色三种点,是利用了15 * datingLabels的1, 2, 3作为不同点的颜色和尺寸。
相关文章推荐
- 机器学习实战之k-近邻算法(4)--- 如何归一化数据
- 机器学习实战之k-近邻算法(5)--- 完整版约会网站数据分类
- 机器学习实战 k-近邻算法
- 机器学习实战之k-近邻算法(7)---算法总结
- 机器学习实战——K-近邻算法【2:改进约会网站配对效果】
- 机器学习实战之k-近邻算法(2)---python简单版
- 机器学习实战--最简单算法--KNN算法(k-近邻算法)
- Python 学习笔记(Machine Learning In Action)K-近邻算法(KNN)机器学习实战
- 机器学习实战之近邻算法kNN
- 机器学习实战——K-近邻算法【1:从文本中解析数据并可视化】
- 机器学习实战笔记之二(k-近邻算法)
- 机器学习实战(第2章 k-近邻算法)
- 机器学习实战学习笔记 一 k-近邻算法
- 数据科学之机器学习5:分类之k-近邻算法
- 机器学习实战 - K-近邻算法
- 机器学习实战笔记 k-近邻算法
- 机器学习实战(一)k-近邻算法
- 机器学习实战——使用K-近邻算法进行约会配对
- 机器学习实战笔记(1)——k-近邻算法
- 机器学习实战-第2章(k-近邻算法)