1. svm参数表

引导性故障查询车距控制系统中故障记录150016 B200500 [9]无效数据记录,通过诊断仪引导需要对控制单元J428进行编码,编码后故障依然存在。系统校准诊断仪对传感器无法进行校准。通过SVM比较系统正常。尝试调换J428后故障依然存在,另一辆车也出现相同的故障。无相关TPI,请教厂家老师,老师提供SVM升级代码GFSXCHG13进行系统参数修正。

故障排除:SVM升级。

2. svm值是什么

显而易见,检查了20个不同的度值。该代码已经运行了大约20个小时

3. svm参数选择

P0 组:系统管理 P2 组:基本参数 P4 组:编码器参数 P9 组:数字量输入、出参数 P12 组:高级功能参数 P16 组:键盘显示设定参数 P33 组

4. svm.svc参数

1,实现线性分类

import numpy as np

import matplotlib.pyplot as plt

from sklearn.datasets.samples_generator import make_blobs

from sklearn.svm import SVC

#随机生成点,n_samples:样本点个数;centers:样本点分为几类;random_state:每次随机生成一致;cluster_std:每类样本点间的离散程度,值越大离散程度越大。

X,y = make_blobs(n_samples=50, centers=2, random_state=0, cluster_std=0.60)

#画出所有样本点

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

#使用线性分类SVC拟合

#svc函数还可以包括以下参数(具体例子见文章最后):

#1,C(C越大意味着分类越严格不能有错误;当C趋近于很小的时意味着可以有更大的错误容忍)

#2,kernel(kernel必须是[‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’]中的一个,默认为’rbf’)

#3,gamma(gamma越大模型越复杂,会导致过拟合,对线性核函数无影响)

model = SVC(kernel='linear')

model.fit(X,y)

plot_svc_decision_function(model)

这里用到绘制边界线及圈出支持向量的函数plot_svc_decision_function()

def plot_svc_decision_function(model, ax=None, plot_support=True):

#Plot the decision function for a 2D SVC

if ax is None:

ax = plt.gca()

#找出图片x轴y轴的边界

xlim = ax.get_xlim()

ylim = ax.get_ylim()

# create grid to evaluate model

x = np.linspace(xlim[0], xlim[1], 30)

y = np.linspace(ylim[0], ylim[1], 30)

Y, X = np.meshgrid(y, x)

#形成图片上所有坐标点(900,2),900个二维点

xy = np.vstack([X.ravel(), Y.ravel()]).T

#计算每点到边界的距离(30,30)

P = model.decision_function(xy).reshape(X.shape)

#绘制等高线(距离边界线为0的实线,以及距离边界为1的过支持向量的虚线)

ax.contour(X, Y, P, colors='k',levels=[-1, 0, 1], alpha=0.5,linestyles=['--', '-', '--'])

# 圈出支持向量

if plot_support:

#model.support_vectors_函数可打印出所有支持向量坐标

ax.scatter(model.support_vectors_[:, 0],model.support_vectors_[:, 1],s=200,c='',edgecolors='k')

ax.set_xlim(xlim)

ax.set_ylim(ylim)

绘制效果图如下:

2,实现非线性分类–引入核函数有时候线性核函数不能很好的划分边界比如:

from sklearn.datasets.samples_generator import make_circles

X,y = make_circles(100, factor=.1, noise=.1)

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer')

clf = SVC(kernel='linear').fit(X, y)

plot_svc_decision_function(clf, plot_support=False)

分类结果如下:

此时,需加入径向基函数rbf(高斯)

X,y = make_circles(100, factor=.1, noise=.1)

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer')

clf = SVC(kernel='rbf', C=1E6)

clf.fit(X,y)

plot_svc_decision_function(clf)

分类结果如下:

希望您满意,能帮助到您~~

5. svm介绍

矩阵微分(Matrix Differential)也称矩阵求导(Matrix Derivative),在机器学习、图像处理、最优化等领域的公式推导过程中经常用到。

1. 符号说明

d(y)/d(x) 是一个列向量,其中的元素 (i) 为 d(yi)/d(x)

d(y)/d(x) 是一个列向量,其中的元素 (i) 为 d(y)/d(xi)

d(yT)/d(x) 是一个矩阵,其中的元素 (i,j) 为 d(yj)/d(xi)

d(Y)/d(x) 是一个矩阵,其中的元素 (i,j) 为 d(Yi,j)/d(x)

d(y)/d(X) 是一个矩阵,其中的元素 (i,j) 为 d(y)/d(Xi,j)

    接下来的微分计算中,假定A, B, C是常矩阵与X无关,Y, Z与X相关。

