Spark机器学习(3):保序回归算法
保序回归即给定了一个无序的数字序列,通过修改其中元素的值,得到一个非递减的数字序列,要求是使得误差(预测值和实际值差的平方)最小。比如在动物身上实验某种药物,使用了不同的剂量,按理说剂量越大,有效的比例就应该越高,但是如果发现了剂量大反而有效率降低了,这个时候就只有把无序的两个元素合并了,重新计算有效率,直到计算出来的有效率不大于比下一个元素的有效率。
MLlib使用的是PAVA(Pool Adjacent Violators Algorithm)算法,并且是分布式的PAVA算法。首先在每个分区的样本集序列运行PAVA算法,保证局部有序,然后再对整个样本集运行PAVA算法,保证全局有序。
代码:
import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.mllib.regression.{IsotonicRegression, IsotonicRegressionModel, LabeledPoint}object IsotonicRegression {def main(args: Array[String]) {// 设置运行环境val conf = new SparkConf().setAppName("Istonic Regression Test").setMaster("spark://master:7077").setJars(Seq("E:\\Intellij\\Projects\\MachineLearning\\MachineLearning.jar"))val sc = new SparkContext(conf)Logger.getRootLogger.setLevel(Level.WARN)// 读取样本数据并解析val dataRDD = sc.textFile("hdfs://master:9000/ml/data/sample_isotonic_regression_data.txt")val parsedDataRDD = dataRDD.map { line =>val parts = line.split(',').map(_.toDouble)(parts(0), parts(1), 1.0)}// 样本数据划分,训练样本占0.7,测试样本占0.3val dataParts = parsedDataRDD.randomSplit(Array(0.7, 0.3), seed = 25L)val trainRDD = dataParts(0)val testRDD = dataParts(1)// 建立保序回归模型并训练val model = new IsotonicRegression().setIsotonic(true).run(trainRDD) // 计算误差val prediction = testRDD.map { line =>val predicted = model.predict(line._2)(predicted, line._2, line._1)}val showPrediction = prediction.collectprintlnprintln("Prediction" + "\t" + "Feature")for (i <- 0 to showPrediction.length - 1) {println(showPrediction(i)._1 + "\t" + showPrediction(i)._2)}val MSE = prediction.map { case (p, _, l1) => math.pow((p - l1), 2) }.mean()println("MSE = " + MSE)} }
运行结果:
转载于:https://www.cnblogs.com/mstk/p/7019449.html
Spark机器学习(3):保序回归算法相关推荐
- 基于Isotonic回归(保序回归算法)的鸢尾花数据集回归问题
基于Isotonic回归的鸢尾花数据集回归问题 1. 作者介绍 2.保序回归算法 2.1 算法原理 2.2 保序回归算法举例 3. 鸢尾花数据集介绍 3.1 数据集获取 4.代码实现 4.1 导入需要 ...
- 保序回归(isotonic regression)
保序回归算法原理及Spark MLlib调用实例(Scala/Java/python) 保序回归 保序回归isotonic regression
- 【Spark机器学习速成宝典】模型篇08保序回归【Isotonic Regression】(Python版)
目录 保序回归原理 保序回归代码(Spark Python) 保序回归原理 待续... 返回目录 保序回归代码(Spark Python) 代码里数据:https://pan.baidu.com/s/ ...
- Spark中组件Mllib的学习41之保序回归(Isotonic regression)
更多代码请见:https://github.com/xubo245/SparkLearning Spark中组件Mllib的学习之分类篇 1解释 问题描述:给定一个无序数字序列,要求不改变每个元素的位 ...
- Python 第三方模块 机器学习 Scikit-Learn模块 有监督学习1 交叉分解,高斯过程,保序回归
一.cross_decomposition 1.简介: 该模块用于进行"交叉分解"(cross decomposition) 2.使用: "典型相关分析"(Ca ...
- 机器学习基础 维基翻译 保序回归 随机森林 Pipeline处理 及简单的sklearn例子
Isotonic regression(保序回归) In numerical analysis, isotonic regression (IR) involves finding a weighte ...
- 1.15. Isotonic regression(保序回归)
1.15. Isotonic regression(保序回归) 一.描述 保序回归,正如它的名字,是一种对预测值施加了"保序"约束的一种回归分析."保序"的严格 ...
- 多项式回归、分位数回归(Quantile Regression)、保序回归(Isotonic Regression)、RANSAC回归、核岭回归、基准回归模型(baseline)
多项式回归.分位数回归(Quantile Regression).保序回归(Isotonic Regression).RANSAC回归.核岭回归.基准回归模型(baseline) 目录
- sklearn自学指南(part32)--保序回归
学习笔记,仅供参考,有错必纠 文章目录 保序回归 保序回归 IsotonicRegression类对一维数据进行非递减实函数拟合.它解决了以下问题: $$ minimize ; \sum_i w_i ...
最新文章
- 人人都会Vue,你的优势在哪里?
- iOS程序启动过程笔记
- 彻底理解H5的DOM事件
- android 获取屏幕的宽高
- table tr th td
- python目标检测答案_入门指南:用Python实现实时目标检测(内附代码)
- a = a + 1, a++, ++a ,a+=1区别在哪
- 暴涨2000+? 2021年软件测试平均薪资出来了,我坐不住了
- mybatis基础_动态代理开发
- 常用网络特殊符号大全(含彩色表情符号)
- 【MATLAB生信分析】MATLAB生物信息分析工具箱(一)
- 小鹤双拼学习指引-by小鹤双拼作者-散步的鹤
- 实验: 配置trunk
- linux 关闭 飞行模式,飞行模式和免打扰模式的区别
- CAD制图快捷键分享,制图之前的基本准备
- js之好看的鼠标点击-光标特效
- Ubuntu下查看隐藏文件
- 【数学之美】分形图形动画演示欣赏
- 萌新卷妹带你逃出算法无名岛第六站
- 快速完成批量图片压缩,你需要这款图片压缩神器!
热门文章
- Spring+Hiberate 多数据源的网文整理
- 手写及场景文字分析与识别的一些新尝试
- 强化学习能挑战众多世界冠军,人类亦能利用强化学习成为冠军
- 如何突破科研瓶颈?如何与导师自在相处?微软研究员们的读博心得
- 基于YOLOv3 与CRNN的中文自然场景文字检测与识别
- 小白如何学3D建模?从零开始变大神,学习记录手册(必备)
- 锻炼编程能力的10个游戏:通关既巅峰!
- freemarker导出word 目录_PPT转Word你还用复制粘贴?别笑掉大牙了,这几招教你快速转换...
- 【OpenCV】OpenCV函数精讲之 -- 初级图像混合
- 全国各高校开学时间汇总!