【pyspark学习从入门到精通19】机器学习库_2

目录

估计器

分类

回归

聚类

管道



估计器

估计器可以被看作是需要估算的统计模型,以便对您的观测值进行预测或分类。

如果从抽象的 Estimator 类派生,新模型必须实现 .fit(...) 方法,该方法根据在 DataFrame 中找到的数据以及一些默认或用户指定的参数来拟合模型。

PySpark 中有许多估计器,我们现在将简要描述 Spark 2.0 中可用的模型。

分类

ML 包为数据科学家提供了七种分类模型供选择。这些模型从最简单的(如逻辑回归)到更复杂的都有。我们将在下一节中简要描述每一个:

- LogisticRegression:分类的基准模型。逻辑回归使用 logit 函数计算观测值属于特定类别的概率。在撰写本文时,PySpark ML 仅支持二元分类问题。
- DecisionTreeClassifier:构建决策树以预测观测值的类别的分类器。指定 maxDepth 参数可以限制树生长的深度,minInstancePerNode 确定进一步分割所需的树节点中的最小观测次数,maxBins 参数指定连续变量将被分割成的最大箱数,而 impurity 指定用于测量并计算从分割中获得的信息增益的度量。
- GBTClassifier:用于分类的梯度提升树模型。该模型属于集成模型家族:将多个弱预测模型结合起来形成一个强模型。目前,GBTClassifier 模型支持二元标签,以及连续和分类特征。
- RandomForestClassifier:这个模型生成多个决策树(因此得名森林),并使用这些决策树的模式输出来对观测值进行分类。RandomForestClassifier 支持二元和多项式标签。
- NaiveBayes:基于贝叶斯定理,该模型使用条件概率理论对观测值进行分类。PySpark ML 中的 NaiveBayes 模型支持二元和多项式标签。
- MultilayerPerceptronClassifier:模仿人脑的分类器。深深植根于人工神经网络理论,模型是一个黑盒,即不容易解释模型的内部参数。该模型至少由三层完全连接的人工神经元组成:输入层(需要等于数据集中的特征数量)、至少一个隐藏层,以及输出层的神经元数量等于标签中的类别数量。输入层和隐藏层的所有神经元都有 sigmoid 激活函数,而输出层神经元的激活函数是 softmax。
- OneVsRest:将多类分类简化为二元分类。例如,在多项式标签的情况下,模型可以训练多个二元逻辑回归模型。例如,如果标签 == 2,模型将构建一个逻辑回归,将标签 == 2 转换为 1(所有剩余的标签值将被设置为 0),然后训练一个二元模型。然后对所有模型进行评分,概率最高的模型获胜。

回归

PySpark ML 包中有七种模型可用于回归任务。与分类一样,这些模型从一些基本的(如必不可少的线性回归)到更复杂的都有:

- AFTSurvivalRegression:拟合加速失效时间回归模型。它是一个参数模型,假设一个特征的边际效应加速或减缓寿命期望(或过程失效)。它非常适用于具有明确阶段的过程。
- DecisionTreeRegressor:与分类模型类似,明显的区别是标签是连续的而不是二元的(或多项式的)。
- GBTRegressor:与 DecisionTreeRegressor 一样,区别在于标签的数据类型。
- GeneralizedLinearRegression:具有不同核函数(链接函数)的线性模型家族。与假设误差项正态性的线性回归不同,GLM 允许标签具有不同的误差项分布:PySpark ML 包中的 GeneralizedLinearRegression 模型支持高斯、二项式、伽马和泊松误差分布家族以及多种不同的链接函数。
- IsotonicRegression:一种回归类型,适合你的数据形成一个自由形式的、非递减的线。它适用于拟合有序且递增的观测值数据集。
- LinearRegression:最简单的回归模型,它假设特征和连续标签之间存在线性关系,并且误差项呈正态分布。
- RandomForestRegressor:与 DecisionTreeRegressor 或 GBTRegressor 类似,RandomForestRegressor 拟合的是连续标签而不是离散标签。

聚类

聚类是一类无监督模型,用于发现数据中的潜在模式。PySpark ML 包目前提供了四种最受欢迎的模型:

- BisectingKMeans:k-means 聚类方法和层次聚类的结合。该算法从所有观测值在一个单一的簇开始,逐步将数据分割成 k 个簇。
- KMeans:这是著名的 k-means 算法,将数据分离成 k 个簇,迭代搜索最小化每个观测值与其所属于簇的质心之间平方距离之和的质心。
- GaussianMixture:该方法使用 k 个具有未知参数的高斯分布来剖析数据集。利用期望最大化算法,通过最大化对数似然函数找到高斯的参数。
- LDA:这个模型用于自然语言处理应用中的主题建模。

PySpark ML 中还有一个推荐模型可用,但我们将不在这里描述它。

管道

在 PySpark ML 中,管道是一个端到端的转换-估计过程的概念(具有不同的阶段),它摄取一些原始数据(以 DataFrame 形式),执行必要的数据加工(转换),并最终估计一个统计模型(估计器)。

管道可以被看作是由多个离散阶段组成的链。当在管道对象上执行 .fit(...) 方法时,所有阶段都会按照它们在 stages 参数中指定的顺序执行;stages 参数是转换器和估计器对象的列表。管道对象的 .fit(...) 方法执行转换器的 .transform(...) 方法和估计器的 .fit(...) 方法。

通常,前一阶段的输出成为下一阶段的输入:当从转换器或估计器抽象类派生时,需要实现 .getOutputCol() 方法,该方法返回在创建对象时指定的 outputCol 参数的值。
 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务篇-深入了解使用 RestTemplate 远程调用、Nacos 注册中心基本原理与使用、OpenFeign 的基本使用

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 认识微服务 1.1 单体架构 1.2 微服务 1.3 SpringCloud 框架 2.0 服务调用 2.1 RestTemplate 远程调用 3.0 服务注册和发现 3.1 注册中心原理 3.2 Nacos 注册中心 …

C语言解析命令行参数

原文地址:C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客:无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数,可以对命令行进行解析,下面给出一个示例,用的时候可以直接copy过去修改,很方便…

深度学习:GPT-1的MindSpore实践

GPT-1简介 GPT-1(Generative Pre-trained Transformer)是2018年由Open AI提出的一个结合预训练和微调的用于解决文本理解和文本生成任务的模型。它的基础是Transformer架构,具有如下创新点: NLP领域的迁移学习:通过最…

过滤条件包含 OR 谓词,如何进行查询优化——OceanBase SQL 优化实践

这篇博客涉及两个点,一个是 “OR Expansion 改写”,另一个是 “基于代价的改写”。 背景 在写SQL查询时,难以避免在过滤条件中使用 OR 谓词,但其往往会导致索引利用效率下降的问题 。本文将分享如何通过查询改写的2种方式进行优化…

C语言函数递归经典题型——汉诺塔问题

一.汉诺塔问题介绍 Hanoi(汉诺)塔问题。古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移…

【Python】九大经典排序算法:从入门到精通的详解(冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、基数排序、桶排序)

文章目录 1. 冒泡排序(Bubble Sort)2. 选择排序(Selection Sort)3. 插入排序(Insertion Sort)4. 归并排序(Merge Sort)5. 快速排序(Quick Sort)6. 堆排序&…

lua除法bug

故事背景,新来了一个数值,要改公式。神奇的一幕出现了,公式算出一个非常大的数。排查是lua有一个除法bug,1除以大数得到一个非常大的数。 function div(a, b)return tonumber(string.format("%.2f", a/b)) end print(1/73003) pri…

STM32 USART串口发送+接收

单片机学习! 目录 前言 一、串口发送配置步骤 二、详细步骤 2.1 RCC开启USART和GPIO时钟 2.2 GPIO初始化 2.3 配置USART 2.4 开启USART 2.5 总初始化代码 三、接收数据 3.1 查询方法 3.2 中断方法 3.2.1 中断配置 3.2.2 接收函数 总结 前言 上篇博文介…