2. 一次函数的微分(Linear Products)

    首先介绍一个重要的性质(类似于函数的求导): d(YZ)/d(x)=Y*d(Z)/d(x)+d(Y)/d(x)*Z,注意到分母中的x是标量(Scalar)。在微分中分母是向量的情况下,个人经验是:若d(行向量)/d(列向量)或者d(列向量)/d(行向量),则也适合这个公式,如下面的前两个公式。

d(xTA)/d(x) = A

推导过程:d(xTA)/d(x) = A*d(xT)/d(x)+xT*d(A)/d(x) = A*I+0 = A。若A为向量a也适用。

d(Ax)/d(xT) = A 推导过程:d(Ax)/d(xT) = [d(xTAT)/d(x)]T = (AT)T = A。

d(aTXb)/d(X) = abT首先求出aTXb = aTX:,1b1 + aTX:,2b2 + ... + aTX:,nbn,这是一个实数,所以对应的Xi,j的系数构成的矩阵就为微分结果,易得abT。若a, b为矩阵A, B公式也适用。

d(aTXTb)/d(X) = baT计算过程同上,若a, b为矩阵A, B公式也适用。

    注意,有些书上有这些公式:d(xA)/d(x)=A; d(Ax)/d(x)=AT。考虑到x为列向量,则Ax也为列向量,列向量对列向量的求导按照《矩阵论》中的公式,结果会是一个列向量而不是公式中的AT。这些特殊的情况就让数学家去钻研吧,应用研究很少遇到。

3. 二次函数的微分(Quadratic Products)

    下面的讨论主要针对分子为二次的情况,分母还是向量或者矩阵。分母为高阶的情况较少,典型的例子有Hessian矩阵,在文章最后会介绍。

d(xTAx)/d(x) = (A+AT)x在SVM求对偶的过程中有这一步求导。用展开的方式可以很快求得。若A为对称阵,则d(xTAx)/d(x) = 2Ax。

d[(Ax+b)TC(Dx+e)]/d(x) = ATC(Dx+e) + DTCT(Ax+b) 这是该形式最为通用的公式。

d(aTXTXb)/d(X) = X(abT + baT)

特殊情况:d(aTXTXa)/d(X) = 2XaaT

d(aTXTCXb)/d(X) = CTXabT + CXbaT

d(aTXTCXa)/d(X) = (C + CT)XaaT

d(aTXTCXa)/d(X) = 2CXaaT,若C对称。

d[(Xa+b)TC(Xa+b)]/d(X) = (C+CT)(Xa+b)aT

4. 矩阵的迹的微分(Trace)

    在矩阵的迹tr()中的矩阵必须为方阵。设有N阶矩阵A,那么矩阵的迹tr(A)就等于A的特征值的总和,也为A矩阵的主对角线元素的总和,tr(AB)=tr(BA)。

d(tr(X))/d(X) = I

d(tr(Xk))/d(X) =k(Xk-1)T

d[tr(ATXBT)]/d(X) = d[tr(BXTA)]/d(X) = AB

d[tr(XAT)]/d(X) = d[tr(ATX)]/d(X) =d[tr(XTA)]/d(X) = d[tr(AXT)]/d(X) = A

d[tr(AXBXT)]/d(X) = ATXBT + AXB

d[tr(XAXT)]/d(X) = X(A+AT)

d[tr(XTAX)]/d(X) = XT(A+AT)

d[tr(AXTX)]/d(X) = (A+AT)X

d[tr(AXBX)]/d(X) = ATXTBT + BTXTAT

5. 雅可比矩阵(Jacobian)

    雅可比矩阵也可以看做是向量对向量的求导而得到的,如果y=f(x),则对应的雅可比矩阵J=d(y)/d(xT)。

6. 海森矩阵(Hessian matrix)

    如果y=f(x),则d[d(f)/d(x)]/d(x)是海森矩阵。在最优化中海森矩阵有诸多用途,如求最大值,最小值,鞍点等。

d2(Ax+b)TC(Dx+e)/d(X2)= ATCD + DTCTA

6. svm的参数c和g

  hyper-parameters  超参数;  [例句]The hyper-parameters are obtained easily by maximizing the marginal likelihood without resorting to expensive cross-validation technique.  而且模型的超参数都可以通过最大化边缘似然函数直接最优化得到,不需要使用到计算复杂的交叉验证技术。

7. svm支持向量机参数

SVM的英文叫Support Vector Machine,中文名为支持向量机。

它是常见的一种分类方法,在机器学习中,SVM是有监督的学习模型。SVM作为有监督的学习模型,通常可以帮我们模式识别、分类以及回归分析。

8. svm 参数

svm模型的结果的确是概率,但最终结果并不是概率,而是该概率的推导模型,是包括拟合函数参数在内的模型。