「数据分类」15支持向量机(SVM)及混淆矩阵

「数据分类」15支持向量机(SVM)及混淆矩阵,第1张

1.支持向量机(SVM)概述

(1)支持向量机(Support Vector Machines,SVM)是一种二元分类模型,它是一类模型的统称,其中包括:

①线性可分支持向量机;

②线性支持向量机;

③非线性支持向量机。

(如滚2)核心思想:

    训练阶段在特征空间中寻找一个超平面,它能(或尽量能)将训练样本中的正例和负例分离在它的两侧,预测时以该超平面作为决策边界判断输入实例的类别。寻找超平面的原则是,在可分离的情况下使超平面与数据集间隔最大化。

(3)支持向量机的分类示意图为:

简单来说,SVM的原理就是在平面内找到一条直线,使得这两类不同的样本点分开,并且保证能够尽可能远的远离这条直线。用向量表示两类样本点之间的分类间隔(Margin)为:

支持向量机的目的是使r最大,等价于使||w||/2最小。而几何向量使分类间隔最大问题可以转化为运筹学上的约束优化问题。因为涉及太多复杂公式,此处省略。

只要理解了SVM的原理,并且学会利用sklearn库调用SVM模块,就达到了数据分析的目的。

2.SVM算法实现

(1)重要参数说明:

①kernel :核函数,默认是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ 。

·kernel='linear'时为线性核,C越大分类效果越好,但有可能会过拟合(defaul C=1);

·kernel='poly'时为多项式核函数;

·kernel='rbf'时(default)为高斯核,gamma值越小,分类界面越连续;gamma值越大,分类界面越“散”,分类效果越好,但有可能会过拟合。

②decision_function_shape:

·decision_function_shape='ovr'时,为one v rest,即一个类别与其他类别进行划分;

·decision_function_shape='ovo'时,为one v one,即将类别两两之间进行划分,用二分类的方法模拟多分类的结果。

(2)程序实现过程:

【注】

在分类型模型评判的指标中,常见的方法有如下三种:

①混淆矩阵(也称误差矩阵,Confusion Matrix)

    混淆矩阵是评判模型结果的指标,属于模型评估的一部分。此外袭御,混淆矩阵多用于判断分类器(Classifier)的优渣禅余劣,适用于分类型的数据模型,如分类树(Classification Tree)、逻辑回归(Logistic Regression)、线性判别分析(Linear Discriminant Analysis)等方法。

混淆矩阵的一级指标:

通过混淆矩阵可以计算出评估模型的几个指标(二级指标):

三级指标:F1-score

其中,P代表Precision,R代表Recall。

F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。

Ps:当分类结果多于两种时,需要将结果转化为上面的类型。

详细内容参考博文https://blog.csdn.net/Orange_Spotty_Cat/article/details/80520839

②ROC曲线

③AUC面积

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器。

在python中使用SVM处理大数据时可能会遇到内存不足的情况,新我们就来看一首答下如何解决内存不足的问题:

我们可以使用python分块物芹裤读取大数据来罩简避免内存不足,实现代码如下:import pandas as pd

def read_data(file_name):

'''

file_name:文件地址


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8213341.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存