Spark MLlib系列(一):入门介绍

2024-08-26 17:32
文章标签 入门 介绍 系列 spark mllib

本文主要是介绍Spark MLlib系列(一):入门介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章转自:http://blog.csdn.net/shifenglov/article/details/43762705

前言

最新的情况是国内BAT已经都上了spark,而且spark在hadoop上的应用,大有为大象插上翅膀的效果。个人估计在未来两到三年,spark大有代替hadoop的mapreduce的趋势。应该说spark的在使用上面的经济成本,性能优势,一站式解决能力,一定会使其大放异彩。
因为个人对spark很感兴趣,加上项目中需要使用它解决一些机器学习的问题,在网上搜集资料时发现,spark machine learning这块的资料确实太缺少了,所以决定写一spark machine learning的一系列博客(只涉及机器学习部分)。
目前考虑是,这个系列,先讲一些入门的知识,然后是一些真正的实战应用,可能涉及到推荐,聚类,分类等问题,理论涉及不会太多,分享一些接地气的干货,让大家能够真正感受到spark machine learning的魅力。

为什么使用MLlib
    
     MLlib  构建在apache spark之上,一个专门针对大量数据处理的 通用的、快速的引擎
  • Speed.Spark has an advanced DAG execution engine that supports cyclic data flow and in-memory computing. Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk.
  • Ease of Use .Write applications quickly in Java, Scala or Python.
  • Generality.Combine SQL, streaming, and complex analytics.
  • Runs Everywhere.Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, S3.

Logistic regression in Hadoop and Spark

概述

MLlib 是spark的可以扩展的机器学习库,由以下部分组成:通用的学习算法和工具类,包括分类,回归,聚类,协同过滤,降维,当然也包括调优的部分

  • Data types  
  • Basic statistics  (基本统计)
    • summary statistics 概括统计
    • correlations 相关性
    • stratified sampling 分层取样
    • hypothesis testing 假设检验
    • random data generation 随机数生成
  • Classification and regression   (分类一般针对离散型数据而言的,回归是针对连续型数据的。本质上是一样的)
    • linear models (SVMs, logistic regression, linear regression) 线性模型(支持向量机,逻辑回归,线性回归)
    • naive Bayes 贝叶斯算法
    • decision trees  决策树
    • ensembles of trees (Random Forests and Gradient-Boosted Trees) 多种树(随机森林和梯度增强树)
  • Collaborative filtering   协同过滤
    • alternating least squares (ALS)  (交替最小二乘法(ALS) )
  • Clustering  聚类
    • k-means k均值算法
  • Dimensionality reduction   (降维)
    • singular value decomposition (SVD)  奇异值分解
    • principal component analysis (PCA) 主成分分析
  • Feature extraction and transformation 特征提取和转化
  • Optimization (developer) 优化部分
    • stochastic gradient descent 随机梯度下降
    • limited-memory BFGS (L-BFGS) 短时记忆的BFGS (拟牛顿法中的一种,解决非线性问题)

MLlib当前在非常活跃的开发情况下,所以那些被标记成 Experimental/DeveloperApi 在未来的发布种可能会被修改

依赖

MLlib使用了线性代数包 Breeze, 它依赖于netlib-java和jblas。netlib-java 和 jblas 需要依赖native Fortran routines。所以你需要安装gfortran runtime library (安装方法在这个链接中),如果你的集群的节点中没有安装native Fortran routines。MLlib 会抛出一个link error,如果没有安装native Fortran routines。

如果你需要使用spark的python开发,你需要 NumPy version 1.4或以上版本.

当前最近版本1.2

个人认为当前1.2版本的最大的改进应该是发布了称为spark.ml的机器学习工具包,支持了pipeline的学习模式,即多个算法可以用不同参数以流水线的形式运行。在工业界的机器学习应用部署过程中,pipeline的工作模式是很常见的。新的ML工具包使用Spark的SchemaRDD来表示机器学习的数据集合,提供了Spark SQL直接访问的接口。此外,在机器学习的算法方面,增加了两个基于树的方法,随机森林和梯度增强树。还有貌似性能上有优化,看过一篇DataBricks的ppt,据说1.2版本的算法在性能上比1.1版本平均快了3倍


参考资料
 Machine Learning Library (MLlib) Programming Guide  http://spark.apache.org/docs/latest/mllib-guide.html
Spark ML Programming Guide  http://spark.apache.org/docs/latest/ml-guide.html

这篇关于Spark MLlib系列(一):入门介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1109216

相关文章

SpringCloud Stream 快速入门实例教程

《SpringCloudStream快速入门实例教程》本文介绍了SpringCloudStream(SCS)组件在分布式系统中的作用,以及如何集成到SpringBoot项目中,通过SCS,可... 目录1.SCS 组件的出现的背景和作用2.SCS 集成srping Boot项目3.Yml 配置4.Sprin

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

Redis的安全机制详细介绍及配置方法

《Redis的安全机制详细介绍及配置方法》本文介绍Redis安全机制的配置方法,包括绑定IP地址、设置密码、保护模式、禁用危险命令、防火墙限制、TLS加密、客户端连接限制、最大内存使用和日志审计等,通... 目录1. 绑定 IP 地址2. 设置密码3. 保护模式4. 禁用危险命令5. 通过防火墙限制访问6.

SpringMVC配置、映射与参数处理​入门案例详解

《SpringMVC配置、映射与参数处理​入门案例详解》文章介绍了SpringMVC框架的基本概念和使用方法,包括如何配置和编写Controller、设置请求映射规则、使用RestFul风格、获取请求... 目录1.SpringMVC概述2.入门案例①导入相关依赖②配置web.XML③配置SpringMVC

Python连接Spark的7种方法大全

《Python连接Spark的7种方法大全》ApacheSpark是一个强大的分布式计算框架,广泛用于大规模数据处理,通过PySpark,Python开发者能够无缝接入Spark生态系统,本文给大家介... 目录第一章:python与Spark集成概述PySpark 的核心优势基本集成配置步骤启动一个简单的

MySQL索引踩坑合集从入门到精通

《MySQL索引踩坑合集从入门到精通》本文详细介绍了MySQL索引的使用,包括索引的类型、创建、使用、优化技巧及最佳实践,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录mysql索引完整教程:从入门到入土(附实战踩坑指南)一、索引是什么?为什么需要它?1.1 什么

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has