首页 > 编程知识 正文

svm算法应用,图像异常检测算法

时间:2023-05-03 17:50:04 阅读:153099 作者:1096

文章目录One Class SVM算法介绍代码可视化

One Class SVM算法介绍

One Class SVM也是支持向量机的大家庭,但与传统的基于监督学习的分类回归支持向量机不同,它是一种无监督学习的方法。 也就是说,不需要标记训练集的输出标签。

One-Class-SVM,该算法的思路非常简单,寻找超平面围绕样本中的正例,超平面以外的被认为是离群点。 预测使用该超平面进行决策,ajdws的样本被认为是正样本。

代码实现使用sklearn的相关包实现One class SVM算法。 举一个简单的小demo吧。

froms klearn.svmimportoneclassvmx=[0]、[0.44]、[0.45]、[0.46]、 [1]clf=oneclassvm(gamma='auto '代表性的是离群点的可能性越高,scores=clf.score_samples(x ) " "的输出结果越是[ 1.77987316."

sklearn中的可视化事例、链接为scikit-learn

importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlib.font _ managerfromsklearnimportsvmxx,YY=NP.mesh grid 500 ) ) generatetraindatax=0.3 * NP.random.randn ) 100,2 ) X_train=np.r_[X 2,x-2 ] # generatesomeregularegularard 2 ) X_test=np.r_[X 2,x-2 ] # generatesomeabnormalnovelobservationsx _ outliers=NP.random.uniform (low=x ) 2 ) # fitthemodelclf=SVM.oneclasssvm (nu=0.1,kernel='rbf ', gamma=0.1 ) clf.fit(x_train ) y_pred_train=clf.predict ) x_train ) y_pred_test=clf.predict ) x . sizen _ error _ test=y _ pred _ test [ y _ pred _ test ].sizen _ error _ outliers=y _ pred _ ou ou tliers [ y ] andthenearestvectorstotheplanez=clf.decision _ function (NP.c _ [ xx.ravel ] ), yy.ravel () ) z=z.Reshape ) xx.shape ) PLT.title('noveltydetection ' ) PLT.contourf ) xx,yy,z,levels=linewidths=2,colors='darkred ' ) PLT.cont hs colors=' palevioletred ' (s=40 B1=PLT.scatter (x _ train [ : ] c='blueviolet ',s=s,edgecolors='k ' ) c=PLT.scatter (x _ outliers [ 3360,0 ],edgecolors='k ) PLT . 5 ) ) PLT.legend ) a.colle lend ' training observations ',' new regular observations ',' new abnormal observations'] ' ' ' ' ' errorsnovelabnormal 3360 % d/40 ' % (n _ error _ train,n_error_test,n_error_outliers ) ) plt.show )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。