Apache Spark机器学习3.5 模型评估

简介:

3.5 模型评估


在上一节,我们完成了模型估计任务。现在,对我们来讲是时候评估模型是否满足模型质量标准,以决定我们进行下一步的结果解释还是回到前面的阶段改善模型。

本节,我们将使用均方根误差(Root-Mean-Square Error,RMSE)和受试者工作特征(Receiver Operating Characteristic,ROC)曲线来评估我们模型的质量。计算RMSE和ROC曲线,我们需要使用测试数据而不是训练数据来评估模型。

3.5.1 快速评价

很多软件包为用户提供一些算法来快速评估模型。例如,在MLlib和R语言中,逻辑回归模型都提供混淆矩阵和误报数计算。

具体来讲,MLlib为我们提供confusionMatrix 和numFalseNegatives()这两个函数和一些算法来快速计算MES,如下所示:

 

此外,R语言为我们提供confusion.matrix函数。在R语言中,有很多工具能进行快速的图形绘制,用以快速地评估一个模型。

例如,我们可以绘制预测值和实际值,以及预测值的残差。

直观地说,比较预测值与实际值的方法是最容易的理解方法,并给了我们一个快速的模型评价。下面是为公司某一个产品计算的混淆矩阵,它显示了模型的合理性。详见右边的表格。

3.5.2 RMSE

在MLlib中,我们使用下面的代码计算RMSE:

 

 

除了上面的代码,MLlib的RegressionMetrics和RankingMetrics类中也为我们提供了一些用于计算RMSE的函数。

在R语言中,我们通过下面的代码计算RMSE:

 

在此之前,我们需要执行下面的命令来得到预测值:

 

所有估计模型的RMSE值计算完毕之后,我们将对它们进行比较,以评估线性回归模型、逻辑回归模型和决策树模型。在本例中,线性回归模型结果最优。

然后,我们对全部产品比较了RMSE值,并对一些产品的模型进行了优化提升。

关于获得RMSE值的其他例子,请访问:http://www.cakesolutions.net/teamblogs/spark-mllib-linear-regression-example-and-vocabulary。

3.5.3 ROC曲线

作为例子,我们将计算逻辑回归模型的ROC曲线。

在MLlib中,我们将估计的模型用在测试数据上,在得到了测试标签之后,我们就可以使用metrics.areaUnderROC()函数来计算ROC曲线。

更多关于使用MLlib计算ROC曲线的信息,请访问:http://web.cs.ucla.edu/ ~mtgarip/linear.html。

在R语言中,我们使用pROC包,执行下面的代码计算和绘制ROC曲线:

 

 

正如前面讨论的,计算了ROC曲线之后,我们就可以用它们在全部产品上比较逻辑回归和决策树模型。本例中,逻辑回归模型的表现优于决策树模型:

相关文章
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
584 15
|
消息中间件 测试技术 Kafka
Apache RocketMQ 批处理模型演进之路
RocketMQ 早期批处理模型存在一定的约束条件,为进一步提升性能,RocketMQ 进行了索引构建流水线改造,同时 BatchCQ 模型和 AutoBatch 模型也优化了批处理流程,提供了更简便的使用体验,快点击本文查看详情及配置展示~
20049 168
|
11月前
|
消息中间件 测试技术 Kafka
Apache RocketMQ 批处理模型演进之路
Apache RocketMQ 批处理模型演进之路
145 0
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
431 1
|
分布式计算 大数据 Spark
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
《Spark大数据处理:技术、应用与性能优化》深入浅出介绍Spark核心,涵盖部署、实战与性能调优,适合初学者。作者基于微软和IBM经验,解析Spark工作机制,探讨BDAS生态,提供实践案例,助力快速掌握。书中亦讨论性能优化策略。[PDF下载链接](https://zhangfeidezhu.com/?p=347)。![Spark Web UI](https://img-blog.csdnimg.cn/direct/16aaadbb4e13410f8cb2727c3786cc9e.png#pic_center)
479 1
Spark大数据处理:技术、应用与性能优化(全)PDF书籍推荐分享
|
Apache 开发者 Java
Apache Wicket揭秘:如何巧妙利用模型与表单机制,实现Web应用高效开发?
【8月更文挑战第31天】本文深入探讨了Apache Wicket的模型与表单处理机制。Wicket作为一个组件化的Java Web框架,提供了多种模型实现,如CompoundPropertyModel等,充当组件与数据间的桥梁。文章通过示例介绍了模型创建及使用方法,并详细讲解了表单组件、提交处理及验证机制,帮助开发者更好地理解如何利用Wicket构建高效、易维护的Web应用程序。
326 0
|
分布式计算 大数据 数据处理
Apache Spark在大数据处理中的应用
Apache Spark是大数据处理的热门工具,由AMPLab开发并捐赠给Apache软件基金会。它以内存计算和优化的执行引擎著称,提供比Hadoop更快的处理速度,支持批处理、交互式查询、流处理和机器学习。Spark架构包括Driver、Master、Worker Node和Executor,核心组件有RDD、DataFrame、Dataset、Spark SQL、Spark Streaming、MLlib和GraphX。文章通过代码示例展示了Spark在批处理、交互式查询和实时数据处理中的应用,并讨论了其优势(高性能、易用性、通用性和集成性)和挑战。【6月更文挑战第11天】
555 6
|
分布式计算 Hadoop 大数据
大数据处理框架在零售业的应用:Apache Hadoop与Apache Spark
【8月更文挑战第20天】Apache Hadoop和Apache Spark为处理海量零售户数据提供了强大的支持
368 0
|
分布式计算 Serverless 数据处理
EMR Serverless Spark 实践教程 | 通过 Apache Airflow 使用 Livy Operator 提交任务
Apache Airflow 是一个强大的工作流程自动化和调度工具,它允许开发者编排、计划和监控数据管道的执行。EMR Serverless Spark 为处理大规模数据处理任务提供了一个无服务器计算环境。本文为您介绍如何通过 Apache Airflow 的 Livy Operator 实现自动化地向 EMR Serverless Spark 提交任务,以实现任务调度和执行的自动化,帮助您更有效地管理数据处理任务。
585 0
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】Spark ML 对数据进行规范化预处理 StandardScaler 与向量拆分
标准化Scaler是数据预处理技术,用于将特征值映射到均值0、方差1的标准正态分布,以消除不同尺度特征的影响,提升模型稳定性和精度。Spark ML中的StandardScaler实现此功能,通过`.setInputCol`、`.setOutputCol`等方法配置并应用到DataFrame数据。示例展示了如何在Spark中使用StandardScaler进行数据规范化,包括创建SparkSession,构建DataFrame,使用VectorAssembler和StandardScaler,以及将向量拆分为列。规范化有助于降低特征重要性,提高模型训练速度和计算效率。
779 6

推荐镜像

更多