Spark - 机器学习入门

·147 字·1 分钟
Spark scala
n3xtchen
作者
n3xtchen
Sharing Funny Tech With You

这一两年非常火的主题就是机器学习 - 与计算统计密切相关的跨学科领域,让我们的计算机学会不被明确编程下进行自动化工作。

研究表明,在数据分析领域,机器学习被广泛的使用 - 从贷款风险评估到自动驾驶技术。

在接下来的文章中,我将把 MLlibSpark 的机器学习)介绍给大家。

在阅读之前,还有一点很重要 - 本文旨在介绍库的使用,而不是机器学和统计学背后的概念和理论。因此,需要读者对这些主题有基本的概念;同时还需要 Spark 的基础知识。

本文基于 Apache Spark 2.X 的 API,它引入了新的 DataFrame (和旧的 ** RDD** 有较大区别)。使用 DataFrame 的好处之一就是使用起来比 RDD 更简单,更友好。诚然, RDD 将仍然可以使用,但是已经处在维护模式(它将不再进行新功能开发;当 DataFrame 成熟足以取代 RDD,它将被弃用)。

MLlib 介绍 #

MLlib (Machine Learning Library 的缩写)是 Apache Spark 下的机器学习库,在解决机器学习问题方面提供极好的拓展性和易用性。目前,MLlib 使用 Breeze 解决线性代数问题。

该库包含了很多的特性,我现在做个简短介绍。每一个特征都会在后续的章节中进行深入探讨。

功能 #

算法 #
  • 回归(Regression)
    • 线性回归(Linear)
    • 广义线性回归(Generalized Linear)
    • 决策树(Decision Tree)
    • 随机森林(Random Forest)
    • 梯度提升树(Gradient-boosted Tree)
    • Survival
    • Isotonic
  • 分类(Classification)
    • 逻辑回归(Logistic,二分类和多酚类)
    • 决策树(Decision Tree)
    • 随机森林(Random Forest)
    • 梯度提升树(Gradient-boosted Tree)
    • 多层反馈(Multilayer Perceptron)
    • 支持向量机(Linear support vector machine)
    • One-vs-All
    • 朴素贝叶斯(Naive Bayes)
  • 聚类(Clustering)
    • K-means
    • 隐含狄利克雷分布(LDA)
    • Bisecting K-means
    • 高斯混合模型(Gaussian Mixture Model)
  • 协同过滤(Collaborative Filtering)
特征工程(Featurization) #
  • 特征提取
  • 转换
  • 降维(Dimensionality reduction)
  • 筛选(Selection)
管道(Pipelines) #
  • 组合管道(Composing Pipelines)
  • 构建、评估和调优(Tuning)机器学习管道
持久化(Persistence) #
  • 保存算法,模型和管道到持久化存储器,以备后续使用
  • 从持久化存储器载入算法、模型和管道
实用工具(Utilities) #
  • 线性代数(Linear algebra)
  • 统计
  • 数据处理
  • 其他

DataFrame #

正如前面提到的,DataFrameSpark 2.X 新引入的特性,用来取代旧的 RDDDataFrameSpark 的一种数据集(简单的说,一个分布式,强类型的数据集合,在 Spark 1.6 的时候接口初次被引入),由字段(Column,以变量形式呈现)组成。

它的概念和 关系数据库 中的 或者 R/PythonDataFrame 一样,但是进行了一系列的优化。

独特性 #

那么相较于 RDDDataFrame 的主要卖点和优势是什么呢?

译自 https://blog.scalac.io/scala-spark-ml.html