您的位置:首页 > 其它

Spark--SVM(支持向量机)--记录

2018-01-26 19:31 155 查看
SVM支持向量机:是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。

支持向量机算法:训练集散落在空间中,寻找一个超平面将训练集进行分割成两方,且距离超平面最近的点到超平面的距离最短。

设超平面W.X+b=0
通过伸缩放大超平面 W.X+b=1,使最近的点到超平面的|W.X+b|=1
点到超平面的距离为|W.X+b|/||W||,且yi(W.X+b)>=1

通过拉格朗日定理得到:L(W,a)=1/||W||+sum(1=>n)a*yi(W.X+b-1)


测试数据集地址
链接: https://pan.baidu.com/s/1dKOToq 密码: u3ue

import org.apache.spark.ml.classification.LinearSVC
import org.apache.spark.sql.SparkSession

object SVMTest {
def main(args: Array[String]): Unit = {
 val path = "file:/home/enche/Software/spark-2.2.1-bin-hadoop2.7/data/mllib/sample_libsvm_data.txt"
 

 val spark = SparkSession.builder().appName("test").master("local").getOrCreate()
val data = spark.read.format("libsvm").load(path)
print(data)
 //可线性分类SVM
 val lsvc = new LinearSVC().setRegParam(0.3).setMaxIter(100)
val model = lsvc.fit(data)
print(model.params)

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: