机器学习之支持向量机(SVM)对乳腺癌数据二分类python实现

这篇具有很好参考价值的文章主要介绍了机器学习之支持向量机(SVM)对乳腺癌数据二分类python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 概述

支持向量机(Support Vector Machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。

间隔最大化,就是所有样本点中,离我们分类界限超平面最近的样本点,尽可能的远离超平面。这种思想在于,不关心远离超平面的样本点,即分类很明确的样本,不作考虑,更关心离超平面近的样本点。这些离超平面较近的点对超平面的位置有着至关重要的影响,抓住这个主要矛盾来分析问题。从个体与整体的角度来看,当两边的离超平面较近的样本点都里超平面足够远时,那么其余的样本点也离超平面足够远。这时,满足间隔最大化的超平面,泛化能力最好。

2. 标题数学推导

所谓支持向量机,就是通过计算支持向量的最大间隔来确定唯一且泛化能力最好的超平面。

2.1 函数间隔

在分离超平面固定为 w T x + b = 0 w^Tx+b=0 wTx+b=0的时候, ∣ w T x + b ∣ |w^Tx+b| wTx+b表示点 x x x到超平面的相对距离。通过观察 w T x + b w^Tx+b wTx+b y y y是否同号,我们判断分类是否正确。这里我们引入函数间隔的概念,这个函数间隔就是我们样本的确信度,定义函数间隔 γ ′ \gamma^{\prime} γ为:
γ ′ = y ( w T x + b ) \gamma^{\prime}=y(w^Tx+b) γ=y(wTx+b)

2.2 几何间隔

函数间隔并不能正常反应点到超平面的距离,当分子成比例的增长时,分母也是成倍增长。为了统一度量,我们需要对法向量 w w w加上约束条件,这样我们就得到了几何间隔 γ \gamma γ ,这个几何间隔在二维空间的理解,就是点到线的距离,几何间隔定义为:
γ = y ( w T x + b ) ∣ ∣ w ∣ ∣ 2 = γ ′ ∣ ∣ w ∣ ∣ 2 \gamma=\frac{y(w^Tx+b)}{||w||_2}=\frac{ \gamma^{\prime}}{||w||_2} γ=∣∣w2y(wTx+b)=∣∣w2γ

2.3 支持向量机

分离超平面为 w T x + b = 0 w^Tx+b=0 wTx+b=0 ,如果所有的样本不光可以被超平面分开,还和超平面保持一定的函数距离。和超平面平行的保持一定的函数距离的这两个超平面对应的向量,我们定义为支持向量。

3 原理

3.1 硬间隔最大化

SVM的模型是让所有点到超平面的距离大于一定的距离,也就是所有的分类点要在各自类别的支持向量两边。用数学式子表示为:
max ⁡ γ = y ( ω T x + b ) ∥ ω ∥ 2 ⋯  s.t.  ⋅ y i ( ω T x i + b ) = γ ′ ( i ) ≥ γ ′ ( i = 1 , 2 … , m ) \max \gamma=\frac{y\left(\omega^{T} x+b\right)}{\|\omega\|_{2}} \cdots \text { s.t. } \cdot y_{i}\left(\omega^{T} x_{i}+b\right)=\gamma^{\prime(i)} \geq \gamma^{\prime}(i=1,2 \ldots, m) maxγ=ω2y(ωTx+b) s.t. yi(ωTxi+b)=γ(i)γ(i=1,2,m)
m m m为训练数据集中样本个数。
经推到,得到SVM优化函数:
min ⁡ 1 2 ∥ ω ∥ 2 2 ⋅  s.t.  ⋅ y i ( ω T x i + b ) ≥ 1 ( i = 1 , 2 , … , m ) \min \frac{1}{2}\|\omega\|_{2}^{2} \cdot \text { s.t. } \cdot y_{i}\left(\omega^{T} x_{i}+b\right) \geq 1(i=1,2, \ldots, m) min21ω22 s.t. yi(ωTxi+b)1(i=1,2,,m)
由拉格朗日乘子法推导,得到最终约束优化函数:
min ⁡ 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j − ∑ i = 1 m α i \min \frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}-\sum_{i=1}^{m} \alpha_{i} min21i=1mj=1mαiαjyiyjxiTxji=1mαi  s.t.  ∑ i = 1 m α i y i = 0 \text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0  s.t. i=1mαiyi=0 α i ≥ 0 , i = 1 , 2 , … , m \alpha_{i} \geq 0, i=1,2, \ldots, m αi0,i=1,2,,m
由序列最小化(sequential minimal optimization,SMO)算法求解 ,并求解法向量 w w w和偏置 b b b。由此得到最终分类超平面 w ∗ x + b ∗ = 0 w^{*} x+b^{*}=0 wx+b=0和决策函数 f ( x ) = s i g n ( w ∗ x + b ∗ = 0 ) f(x)=sign(w^{*} x+b^{*}=0) f(x)=sign(wx+b=0)

