吴恩达机器学习作业6 :Support Vector Machines

Python分类模型实战(KNN、逻辑回归、决策树、SVM)调优调参,评估模型——综合项目 Python实战,对负债率,信用卡负债违约负债率、工龄违约信用卡负债、工龄违约,分析违约与各特征之间的关系。通过循环,基础原理实现对模型SVM,KNN,逻辑回归,决策树的调优调参,自动化得到最高得分score和accuracy, 阅读详情

一、python中支持向量机(SVM)的用法

在官网的识别手写数字的实例中:

classifier = svm.SVC(gamma=0.001)

X_train, X_test, y_train, y_test = train_test_split(
    data, digits.target, test_size=0.5, shuffle=False)

classifier.fit(X_train, y_train)

predicted = classifier.predict(X_test)

1.首先构建一个分类器classifier。svm.SVC:分类的方式是支持向量机器(SVM)中的 Support Vector Classification(SVC)支持向量分类。也就是说这里的svm用来做分类处理而不是回归(预测一个连续值)。gamma的值与后面用高斯核函数时的sigma值是有关系的:gamma = 1 / (sigma)^2

2.train_test_split 函数用来将数据集分成训练集和测试集,test_size=0.5 表示按五五开的比列划分,shuffle=False表示在划分之前不将数据随机重组。

3.classifier.predict(X_test) 表示预测测试集X_test中的结果。

在使用之前调用的包:

from sklearn.svm import SVC
from sklearn import svm

二、python实现

1.数据可视化、使用SVM做分类处理

path = r'ex6data1.mat'
data1 = scio.loadmat(path)

X = data1['X']
y = data1['y']

#数据可视化data1
plot_data(X, y)

#svm线性模型
clf = svm.SVC(C=1, kernel='linear')
clf.fit(X, y.flatten())
visualize_boundary(X, y, clf, 0, 5, 1.5, 5)

#高斯核
x1 = [1, 2, 1]
x2 = [0, 4, -1]
sigma = 2
sim = guassian_kernel(x1, x2, sigma)

原始数据:
在这里插入图片描述
上面用到的界限划分函数 visualize_boundary :

import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
from plotData import plot_data

def visualize_boundary(x, y, clf, xmin, xmax, ymin, ymax):

    #散点图
    plot_data(x, y)

    #分界线
    xx, yy = np.meshgrid(np.arange(xmin, xmax, .02), np.arange(ymin, ymax, .02))
    z = clf.predict(np.c_[xx.flatten(), yy.flatten()])
    z = z.reshape(xx.shape)
    plt.contour(xx, yy, z, levels=[0])
    plt.show()

设置惩罚参数C,C越大越使划分强行考虑到所有的点:

C = 100,强制让所有的分类正确。
在这里插入图片描述
C = 1,异常点的分类是不正确的,但是划分符合实际情况。
在这里插入图片描述

2 .非线性边界的划分

1.数据可视化(例子一)

path = r'ex6data2.mat'
data2 = scio.loadmat(path)

X = data2['X']
y = data2['y']

plot_data(X, y)
plt.show()

#svm高斯模型
clf = svm.SVC(C=100, kernel='rbf')
clf.fit(X, y.flatten())
visualize_boundary(X, y, clf, 0, 1, 0.4, 1)

原始数据:
在这里插入图片描述
高斯核处理非线性分类后:
在这里插入图片描述

2.数据可视化(例子二)

path = r'ex6data3.mat'
data3 = scio.loadmat(path)

X = data3['X']
y = data3['y']

Xval = data3['Xval']
yval = data3['yval']


plot_data(X, y)
plt.show()

#svm高斯模型
clf = svm.SVC(C=100, kernel='rbf')
clf.fit(X, y.flatten())
visualize_boundary(X, y, clf, -0.6, 0.3, -0.8, 0.6)

划分结果(C = 100)
在这里插入图片描述
选择最佳C,sigma:

C, sigma, corr = choice_best_para(X, y, Xval, yval)

选择函数:

import numpy as np
from predict import predict
from sklearn import svm


def choice_best_para(x, y, xval, yval):

    C = [0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30, 100]
    sigma = [0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30, 100]

    C_best = 0
    sigma_best = 0
    corr_rate_best = 0

    for i in range(9):
        for j in range(9):

            clf = svm.SVC(C=C[i], kernel='rbf', gamma=1/(np.power(sigma[j], 2)*2))
            clf.fit(x, y.flatten())
            y_pred = clf.predict(xval)

            corr_rate = predict(y_pred, yval)

            if corr_rate > corr_rate_best:

                corr_rate_best = corr_rate
                C_best = C[i]
                sigma_best = sigma[j]

    return C_best, sigma_best, corr_rate_best

predict 函数:

import numpy as np


def predict(y_pred, yval):

    yval = yval.flatten()
    corr_rate = np.mean(np.where(y_pred == yval, 1, 0))

    return corr_rate

结果:
在这里插入图片描述

三、垃圾邮件的识别

预处理函数暂时写不出来,有时间再补上。。。。。。

Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) 文章目录Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)0. Pre-condition00. Self-created FunctionsloadData(path):读取数据plotData(X, y):可视化数据plotBoundary(classifier, X):绘制类别间的决策边界displayBoundarie 阅读详情

相关推荐

Programming Exercise 6:Support Vector Machines 第二部分

大家好,我是Mac Jiang,今天和大家分享一下coursera网站上Stanford University的Machine Learning公开课(吴恩达老师)课程第六次作业:Programming Exercise 6:Support Vector Machines。写这篇博客的目的是为在课程学习中遇到困难的同学提供一些帮助,同时帮助自己巩固这周的课程内容。欢迎博友转载此文章,但希望您在转载

Mac Jiang的博客 3232

Python3《机器学习实战》学习笔记(七):支持向量机原理篇之手撕线性SVM

SVM的英文全称是Support Vector Machines,我们叫它支持向量机。支持向量机是我们用于分类的一种算法。可以参考大佬博客链接:关于对SVM的介绍。SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。这个间隙就是球到棍的距离。再之后,把这些球叫做data,把棍子叫做classifier, 找到最大间隙的trick叫做,拍桌子叫做kernelling, 那张纸叫做hyperplane。概况问题。

weixin_43886282的博客 758

Machine Learning - Coursera 吴恩达机器学习教程 Week7 学习笔记(Support Vector Machines)

支持向量机SVM 在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的数据点称为支持向量(support vector)。 代价函数和逻辑回归比较相似: 又称为大间隔分类器,能找到最佳的线性分类位置: 向量内积的物理意义,相当于一个向量在另一个上面的投影长度的乘积: svm决策边界, 核(相似度)函数 SVM擅长解决线性不可分的分类问题。 描述某个样本与标记点的相似度(距离)。相当于映射到一个更高的维度。 高斯核函数 高斯核函数用来测量一对样本的距离,例如(xi, xj)的距离。 核

zhang35的博客 1309

【项目实战】Python实现支持向量机SVM回归模型(SVR算法)项目实战

Python实现支持向量机SVM回归模型(SVR算法)项目实战。

张陈亚的博客 5万+

Habitat-v0.1.7安装全网最详细教程(解决habitat-sim下载时网络问题)

Habitat-v0.1.7安装全网最详细教程(解决habitat-sim下载时网络问题)

shannanshouyin的博客 1326

在AutoDL的A100云服务器上,用Docker搞定Sapien+RobotWin环境(附完整conda list)

本文详细介绍了在AutoDL的A100云服务器上使用Docker构建Sapien+RobotWin环境的完整指南。通过配置Vulkan渲染管线、精确复现Conda环境以及解决常见问题,帮助研究人员高效搭建稳定的机器人仿真开发环境,特别适合需要高性能GPU加速的复杂仿真任务。

weixin_30689307的博客 431

python SVM算法实例

本实验实现了利用python中所提供的sklearn库的数据实现简单的iris数据分析。

赖床分子的博客 4221

无人机通信电台--XBee-PRO 900HP (S3B)

