机器学习——SVM实践

机器学习:Python中如何使用支持向量机(SVM)算法 (简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资)在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类(异常值检测)以及回归分析。其具有以下特征:(1)SVM可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。(2) SVM通过最大化决策边界的边缘来实现控制模型的能力。 阅读详情

SVM基本应用:

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score


# 'sepal length', 'sepal width', 'petal length', 'petal width'
iris_feature = u'花萼长度', u'花萼宽度', u'花瓣长度', u'花瓣宽度'


if __name__ == "__main__":
    path = '..\\8.Regression\\iris.data'  # 数据文件路径
    data = pd.read_csv(path, header=None)
    x, y = data[range(4)], data[4]
    y = pd.Categorical(y).codes
    x = x[[0, 1]]
    x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=1, train_size=0.6)

    # 分类器
    clf = svm.SVC(C=0.1, kernel='linear', decision_function_shape='ovr')
    # clf = svm.SVC(C=0.8, kernel='rbf', gamma=20, decision_function_shape='ovr')
    clf.fit(x_train, y_train.ravel())

    # 准确率
    print clf.score(x_train, y_train)  # 精度
    print '训练集准确率:', accuracy_score(y_train, clf.predict(x_train))
    print clf.score(x_test, y_test)
    print '测试集准确率:', accuracy_score(y_test, clf.predict(x_test))

    # decision_function
    print 'decision_function:\n', clf.decision_function(x_train)
    print '\npredict:\n', clf.predict(x_train)

    # 画图
    x1_min, x2_min = x.min()
    x1_max, x2_max = x.max()
    x1, x2 = np.mgrid[x1_min:x1_max:500j, x2_min:x2_max:500j]  # 生成网格采样点
    grid_test = np.stack((x1.flat, x2.flat), axis=1)  # 测试点
    # print 'grid_test = \n', grid_test
    # Z = clf.decision_function(grid_test)    # 样本到决策面的距离
    # print Z
    grid_hat = clf.predict(grid_test)       # 预测分类值
    grid_hat = grid_hat.reshape(x1.shape)  # 使之与输入的形状相同
    mpl.rcParams['font.sans-serif'] = [u'SimHei']
    mpl.rcParams['axes.unicode_minus'] = False

    cm_light = mpl.colors.ListedColormap(['#A0FFA0', '#FFA0A0', '#A0A0FF'])
    cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b'])
    plt.figure(facecolor='w')
    plt.pcolormesh(x1, x2, grid_hat, cmap=cm_light)
    plt.scatter(x[0], x[1], c=y, edgecolors='k', s=50, cmap=cm_dark)      # 样本
    plt.scatter(x_test[0], x_test[1], s=120, facecolors='none', zorder=10)     # 圈中测试集样本
    plt.xlabel(iris_feature[0], fontsize=13)
    plt.ylabel(iris_feature[1], fontsize=13)
    plt.xlim(x1_min, x1_max)
    plt.ylim(x2_min, x2_max)
    plt.title(u'鸢尾花SVM二特征分类', fontsize=16)
    plt.grid(b=True, ls=':')
    plt.tight_layout(pad=1.5)
    plt.show()

SVM_draw:

import numpy as np
from sklearn import svm
import matplotlib as mpl
import matplotlib.colors
import matplotlib.pyplot as plt


def show_accuracy(a, b):
    acc = a.ravel() == b.ravel()
    # print '正确率:%.2f%%' % (100*float(acc.sum()) / a.size)