3.2 软间隔最大化

与硬间隔最大化不同的是,软间隔最大化允许某些样本不满足约束条件,即SVM对训练集里面的每个样本 ( x i , y i ) (x_{i},y_{i}) (xi,yi)引入了一个松弛变量 ξ i ≥ 0 \xi_{i} \geq 0 ξi0 ,使函数间隔加上松弛变量大于等于1。得到软间隔最大化SVM优化函数:
min ⁡ 1 2 ∥ ω ∥ 2 2 + C ∑ i = 1 m ξ i \min \frac{1}{2}\|\omega\|_{2}^{2}+C \sum_{i=1}^{m} \xi_{i} min21ω22+Ci=1mξi  s.t.  y i ( ω T x i + b ) ≥ 1 − ξ i ( i = 1 , 2 , … , m ) \text { s.t. } y_{i}\left(\omega^{T} x_{i}+b\right) \geq 1-\xi_{i}(i=1,2, \ldots, m)  s.t. yi(ωTxi+b)1ξi(i=1,2,,m) ξ i ≥ 0 ( i = 1 , 2 , … , m ) \xi_{i} \geq 0(i=1,2, \ldots, m) ξi0(i=1,2,,m)
这里,C>0为惩罚参数,可以理解为我们一般回归和分类问题正则化时候的参数。C越大,对误分类的惩罚越大,C越小,对误分类的惩罚越小。

3.3 核函数