XBee PRO S3B也称为XBee-900HP无线模块,它是一款工作在频段900~928MHz之间,基于FHSS跳频技术的远距离无线数传电台核心模块。常用型号如下: 类别 型号 开发套件 XKB9-DMT-UHP XBee-PRO 900HP (S3B) DigiMesh模块,200Kbps,软天线 XBP9B-DMWT-002 XBee-PRO 900HP (S3B)...

low米的博客 4505

基于Python实现的SVM实验

将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数。获取数据后选取各类模型,用训练集数据训练,然后用模型预测测试集结果,与真实结果比较,计算各模型的正确率。核函数表示,通过一个非线性转换后的两个实例间的内积。根据以上定义,SVM模型的求解最大分割超平面问题可以表示为以下约束最优化问题。经变化,SVM模型的求解最大分割超平面问题又可以表示为以下约束最优化问题。:对于给定的数据集 和超平面 ,定义超平面关于样本点的几何间隔为。超平面关于所有样本点的几何间隔的最小值为。线性的正确率最大,为0.947。

毕业作品网站 1403

机器人中的数值优化(二十一)—— 伴随灵敏度分析、线性方程组求解器的分类和特点、优化软件

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 4205

【GameFramework框架内置模块】10、本地化(Localization)

本地化(Localization),也就是我们所说的不同地区的语言适配,比如说中文版“你好”,英文版是“Hello”。GameFramework在本地化方面,不仅支持文本的本地化,还支持任意资源的本地化,比如说游戏中释放烟花的特效也可以做出不同地区的版本,使得中文版烟花里面的“新年好”字样的特效,在英文版里面是“Happy New Year”字样的特效。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2303

吴恩达机器学习编程作业ex6 Support Vector Machines Part1

一、程序及函数 1.引导脚本ex6.m %% Machine Learning Online Class % Exercise 6 | Support Vector Machines % % Instructions % ------------------------------------------------------------- % % This file contains code that helps you get started on the % exercise. Yo.

Polaris的博客 1521

【企业智能体开发】优化模型成本、延迟与失败降级

小林的培训快开始时,服务台花很久“思考最优回答”,体验并不会更好。反过来,为了省钱而始终选最轻的模型,若连房间、连接方式和任务状态都识别不稳,后续错误检索和重复建单会造成更大代价。企业 Agent 的优化对象不是单次模型调用价格,而是任务在可接受时间内、安全地推进到正确结果的总成本。

Mr数据杨 893

吴恩达机器学习作业6---Support Vector Machines apply in Spam Classification(下)

文章目录前言代码分析数据集spamTrain.matspamTest,matspamSample1.txtspamSample2.txtvacab.txtemailSample1.txtemailSample2.txt 前言 本次作业是用svm对邮件进行分类,筛选出垃圾邮件 邮件为txt文件 首先我们要对邮件进行预处理,去除,替换一些符号 然后,将处理好的邮件str转化为单词列表 根据给定的单词dict,将邮件单词列表转化为0/1表示的列向量 根据此向量,训练线性核SVM 得到的SVM模型即可用于分类

NP_hard的博客 1万+

即插即用系列(代码实践)| GRSL 2024 ARConv核心模块:自适应矩形卷积——专为遥感图像设计,打破固定方形卷积束缚

摘要: 本文提出了一种用于遥感图像处理的自适应矩形卷积模块(ARConv),解决了传统方形卷积核在处理复杂几何结构(如细长道路、密集建筑物)时导致的光谱混叠和边缘模糊问题。ARConv通过动态调整卷积核的长宽比和旋转角度,使卷积核形状与地物特征自适应匹配。该模块可即插即用于全色锐化、语义分割等遥感任务,有效提升边缘保持能力和光谱保真度。核心代码基于PyTorch实现,包含偏移量生成和几何变换逻辑,支持梯度缩放以稳定训练。

分享顶会顶刊论文即插即用模块 140

北斗导航 | 2023 PTTI会议论文 2023 ITM会议论文 2022 ION GNSS+ 会议论文下载:ION 美国导航学会

2023 国际技术会议(ITM) 2023 精密时间和时间间隔系统和应用会议(PTTI) 2022 美国导航学会国际会议(ION GNSS +)

尘世冰封的专栏 4612

吴恩达机器学习作业6---Support Vector Machines(上)

