头歌——机器学习——支持向量机案例

第1关:基于支持向量机模型的应用案例

任务描述

本关任务:编写一个基于支持向量机模型的应用案例。

相关知识

在本应用案例中,我们借助一个具体的实际问题,来完整地实现基于支持向量机模型的开发应用。在此训练中,我们会介绍如何加载数据集、训练集与测试集的划分,以及如何利用sklearn构建支持向量机模型。

SVM应用案例之数据加载

Iris数据集是机器学习任务中常用的分类实验数据集,由Fisher在1936收集整理。 Iris中文名是安德森鸢尾花卉数据集,英文全称是Anderson’s Iris data set,是一类多重变量分析的数据集。Iris一共包含150个样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

样本局部截图:

,

我们可以通过以下方法从sklearn库加载该数据集。

  • dataset = load_iris()
SVM应用案例之数据划分

我们通常使用 train_test_split() 函数来随机划分样本数据为训练集和测试集,这样做的好处是随机客观的划分数据,减少人为因素。

其中该函数中包含的参数为:

train_data:待划分样本数据

train_target:待划分样本数据的结果(标签)

test_size:测试数据占样本数据的比例,若整数则样本数量

random_state:设置随机数种子,保证每次都是同一个随机数。若为0或不填,则每次得到数据都不一样 具体实现如下:

  • x_train,x_test,y_train,y_test = train_test_split(data_x,data_y,test_size=0.3)
SVM核心算法实现

sklearn库是机器学习领域当中最知名的 python 模块之一。他包含了很多种机器学习的内容,如分类,回归,数据处理,模型选择等等,用途广泛且非常方便,其中就包括了支持向量机模型,我们可以轻松地调用sklearn库中封装好的svm函数实现操作,具体操作如下:

  • from sklearn import svm;//调用sklearn库中的svm函数
  • clf = svm.SVC();//调用svm函数中的SVC核心算法
SVM应用案例之评价指标

在分类任务中,常有的评价指标如下图所示。

,

针对二分类问题,即将实例分成正类(positive)或负类(negative),在实际分类中会出现以下四种情况: (1)若一个实例是正类,并且被预测为正类,即为真正类(True Positive TP) (2)若一个实例是正类,但是被预测为负类,即为假负类(False Negative FN) (3)若一个实例是负类,但是被预测为正类,即为假正类(False Positive FP) (4)若一个实例是负类,并且被预测为负类,即为真负类(True Negative TN)

我们常用准确率来衡量分类器正确的样本与总样本数之间的关系。 具体公式为  Accuracy =TP+TN+FP+FNTP+TN​

在本次应用案例中,我们通过比较预测值与真实值来统计预测正确的数目,具体实现如下:

  • cnt = 0 //初始化为零
  • for i in range(len(y_test)): //通过循环来遍历寻找预测正确的数目
  • if y_predict[i] == y_test[i]:
  • cnt +=1
  • print(cnt/len(y_predict)) //由预测正确的数目除以总数目得到准确率accuracy。

第1关任务——代码题

from sklearn import svm # 加载sklearn库来调用svm算法
from sklearn.datasets import load_iris #加载sklearn库中的数据集
from sklearn.model_selection import train_test_split #划分测试集训练集

#1.加载数据集
################# Begin #################
datas = load_iris()
################# End #################
data_x = datas.data #定义数据
data_y = datas.target #定义标签

#2.划分训练集和测试集
################# Begin #################
x_train,x_test,y_train,y_test = train_test_split(data_x,data_y,test_size=0.3)
################# End #################

#3.调用svm函数
################# Begin #################
from sklearn import svm;
clf = svm.SVC();
################# End #################

clf = clf.fit(x_train,y_train) #开始训练svm模型
a = clf.predict(x_test) #开始测试

cnt = 0
for i in range(len(y_test)):  #评价预测的结果
    if a[i] == y_test[i]:
        cnt +=1
print(cnt/len(a))

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
支持向量机回归预测模型是一种用于进行回归分析的机器学习模型。它的目标是根据给定的训练数据,建立一个可以对新的数据进行预测的模型。 在支持向量机回归模型中,我们首先将数据映射到一个高维特征空间,然后通过寻找一个超平面来拟合数据。这个超平面的选择是基于最大化训练数据与拟合超平面之间的间隔,即间隔最大化。这样可以确保模型对新数据的预测具有较高的准确性。 在MATLAB中实现支持向量机回归预测模型的过程主要是调用MATLAB自带的SVR工具箱。在使用该工具箱时,需要设置一些参数,如核函数类型、正则化参数等,以便根据实际情况进行模型的调整和优化。 模型的建立完成后,可以使用svmpredict()函数对测试集进行预测。在预测过程中,需要将测试集的输出值作为输入,以计算误差。最后,对预测的结果进行反归一化,即将预测值还原为真实值。 这样,我们就可以利用支持向量机回归预测模型对新的数据进行预测,并得到相应的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [支持向量机回归预测SVR——MATLAB超详细代码实现过程](https://blog.csdn.net/rouse_xing/article/details/129333869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [支持向量机:原理与python案例](https://blog.csdn.net/zzh1464501547/article/details/126801279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

absths

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值