在机器学习中,支持向量机(SVM)是在分类与回归分析中分析数据的监督式学习模型。SVM模型是将实例表示为空间中的点,通过映射使得单独类别的实例被尽可能宽的明显间隔分开,然后将新的实例映射到同一空间中,并基于它们落在间隔的哪一侧来预测所属类别。除了进行线性分类外,SVM还可以使用所谓的核技巧有效地进行非线性分类,并将其输入隐式映射到高维特征空间中。
在 Flink中SVM是一个预测函数,含有ft和 predict两个方法,其中伍fit方法是基于训练数据集进行转化和训练,生成SVM模型;而 Predict方法使用已经训练好的模型进行预测,并生成 Labelvector类型预测结果。
针对SVM模型中参数配置如表所示,用户可以根据情况自行调整和优化。
SVM参数汇总
参数名称 | 参数说明 | 默认值 |
Blocks | 设定介入的数据集将要被切分的Block数量,每块数据集上本地执行随机双坐标上升方法,且Blocks数量至少要和并行度一样 | None |
Iterations | 最大迭代数量, 超过该值则终止迭代 | 10 |
LocalIterations | 定义随机双坐标上升(SDCA)最大的迭代次数 | 10 |
Regurlarization | 定义SVM算法正则化参数 | 1.0 |
Stepsize | 定义更新权重向量的初始化步长,步长越长,则本次权重向量每次更新到下一个权重向量的贡献度将更多 | 1.0 |
ThresholdValue | 定义正负标签确定函数的阈值,大于该值则认为是正标签,小于该值则认为是负标签 | 0.0 |
OutputDecisionFunction | 确定预测和评估函数中应该返回的实例类型,设定为True返回超平面的原生实例类型,设定为False则返回Lable标签信息 | False |
Seed | 初始化随机数的种子 | 随机值 |