当前位置: 首页 > news >正文

庄浪县县住房建设局网站建盏金盏能不能喝茶

庄浪县县住房建设局网站,建盏金盏能不能喝茶,成都微信小程序定制开发公司,网站建设与维护中国出版社1. 支持向量机(SVM)是什么? 支持向量机(SVM,Support Vector Machine)是一种监督学习算法,广泛应用于分类和回归问题,尤其适用于高维数据的分类。其核心思想是寻找最优分类超平面&am…

1. 支持向量机(SVM)是什么?

支持向量机(SVM,Support Vector Machine)是一种监督学习算法,广泛应用于分类和回归问题,尤其适用于高维数据的分类。其核心思想是寻找最优分类超平面,使得不同类别的样本间隔(Margin)最大化,从而提高模型的泛化能力。

2. SVM的基本原理

2.1. 核心思想

  • 目标: 在特征空间中找到一个超平面(决策边界),使得两类样本的间隔最大化
  • 关键概念:
    • 支持向量(Support Vectors): 距离超平面最近的样本点,决定超平面的位置。这些点在定义分类边界时起着至关重要的作用,因此称为“支持向量”
    • 间隔(Margin): 支持向量到超平面的距离,越大表示分类器鲁棒性越强。SVM通过最大化这个间隔来选择最佳超平面。

3. 线性可分和非线性可分

  • 线性可分: 如果数据可以通过一个直线(二维空间)或超平面(高维空间)分开,则称数据是线性可分的。在这种情况下,SVM能够找到一个线性决策边界。

  • 非线性可分: 当数据不是线性可分时,我们可以通过核函数将数据映射到更高维的空间,使得在这个高维空间中数据变得线性可分。这个过程称为核技巧。

4. SVM的数学基础

4.1. 线性可分情况(硬间隔 SVM)

4.1.1. 间隔最大化

  • 在二维空间中,我们用一个线性决策边界(直线)来将数据分开。假设数据点可以被线性分开,则可以表示为:
    w ⋅ x + b = 0 w⋅x+b=0 wx+b=0

  • 其中:

    • w w w 是法向量,决定超平面的方向。
    • b b b 是偏置项,控制超平面与原点的距离。
    • x x x 是数据点。
  • 目标是找到一个决策边界,使得不同类别的数据点到该边界的距离尽量远。最大化间隔可以转化为如下的优化问题:

m a x i m i z e 2 ∥ w ∥ maximize \frac{2}{\|w\|} maximizew2

  • 其中, ∥ w ∥ \|w\| w是法向量的范数,优化的目标是使这个范数最小化,从而间隔最大化。

4.1.2. SVM 的优化目标

  • 假设数据线性可分,SVM 的优化目标是:
    最大化间隔 等价于 最小化 1 2 ∥ w ∥ 2 最大化间隔 \ 等价于 \ 最小化 \frac {1}{2}\|w\|^2 最大化间隔 等价于 最小化21w2

  • 约束条件: y i ( w T x i + b ) ≥ 1 , ∀ i y_i(w^T x_i + b) \geq 1, \quad \forall i yi(wTxi+b)1,i

  • 其中

    • w w w:是法向量。
    • b b b :是偏置项。
    • y i ∈ − 1 , + 1 y_i∈{−1,+1} yi1,+1:样本标签。
  • 几何解释:

    • 超平面方程: w T x + b = 0 w^Tx+b=0 wTx+b=0

    • 支持向量满足 y i ( w T x i + b ) = 1 y_i(w ^Tx_i +b)=1 yi(wTxi+b)=1

3. 线性不可分情况(软间隔 SVM)

当数据存在噪声或轻微重叠时,引入松弛变量(Slack Variables) ξ i ≥ 0 \xi_i≥0 ξi0,允许部分样本违反约束:
最大化间隔 等价于 min ⁡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i 最大化间隔 \ 等价于 \min \frac{1}{2} \|w\|^2 + C \sum_{i=1}^{N} \xi_i 最大化间隔 等价于min21w2+Ci=1Nξi

  • ξ i \xi_i ξi是松弛变量,表示第 i i i个样本点与分类边界的偏差。

约束条件:
y i ( w T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 y_i(w^T x_i + b) \geq 1 - \xi_i, \xi_i≥0 yi(wTxi+b)1ξi,ξi0

  • 参数 C C C:控制分类严格性:

    • C C C 大 → 更严格(可能过拟合)。

    • C C C 小 → 允许更多错误(提高泛化性)。

4. 非线性 SVM(核方法)

当数据非线性可分时,通过核函数(Kernel)将数据映射到高维空间,使其线性可分。

常用核函数

  • 线性核(无映射):
    K ( x i , x j ) = x i T x j K(x_i, x_j) = x_i^T x_j K(xi,xj)=xiTxj
  • 线性核(无映射):
    K ( x i , x j ) = ( x i T x j + c ) d K(x_i, x_j) = (x_i^T x_j + c)^d K(xi,xj)=(xiTxj+c)d
  • 高斯核(RBF)(最常用):
    K ( x i , x j ) = exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) K(x_i, x_j) = \exp \left( -\frac{\|x_i - x_j\|^2}{2\sigma^2} \right) K(xi,xj)=exp(2σ2xixj2)
    • σ 控制样本间影响范围(小 → 过拟合,大 → 欠拟合)。
  • Sigmoid 核:
    K ( x i , x j ) = tanh ⁡ ( α x i T x j + c ) K(x_i, x_j) = \tanh(\alpha x_i^T x_j + c) K(xi,xj)=tanh(αxiTxj+c)