if __name__ == "__main__":
    data = np.loadtxt('bipartition.txt', dtype=np.float, delimiter='\t')
    x, y = np.split(data, (2, ), axis=1)
    y = y.ravel()

    # 分类器
    clf_param = (('linear', 0.1), ('linear', 0.5), ('linear', 1), ('linear', 2),
                ('rbf', 1, 0.1), ('rbf', 1, 1), ('rbf', 1, 10), ('rbf', 1, 100),
                ('rbf', 5, 0.1), ('rbf', 5, 1), ('rbf', 5, 10), ('rbf', 5, 100))
    x1_min, x1_max = x[:, 0].min(), x[:, 0].max()  # 第0列的范围
    x2_min, x2_max = x[:, 1].min(), x[:, 1].max()  # 第1列的范围
    x1, x2 = np.mgrid[x1_min:x1_max:200j, x2_min:x2_max:200j]  # 生成网格采样点
    grid_test = np.stack((x1.flat, x2.flat), axis=1)  # 测试点

    cm_light = mpl.colors.ListedColormap(['#77E0A0', '#FFA0A0'])
    cm_dark = mpl.colors.ListedColormap(['g', 'r'])
    mpl.rcParams['font.sans-serif'] = [u'SimHei']
    mpl.rcParams['axes.unicode_minus'] = False
    plt.figure(figsize=(14, 10), facecolor='w')
    for i, param in enumerate(clf_param):
        clf = svm.SVC(C=param[1], kernel=param[0])
        if param[0] == 'rbf':
            clf.gamma = param[2]
            title = u'高斯核,C=%.1f,$\gamma$ =%.1f' % (param[1], param[2])
        else:
            title = u'线性核,C=%.1f' % param[1]

        clf.fit(x, y)
        y_hat = clf.predict(x)
        show_accuracy(y_hat, y)  # 准确率

        # 画图
        print title
        print '支撑向量的数目:', clf.n_support_
        print '支撑向量的系数:', clf.dual_coef_
        print '支撑向量:', clf.support_
        plt.subplot(3, 4, i+1)
        grid_hat = clf.predict(grid_test)       # 预测分类值
        grid_hat = grid_hat.reshape(x1.shape)  # 使之与输入的形状相同
        plt.pcolormesh(x1, x2, grid_hat, cmap=cm_light, alpha=0.8)
        plt.scatter(x[:, 0], x[:, 1], c=y, edgecolors='k', s=40, cmap=cm_dark)      # 样本的显示
        plt.scatter(x[clf.support_, 0], x[clf.support_, 1], edgecolors='k', facecolors='none', s=100, marker='o')   # 支撑向量
        z = clf.decision_function(grid_test)
        # print 'z = \n', z
        print 'clf.decision_function(x) = ', clf.decision_function(x)
        print 'clf.predict(x) = ', clf.predict(x)
        z = z.reshape(x1.shape)
        plt.contour(x1, x2, z, colors=list('kbrbk'), linestyles=['--', '--', '-', '--', '--'],
                    linewidths=[1, 0.5, 1.5, 0.5, 1], levels=[-1, -0.5, 0, 0.5, 1])
        plt.xlim(x1_min, x1_max)
        plt.ylim(x2_min, x2_max)
        plt.title(title, fontsize=14)
    plt.suptitle(u'SVM不同参数的分类', fontsize=20)
    plt.tight_layout(1.4)
    plt.subplots_adjust(top=0.92)
    plt.savefig('1.png')
    plt.show()
机器学习分类算法实践:支持向量机(SVM)的分类实验 本文介绍了使用支持向量机(SVM)对乳腺癌数据进行分类的实验过程。首先阐述了SVM的基本原理、优缺点(适合小样本但难以处理大规模数据),然后详细展示了数据预处理流程:加载乳腺癌数据集、检查数据质量、可视化特征分布。重点强调了特征标准化对SVM性能的重要性,演示了如何使用StandardScaler消除特征间的尺度差异。实验将数据集划分为70%训练集和30%测试集,为后续SVM模型训练和评估奠定了基础。整个过程涵盖了从理论到实践的完整机器学习流程,为理解SVM在医疗数据分析中的应用提供了实用案例。 阅读详情

相关推荐

【Python机器学习】支持向量机(SVM)完全指南:从理论到实践的深度探索

