• [分类算法] :SVM支持向量机


    Support vector machines 支持向量机,简称SVM

    • 分类算法的目的是学会一个分类函数或者分类模型(分类器),能够把数据库中的数据项映射给定类别中的某一个,从而可以预测未知类别。
    • SVM是一种监督式学习的方法。
    • 支持向量:支持或支撑平面上把两类类别划分开来的超平面的向量点
    • 机:就是算法,机器学习常把一些算法看作是一个机器
    • SVM 其实就是一种很有用的二分类方法。
    • 超平面:

         n维空间中, 满足n元一次方程a1x1+a2x2+...+anxn=b的点(x1,x2,...,xn)的全体就叫空间的一张超平面(即广义平面)。

         具体到2维空间,就是一条直线,3维空间,就是一个平面。

    原理概况:

    1. 线性可分:超平面分割(超平面是分割两类数据的最优的一个平面,下图的红线表示)

          

          2. 最大化间隔

          3. 线性问题求解:

          求解对偶问题得到最优解。(Lagrange 函数的对偶因子)

          4. 非线性问题

              

          通过选择一个核函数,将数据映射到高维空间(线性可分),从而来解决原有空间的线性不可分。

          核方法: 除了支持向量机外,任何把计算表示为数据点的内积的方法,都可以用核方法进行非线性扩展。

    例子:

    import org.apache.spark.mllib.classification.{SVMModel, SVMWithSGD}
    import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics
    import org.apache.spark.mllib.util.MLUtils
    
    // Load training data in LIBSVM format.
    val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
    // Split data into training (60%) and test (40%).
    val splits = data.randomSplit(Array(0.6, 0.4), seed = 11L)
    val training = splits(0).cache()
    val test = splits(1)
    
    // Run training algorithm to build the model
    val numIterations = 100
    val model = SVMWithSGD.train(training, numIterations)
    
    // Clear the default threshold.
    model.clearThreshold()
    
    // Compute raw scores on the test set.
    val scoreAndLabels = test.map { point =>
      val score = model.predict(point.features)
      (score, point.label)
    }
    
    // Get evaluation metrics.
    val metrics = new BinaryClassificationMetrics(scoreAndLabels)
    val auROC = metrics.areaUnderROC()
    println("Area under ROC = " + auROC)
    

      

  • 相关阅读:
    论抱怨
    GitHub开源的10个超棒后台管理面板
    RESTful API 最佳实践
    理解RESTful架构
    redis 数据类型详解 以及 redis适用场景场合
    redis的应用场景 为什么用redis
    composer install 出现的问题
    什么是反向代理
    电脑 DNS纪要
    ajax请求处理概要
  • 原文地址:https://www.cnblogs.com/skyEva/p/5620421.html
Copyright © 2020-2023  润新知