背景

没有图片不够直观,所以需要绘制图片向别人展示

二维情况,比较容易

import numpy as np
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.svm import SVC"""生成样本点"""
centers = [[-1, -1]]
X, labels = make_blobs(n_samples = 1500, centers = centers,cluster_std = 0.5, random_state = 0)
centers = [[1, 1]]
X1, labels1 = make_blobs(n_samples = 2000, centers = centers,cluster_std = 0.5, random_state = 0)
labels1 = labels1 +1def plot_point(dataArr, labelArr, Support_vector_index, W, b):for i in range(np.shape(dataArr)[0]):if labelArr[i] == 0:plt.scatter(dataArr[i][0], dataArr[i][1], c='b', s=20,marker='D')else:plt.scatter(dataArr[i][0], dataArr[i][1], c='y', s=20,marker="*")for j in Support_vector_index:plt.scatter(dataArr[j][0], dataArr[j][1], s=100, c='r', alpha=0.5, linewidth=1.5, edgecolor='red')x = np.arange(-3, 3, 0.01)y = (W[0][0] * x + b) / (-1 * W[0][1])plt.scatter(x, y, s=5, marker='h')plt.show()clf = SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
# fit训练数据
dataArr = np.r_[X,X1]
labelArr = np.r_[labels,labels1]
clf.fit(dataArr, labelArr)# 获取模型返回值
n_Support_vector = clf.n_support_  # 支持向量个数
Support_vector_index = clf.support_  # 支持向量索引
W = clf.coef_  # 方向向量W
b = clf.intercept_  # 截距项b
# 绘制分类超平面
plt.figure(num=3,figsize=(8, 6))
plot_point(dataArr, labelArr, Support_vector_index, W, b)

三维版本

import numpy as np
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.svm import SVC"""生成样本点"""
plt.figure(num=1,figsize=(8, 6))centers = [[3,0,0]]
X, labels = make_blobs(n_samples = 1500, centers = centers,cluster_std = 0.5, random_state = 0)
ax1 = plt.axes(projection='3d')
ax1.scatter3D(X[:, 0], X[:, 1],X[:, 2], 'r',marker='o',label='label_1')centers = [[3, 3, 2]]
X1, labels1 = make_blobs(n_samples = 2000, centers = centers,cluster_std = 0.5, random_state = 0)
ax1.scatter3D(X1[:, 0], X1[:, 1],X1[:, 2], 'g',marker='*',label='label_2')
labels1 = labels1 +1centers = [[0, 6, 4]]
X2, labels2 = make_blobs(n_samples = 2000, centers = centers,cluster_std = 0.5, random_state = 0)
ax1.scatter3D(X2[:, 0], X2[:, 1],X2[:, 2], 'b',marker='^',label='label_3')
labels2 = labels2 +2clf = SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
# fit训练数据
dataArr = np.r_[X,X1,X2]
labelArr = np.r_[labels,labels1,labels2]
clf.fit(dataArr, labelArr)
#计算超平面方程wx+b=0
b=clf.intercept_
w=clf.coef_
xx = np.arange(-2,6)
yy = np.arange(0,6)
X, Y = np.meshgrid(xx, yy)
Z1= -w[0,0]/w[0,2]*X-w[0,1]/w[0,2]*Y-b[0]/w[0,2]
Z2 = -w[1,0]/w[1,2]*X-w[1,1]/w[1,2]*Y-b[1]/w[1,2]
Z3 = -w[2,0]/w[2,2]*X-w[2,1]/w[2,2]*Y-b[2]/w[2,2]ax1.plot_surface(X,Y,Z1,alpha=0.6)
# ax.plot_surface(X,Y,Z2,alpha=0.6,)
ax1.plot_surface(X,Y,Z3,alpha=0.6)
#设置图例
ax1.legend(loc='best')plt.show()

