svm支持向量机在图像分类方面的matlab代码_我的第一个机器学习模型:应用支持向量机成功分类医学影像...

本文介绍了如何使用支持向量机(SVM)进行冠脉造影图像的左、右冠脉分类。通过scikit-learn库在MATLAB中实现SVM模型,包括数据预处理、模型训练、测试及性能评估。最终,模型在测试集上取得了100%的准确率。
摘要由CSDN通过智能技术生成
前言 SVM 在机器学习中, 支持向量机(support vector machine, 常简称为 SVM ,又名支持向量网络)是一种在分类与回归任务中处理据的监督学习模型和算法。 SVM 模型是将样本表示为空间中的点,这样的映射就使得同一类别的样本被尽可能宽的间隔分开。然后,将新的样本映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

支持向量机(SVM)应用起来很简单,性能也非常强大。今天我用 SVM 来解决一个医学影像学方面非常简单的问题。我们心血管影像学应用最广泛的临床实践就是冠脉造影检查。现在我就来构建一个模型,用以分辨给定的造影图像类别,即在得到一张造影图像后,让电脑轻松地判断这张图是左冠脉的图像(LCA)还是右冠脉(RCA)的简单任务(说实话挺弱智的)。

857e9c655af0ba651b71b9ba543a9732.png


模块框架的导入

首先,导入模块。在机器学习算法中,我用的是非常流行的 scikit-learn 模块中的 svm 对象,还有 metrics 中的 classification_report 和 confusion_matrix。到后面还要将模型保存下来,使用的是 joblib 对象。

from PIL import Image
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from sklearn import svm
from sklearn.metrics import classification_report, confusion_matrix
from sklearn.externals import joblib

%matplotlib inline

最后一行是一个 jupyter notebook 的 magic,功能就是可以在 notebook 中显示图像。


造影图像的读取

我选取了 40 个图像样本(20 个为右冠脉,20 个为左冠脉,比为 1:1),34 个做训练样本(左右比仍为 1:1);6个做测试样本。

8b6c1e74d3ad6f394e49face327d2481.png

应用 PIL 包对图像文件进行读取,并添加到 list 变量中:

for i in range(num_lao):
    if i <10:
        filename = 'CAG/p000'+str(i)+'l.bmp'
    elif i>=10 and i<100:
        filename = 'CAG/p00'+str(i)+'l.bmp'

    img = Image.open(filename)
    img_lao.append(img)

for i in range(num_rao):
    if i <10:
        filename = 'CAG/p000'+str(i)+'r.bmp'
    elif i>=10 and i<100:
        filename = 'CAG/p00'+str(i)+'r.bm
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值