24/8/6算法笔记 支持向量机

支持向量机(Support Vector Machine, SVM)是一种监督学习算法,主要用于分类和回归任务。它基于统计学习理论中的结构风险最小化原理,通过找到数据点之间的最优边界来实现模型的泛化能力。

复制代码
import numpy as np
import matplotlib.pyplot as plt

from sklearn.svm import SVC
from sklearn import datasets


X,y = datasets.make_blobs(n_samples=100,#样本量
                    n_features=2,#二维数据,便于画图展示
                    centers = 2,#两类
                    random_state=3)#随机数状态,固定了
display(X.shape,y.shape,np.unique(y))
​
plt.scatter(X[:,0],X[:,1],c=y)

datasets.make_blobs 是 Python scikit-learn 库中的一个函数,用于生成具有不同形状和尺度的随机中心的多维数据集。这个函数通常用于创建合成数据集,以便进行测试和演示机器学习算法。

算法建模

复制代码
svc = SVC(kernel = 'linear')#kernel 表示核函数,linear,线性

svc.fit(X,y)
复制代码
svc.score(X,y)

绘制分割线

复制代码
w_ = svc.coef_#有两个特征
w_
复制代码
b_ = svc.intercept_
b_
复制代码
w = -w_[0,0]/w_[0,1]
w
复制代码
b, = -b_/w_[0,1]#逗号能将列表中的数取出来
b
复制代码
sv = svc.support_vectors_
sv
复制代码
x = np.linspace(-5,1,100)

y_result = w*x+b

plt.scatter(X[:,0],X[:,1],c=y)

plt.plot(x,y_result,color = 'red')
#上边界,下边界
b1 = sv[0][1] - w*sv[0][0]
plt.plot(x,w*x+b1,color = 'blue',ls='--')

b2 =  sv[-1][1] - w*sv[-1][0]
plt.plot(x,w*x+b2,color = 'blue',ls ='--')
相关推荐
CM莫问9 分钟前
<论文>(微软)避免推荐域外物品:基于LLM的受限生成式推荐
人工智能·算法·大模型·推荐算法·受限生成
康谋自动驾驶1 小时前
康谋分享 | 自动驾驶仿真进入“标准时代”:aiSim全面对接ASAM OpenX
人工智能·科技·算法·机器学习·自动驾驶·汽车
C++ 老炮儿的技术栈2 小时前
什么是函数重载?为什么 C 不支持函数重载,而 C++能支持函数重载?
c语言·开发语言·c++·qt·算法
yychen_java2 小时前
R-tree详解
java·算法·r-tree
MarkHard1233 小时前
Leetcode (力扣)做题记录 hot100(62,64,287,108)
算法·leetcode·职场和发展
一只鱼^_4 小时前
牛客练习赛138(首篇万字题解???)
数据结构·c++·算法·贪心算法·动态规划·广度优先·图搜索算法
一只码代码的章鱼4 小时前
Spring的 @Validate注解详细分析
前端·spring boot·算法
邹诗钰-电子信息工程4 小时前
嵌入式自学第二十一天(5.14)
java·开发语言·算法
sz66cm4 小时前
Linux基础 -- SSH 流式烧录与压缩传输笔记
linux·笔记·ssh
↣life♚4 小时前
从SAM看交互式分割与可提示分割的区别与联系:Interactive Segmentation & Promptable Segmentation
人工智能·深度学习·算法·sam·分割·交互式分割