当前位置: 首页 > news >正文

Spark-机器学习(1)什么是机器学习与MLlib算法库的认识

从这一系列开始,我会带着大家一起了解我们的机器学习,了解我们spark机器学习中的MLIib算法库,知道它大概的模型,熟悉并认识它。同时,本篇文章为个人spark免费专栏的系列文章,有兴趣的可以收藏关注一下,谢谢。同时,希望我的文章能帮助到每一个正在学习的你们。

Spark-大数据技术与应用icon-default.png?t=N7T8https://blog.csdn.net/qq_49513817/category_12641739.html

目录

一、什么是机器学习

机器学习 

发展历史 

 机器学习模型

监督模型

无监督模型

概率模型 

二、MLlib算法库

什么是MLlib算法库

MLlib的方法:

一、什么是机器学习

个人认为,机器学习是一个非常庞大的概念,不论是它本身的模型,运用它是产生的海量数据与决策,还是它那涵盖了众多的模型、算法和技术。并且随着技术的不断进步和应用领域的不断拓展,机器学习的影响力和重要性也将继续提升,所以,机器学习目前的热度高,未来很长时间内也不会衰减甚至更值得学习。

机器学习 

 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能核心,是使计算机具有智能的根本途径。

机器学习算法通过从数据中自动分析和学习规律,使计算机能够自动获取新知识和能力。它可以处理大量的复杂数据并从中提取出有用的信息,并根据不断的经验来改善自身的性能。机器学习算法构建一个基于样本数据的数学模型,即“训练数据”,以便在没有明确编程来执行任务的情况下进行预测或决策。

发展历史 

机器学习的发展可以追溯到上世纪50年代。1952年,Arthur Samuel在IBM开发了第一个自我学习程序,这标志着机器学习的起步。此后,随着技术的发展,机器学习领域不断取得突破,包括感知机、最近邻算法、决策树、随机森林等算法的提出,以及深度学习的兴起。这些创新推动了机器学习在各个领域的应用和发展。 

有监督学习: 

聚类:

 

 概率图模型:

 深度学习: 

 

强化学习:

 机器学习模型

机器学习模型图

监督模型

工作原理:

  • 数据标注:在监督学习中,训练数据集中的每个样本都被标注了一个目标值或标签。这些标签可以是分类标签(如类别名称)或回归值(如连续的数字)。
  • 模型训练:算法使用这些带有标签的数据来训练模型。它学习如何根据输入特征预测目标值。
  • 预测与评估:一旦模型训练完成,它就可以用于对新的、未标注的数据进行预测。预测的准确性通常通过评估指标(如准确率、召回率、F1分数等)来衡量。

 在监督模型中,我们常用的算法有:

  • 线性回归:用于预测一个连续的目标值,基于输入特征与目标值之间的线性关系。
  • 逻辑回归:虽然名字中有“回归”,但实际上是一种分类算法,用于预测二分类或多分类问题。
  • 支持向量机(SVM):通过找到一个超平面来最大化不同类别之间的间隔,从而进行分类。
  • 决策树:通过一系列的问题和答案来进行预测,每个问题都基于一个输入特征。
  • 随机森林:由多个决策树组成,通过集成多个树的预测结果来提高准确性。
  • 神经网络:模拟人脑中的神经元结构,通过多层网络进行学习和预测。

广泛应用在:

  • 图像识别:识别图像中的物体或场景。
  • 自然语言处理:情感分析、文本分类、机器翻译等。
  • 金融领域:信用风险评估、股票价格预测等。
  • 医疗诊断:基于医疗图像或患者数据预测疾病。

监督学习模型是机器学习中的核心组成部分,它通过学习带有标签的数据来建立预测模型,并在各种实际应用中发挥着重要作用。

无监督模型

工作原理:

无监督学习模型通过对大量无标签数据进行迭代计算,自动地发现数据的结构和模式。这些模型通常基于数据的相似性、距离或其他度量来构建,从而将数据分组或降维。

 在无监督模型中,我们常用的算法有:

  • 聚类算法:如K-均值聚类(K-means)和层次聚类。这些算法将数据点划分为不同的组或簇,使得同一簇内的数据点尽可能相似,而不同簇之间的数据点尽可能不同。
  • 降维算法:如主成分分析(PCA)和自编码器。这些算法用于减少数据的维度,同时保留数据中的主要特征或结构。降维有助于减少计算复杂性、消除噪声并可视化高维数据。

 广泛应用在:

  • 图像处理:用于图像分割、特征提取和异常检测。
  • 社交网络分析:识别社区、用户群体和社交模式。
  • 市场分析:通过聚类分析消费者行为和市场趋势。
  • 自然语言处理:用于文本聚类和主题建模。