存在线性不可分的样本,将样本从原始空间映射到一个更高维的特征空间,使得样本这个特征空间内线性可分。再通过间隔最大化的方式得到SVM,成为非线性SVM。
令φ(x)表示将x映射后的特征向量,在特征空间中划分超平面所对应的模型可表示为:
min ⁡ 1 2 ∑ i = 1 , j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) − ∑ i = 1 m α i \min \frac{1}{2} \sum_{i=1, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \phi\left(x_{i}\right)^{T} \phi\left(x_{j}\right)-\sum_{i=1}^{m} \alpha_{i} min21i=1,j=1mαiαjyiyjϕ(xi)Tϕ(xj)i=1mαi
在高维空间直接计算 ϕ ( x i ) T ϕ ( x j ) \phi\left(x_{i}\right)^{T} \phi\left(x_{j}\right) ϕ(xi)Tϕ(xj)通常是困难的,为了避开这个障碍,设想一个函数:
K ( x i , x j ) = ⟨ ϕ ( x i ) , ϕ ( x j ) ⟩ = ϕ ( x i ) T ϕ ( x j ) K\left(x_{i}, x_{j}\right)=\left\langle\phi\left(x_{i}\right), \phi\left(x_{j}\right)\right\rangle=\phi\left(x_{i}\right)^{T} \phi\left(x_{j}\right) K(xi,xj)=ϕ(xi),ϕ(xj)=ϕ(xi)Tϕ(xj)
函数 K ( x i , x j ) K\left(x_{i}, x_{j}\right) K(xi,xj)就是核函数。

4. python实现

采用breast cancer二分类数据集,在sklearn库中调用svc函数svm分类。可以看出svm测试准确率优于感知机。

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 10 22:15:53 2020

@author: HP
"""
'''
breast cancer data ----   569
data = 9个属性
target = 阴性----0,阳性-----1
'''
# 导入基本库
from sklearn.svm import SVC
from sklearn.linear_model import Perceptron
from sklearn import datasets
from sklearn.model_selection import train_test_split

#导入乳腺癌数据集
cancer = datasets.load_breast_cancer()
cancer_X = cancer.data#得到乳腺癌样本集
cancer_y = cancer.target#得到乳腺癌标签集
X_train,X_test,y_train, y_test=train_test_split(
    cancer_X,cancer_y,test_size=0.2)#按照比例划分数据集为训练集与测试集

# 创建一个SVM分类器并进行预测
clf = SVC(kernel='linear', C=1)#创建SVM训练模型
clf.fit(X_train,y_train)#对训练集数据进行训练
clf_y_predict=clf.predict(X_test)#通过测试数据,得到测试标签
scores = clf.score(X_test,y_test)#测试结果打分

#创建一个感知机分类器并进行预测
clf1 = Perceptron()#创建感知机训练模型
clf1.fit(X_train,y_train)#队训练集数据进行训练
clf1_y_predict=clf1.predict(X_test)#通过测试集数据,得到测试标签
scores1 = clf1.score(X_test,y_test)#测试结果打分

#打印
print('SVM准确率:',scores)
print('感知机准确率:',scores1)

运行结果
机器学习之支持向量机(SVM)对乳腺癌数据二分类python实现文章来源地址https://www.toymoban.com/news/detail-438140.html

到了这里,关于机器学习之支持向量机(SVM)对乳腺癌数据二分类python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于逻辑回归实现乳腺癌预测(机械学习与大数据)

    将乳腺癌数据集拆分成训练集和测试集,搭建一个逻辑回归模型,对训练集进行训练,然后分别对训练集和测试集进行预测。输出以下结果: 该模型在训练集上的准确率,在测试集上的准确率、召回率和精确率。

    2024年03月11日
    浏览(40)
  • 大数据分析案例-基于LightGBM算法构建乳腺癌分类预测模型

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 喜欢大数据分析项目的小伙伴,希望可以多多支持该系列的其他文章 大数据分析案例合集

    2024年02月16日
    浏览(52)
  • 机器学习之SVM支持向量机

    目录 经典SVM 软间隔SVM 核SVM SVM分类器应用于人脸识别 SVM优点 SVM缺点  支持向量机(Support Vector Machine,SVM)是一种二分类模型,其基本思想是在特征空间中找到一个最优的超平面,使得正负样本点到该超平面的距离最大化,从而实现对样本的分类。 经典SVM为二分类模型,对

    2024年02月11日
    浏览(31)
  • 机器学习之支持向量机(SVM)

    支持向量机(support vector machine,SVM)是有监督学习中最有影响力的机器学习算法之一,该算法的诞生可追溯至上世纪 60 年代, 前苏联学者 Vapnik 在解决模式识别问题时提出这种算法模型,此后经过几十年的发展直至 1995 年, SVM 算法才真正的完善起来,其典型应用是解决手写

    2024年02月12日
    浏览(35)
  • 乳腺癌CT影像数据的深度学习:R语言与ANN神经网络构建高性能分类诊断模型

    乳腺癌是全球最常见的女性恶性肿瘤之一,也影响着男性的健康。据统计,每年有数百万人被诊断出患有乳腺癌[1]。乳腺癌的早期检测和准确诊断对于治疗和预后至关重要。然而,乳腺癌的早期诊断面临许多挑战,如图像解读的主观性和复杂性,以及差异化的病理特征[2]。因

    2024年02月14日
    浏览(47)
  • 计算机竞赛 深度学习乳腺癌分类

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习乳腺癌分类 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgradu

    2024年02月07日
    浏览(43)
  • 计算机设计大赛 深度学习乳腺癌分类

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习乳腺癌分类 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgradu

    2024年02月19日
    浏览(56)
  • Python | 机器学习之SVM支持向量机

    ​​​​​​ ​ 🌈个人主页: Sarapines Programmer 🔥 系列专栏: 《人工智能奇遇记》 🔖墨香寄清辞:诗馀墨痕深,梦漫星辰寂。 曲径通幽意犹在,剑指苍穹气势立。 目录结构 1. 机器学习之SVM支持向量机概念 1.1 机器学习 1.2 SVM支持向量机 2. SVM支持向量机算法 2.1 实验目的

    2024年02月05日
    浏览(38)
  • 【PyTorch】第六节:乳腺癌的预测(二分类问题)

    作者 🕵️‍♂️:让机器理解语言か 专栏 🎇:PyTorch 描述 🎨:PyTorch 是一个基于 Torch 的 Python 开源机器学习库。 寄语 💓:🐾没有白走的路,每一步都算数!🐾          上一个实验我们讲解了线性问题的求解步骤,本实验我们以乳腺癌的预测为实例,详细的阐述如

    2023年04月16日
    浏览(46)
  • 基于决策树(Decision Tree)的乳腺癌诊断

            决策树(DecisionTree)学习是以实例为基础的归纳学习算法。算法从--组无序、无规则的事例中推理出决策树表示形式的分类规则,决策树也能表示为多个If-Then规则。一般在决策树中采用“自顶向下、分而治之”的递归方式,将搜索空间分为若千个互不相交的子集,在决策

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包