分别用线性SVM和高斯核SVM预测对数据进行分类

简介: 分别用线性SVM和高斯核SVM预测对数据进行分类

分别用线性SVM和高斯核SVM预测对数据进行分类


(1)问题描述:

task1_linear.mat中有一批数据点,试用线性SVM对他们进行分类,并在图中画分出决策边界。task1_gaussian中也有一批数据点,试用高斯核SVM对他们进行分类,并在图中画出决策边界。


(2)训练过程:

使用线性核函数的svm算法

1.加载数据并可视化:


加载一个2维数据集:

X,y = svmF.loadData('task1_linear.mat')
svmF.plotData(X,y)

观察可知该数据集可以被线性边界分割为正样本和负样本。

2.训练模型与边界可视化:

model = svmF.svmTrain_SMO(X, y, C=1, max_iter=20)
svmF.visualizeBoundaryLinear(X, y, model)


变量 C所起的作用于逻辑回归中的正则化参数1 \λ


变量C 值对决策边界有不同的影响,下面我们尝试分几种情况验证:


C = 1 :



C = 100 :



C = 1000 :



我们可以发现,C的大小影响着线性决策边界,其所起的作用于逻辑回归中正则化参数一样,C 太大,可能会导致过拟合问题。


使用高斯核函数的SVM算法

对于非线性的分类任务,常用带有高斯核函数的SVM算法来实现。


1.加载数据并可视化:


加载一个2维数据集:

X, y = svmF.loadData('task1_gaussian.mat')
svmF.plotData(X, y)


可以很明显地看出是非线性的数据。



2.训练模型与边界可视化:

model = svmF.svmTrain_SMO(X, y, C=1, kernelFunction='gaussian', K_matrix=svmF.gaussianKernel(X, sigma=0.1))
svmF.visualizeBoundaryGaussian(X, y, model,sigma=0.1)


实现效果如下所示:



(3)尝试调用sklearn

调用sklearn svm,如下所示:

from sklearn import svm
c = 1
clf = svm.SVC(c, kernel='linear', tol=1e-3)
clf.fit(X, y)


结果:



高斯核:

c = 1
sigma = 0.1
clf = svm.SVC(c, kernel='rbf', gamma=np.power(sigma, -2))
clf.fit(X, y)


结果



实验报告地址:


点这里链接

目录
相关文章
|
人工智能 安全 Unix
Linux常用命令笔记大全(建议收藏!!)
Linux常用命令笔记大全(建议收藏!!)
756 0
|
Linux
CentOS8设置网络镜像安装源
CentOS8设置网络镜像安装源
3296 0
|
机器学习/深度学习 监控 数据挖掘
数据并非都是正态分布:三种常见的统计分布及其应用
这篇文章除了介绍线性模型在减肥app预测中的不切实际性,还探讨了不同统计分布在体重管理和数据分析中的应用。文章提到了正态分布和泊松分布,前者常用于描述围绕平均值对称分布的连续数据,如体重;后者适合计数数据,如体重变化次数。正态分布以其钟形曲线闻名,泊松分布则描述独立事件的数量。文章还简要介绍了卡方分布在检验分类变量关系时的作用。最后,文章指出了在线性回归中假设数据正态分布的原因,包括便于统计推断和最小化估计误差。
2373 5
|
SQL 关系型数据库 PostgreSQL
CTE vs 子查询:深入拆解PostgreSQL复杂SQL的隐藏性能差异
本文深入探讨了PostgreSQL中CTE(公共表表达式)与子查询的选择对SQL性能的影响。通过分析两者底层机制,揭示CTE的物化特性及子查询的优化融合优势,并结合多场景案例对比执行效率。最终给出决策指南,帮助开发者根据数据量、引用次数和复杂度选择最优方案,同时提供高级优化技巧和版本演进建议,助力SQL性能调优。
1474 1
|
运维 容灾 API
云栖大会 | 阿里云网络持续演进之路:简单易用的智能云网络,让客户专注业务创新
云栖大会 | 阿里云网络持续演进之路:简单易用的智能云网络,让客户专注业务创新
983 2
|
存储 Python
提升工作效率:获取任意月份的所有工作日
本文介绍了如何使用 Python 编写一个简单程序,以获取任意月份的所有工作日。通过 `datetime` 和 `calendar` 模块,程序能够准确地识别出每个月的周一至周五,帮助用户高效管理时间和任务。
673 6
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用
YOLOv11改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用
1710 0
YOLOv11改进策略【卷积层】| CVPR-2023 部分卷积 PConv 轻量化卷积,降低内存占用
|
Python Windows
一、如何完全卸载Anaconda(如何下载Anaconda-Clean package)
一、如何完全卸载Anaconda(如何下载Anaconda-Clean package)
14144 0
一、如何完全卸载Anaconda(如何下载Anaconda-Clean package)
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】Transformers大模型库(二):AutoModelForCausalLM
【AI大模型】Transformers大模型库(二):AutoModelForCausalLM
1059 1
|
JavaScript 前端开发 容器
vue element plus Card 卡片
vue element plus Card 卡片
762 0

热门文章

最新文章