Sklearn机器学习:如何绘制全局二维特征-单预测结果的背景图

来源:互联网 发布:php用files上传照片 编辑:程序博客网 时间:2024/05/18 03:40
  • 如图所示为python使用sklearn对iris前两列数据进行svm分析后得到的分类结果,
    图中不同颜色的点代表实际的分类结果,背景颜色代表构建的预测模型的分类结果
    那么如何绘制预测模型的分类结果背景呢?
    这里写图片描述

    • 代码及图片示意结果如下:
import numpy as npimport matplotlib.pyplot as pltn = 3xx, yy = np.meshgrid(np.arange(-12, 12, n),np.arange(-6, 6, n))#此处也可用linspace等print(xx)plt.matshow(xx,extent=(xx.min(), xx.max(), yy.min(), yy.max()),aspect='auto')plt.show()
  • 理解meshgrid的xx数据分布:
    [[-12 -9 -6 -3 0 3 6 9]
    [-12 -9 -6 -3 0 3 6 9]
    [-12 -9 -6 -3 0 3 6 9]
    [-12 -9 -6 -3 0 3 6 9]]

这里写图片描述

print(yy)plt.matshow(yy, extent=(xx.min(), xx.max(), yy.min(), yy.max()),aspect='auto')plt.show()
  • 理解meshgrid的yy数据分布:
    [[-6 -6 -6 -6 -6 -6 -6 -6]
    [-3 -3 -3 -3 -3 -3 -3 -3]
    [ 0 0 0 0 0 0 0 0]
    [ 3 3 3 3 3 3 3 3]]

这里写图片描述

def predict(X_F1,X_F2):  # 人为构建一个预测模型,X_Fi为输入样本的特征    """    just like a prediction method in sklearn,    which returns a value     as the classification or regression result    """    return X+Y           # 输出模型的预测分类结果mm = predict(xx,yy) #这里mm就是模仿sklearn中调用模型的预测分类结果print(mm)plt.matshow(mm, extent=(xx.min(), xx.max(), yy.min(), yy.max()),aspect='auto')plt.show()
  • 理解meshgrid的xx与yy联立的数据分布:
    [[-18 -15 -12 -9 -6 -3 0 3]
    [-15 -12 -9 -6 -3 0 3 6]
    [-12 -9 -6 -3 0 3 6 9]
    [ -9 -6 -3 0 3 6 9 12]]

这里写图片描述

#利用extent遍历绘图区域中的有限点,#以这些点为中心,以mm绘制预测分类结果#绘制矩阵图形,当n越大时,全局背景分类结果越精细plt.imshow(mm, interpolation='nearest',           extent=(xx.min(), xx.max(), yy.min(), yy.max()), aspect='auto') plt.show()
  • 理解meshgrid的预测结果数据分布的绘制:

  • 此处的重点是预测结果与坐标点(xx,yy)有着相同的分布结果

这里写图片描述

0 0
原创粉丝点击