博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐系统-01-简单逻辑回归
阅读量:6191 次
发布时间:2019-06-21

本文共 2048 字,大约阅读时间需要 6 分钟。

import org.apache.spark.ml.feature._import org.apache.spark.ml.param.ParamMapimport org.apache.spark.ml.classification.LogisticRegressionimport org.apache.spark.ml.{Pipeline,PipelineModel}import org.apache.spark.ml.linalg.{Vector, Vectors}import org.apache.spark.sql.Rowimport org.apache.spark.sql.SparkSessionobject BasicStastic{def main(args: Array[String]) {  val spark = SparkSession.builder().            master("local").            appName("my App Name").            getOrCreate()            // 创建数据帧(id, 内容,标签)val training = spark.createDataFrame(Seq(            (0.0, Vectors.dense(2.0, 1.1, 0.1)),            (1.0, Vectors.dense(0.0, 1.0, -1.0)),            (2.0, Vectors.dense(0.0, 1.3, 1.0)),            (3.0, Vectors.dense(2.0, 1.2, -0.5))        )).toDF("label", "features")                    // 相关参数,可以在官方文档有介绍// http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.classification.LogisticRegression       val lr = new LogisticRegression().            setMaxIter(10).            setRegParam(0.01)               val model1 = lr.fit(training)           model1.parent.extractParamMapval paramMap = ParamMap(lr.maxIter -> 20).put(lr.regParam -> 0.1, lr.threshold -> 0.55)val paramMap2 = ParamMap(lr.probabilityCol -> "myProbability")val paramMapCombined = paramMap ++ paramMap2val model2 = lr.fit(training, paramMapCombined)         model2.parent.extractParamMap// 测试数据val test = spark.createDataFrame(Seq(            (3.0, Vectors.dense(-1.0, 1.5, 1.3)),            (0.0, Vectors.dense(3.0, 2.0, -0.1)),            (1.0, Vectors.dense(0.0, 2.2, -1.5))                    )).toDF("label", "features")                     val result = model1.transform(test) // 显示结果 result.show(false) result.select("label", "features", "probability", "prediction").show(false) result.select("label", "features", "probability", "prediction").collect().foreach{case Row(label:Double, features:Vector, probability:Vector, prediction:Double) => println(s"($features, $label) ->  probability=$probability, prediction=$prediction")}  }}

转载地址:http://dyrda.baihongyu.com/

你可能感兴趣的文章
Vue学习计划基础笔记(六) - 组件基础
查看>>
Linux基础笔记——RAID
查看>>
Express安装
查看>>
log4j的使用
查看>>
中断 http请求 正在加载 取消http请求
查看>>
vuejs中的回车事件
查看>>
javascript常见的数组方法
查看>>
数组的普通查找与折半查找
查看>>
.NET开发不可错过的25款必备工具,徐汇区网站设计
查看>>
一起谈.NET技术,ASP.NET MVC Routing概述
查看>>
C#之向ListView视图插入数据...
查看>>
常用linux命令
查看>>
json格式
查看>>
C#.Net 扩展方法
查看>>
matplotlib中subplot的各参数的作用
查看>>
钉钉企业内部H5微应用开发
查看>>
性能测试学习线路图(建议)
查看>>
对象创建从农业社会到共产主义的发展
查看>>
c# 判断两个集合是否有交集
查看>>
洛谷 题解 UVA1395 【苗条的生成树 Slim Span】
查看>>