无监督学习模型为处理未标记数据提供了强大的工具,能够发现数据中的结构和模式,为各种实际应用提供了有力支持。 

概率模型 

工作原理:

在机器学习中,概率模型通过给定的数据来估计和计算不同事件或结果发生的概率。这通常涉及到数据的统计分析和概率推断,以确定模型参数的最优值。一旦模型建立完成,它就可以用于预测新数据的行为或结果,并根据概率分布给出相应的预测概率。

常用的算法有:

  • 朴素贝叶斯算法:这是一种基于贝叶斯定理和特征条件独立假设的分类方法。它常用于文本分类、垃圾邮件过滤等任务。朴素贝叶斯算法根据先验概率和特征条件概率来计算后验概率,从而进行分类。根据应用场景的不同,朴素贝叶斯算法可以分为GaussianNB、MultinomialNB和BernoulliNB等变种。

  • 隐马尔可夫模型(Hidden Markov Model, HMM):HMM是一种统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。HMM常被用于时序数据的建模,如语音识别、自然语言处理等。

  • 最大熵模型:最大熵原理是一种选择概率模型的原则,它认为在满足约束条件的模型集合中,选择熵最大的模型是最好的模型。最大熵模型可以用于各种分类和回归任务。

  • 概率图模型:包括一系列基于图结构的概率模型,如马尔可夫随机场、信念网络等。这些模型通过图来表示变量之间的关系,并利用图论和概率论的方法来进行推理和学习。

  • 混合高斯模型(Gaussian Mixture Model, GMM):GMM是一种概率模型,它假设所有数据都是由有限个高斯分布混合而成的。GMM常用于聚类分析和密度估计。

  • 期望最大化算法(Expectation-Maximization, EM):EM算法是一种迭代方法,常用于概率模型中的参数估计。它通过在E步(期望步)计算期望,然后在M步(最大化步)最大化这个期望,来找到参数的最优估计。

  • 变分推断(Variational Inference):这是一种在概率图模型中进行近似推断的方法。它通过优化一个易于处理的分布来近似难以处理的真实后验分布。

  • 蒙特卡洛方法:这是一种基于随机抽样的统计方法,用于估计复杂函数的积分和解决各种概率问题。在机器学习中,蒙特卡洛方法常用于模型参数的估计和复杂概率分布的计算。

二、MLlib算法库

什么是MLlib算法库

MLlib是Spark的机器学习库,旨在简化机器学习的工程实践工作,并方便扩展到更大规模的数据集。它提供了一组丰富的机器学习算法和工具,用于数据预处理、特征提取、模型训练和评估等任务。MLlib是基于Spark的分布式计算引擎构建的,可以处理大规模数据集,并利用分布式计算的优势来加速机器学习任务的执行。

MLlib提供了丰富的算法实现,包括线性回归、逻辑回归、决策树、随机森林、梯度提升树、K-means聚类等,以及用于特征提取、转换和选择的工具。此外,MLlib还支持使用管道(Pipeline)API将多个机器学习步骤组合成一个统一的流程,从而简化模型训练和调优的过程。

MLlib的方法:

方法作用使用方式
分类用于预测离散型目标变量使用MLlib的分类算法(如逻辑回归、决策树、随机森林等)训练模型,然后对新的数据进行预测。
回归用于预测连续型目标变量使用MLlib的回归算法(如线性回归、决策树回归等)训练模型,用于预测数值型结果。
聚类用于将数据划分为具有相似性的不同簇利用MLlib的聚类算法(如K-means)对数据进行分组,发现数据中的结构和模式。
协同过滤用于推荐系统中的用户或物品的相似度计算应用MLlib的协同过滤算法,根据用户的历史行为和其他用户的相似性生成推荐。
特征工程提取、转换和选择特征,提高模型性能使用MLlib的特征化工具进行特征提取、降维、转换和选择,优化特征表示。
管道(Pipeline)构建、评估和调整机器学习管道利用MLlib的管道API,将多个机器学习步骤组合成一个统一的流程,方便管理和调优。
模型持久化保存和加载模型,以便复用和部署使用MLlib的持久化功能,将训练好的模型保存到文件或数据库中,方便后续的预测和部署。

