SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。
废话不多说,上图;由此,可以看出【支持向量机】是一种可以将数据进行分类的模型!也包括测试数据。测试数据能说明什么问题,代表什么不在此讨论;
如此x强大的分类模型,具体是怎么运作的?想讲清楚,的确较难,在此简单描述一下SVM的概念,测重使用的思路。
模型理论
首先,用一副图来形象的描述一下支持向量机是个什么样的角色;请大家看到连接X、Y轴的那条斜率为负的直线,于二维平面它表示成一条过XY轴的直线,在直线两端明确的区分了圈圈和叉叉,这条直线就是SVM,就是我们要找的支持向量机模型;于更高阶的情况中它可能是一个平面或者是N个形容不出来的平面所组成的东西,暂且叫它【模型】;这个模型由M组测试数据训练而成,这个模型就是后面用来自动化监管测试数据的定心丸。
模型的求解
求解过程是建立模型的第二步台阶,异常重要!很多资料中都有求解的相关记载,在这里不做深入推导,提供些资料供大家熟悉:
模型的使用
1.准备 数据拆分,70%训练数据,30%测试数据;训练数据中一部分正向数据,一部分负向数据
2.训练 将数据带入到Java代码中去跑一下,直到跑出一组W数据且误差率收敛的阵列。
3.使用 截取测试过程中的数据,实时输入到【模型】中,得到输出结果:
一旦模型算出结果偏向于-1,那么预测异常已经发生;偏向于+1,一切正常;
因此,在实时测试中所获得的数据又可以反过来作为训练数据对模型进行补充,数据量越大,训练模型越准确(大到一定值后就没意义了)。
模型可以用来作为判定当前测试环节有没有发生异常,或者趋近于异常。可以有效的在重大事件发生之前做好应急措施(这是终极目标)。