数据分析python SVM解决非线性问题

简介: 数据分析python SVM解决非线性问题

1 初始准备

import numpy as np
import matplotlib.pyplot as pl
from sklearn import svm

2 模拟线性不可分数据

线性不可分数据

X=np.c_[(.4,-.7),
        (-1.5,-1),
        (-1.4,-.9),
        (-1.3,-1.2),
        (-1.1,-.2),
        (-1.2,-.4),
        (-.5,1.2),
        (-1.5,2.1),
        (1,1),
        #--
        (1.3,.8),
        (1.2,.5),
        (.2,-2),
        (.5,-2.4),
        (.2,-2.3),
        (0,-2.7),
        (1.3,2.1)].T
Y=[0]*8+[1]*8 #前8个一类,后8个一类

3 循环使用不同的SVM核

fignum=1#表示第几副图

#使用三种不同的核
for kernel in ('linear','poly','rbf'):
    clf=svm.SVC(kernel=kernel,gamma=2)#gamma=1/(2*a^2)
    clf.fit(X,Y)
    
    pl.figure(fignum,figsize=(4,3))
    pl.clf()
    
    #支持向量
    pl.scatter(clf.support_vectors_[:,0],clf.support_vectors_[:,1],s=80,facecolors='none',zorder=10,edgecolors='k')
    #第一类
    pl.scatter(X[:8,0],X[:8,1],c='g',zorder=10,cmap=pl.cm.Paired,edgecolors='k')
    
    #第二类
    pl.scatter(X[8:,0],X[8:,1],c='r',zorder=10,cmap=pl.cm.Paired,edgecolors='k')
    
    pl.axis('tight')
    x_min=-3
    x_max=3
    y_min=-3
    y_max=3
    
    XX,YY=np.mgrid[x_min:x_max:200j,y_min:y_max:200j]#复数类似np.linspace 步长
    Z=clf.decision_function(np.c_[XX.ravel(),YY.ravel()])
    
    #绘制决策边界和间距
    Z=Z.reshape(XX.shape)
    pl.figure(fignum,figsize=(4,3))
    pl.contour(XX,YY,Z,colors=['g','r','g'],linestyles=['--','-','--'],levels=[-.5,0,.5])#为了图好看,间距设置0.5
    
    pl.xlim(x_min,x_max)
    pl.ylim(y_min,y_max)
    
    fignum=fignum+1

pl.show()

在这里插入图片描述

目录
相关文章
|
9天前
|
数据挖掘 计算机视觉 Python
Python数据分析13
Pillow 是 PIL(Python Imaging Library)的升级版本,适应 Python 3 的更新而诞生,带来了诸多新特性。它采用模块化结构,主要包括:图像功能模块(Image)、图像滤波功能模块(ImageFilter)、图像增强功能模块(ImageEnhance)和图像绘画功能模块(ImageDraw)。Pillow 支持从多种图像格式读取数据,进行处理,并能输出为常见格式,其官网提供了丰富的应用示例供学习参考。
25 4
|
16天前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
30 1
|
6天前
|
SQL 数据采集 数据可视化
深入 Python 数据分析:高级技术与实战应用
本文系统地介绍了Python在高级数据分析中的应用,涵盖数据读取、预处理、探索及可视化等关键环节,并详细展示了聚类分析、PCA、时间序列分析等高级技术。通过实际案例,帮助读者掌握解决复杂问题的方法,提升数据分析技能。使用pandas、matplotlib、seaborn及sklearn等库,提供了丰富的代码示例,便于实践操作。
124 64
|
2天前
|
数据可视化 数据挖掘 大数据
Python 数据分析入门:从零开始处理数据集
Python 数据分析入门:从零开始处理数据集
|
2天前
|
数据采集 数据可视化 数据挖掘
Python中的数据分析:从零开始的指南
Python中的数据分析:从零开始的指南
11 2
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
数据分析之旅:用Python探索世界
数据分析之旅:用Python探索世界
7 2
|
2天前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析:从入门到实践
使用Python进行数据分析:从入门到实践
12 2
|
7天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
【9月更文挑战第33天】本文旨在为初学者提供一个关于使用Python进行数据分析的全面概述。我们将从基本的安装和设置开始,逐步介绍数据处理、数据可视化以及机器学习的基本概念和应用。文章将通过实际代码示例来展示如何使用Python及其相关库来解决常见的数据分析问题。
|
3天前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
15 1
|
10天前
|
数据挖掘 Serverless 计算机视觉
Python数据分析 11
SciPy是一款专为数学、科学及工程应用设计的开源软件,它基于NumPy的n维数组构建,提供了丰富的数值例程,包括积分、优化、线性代数等,适用于各种操作系统,安装简易且免费。它还包含了如快速傅里叶变换、信号处理、图像处理、特殊函数计算等功能,满足了科学计算与工程需求。相较于NumPy的一般数组,SciPy提供了真正的矩阵及其相关运算支持。
30 7

热门文章

最新文章