SVM绘制二维示意图贺三维示意图相关推荐

  1. comsol绘制二维螺线及三维螺旋

    对于一些特殊的几何模型有时需要用到螺线及螺旋,三维螺旋相对比较简单,本文主要讲解二维螺线的绘制. 1.三维螺旋:在comsol几何栏中有 螺旋 这样的几何元素,绘制的时候比较简单,我们可以通过界面的参 ...

  2. Matlab绘制二维圆环和三维圆环

    画圆参考: MATLAB绘图笔记--画圆的几种方法 一.画二维圆环 方法1:利用rectangle函数(不支持透明度) figure rectangle('Position',[0,0,5,5],'C ...

  3. 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图

    [Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...

  4. matlab常见用法汇总,包括绘制二维、三维曲线、圆、读取、保存图片/数据、数值精度、绘制圆、绘制角度等

    文章目录 写在前面 一 绘制二维曲线 二 绘制三维曲线 plot3. 三 绘制三维离散点 scatter3() 四 保存图片到本地 五 数值精度 六 字符串拼接 七 将数据保存到txt 八 matla ...

  5. MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...

  6. matlab绘制三维混沌系统程序(以三阶微分方程系统为例),可以出庞加莱截面图、二维相图、三维相图、分岔图

    matlab绘制三维混沌系统程序(以三阶微分方程系统为例),可以出庞加莱截面图.二维相图.三维相图.分岔图,需要的同学可以(不代做). _:8550662869649774皮皮and瓜瓜

  7. 计算机二维辅助设计课程设计,计算机辅助设计课程设计报告-千斤顶的二维工程图和三维建模.doc...

    计算机辅助设计 课程设计报告 课程名称:计算机辅助设计 设计题目: 千斤顶的二维工程图和三维建模 专业班级:工程力学 02班 学生姓名: 学号: 起止日期 2013.1.07 至 2013.1.17 ...

  8. Python使用tsne进行高维数据可视化实战:二维可视化、三维可视化

    Python使用tsne进行高维数据可视化实战:二维可视化.三维可视化 # 绘制二维可视化图像并添加标签字符函数 def plot_embedding(data, label, title):x_mi ...

  9. python二维图颜色函数_Python绘图之二维图与三维图详解

    各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import ...

最新文章

  1. CVPR 2020满分论文 | FineGym:面向细粒度动作分析的层级化高质量数据集
  2. UITableView 关键操作
  3. python实时定位_selenium python 一些操作和定位收集
  4. 经典卷积网络进阶--ResNet详解
  5. 51nod1179【思维】
  6. Pipeline模式(netty源码死磕6)
  7. 电脑上如何安装CAD看图软件及dwg图纸的打开?
  8. 1.3.3 改善后的异常处理
  9. WinForm UI设计与开发思路(转)
  10. Java—switch case实现两个数的算术运算
  11. Objective-C语法与Cocoa框架
  12. eclipse中查怎样看某个方法调用了谁
  13. JavaScript 中call apply 那点简单事
  14. Atitit 数据存储的数据表连接attilax总结
  15. TypeError:Can't instantiate abstract class Ultraman with abstract methods sttack 报错
  16. ASP.NET MVC 重点教程一周年版 第七回 UrlHelper
  17. 市场对php的需求分析,PHP 留言板功能需求分析
  18. 最近写的一个书店项目
  19. AngularJs的UI组件Datepicker Popup
  20. h5禁止页面长按操作_解决HTML5对手机页面长按会粘贴复制禁用的方法-H5教程

热门文章

  1. 实验二 任务的基本管理
  2. 实战之HTML:把两张图片并排(行)显示
  3. 区块链分叉如何解决_聊聊区块链背后存在的问题(一):分叉
  4. 1.4 java学习的环境准备
  5. 深度学习有哪些实用又好玩的应用?
  6. 我的世界java版怎么用结构方块_建筑大触教你使用结构方块 菜鸟也能轻松上手...
  7. Session Setup Request,NTLMSSP_AUTH, User:Dmain\hostname$
  8. selenium webdrive使用
  9. 【单片机毕业设计】【mcuclub-jj-019】基于单片机的油烟机的设计
  10. 结构体内元素不确定_农作物生长发育不可缺少的肥料,微量元素肥料,如何才能合理使用...