Spark-机器学习(4)回归学习之逻辑回归

在之前的文章中,我们来学习我们回归中的线性回归,了解了它的算法,知道了它的用法,并带来了简单案例。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

Spark-机器学习(3)回归学习之线性回归-CSDN博客文章浏览阅读1.4k次,点赞39次,收藏28次。今天的文章,我们来学习我们回归中的线性回归,希望大家能有所收获。同时,希望我的文章能帮助到每一个正在学习的你们。也欢迎大家来我的文章下交流讨论,共同进步。https://blog.csdn.net/qq_49513817/article/details/138014891今天的文章,我们来学习我们回归中的逻辑回归,并带来简单案例,学习用法。希望大家能有所收获。

目录

一、逻辑回归

 什么是逻辑回归? 

spark线性回归

二、示例代码

拓展-逻辑回归算法介绍及用法

一、逻辑回归

 什么是逻辑回归? 

逻辑回归sigmoid函数

逻辑回归(Logistic Regression)是一种广义的线性回归分析模型,它主要用于解决二分类(0或1)问题,也可以用于多分类问题。逻辑回归的名称中虽然有“回归”二字,但它实际上是一种分类方法,主要用于研究某些事件发生的概率。

逻辑回归通过sigmoid函数将线性回归模型的输出映射到(0,1)之间,从而得到某个事件发生的概率。sigmoid函数的形式为:

g(z) = 1 / (1 + e^(-z))

其中,z是线性回归模型的输出。通过sigmoid函数,我们可以将线性回归模型的输出转化为一个概率值,从而进行二分类或多分类。

逻辑回归的优点包括计算代价不高,易于理解和实现。然而,它也有一些缺点,例如对数据和场景的适应能力有局限性,有时候不如决策树算法准确率高。另外,逻辑回归假设数据服从伯努利分布,因此不适合处理具有多个离散值的问题。

逻辑回归是一种常用的分类算法,尤其适用于二分类问题。在实际应用中,我们需要根据具体的问题和数据特点来选择合适的算法。

spark线性回归

Spark线性回归是利用Spark平台实现的一种线性回归分析方法。线性回归是一种回归分析,它使用称为线性回归方程的最小平方函数来对一个或多个自变量和因变量之间的关系进行建模。这种函数是回归系数的线性组合,其中回归系数是模型的参数。在Spark中,线性回归可以通过其机器学习库MLlib来实现,该库提供了用于数据分析和机器学习的各种算法和工具。通过Spark线性回归,用户可以处理大规模的数据集,并利用分布式计算的能力来加速模型的训练和预测过程。Spark线性回归在数据科学、机器学习、统计分析等领域有广泛的应用。 

二、示例代码

import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator
import org.apache.spark.sql.SparkSession
object p4 {def main(args: Array[String]): Unit = {// 创建SparkSessionval spark = SparkSession.builder().appName("LogisticRegression").master("local").getOrCreate()import spark.implicits._// 加载CSV文件val data = spark.read.option("header", "true").csv("C:\\IDEA\\P1\\p1\\data01.csv")// 假设features列只包含一个double类型的值,直接转换即可.withColumn("features", $"features".cast("double"))// 选择包含label和features的列val finalData = data.select("label", "features")// 划分训练集和测试集val Array(trainingData, testData) = finalData.randomSplit(Array(0.7, 0.3))// 创建逻辑回归模型val lr = new LogisticRegression().setMaxIter(10).setRegParam(0.3)// 训练模型val lrModel = lr.fit(trainingData)// 在测试集上进行预测val predictions = lrModel.transform(testData)// 选择 (prediction, true label) 并展示结果predictions.select("prediction", "label").show(10)// 计算准确率val evaluator = new MulticlassClassificationEvaluator().setLabelCol("label").setPredictionCol("prediction").setMetricName("accuracy")val accuracy = evaluator.evaluate(predictions)println(s"Test Accuracy = $accuracy")}
}

代码的主要步骤如下:

  • 创建一个SparkSession对象,这是使用Spark MLlib进行数据处理和模型训练的入口点。

  • 读取一个CSV文件作为数据集,假设该数据集包含"label"和"features"两列,其中"label"是目标变量,而"features"是特征变量。

  • 将"features"列的数据类型转换为double,因为逻辑回归通常需要数值型特征。