核技巧(Kernel Trick)

  • 无需显式计算高维映射 ϕ ( x ) ϕ(x) ϕ(x),直接通过核函数计算内积:
    ϕ ( x i ) T ϕ ( x j ) = K ( x i , x j ) \phi(x_i)^T \phi(x_j) = K(x_i, x_j) ϕ(xi)Tϕ(xj)=K(xi,xj)

5. 优化方法(对偶问题)

原始问题转化为拉格朗日对偶问题,通过求解:
max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i , j α i α j y i y j K ( x i , x j ) \max_{\alpha} \sum_{i=1}^{n} \alpha_i - \frac{1}{2} \sum_{i,j} \alpha_i \alpha_j y_i y_j K(x_i, x_j) αmaxi=1nαi21i,jαiαjyiyjK(xi,xj)
约束:
∑ i = 1 n α i y i = 0 , 0 ≤ α i ≤ C \sum_{i=1}^{n} \alpha_i y_i = 0, \quad 0 \leq \alpha_i \leq C i=1nαiyi=0,0αiC

α i α_i αi:拉格朗日乘子,非零 α i α_i αi 对应支持向量。

最终决策函数:
f ( x ) = sign ( ∑ i ∈ S V α i y i K ( x i , x ) + b ) f(x) = \text{sign} \left( \sum_{i \in SV} \alpha_i y_i K(x_i, x) + b \right) f(x)=sign(iSVαiyiK(xi,x)+b)

6. 优缺点

  • ✅ 优点

    • 高维数据有效(尤其适合文本、图像)。

    • 核方法处理非线性问题。

    • 泛化能力强(最大化间隔)。

    • 对过拟合有一定鲁棒性(通过 C C C 控制)。

  • ❌ 缺点

    • 计算复杂度高(训练时间随样本数增长)。

    • 对参数( C C C、核参数)敏感。

    • 不直接提供概率输出(需额外校准)。

7. Python 示例(Scikit-learn)

7.1. 线性 SVM

from sklearn.svm import SVC
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加载数据
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)# 训练线性SVM(C=1.0)
model = SVC(kernel='linear', C=1.0)
model.fit(X_train, y_train)# 评估
print("Accuracy:", model.score(X_test, y_test))

7.2. 非线性 SVM(RBF 核)

from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler# 标准化数据
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)# 训练RBF核SVM(C=1.0, gamma='scale')
model = SVC(kernel='rbf', C=1.0, gamma='scale')
model.fit(X_train_scaled, y_train)# 预测
print("Accuracy:", model.score(X_test_scaled, y_test))

7.3. 支持向量可视化

import matplotlib.pyplot as plt
from sklearn.inspection import DecisionBoundaryDisplay# 仅用前两特征简化可视化
X_2d = X[:, :2]
model = SVC(kernel='linear').fit(X_2d, y)disp = DecisionBoundaryDisplay.from_estimator(model, X_2d, response_method="predict",plot_method="pcolormesh", alpha=0.3,
)
plt.scatter(X_2d[:, 0], X_2d[:, 1], c=y, edgecolor='k')
plt.title("SVM Decision Boundary")
plt.show()

8. 关键参数调优

  • C C C:平衡分类严格性与泛化能力。

    • 网格搜索:GridSearchCV(param_grid={‘C’: [0.1, 1, 10]})
  • 核函数选择

    • 线性:kernel=‘linear’

    • RBF:kernel=‘rbf’(需调 gamma)

  • γ γ γ(RBF核):

    • 小 → 决策边界平滑,大 → 复杂(过拟合风险)。

9. 总结

  • SVM 核心:最大化间隔的超平面,支持核方法处理非线性。

  • 关键参数:

    • 正则化参数 C C C

    • 核函数类型(RBF/线性/多项式)。

    • RBF 核的 γ γ γ

  • 适用场景:

    • 中小规模高维数据(如文本分类、图像识别)。

    • 需强泛化能力的分类任务。

http://www.dtcms.com/a/485543.html

相关文章:

  • 上海品牌网站建设公司排名怎么做广告宣传效果好
  • 怎么搭建自己的网站挣钱企业邮箱注册域名
  • 做网站详细教程建筑网站architect
  • 建站比较好的公司益阳网站建设广告
  • 宿州移动网站建设广西建设厅网站是什么
  • 景点网站怎么做德语网站建设
  • 三合一网站和传统网站wordpress 颜色插件
  • 深圳罗湖网站设计公司91福利社区wordpress
  • 酒泉建设厅网站wordpress商业网站
  • 模板网站 怎么做优化网站设计基础
  • 旅游的网站怎么做金华网站建设报价
  • 企业网站做留言板有什么优势陕西网站建设培训
  • 公司做网站的申请上海做网站比较好的
  • 免费自助网站建设郑州汉狮哪家做网站好
  • 湛江网站公司网站建设选择云主机吗
  • 河南映天建设网站深圳住建局工程交易中心
  • 简单网站php源码下载浙江温州乐清
  • 巅云建站网站模板 在哪购买
  • 公司网站域名怎么取金品诚企网站建设
  • 包头 网站建设广州市网站设计
  • 旧域名新网站大地保险网站
  • 视频教学网站怎么做怎样开发一个微信公众号
  • 档案馆网站安全建设网页设计色彩搭配
  • 企业网站源码 php商贸公司名字推荐
  • 京东商城网站建设教程中信建设有限责任公司是央企吗
  • 做微信文章的网站邯郸市信息港
  • 下载做蛋糕网站铜仁住房和城乡建设局网站
  • 信息管理网站开发的视频教程中建豪城建设有限公司网站
  • 线框图网站小程序开发教程下载
  • 提供网站制作公司报价服装公司网站首页