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 ='--')
相关推荐
SpongeG34 分钟前
数据结构第三周做题总结_链表
数据结构·算法·链表
everyStudy36 分钟前
前端五种排序
前端·算法·排序算法
little redcap3 小时前
第十九次CCF计算机软件能力认证-乔乔和牛牛逛超市
数据结构·c++·算法
开MINI的工科男3 小时前
【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
人工智能·笔记·自动驾驶·预测与决策
muyierfly3 小时前
34.贪心算法1
算法·贪心算法
luthane6 小时前
python 实现average mean平均数算法
开发语言·python·算法
静心问道6 小时前
WGAN算法
深度学习·算法·机器学习
杰九6 小时前
【算法题】46. 全排列-力扣(LeetCode)
算法·leetcode·深度优先·剪枝
洛寒瑜6 小时前
【读书笔记-《30天自制操作系统》-23】Day24
开发语言·汇编·笔记·操作系统·应用程序
manba_6 小时前
leetcode-560. 和为 K 的子数组
数据结构·算法·leetcode