  • 从数据集中选择"label"和"features"列,得到一个新的DataFrame,用于后续的模型训练和评估。

  • 将数据集划分为训练集和测试集,比例分别为70%和30%。

  • 创建一个LogisticRegression对象,并设置最大迭代次数和正则化参数。

  • 使用训练数据拟合逻辑回归模型。

  • 使用训练好的模型对测试集进行预测。

  • 展示预测结果中的前10条记录,包括预测值和真实标签。

  • 使用MulticlassClassificationEvaluator计算测试集的准确率。

  • 打印出测试集的准确率。 

拓展-逻辑回归算法介绍及用法

方法/算法关键字描述示例
二项逻辑回归binomial logistic regression用于预测二元结果,即输出结果为两个类别之一。使用Spark MLlib的LogisticRegression类,设置family参数为binomial来进行二项逻辑回归。
多项逻辑回归multinomial logistic regression用于预测多类结果,即输出结果为多个类别之一。使用Spark MLlib的LogisticRegression类,设置family参数为multinomial来进行多项逻辑回归。
随机梯度下降(SGD)stochastic gradient descent一种优化算法,用于最小化逻辑回归的损失函数。在Spark MLlib中,可以通过设置solver参数为sgd来使用随机梯度下降优化算法。
L-BFGSL-BFGS一种准牛顿法优化算法,用于快速求解大规模优化问题。在Spark MLlib中,可以通过设置solver参数为lbfgs来使用L-BFGS优化算法。
弹性网络正则化elastic net regularization结合了L1和L2正则化,用于防止过拟合。在Spark MLlib的LogisticRegression类中,通过设置elasticNetParam参数来调整L1和L2正则化的权重。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Syncovery for Mac v10.14.3激活版:文件备份和同步工具

Syncovery for Mac是一款高效且灵活的文件备份与同步工具,专为Mac用户设计,旨在确保数据的安全性和完整性。该软件支持多种备份和同步方式,包括本地备份、网络备份以及云备份,用户可以根据实际需求选择最合适的方案。 Syncovery f…

信息系统项目管理师0062:需求分析(5信息系统工程—5.1软件工程—5.1.2需求分析)

点击查看专栏目录 文章目录 5.1.2需求分析1.需求的层次2.需求过程3.UML4.面向对象分析记忆要点总结5.1.2需求分析 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是…

【深度学习】烟雾和火焰数据集,野外数据集,超大量数据集,目标检测,YOLOv5

标注了2w张数据集,是目标检测yolo格式的,有火焰、烟雾两个目标。 训练方法看这里: https://qq742971636.blog.csdn.net/article/details/138097481 打包 依据不一样的需求, 详情请查看 https://docs.qq.com/sheet/DUEdqZ2l…

多元函数泰勒公式(含黑塞矩阵)

一元函数的泰勒公式: 接下来,由一元函数有关知识,我们有: 注意这里的dxn中,应把dx看作一个整体,即一个微小变量的n次方 我们接下来推导微分算子: 接下来,把一元泰勒公式转为微分形式: 对于二元…

React.js 3D开发快速入门

如果你对 3D 图形的可能性着迷,但发现从头开始创建 3D 模型的想法是不可能的 - 不用担心! Three.js 是一个强大的 JavaScript 库,它可以帮助我们轻松地将现有的 3D 模型集成到 React 应用程序中。因此,在本文中,我将深…

ExcelVBA把当前工作表导出为PDF文档

我们先问问Kimi Excel导出为PDF的方法有多种,以下是一些常见的方法: 1 使用Excel软件的内置功能: 打开Excel文件,点击“文件”菜单。选择“另存为”,在“保存类型”中选择“PDF”。设置保存路径和文件名,点…

【机器学习】重塑汽车设计与制造:实例与代码探索

机器学习重塑汽车设计与制造 一、机器学习在汽车设计中的应用二、机器学习在智能制造与生产中的应用 在数字化浪潮的推动下,机器学习技术正逐步成为汽车行业的创新引擎。从概念设计到智能制造,机器学习正以其独特的优势助力汽车产业的革新与发展。本文将…

数据挖掘实验(Apriori,fpgrowth)

Apriori:这里做了个小优化,比如abcde和adcef自连接出的新项集abcdef,可以用abcde的位置和f的位置取交集,这样第n项集的计算可以用n-1项集的信息和数字本身的位置信息计算出来,只需要保存第n-1项集的位置信息就可以提速…

day06 51单片机-点阵led

1 点阵LED 1.1 需求描述 本案例介绍如何使用点阵LED显示一排由左上到右下的斜线。 1.2 硬件设计 1.2.1 硬件原理图 点阵内部的原理图: 点阵LED的原理也非常简单,就是LED点灯。例如,我们想要让13列(阳极端)9行(阴极端)的LED点亮,需要13为高电平,9为低电平。注意对于…

苍穹外卖day8(2)用户下单、微信支付

文章目录 前言一、用户下单1. 业务流程2. 接口设计3. 数据库设计3.1 订单表orders3.2 订单明细表 order_detail 4. 代码实现 二、订单支付 前言 用户下单 因为订单信息中包含了其他业务中的数据,在逻辑处理中涉及了多个其他业务,比如要判断地址簿、购物…

基于SSM+Vue的护工预约服务小程序和后台管理系统

1、系统演示视频(演示视频) 2、需要请联系

虚拟化+Docker基本管理

一、虚拟化简介 1、云端 华为云、谷歌云、腾讯云、阿里云、亚马逊、百度云、移动云、天翼云、西部数码云等 1.国内云 华为云、阿里云、腾讯云、天翼云(私有云) 2.国外云 谷歌云、亚马逊 2、云计算的服务模式是分层的 IaaS:Infrastructure(基础设…

计算机网络【CN】Ch3 数据链路层

目录 数据链路层的功能 【※】VLAN 三种划分VLAN的方法: 【※】MAC帧格式 【※】三种可靠传输机制 ​编辑 【※】介质访问控制 信道划分介质访问控制 随机介质访问控制 CSMA CSMA/CD【有线】 CSMA/CA【无线】 信道利用率技巧 循环冗余校验CRC 以太网[802.3] 以太网…

项目实战 | 责任链模式 (下)

案例二:工作流,费用报销审核流程 同事小贾最近刚出差回来,她迫不及待的就提交了费用报销的流程。根据金额不同,分为以下几种审核流程。报销金额低于1000元,三级部门管理者审批即可,1000到5000元除了三级部…

智己汽车数据驱动中心PMO高级经理张晶女士受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 智己汽车科技有限公司数据驱动中心PMO高级经理张晶女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“规模化敏捷落地实践”。大会将于5月25-26日在北京举办,敬请关注! 议题简要: 2…

【Java学习笔记】9.5 Java中的Lambda表达式

Lambda表达式是从Java8版本开始增加的语法。Lambda表达式有利于实现函数式编程,简化开发。 9.5.1 Lambda表达式入门 Lambda表达式由三部分组成:参数列表、箭头(->),及一个表达式或语句块。其完整的语法格式如下: (Type 1 param1 , Type…

hcip实验 — 路由策略实验

目录 实验拓扑 实验要求 实验思路 实验步骤 1.配置接口及环回ip 2.配置ospf协议及rip协议 3.在R2上进行路由引入 4.在R2上进行路由过滤 5.在R4上进行路由过滤(地址前缀列表) 6.在R2 RIP进程上配置静默接口使RIP报文无法进入OSPF区域 实验拓扑 …

HCF-Net:用于红外小目标检测的分层上下文融合网络

摘要 红外小目标检测是一项重要的计算机视觉任务,涉及在红外图像中识别和定位微小物体,这些物体通常仅包含几个像素。然而,由于物体尺寸极小以及红外图像中通常复杂的背景,这项任务面临困难。在本文中,我们提出了一种…

贪吃蛇代码实现

一.基本信息 实现目标:使用C语言在Windows环境的控制台中实现贪吃蛇游戏 游戏运行: 地图绘制基本玩法提示信息游戏的开始与结束 基本玩法: 通过上下左右键控制蛇的移动蛇可以加速减速吃掉食物可以得分并增加蛇的长度可以自动暂停 游戏结…

代码随想录算法训练营第三十四天|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

1005.K次取反后最大化的数组和 思路: 贪心的思路,局部最优:让绝对值大的负数变为正数,当前数值达到最大,整体最优:整个数组和达到最大。 局部最优可以推出全局最优。 那么如果将负数都转变为正数了&…