网络安全事件管理

一、背景 信息化技术的迅速发展已经极大地改变了人们的生活,网络安全威胁也日益多元化和复杂化。传统的网络安全防护手段难以应对当前繁杂的网络安全问题,构建主动防御的安全整体解决方案将更有利于防范未知的网络安全威胁。 国内外的安全事件在不断增…

AIGC--AIGC与人机协作:新的创作模式

AIGC与人机协作:新的创作模式 引言 人工智能生成内容(AIGC)正在以惊人的速度渗透到创作的各个领域。从生成文本、音乐、到图像和视频,AIGC使得创作过程变得更加快捷和高效。然而,AIGC并非完全取代了人类的创作角色&am…

【数据结构实战篇】用C语言实现你的私有队列

🏝️专栏:【数据结构实战篇】 🌅主页:f狐o狸x 在前面的文章中我们用C语言实现了栈的数据结构,本期内容我们将实现队列的数据结构 一、队列的概念 队列:只允许在一端进行插入数据操作,在另一端…

RHCSA作业

课后练习 将整个 /etc 目录下的文件全部打包并用 gzip 压缩成/back/etcback.tar.gz [rootlocalhost ~]# tar -czvf /back/etcback.tar.gz -C / etc 使当前用户永久生效的命令别名:写一个命令命为hello,实现的功能为每输入一次hello命令,就有hello&#…

java:拆箱和装箱,缓存池概念简单介绍

1.基本数据类型及其包装类: 举例子: Integer i 10; //装箱int n i; //拆箱 概念: 装箱就是自动将基本数据类型转换为包装器类型; 拆箱就是自动将包装器类型转换为基本数据类型; public class Main {public s…

如何选择最适合企业的ETL解决方案?

在今天的大数据时代,企业的数据管理和处理变得愈发重要。企业也越来越依赖于数据仓库和数据湖来提取、转换和加载(ETL)关键业务信息。一个高效、灵活的ETL解决方案不仅能提升数据处理能力,还能为企业决策提供有力支持。然而&#…

[网鼎杯 2020 朱雀组]phpweb 详细题解(反序列化绕过命令执行)

知识点: call_user_func() 函数 反序列化魔术方法 find命令查找flag 代码审计 打开题目,弹出上面的提示,是一个警告warning,而且页面每隔几秒就会刷新一次,根据warning中的信息以及信息中的时间一直在变,可以猜测是date()函数一直在被调用 查看源代码发现一些信息,但是作用…

数字图像处理(2):Verilog基础语法

(1)Verilog常见数据类型: reg型、wire型、integer型、parameter型 (2)Verilog 常见进制:二进制(b或B)、十进制(d或D)、八进制(o或O)、…

c++:面向对象三大特性--继承

面向对象三大特性--继承 一、继承的概念及定义(一)概念(二)继承格式1、继承方式2、格式写法3、派生类继承后访问方式的变化 (三)普通类继承(四)类模板继承 二、基类和派生类的转换&a…

数据结构 (12)串的存储实现

一、顺序存储结构 顺序存储结构是用一组连续的存储单元来存储串中的字符序列。这种存储方式类似于线性表的顺序存储结构,但串的存储对象仅限于字符。顺序存储结构又可以分为定长顺序存储和堆分配存储两种方式。 定长顺序存储: 使用静态数组存储&#xff…

在线绘制Nature Communication同款双色、四色火山图,突出感兴趣的基因

导读:火山图通常使用三种颜色分别表示显著上调,显著下调和不显著。通过为特定的数据点添加另一种颜色,可以创建双色或四色火山图,从而更直观地突出感兴趣的数据点。 《Nature Communication》文章“Molecular and functional land…

2024赣ctf-web -wp

1.你到底多想要flag??? 首先来解决第一关: 先了解一下stripos(); 并且此函数处理数组返回false。而且pre_match同样遇见数组是返回false(解释一下正则 i:这是正则表达式的修饰符,代表“不区…