数码资讯
svm参数设置(svm参数表)
1. svm参数表引导性故障查询车距控制系统中故障记录150016 B200500 [9]无效数据记录,通过诊断仪引导需要对控制单元J428进行编码,编码后故障依然存在。系统校准诊断仪对传感器无法进行校准。通过SVM比较系统正常。尝试调换J428后故障依然存在,另一辆车也出现相同的故障。无相关TPI
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模型的结果的确是概率,但最终结果并不是概率,而是该概率的推导模型,是包括拟合函数参数在内的模型。