专业行业网站建站报价,lol做视频那个网站好,网站设计怎么边加载变查看,平面设计需要美术功底吗一、支持向量机 支持向量机只能做二分类任务 SVM全称支持向量机#xff0c;即寻找到一个超平面使样本分成两类#xff0c;且间隔最大 硬间隔#xff1a;如果样本线性可分#xff0c;在所有样本分类都正确的情况下#xff0c;寻找最大间隔#xff1b;如果出现异常值或样…一、支持向量机 支持向量机只能做二分类任务 SVM全称支持向量机即寻找到一个超平面使样本分成两类且间隔最大 硬间隔如果样本线性可分在所有样本分类都正确的情况下寻找最大间隔如果出现异常值或样本线性不可分此时硬间隔无法实现 软间隔允许部分样本在最大间隔之内甚至在错误的一边寻找最大间隔目标是尽可能保持间隔宽阔和限制间隔违例之间寻找良好的平衡 惩罚系数通过惩罚系数来控制这个平衡C值越小则间隔越宽分错的样本个数也就越多反之C值越大则间隔越窄分错的样本个数越少
二、LinearSVC_API
class sklearn.svm LinearSVC(C 1.0)示例
from plot_util import plot_decision_boundary_svc, plot_decision_boundary
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.svm import LinearSVCX, y load_iris(return_X_y True)x X[y 2, :2]
y y[y 2]plt.scatter(x[y 0, 0], x[y 0, 1], c r)
plt.scatter(x[y 1, 0], x[y 1, 1], c b)
plt.show()# 特征处理
transform StandardScaler()
x_tran transform.fit_transform(x)# 模型训练
model LinearSVC(C 30)
model.fit(x_tran, y)
y_pre model.predict(x_tran)
print(accuracy_score(y, y_pre))# 可视化处理
plot_decision_boundary_svc(model, axis [-3, 3, -3, 3])
plt.scatter(x_tran[y 0, 0], x_tran[y 0, 1], c r)
plt.scatter(x_tran[y 1, 0], x_tran[y 1, 1], c b)
plt.show()# 模型训练
model LinearSVC(C 0.01)
model.fit(x_tran, y)
y_pre model.predict(x_tran)
print(accuracy_score(y, y_pre))# 可视化处理
plot_decision_boundary_svc(model, axis [-3, 3, -3, 3])
plt.scatter(x_tran[y 0, 0], x_tran[y 0, 1], c r)
plt.scatter(x_tran[y 1, 0], x_tran[y 1, 1], c b)
plt.show()三、SVM算法原理
要去求一组参数w, b使其构建的超平面函数能够最优地分离两个集合
样本空间中任一点x到超平面w, b的距离可写成 r w T x b ∣ ∣ w ∣ ∣ r \frac{w^Txb}{||w||} r∣∣w∣∣wTxb想要找到具有最大间隔的划分超平面也就是要找到能满足下式中约束的参数w和b使得间隔 γ \gamma γ最大
$ \begin{cases} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}{i} b \geqslant 1, y{i} 1; \ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}{i} b \leqslant -1, y{i} -1. \end{cases} $
距离超平面最近的几个训练样本点使上式等号成立他们被称为“支持向量”两个异类支持向量到超平面的距离之和为最大间隔距离表示 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2 训练样本$ \begin{cases} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}{i} b \geqslant 1, y{i} 1; \ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}{i} b \leqslant -1, y{i} -1. \end{cases} 则目标函数可以写成 则目标函数可以写成 则目标函数可以写成max_{w, b} \frac{2}{||w||}s.t.y_i(w^Tx_ib) \geqslant 1其中i1,2,3,\dots, m$ 将目标函数进一步优化 m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i b ) ⩾ 1 , 其中 i 1 , 2 , 3 , … , m min_{w, b} \frac{1}{2}||w||^2 s.t.y_i(w^Tx_ib) \geqslant 1,其中i 1, 2, 3, \dots, m minw,b21∣∣w∣∣2s.t.yi(wTxib)⩾1,其中i1,2,3,…,m 添加核函数将目标函数转化成以下形式KaTeX parse error: {align*} can be used only in display mode. 构建拉格朗日函数其中 α i \alpha_i αi为拉格朗日乘子相当于 λ i \lambda_i λi:$L(w, b, \alpha) \frac{1}{2}||w||^2-\sum_{i 1}^{n} \alpha_i\left(1 - y_{i} \left(\boldsymbol{w}^{\mathrm{T}} \cdot \boldsymbol{\varPhi}(x_{i}) b\right)-1\right) \dots \dots ① $ 要想求得极小值上式后半部分应该取的极大值 m i n w , b m a x α L ( w , b , α ) m a x α m i n w , b L ( w , b , α ) min_{w, b}max_{\alpha}L(w, b, \alpha) max_{\alpha }min_{w, b}L(w, b, \alpha) minw,bmaxαL(w,b,α)maxαminw,bL(w,b,α) 要找 m i n w , b L ( w , b , α ) min_{w, b}L(w, b, \alpha) minw,bL(w,b,α)既要先对 w , b w, b w,b求导 对 w w w求偏导并令其为0 L 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i 1 n α i ( y i w T φ ( x i ) y i b − 1 ) 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i 1 n α i y i w T φ ( x i ) α i y i b − α i L\frac{1}{2}||w||^2-\sum_{i 1}^n \alpha_i(y_iw^T \varphi(x_i)y_ib-1)\frac{1}{2}||w||^2-\sum_{i 1}^n \alpha_iy_iw^T \varphi(x_i)\alpha_iy_ib-\alpha_i L21∣∣w∣∣2−∑i1nαi(yiwTφ(xi)yib−1)21∣∣w∣∣2−∑i1nαiyiwTφ(xi)αiyib−αi ∂ L ∂ w w − ∑ i 1 n α i y i φ ( x i ) 0 \frac{\partial L}{\partial w} w-\sum_{i 1}^n\alpha_iy_i \varphi(x_i) 0 ∂w∂Lw−∑i1nαiyiφ(xi)0 得到 w ∑ i 1 n α i y i φ ( x i ) 0 w \sum_{i 1}^n\alpha_iy_i \varphi(x_i) 0 w∑i1nαiyiφ(xi)0 对b求偏导并令其为0 L 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i 1 n α i y i w T φ ( x i ) α i y i b − α i L \frac{1}{2}||w||^2-\sum_{i 1}^n \alpha_iy_iw^T\varphi(x_i)\alpha_iy_ib-\alpha_i L21∣∣w∣∣2−∑i1nαiyiwTφ(xi)αiyib−αi ∂ L ∂ b ∑ i 1 n α i y i 0 \frac{\partial L}{\partial b}\sum_{i 1}^n\alpha_iy_i0 ∂b∂L∑i1nαiyi0 得到 ∑ i 1 n α i y i 0 \sum_{i 1}^n\alpha _iy_i 0 ∑i1nαiyi0 将上面两个求导的结果代入①式中得到$\begin{align*} L(\boldsymbol{w}, b, \boldsymbol{\alpha})\frac{1}{2}|\boldsymbol{w}|^{2}-\sum_{i 1}^{n} \alpha_{i}(y_{i}(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\varphi}(x_{i}) b) - 1)\ \frac{1}{2}\boldsymbol{w}^{\mathrm{T}}\boldsymbol{w}-\sum_{i 1}{n}(\alpha_{i}y_{i}\boldsymbol{w}{\mathrm{T}}\boldsymbol{\varphi}(x_{i})\alpha_{i}y_{i}b - \alpha_{i})\ \frac{1}{2}\boldsymbol{w}^{\mathrm{T}}\boldsymbol{w}-\sum_{i 1}{n}\alpha_{i}y_{i}\boldsymbol{w}{\mathrm{T}}\boldsymbol{\varphi}(x_{i})-b\sum_{i 1}^{n}\alpha_{i}y_{i}\sum_{i 1}^{n}\alpha_{i}\ \frac{1}{2}\boldsymbol{w}^{\mathrm{T}}\boldsymbol{w}-\sum_{i 1}{n}\alpha_{i}y_{i}\boldsymbol{w}{\mathrm{T}}\boldsymbol{\varphi}(x_{i})\sum_{i 1}^{n}\alpha_{i}\ \frac{1}{2}\boldsymbol{w}^{\mathrm{T}}\sum_{i 1}{n}\alpha_{i}y_{i}\boldsymbol{\varphi}(x_{i})-\boldsymbol{w}{\mathrm{T}}\sum_{i 1}^{n}\alpha_{i}y_{i}\boldsymbol{\varphi}(x_{i})\sum_{i 1}^{n}\alpha_{i}\ \sum_{i 1}^{n}\alpha_{i}-\frac{1}{2}\left(\sum_{i 1}{n}\alpha_{i}y_{i}\boldsymbol{\varphi}(x_{i})\right){\mathrm{T}}\cdot\sum_{i 1}^{n}\alpha_{i}y_{i}\boldsymbol{\varphi}(x_{i})\ \sum_{i 1}^{n}\alpha_{i}-\sum_{i 1}^{n}\sum_{j 1}{n}\alpha_{i}\alpha_{j}y_{i}y_{j}\boldsymbol{\varphi}{\mathrm{T}}(x_{i})\boldsymbol{\varphi}(x_{j}) \end{align*} $
四、SVM核函数
核函数作用核函数将原始输入空间映射到新的特征空间从而使原本线性不可分的样本可能在核空间可分核函数分类 线性核 k ( x i , x j ) x i T x j k(x_i, x_j)x_i^Tx_j k(xi,xj)xiTxj多项式核 k ( x i , x j ) ( x i T x j ) d k(x_i, x_j) (x_i^Tx_j)^d k(xi,xj)(xiTxj)d高斯核RBF 径向基函数 k ( x I , x j ) e p x ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) k(x_I, x_j) epx(-\frac{||x_i-x_j||^2}{2\sigma^2}) k(xI,xj)epx(−2σ2∣∣xi−xj∣∣2)——产生将样本投射到无限维空间的运算效果使得原来不可分的数据变得可分使用最多拉普拉斯核 k ( x i , x j ) e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 σ ) k(x_i, x_j)exp(-\frac{||x_i-x_j||^2}{\sigma}) k(xi,xj)exp(−σ∣∣xi−xj∣∣2)Sigmod核 k ( x i , x j ) t a n h ( β x i T x j θ ) k(x_i, x_j) tanh(\beta x_i^Tx_j\theta) k(xi,xj)tanh(βxiTxjθ)
1.高斯核 公式 K ( x , y ) e − γ ∣ ∣ x − y ∣ ∣ 2 K(x, y) e^{-\gamma||x-y||^2} K(x,y)e−γ∣∣x−y∣∣2其中 γ 1 2 σ 2 \gamma\frac{1}{2\sigma^2} γ2σ21 γ \gamma γ是超参数作用与标准差相反 γ \gamma γ越大标准差越小高斯分布越窄 γ \gamma γ越小高斯分布越宽 API γ \gamma γ较大过拟合 γ \gamma γ较小欠拟合
from sklearn.svm import SVC
SVC(kernel rbf, gammagamma)