机器学习:SVM算法预测实战

object DiseasesPredict {
  def main(args: Array[String]) {
    val conf = new SparkConf()                                     //
创建环境变量
      .setMaster("local")                                             //设置本地化处理
      .setAppName("SVMTest ")                                 //设定名称
    val sc = new SparkContext(conf)                                 //创建环境变量实例
    val data = MLUtils.loadLibSVMFile(sc, "c://svm.txt")    //获取数据集
    val splits = data.randomSplit(Array(0.7, 0.3), seed = 11L)   //对数据集切分
    val parsedData = splits(0)         //分割训练数据
    val parseTtest = splits(1)         //分割测试数据
    val model = SVMWithSGD.train(parsedData,50)      //训练模型
    val predictionAndLabels = parseTtest.map {       //计算测试值
      case LabeledPoint(label, features) =>       //计算测试值
        val prediction = model.predict(features)      //计算测试值
        (prediction, label)           //存储测试和预测值
    }
    val metrics = new MulticlassMetrics(predictionAndLabels)   //创建验证类
    val precision = metrics.precision         //计算验证值
    println("Precision = " + precision)        //打印验证值
    val patient = Vectors.dense(Array(70,3,180.0,4,3))    //计算患者可能性
    if(patient == 1) println("患者的患某种疾病概率很大。")     //做出判断
    else println("未见异常。")      //做出判断
  }
}

svm.txt格式如下:

1 1:14 2:3 3:138.6 4:3 5:3

0 1:32 2:1 3:114 4:2 5:3

0 1:35 2:1 3:40.2 4:2 5:1

1 1:70 2:3 3:177.2 4:4 5:3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值