经过了全面的理论学习和实践应用,我们可以总结支持向量机的核心优势。首先,SVM拥有坚实的理论基础,建立在统计学习理论之上,最大间隔原则有清晰的数学解释和泛化界分析。这意味着SVM的设计不是基于经验法则,而是基于理论保证。其次,SVM在处理高维数据时表现出色,这是因为其复杂度主要取决于支持向量的数量而不是特征的维度。这个特性使得SVM特别适合文本分类、生物信息学等高维领域。第三,核技巧提供了一个优雅的方式来处理非线性问题,而不需要显式地进行特征变换。

nmdbbzcl的博客 841

使用向量机(SVM)算法的推荐系统部署实现

生成Django项目,包括hello.html、view.py、settings.py、urls.py。原始数据包含在两个文件夹中,每个文件夹各有2000条消极和2000条积极的评论,因此,需要先做评论数据整合,将两个评论放在.txt文档中。包括3个模块:数据预处理、模型训练及保存、模型测试,下面分别给出各模块的功能介绍及相关代码。通过训练集训练数据得出模型,使模型进行情感分类。这里,使用训练集和测试集来拟合并保存模型。将分词后的文本转化为以高维向量表示的方式,这里使用微信中文语料训练的开源模型。

leva的博客 1009

优化算法与支持向量机(SVM)结合的机器学习实践

支持向量机(Support Vector Machine, SVM)是一种经典的分类算法,核心思想是寻找一个最优的超平面将数据分为不同的类别。在高维空间中,SVM通过最大化边缘来确保分类边界尽可能远离最近的数据点,即支持向量,从而提高泛化能力。graph LRA[原始数据集] -->|映射| B[高维特征空间]B --> C[最优超平面]C -->|分割| D[两个类别]蜂群优化算法(ABC)是受蜜蜂觅食行为启发而设计的一类优化算法,其原理和操作过程模拟了自然界中蜜蜂寻找食物源的行为。

weixin_28888459的博客 1103

机器学习实验 - 支持向量机SVM

西南交通大学 机器学习实验7 支持向量机SVM (1)掌握间隔、支持向量、对偶、核函数等概念及计算方法。(2)基于多分类数据集,使用pandas+sklearn实现多分类预测。(3)通过精确率、召回率和F1值度量模型性能。(4)对比线性核和高斯核对分类性能的影响。

qq_41626672的博客 2421

微信小程序地图开发避坑指南:腾讯地图API从配置到实战(附完整代码)

本文详细解析微信小程序中腾讯地图API的开发实践,从基础配置到高级功能实现,涵盖地图显示、地点搜索、路线规划等核心功能,并提供完整代码示例和常见问题解决方案,帮助开发者高效避坑。特别针对JavaScript SDK和map组件的使用进行了深度优化指导。

weixin_33725722的博客 486

BUCK型DC/DC变换器的建模与仿真

BUCK型DC-DC变换器的建模与仿真摘要1 文献调研1.1 研究背景1.2 Buck电路的应用场合2 原理分析2.1 模型介绍2.2 模型分析2.3 频域和时域响应2.4 参数指标要求3 参数设计3.1 校正器选择3.2 校正器参数整定3.2.1 积分器3.2.2 一阶微分环节3.2.3 超前校正器3.3 改进4 结论与展望参考文献 摘要   目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。如何对一个系统进行建模分析、补偿校正变得越来越重要。   本文选择BUCK型DC/DC变换器作为载体,

屠龙归来仍是少年 2万+

python数据分析SVM,快速使用代码

1 初始准备 import numpy as np import matplotlib.pyplot as pl from sklearn import svm,datasets from pylab import mpl mpl.rcParams[‘font.sans-serif’]=‘SimHei’ #画图正常显示中文 mpl.rcParams[‘axes.unicode_minus’]=False #决绝保存图像是负号‘-’显示方块的问题 2绘图准备 由于sklearn包中有直接可以使用的方法,直接准

THE ORDER 1874

YOLOv8 + TensorRT 实战:手把手教你用 C++ 实现实时视频流目标检测(附完整项目代码)

本文详细介绍了如何将YOLOv8与TensorRT结合,通过C++实现实时视频流目标检测的全流程。从环境配置、模型转换优化到视频处理架构设计,手把手教你构建高性能检测系统,并附完整项目代码。特别针对Windows平台下的TensorRT模型加速部署提供了实用技巧和性能优化方案。

