在绘制《机器学习实战》第六章的简单二分类数据时,想用散点图来绘制,但是始终没有结果,还好,花了半天的时间搞清楚了大致流程。特作笔记如下。
先看效果图:
注意点一:
在书中P95页,得到dataArr,和labelArr两个数据,首先要对它们进行预处理:拿到的数据是普通矩阵形式的,而scatter函数的参数是array类型,所以要进行格式转换:
dataArr_c=numpy.array(dataArr)
labelArr_c=numpy.array(labelArr)
注意点二:
拿到的labelArr_c是1,-1的值,需要将其转为1,2的标签值:
labelArr_c[labelArr_c == -1] = 2
否则,调用scatter后会得到如下结果:
全部代码如下:
from numpy import *
import matplotlib
import matplotlib.pyplot as plt
dataArr_c=numpy.array(dataArr)
labelArr_c=numpy.array(labelArr)
labelArr_c[labelArr_c == -1] = 2
f1 = plt.figure(1)
plt.subplot(211)
plt.scatter(dataArr_c[:,0],dataArr_c[:,1])
plt.subplot(212)
label = labelArr_c
plt.scatter(dataArr_c[:,0],dataArr_c[:,1],15.0*labelArr_c,15.0*labelArr_c)