文章目录代码分析1. SVM with linear Kernels2. SVM with Gaussian Kernels3. 高斯核SVM自动选择参数C和σ数据集 代码分析 1. SVM with linear Kernels 首先带入类库 import numpy as np import matplotlib.pyplot as plt import scipy.io #导入mat文件 import scipy.optimize #fmin_cg to train the linear regres

NP_hard的博客 460

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

吴恩达机器学习(十五)—— ex6:Support Vector Machines(MATLAB+Python)

一、支持向量机1.1 样本数据集11.2 带有高斯核的SVM1.2.1 高斯核1.2.2 样本数据集21.2.3 样本数据集3二、垃圾邮件分类2.1 预处理电子邮件2.1.1 预处理电子邮件2.2 从电子邮件中提取特征2.3 训练SVM用于垃圾邮件分类2.4 垃圾邮件的主要预测因素2.5 可选练习:尝试自己的电子邮件2.6 可选练习:构建自己的数据集   本次练习对应的基础知识总结→\rightarrow→SVM。   本次练习对应的文档说明和提供的MATLAB代码→\rightarrow→ 提取码:4.

大彤小忆的博客 8362

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Coursera-吴恩达-机器学习-第七周-编程作业: Support Vector Machines

本次文章内容: Coursera吴恩达机器学习课程,第七周编程作业。编程语言是Matlab。 本文只是从代码结构上做的小笔记,更复杂的推导不在这里。算法分两部分进行理解,第一部分是根据code对算法进行综述,第二部分是代码。 本次作业分两个part,第一个是using SVM,第二个部分是using SVM to build a spam classier.   1 Support Vec...

qq1376725255的专栏 1763

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Support Vector Machines - Optimization objective

By now, you see the range of different learning algorithms. Within supervised learning, the performance of many supervised learning algorithms will be pretty similar and what matters less will often be whether you use learning algorithm A or learning algor

王彩旗的技术博客 224

Machine Learning-Ex6(吴恩达课后习题)Support Vector Machines

SVM支持向量机:线性SVM与带高斯核函数的SVM。

qq_61706112的博客 979

总领思维导图『 吴恩达Machine Learning机器学习 | 支持向量积Support Vector Machines-WEEK7 』

z 188

机器学习- 吴恩达Andrew Ng 编程作业技巧 for Week7 Support Vector Machines

Support Vector Machines https://www.coursera.org/learn/machine-learning/resources/Es9Qo FAQ for Week 7 and programming exercise 6 https://www.coursera.org/learn/machine-learning/discussions/all/threads/ytrutj_YEeai1RIqHM9jYQ Unit Test All Unit Test https

AI架构师易筋 483

Support Vector Machines - Using an SVM

So far we've been talking about SVMs in a fairly abstract level. In this video, I'd like to talk about what you actually need to do in order to run or to use an SVM. The support vector machine algorithm poses a particular optimization problem. But as I.

王彩旗的技术博客 288

【含课程pdf & 测验答案】吴恩达-机器学习公开课 学习笔记 Week7 Support Vector Machines

吴恩达-机器学习公开课 学习笔记 Week7 7-1 Machine Learning System Design 课程内容6-2-1 Building a Spam Classifier6-2-2 Handling Skewed Data6-2-3 Using Large Data Sets测验 Machine Learning System Design课程链接课件 7-1 Machine...

CodingRae的博客 1123

吴恩达·Machine Learning || chap12 Support Vector Machines简记

12-1 Optimization objective Alternative view of logistic regression hθ(x)=11+e−θTxh _ { \theta } ( x ) = \frac { 1 } { 1 + e ^ { - \theta ^ { T } x } }hθ​(x)=1+e−θTx1​ If y=1y=1y=1,we want hθ(x)≈1,θTx≫0h_{\theta}(x)\approx1, \theta^Tx\gg0hθ​(x)≈1,θTx≫0 If

qq_46203130的博客 170
上一篇: 吴恩达机器学习作业5:Regularized Linear Regression and Bias v.s. Variance python实现
下一篇: 吴恩达机器学习作业7 :K-means Clustering and Principal Component Analysis python 实现
zsiming
博客等级 码龄7年 43粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值