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

这篇具有很好参考价值的文章主要介绍了Spark-机器学习(4)回归学习之逻辑回归。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

目录

一、逻辑回归

 什么是逻辑回归? 

spark线性回归

二、示例代码

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

一、逻辑回归

 什么是逻辑回归? 

Spark-机器学习(4)回归学习之逻辑回归,机器学习,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 = {
    // 创建SparkSession
    val 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-BFGS L-BFGS 一种准牛顿法优化算法,用于快速求解大规模优化问题。 在Spark MLlib中,可以通过设置solver参数为lbfgs来使用L-BFGS优化算法。
弹性网络正则化 elastic net regularization 结合了L1和L2正则化,用于防止过拟合。 在Spark MLlib的LogisticRegression类中,通过设置elasticNetParam参数来调整L1和L2正则化的权重。

 文章来源地址https://www.toymoban.com/news/detail-857199.html

到了这里,关于Spark-机器学习(4)回归学习之逻辑回归的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习之逻辑回归模型

            逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是一种机器学习算法,属于分类和预测算法中的一种,主要用于解决二分类问题。逻辑回归通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的特征属性,

    2024年02月09日
    浏览(34)
  • Python | 机器学习之逻辑回归

    🌈个人主页: Sarapines Programmer 🔥 系列专栏:《人工智能奇遇记》 🔖墨香寄清辞:诗馀墨痕深,梦漫星辰寂。 曲径通幽意犹在,剑指苍穹气势立。 目录结构 1. 机器学习之逻辑回归概念 1.1 机器学习 1.2 逻辑回归 2. 逻辑回归 2.1 实验目的 2.2 实验准备 2.3 实验题目 2.4 实验内容

    2024年02月05日
    浏览(36)
  • 【基于IDEA + Spark 3.4.1 + sbt 1.9.3 + Spark MLlib 构建逻辑回归鸢尾花分类预测模型】

    基于IDEA + Spark 3.4.1 + sbt 1.9.3 + Spark MLlib 构建逻辑回归鸢尾花分类预测模型,这是一个分类模型案例,通过该案例,可以快速了解Spark MLlib分类预测模型的使用方法。 运行结果如下:

    2024年02月14日
    浏览(33)
  • Spark MLlib快速入门(1)逻辑回归、Kmeans、决策树、Pipeline、交叉验证

    除了scikit-learn外,在spark中也提供了机器学习库,即Spark MLlib。 在Spark MLlib机器学习库提供两套算法实现的API:基于RDD API和基于 DataFrame API 。今天,主要介绍下 DataFrame API 的使用,不涉及算法的原理。 主要提供的算法如下: 分类 逻辑回归、贝叶斯支持向量机 聚类 K-均值 推荐

    2024年02月16日
    浏览(29)
  • 机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】

    目录 前言 一、什么是线性回归 二、什么是逻辑回归 三、基于Python 和 Scikit-learn 库实现线性回归 示例代码:  使用线性回归来预测房价: 四、基于Python 和 Scikit-learn 库实现逻辑回归 五、总结  线性回归的优缺点总结: 逻辑回归(Logistic Regression)是一种常用的分类算法,具有

    2024年04月13日
    浏览(34)
  • 初识人工智能,一文读懂机器学习之逻辑回归知识文集(1)

    🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 🔎 人工智能领域知识 🔎 链接 专栏 人工智能专业知识学习一 人工智能专栏 人

    2024年01月23日
    浏览(47)
  • [机器学习、Spark]Spark MLlib机器学习

    👨‍🎓👨‍🎓博主:发量不足 📑📑本期更新内容: Spark MLlib 机器学习 算法库 📑📑下篇文章预告: Spark机器学习库 MLlib 的概述 💨💨简介:分享的是一个当代疫情在校封校的大学生学习笔记 目录 初始机器学习 一. 什么是机器学习 二.机器学习的应用   一. 什么是

    2024年02月11日
    浏览(37)
  • [机器学习、Spark]Spark机器学习库MLlib的概述与数据类型

    👨‍🎓👨‍🎓博主:发量不足 📑📑本期更新内容: Spark机器学习库MLlib的概述与数据类型 📑📑下篇文章预告:Spark MLlib基本统计 💨💨简介:分享的是一个当代疫情在校封校的大学生学习笔记 目录 Spark机器学习库MLlib的概述 一.MLib的简介 二.Spark机器学习工作流程 数

    2023年04月09日
    浏览(74)
  • [机器学习、Spark]Spark MLlib分类

    👨‍🎓👨‍🎓博主:发量不足 📑📑本期更新内容: Spark MLlib分类 🔥🔥 📑📑下篇文章预告:Hadoop全分布部署🔥🔥🔥 简介:耐心,自信来源于你强大的思想和知识基础!!   目录 一、线性支持向量机 二、逻辑回归     MLB支持多种分类分新方法。如 一元分类、多元分

    2024年02月02日
    浏览(27)
  • 机器学习课后习题 --- 逻辑回归

    1.一监狱人脸识别准入系统用来识别待进入人员的身份,此系统一共包括识别4种不同的人员:狱警,小偷,送餐员,其他。下面哪种学习方法最适合此种应用需求: A:二分类问题                                                   B:多分类问题 C:回归问题           

    2024年02月10日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包