weixin_29051193的博客 347

sklearn_SVM:处理样本不平衡问题__菜菜视频学习笔记

使用ROC与AUC对支持向量机软间隔不平衡数据的处理,ROC曲线使用假正率与召回率作为两轴通过寻找最佳阈值来使得软间隔分类效果最佳

chenburong2021的博客 1985

从X86到ARM:全面解析服务器CPU架构的演变与未来趋势

本文深入解析了服务器CPU架构从X86到ARM的演变历程与未来趋势。文章从CISC与RISC两种设计哲学切入,分析了X86凭借生态建立的帝国地位及其面临的功耗挑战,并重点阐述了ARM架构凭借其卓越的能效比优势,正从移动端向数据中心市场发起冲击。未来,异构计算、软硬协同与专用芯片将成为服务器CPU发展的核心方向。

gold的博客 1128

适航规章、标准,书籍资料下载汇总(更新中)

以下是一些收集到的适航相关的资料,分享给大家。(如果没有你想要的资料,请留言,等找到会及时更新!

qq_41854911的博客 2562

机器学习算法深度解析:以支持向量机(SVM)为例的实践应用

SVM是一种二分类模型,其基本思想是在特征空间中寻找一个最优的超平面,使得两类样本(分别位于超平面的两侧)到这个超平面的距离最大化,即所谓的间隔最大化。这个最优超平面不仅能够很好地区分训练样本,还能对未知样本做出较为准确的预测。对于非线性可分问题,SVM通过引入核函数技巧,将输入数据映射到高维空间,使其在高维空间中变得线性可分。线性可分SVM:在原始特征空间中直接寻找最优超平面。非线性SVM:通过核函数(如径向基函数RBF、多项式核等)将输入数据映射到更高维空间,实现非线性分类。

运维人生 1242

前端开发 - 完美解决video.js和flv.js视频同时播放数量限制的问题,即浏览器针对同一域名的请求限制问题(解决flv.js/video.js在页面播放最多不超过6个问题、浏览器并发请求限制数

flv.js,video.js,vue,reactive,uniapp,前端开发,flv视频同时播放有限制怎么办,浏览器限制多个视频同时播放怎么办,使用flv.js在前端播放,最多只能播放6个视频,突破浏览器域名并发限制,如何解决flvjs与videojs视频播放同时播放数量限制,video.js 一个页面同时播放多个视频的实例代码,解决网页视频最大只能播放6路的问题,浏览器只能播放6路http-flv流的解决方法,一个浏览器播放5个或者6个flv的视频就不能播放了,video.js 无法在页面同时播放多个

✅ 精选推荐文章 4995

(openCV 十)ML_SVM

import cv2 import numpy as np import matplotlib.pyplot as plt # 训练的点数 train_pts = 30 # 创建测试的数据点,2类 # 以(-1.5, -1.5)为中心 rand1 = np.ones((train_pts,2)) * (-2) + np.random.rand(train_pts, 2) print('ran...

niuniu0243111006的博客 2267

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统

本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。

YOLO 446

Win10系统怎么打开Microsoft帐户?Win10系统打开Microsoft的帐户方法

也被加入了越来越多的功能,我们在使用电脑的时候,很对用户会打开Micorsofy账户功能,搜索个人邮件信息,照片等等,还能将个人的数据备份到账户内,那要怎么打开账户呢,下面带给大家方法。以上就是小编给大家整理的win10系统打开Microsoft帐户的具体操作方法,方法简单易懂,有需要的朋友可以看一看,希望这篇教程对大家有所帮助。5、最后我们将“Microsoft帐户”选项下方的开关按钮向右滑动将其打开,如下图所示,这样就成功打开wMicrosoft帐户功能了。我们在窗口左侧点击“设置”选项即可。

2401_88800025的博客 278

机器学习算法与Python实践之(二)支持向量机(SVM)初级

机器学习算法与Python实践之(二)支持向量机(SVM)初级zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09        机器学习算法与Python实践这个系列主要是参考《机器学习实战》这本书。因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法。恰好遇见这本同样定位的书籍,所以就参考这本

zouxy09的专栏 9万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python实现支持向量机算法_机器学习算法及Python实践之(四)支持向量机(SVM)实现 - zouxy09的专栏 - 博客频道 - 优快云.pdf...

14-8- 12 机器学习算法与Python实践之 (四)支持向量机 (SVM )实现 - zouxy09的专栏 - 博客频道 - youkuaiyun.com登录 | 注册zouxy09的专栏 悲喜枯荣如是本无分别 ,当来则来 ,当去则去 ,随心 ,随性 ,随缘 !-zouxy09@目录视图 摘要视图 订阅个人资料7月推荐文章汇总 ...

weixin_40003233的博客 158

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

机器学习算法与Python实践之(四)支持向量机(SVM)实现

机器学习算法与Python实践之(四)支持向量机(SVM)实现zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09        机器学习算法与Python实践这个系列主要是参考《机器学习实战》这本书。因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法。恰好遇见这本同样定位的书籍,所以就参考这本

zouxy09的专栏 14万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

机器学习(四):通俗理解支持向量机SVM及代码实践

上一篇文章我们介绍了使用逻辑回归来处理分类问题,本文我们讲一个更强大的分类模型。本文依旧侧重代码实践,你会发现我们解决问题的手段越来越丰富,问题处理起来越来越简单。 支持向量机(Support Vector Machine, SVM)是最受欢迎的机器学习模型之一。它特别适合处理中小型复杂数据集的分类任务。 一、什么是支持向量机 SMV在众多实例中寻找一个最优的决策边界,这个边界上的实例叫做支持向量,它们“支持”(支撑)分离开超平面,所以它叫支持向量机。 那么我们如何保证我们得到的决策边界是最优的呢? 如上

caiyongji 792

机器学习算法与Python实践之(三)支持向量机(SVM)进阶

机器学习算法与Python实践之(三)支持向量机(SVM)进阶zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09        机器学习算法与Python实践这个系列主要是参考《机器学习实战》这本书。因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法。恰好遇见这本同样定位的书籍,所以就参考这本

zouxy09的专栏 4万+

Java里的svm是什么_机器学习(四):通俗理解支持向量机SVM及代码实践

上一篇文章我们介绍了使用逻辑回归来处理分类问题,本文我们讲一个更强大的分类模型。本文依旧侧重代码实践,你会发现我们解决问题的手段越来越丰富,问题处理起来越来越简单。支持向量机(Support Vector Machine, SVM)是最受欢迎的机器学习模型之一。它特别适合处理中小型复杂数据集的分类任务。一、什么是支持向量机SMV在众多实例中寻找一个最优的决策边界,这个边界上的实例叫做支持向量,它们...

weixin_35421203的博客 782

[机器学习-实践]支持向量机(SVM)从例子代码中学习

1.用SVM的linear做鸢尾花分类 利用sklearn中自带的dataset,鸢尾花数据库为例,进行二分类。 #载入鸢尾花数据集,datasets自带数据库,房价的、鸢尾花等, #导入:datasets_load_name(),直接np数组形式 from sklearn import svm,datasets iris = datasets.load_iris() #X是特征集,150*4,这里只取其中两列作为特征 X = iris.data[:,(1,2)] #y是标签集,共012三个类别,这里将1替

Harry的博客 811

【机器学习基础】(四):通俗理解支持向量机SVM及代码实践

上一篇文章我们介绍了使用逻辑回归来处理分类问题,本文我们讲一个更强大的分类模型。本文依旧侧重代码实践,你会发现我们解决问题的手段越来越丰富,问题处理起来越来越简单。支持向量机(Suppor...

fengdu78的博客 685
上一篇: 机器学习——SVM算法
下一篇: 机器学习——聚类算法
CoderMateng
博客等级 码龄7年 8粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值