最后,MLlib是基于Spark的分布式计算引擎构建的,因此在使用MLlib时,我们需要熟悉Spark的基本概念和编程模型,如RDD(弹性分布式数据集)和DataFrame等。通过编写Spark应用程序,我们可以利用MLlib提供的算法和工具来处理大规模数据集,并进行高效的机器学习任务。

一起开始我们的spark机器学习之旅吧~ 

相关文章:

Spark-机器学习(1)什么是机器学习与MLlib算法库的认识

从这一系列开始,我会带着大家一起了解我们的机器学习,了解我们spark机器学习中的MLIib算法库,知道它大概的模型,熟悉并认识它。同时,本篇文章为个人spark免费专栏的系列文章,有兴趣的可以收藏关注一下&…...

java的正则表达式校验,包含了中国几乎所有运营商手机号码的校验格式

时间2024年4月14日22:25:00 代码 String PHONE_REGEX "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$";解释 这个Java代码段定义了一个常量 PHONE_REGEX,它包含了一个正则表达式,用于匹配中国大陆的手机号码。下面是对这…...

C#简单工厂模式的实现

using System.Diagnostics.Metrics; using System.Runtime.InteropServices; using static 手写工厂模式.Program;namespace 手写工厂模式 {internal class Program{public interface eats {void eat();}//定义了一个接口public class rice : eats{public void eat() {Console.…...

.NET 设计模式—观察者模式(Observer Pattern)

简介 在.NET中,观察者模式是一种设计模式,它允许对象之间进行一对多的依赖关系。当一个对象的状态发生变化时,所有依赖于它的对象都会收到通知并自动更新。这种模式在事件驱动的设计中非常常见。 在.NET中实现观察者模式,通常涉…...

EasyUI Jquery 学习笔记 ——DataGrid(数据网格)与 Tree(树)详细版

1. DataGrid(数据网格)与 Tree(树) 1.1 Datagrid 数据网格 扩展自 $.fn.panel.defaults。通过 $.fn.datagrid.defaults 重写默认的 defaults。 数据网格(datagrid)以表格格式显示数据,并为选择、排序、分组和编辑数据提供了丰富的支持。数据网格(datagrid)的设计目…...

JAVA发票验真接口、票据ocr、数电票在线查验真伪

发票验真接口,,实时联网核验发票真伪,查验一致返回全票面信息,支持查验增值税发票管理系统开具的发票,支持批量核验发票,翔云发票查验送发票识别,助您摆脱手动输入繁琐,提升工作效率。 发票查验接口适用于银行、金融、代理记账等发票管理数量…...

el-date-picker调用回车事件

elementui的el-date-picker想要调用回车事件&#xff1a; <el-date-pickerv-model"state.date"type"date"value-format"YYYY-MM-DD HH:mm:ss"placeholder"选择日期"clearablekeydown.enter"handleDown"></el-date-…...

js学习总结

这里写目录标题 前情提要JavaScript书写位置1. 内部javaScript (不常用)2. 外部javaScript (常用)3.内联javaScript (常用) js中的输入和输出输出语法1. document.write()2. alert()3. console.log() 输入语法prompt() 前情提要 1. 在javaScript中的 分号 是可以省略的JavaScr…...

MES实施优势有哪些?MES制造执行系统的主要内容

各个行业之间也开始进入到了激烈的竞争当中&#xff0c;很多企业为了能够有效提升企业竞争力&#xff0c;都会通过提升自身实力的方式来提升竞争力。一些制造业也会在经营过程当中使用到MES系统&#xff0c;那么&#xff0c;mes系统的优势有哪些呢&#xff1f; 1、优化企业现场…...

ChatGPT 和 Elasticsearch:使用 Elastic 数据创建自定义 GPT

作者&#xff1a;Sandra Gonzales ChatGPT Plus 订阅者现在有机会创建他们自己的定制版 ChatGPT&#xff0c;称为 GPT&#xff0c;这替代了之前博客文章中讨论的插件。基于本系列的第一部分的基础 —— 我们深入探讨了在 Elastic Cloud 中设置 Elasticsearch 数据和创建向量嵌…...

废品回收 小程序+APP

用户实名认证、回收员实名认证、后台审核、会员管理、回收员管理、订单管理、提现管理、地图、档案管理。 支持&#xff0c;安卓APP、苹果APP、小程序 流程&#xff1a; 一、用户端下单&#xff0c;地图选择上门位置、填写具体位置、废品名称、预估重量、选择是企业废旧、家…...

下载好了annaconda,但是在创建一个新的Conda虚拟环境报错

文章目录 问题描述&#xff1a;解决方案1.生成一个配置文件 问题总结 问题描述&#xff1a; ProxyError(MaxRetryError(“HTTPSConnectionPool(host‘repo.anaconda.com’, port443): Max retries exceeded with url: /pkgs/pro/win-64/repodata.json.bz2 (Caused by ProxyErr…...

如何安装MacOS的虚拟机?mac安装虚拟机的步骤 虚拟机安装MacOS VMware Fusion和Parallels Desktop19

要在Mac上运行MacOS的虚拟机&#xff0c;常用的方法是使用虚拟化软件如VMware Fusion或Parallels Desktop。 以下是安装MacOS的虚拟机的主要步骤&#xff1a; 1. 检查系统要求&#xff1a;确定您的Mac硬件和操作系统满足安装要求。您需要一台具备足够性能的Mac&#xff0c;并…...

Flutter 中 AutomaticKeepAliveClientMixin 的介绍及使用

在 Flutter 中&#xff0c;当你在一个页面中滑动列表或者进行其他一些操作时&#xff0c;如果你返回到该页面&#xff0c;可能会发现之前的状态已经丢失了。这在某些情况下可能是不可取的&#xff0c;特别是当你想要保留之前的状态&#xff0c;而不是每次都重新加载页面时。 为…...

注意力机制篇 | YOLOv8改进之清华开源ACmix:自注意力和CNN的融合 | 性能速度全面提升

前言:Hello大家好,我是小哥谈。混合模型ACmix将自注意力机制和卷积神经网络进行整合,使其同时具有自注意力机制和卷积神经网络的优点。这是清华大学、华为和北京人工智能研究院共同发布在2022年CVPR中的论文。ACmix结合了自注意力机制和卷积神经网络的优势,以提高模型的性能…...

Go语言支持重载吗?如何实现重写?

Go语言不支持传统意义上的函数和方法重载。在Go语言中&#xff0c;函数名或方法名不能相同但参数列表不同&#xff0c;因为这会导致编译错误。 然而&#xff0c;可以通过方法重写&#xff08;override&#xff09;来实现类似的功能。方法重写是指在子类中定义一个与父类同名的…...

Spring中基于事件监听驱动 和 线程池的异步任务

文章目录 事件监听驱动 与 异步事件源ApplicationContextAware接口 发布事件事件实体监听事件实现异步注入綫程池 事件驱动机制&#xff0c;与MQ消息队列比较 事件监听驱动 与 异步 事件监听驱动优点&#xff1a;解耦&#xff0c;将 事件和业务进行解耦&#xff0c;通过Asyc注解…...

C++ 优先级队列用法详解与模拟实现

文章目录 C 优先级队列用法与模拟实现介绍用法头文件1.创建优先级队列priority_queue 2. 插入元素push 3. 删除元素pop 访问顶部元素top 检查优先级队列的大小size 检查优先级队列是否为空empty 模拟实现 C 优先级队列用法与模拟实现 介绍 优先级队列&#xff08;Priority Qu…...

Linux进阶之旅:深入探索Linux的高级功能

文章目录 Linux进阶之旅:深入探索Linux的高级功能1. Shell脚本编程2. 进程管理3. 网络管理4. 文本处理5. 系统监控6. 总结 Linux进阶之旅:深入探索Linux的高级功能 在上一篇博客中,我们对Linux操作系统进行了入门级的介绍,包括Linux的特点、发行版、安装方法以及基本使用。接下…...

【Java】内存可见性问题是什么?

文章目录 内存模型内存可见性解决方案volatile 内存模型 什么是JAVA 内存模型&#xff1f; Java Memory Model (JAVA 内存模型&#xff09;是描述线程之间如何通过内存(memory)来进行交互。 具体说来&#xff0c; JVM中存在一个主存区&#xff08;Main Memory或Java Heap Mem…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙&#xff08;HarmonyOS5&#xff09;中集成百度地图&#xff0c;可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API&#xff0c;可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​&#xff1a;下载安装 ​​De…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...