PySpark MLlib (Machine Learning) 技术详解手册

PySpark MLlib (Machine Learning) 技术详解手册

1. MLlib 简介 (Introduction)

MLlib 是 Spark 的可扩展机器学习库。它的目标是让实用的机器学习变得可扩展且容易。

它提供以下主要功能:

  • ML 算法:常用的学习算法,如分类、回归、聚类和协同过滤。
  • 特征化 (Featurization):特征提取、转换、降维和选择。
  • 管道 (Pipelines):用于构建、评估和调整 ML 工作流的工具。
  • 持久性:保存和加载算法、模型和管道。

2. 核心概念 (Core Concepts)

pyspark.ml 中,有三个核心抽象概念,理解它们是使用库的前提:

  1. Transformer (转换器)
    • 一种算法,可以将一个 DataFrame 转换为另一个 DataFrame。
    • 例如:ML 模型将 带有特征的 DataFrame 转换为 带有预测结果的 DataFrame
    • 核心方法:.transform()
  2. Estimator (估计器)
    • 一种算法,可以拟合(Fit)DataFrame 以生成 Transformer。
    • 例如:学习算法(如逻辑回归)在训练数据上训练并生成模型。
    • 核心方法:.fit()
  3. Pipeline (管道)
    • 将多个 Transformer 和 Estimator 链接在一起形成的工作流。

3. 环境准备 (Setup)

在开始之前,我们需要构建一个简单的 DataFrame 作为训练数据。MLlib 要求特征通常必须封装在 Vector(向量) 列中。

from pyspark.sql import SparkSession
from pyspark.ml.linalg import Vectors

spark = SparkSession.builder.appName("MLlib App").getOrCreate()

# 准备训练数据: (id, features, label)
# label: 1.0 代表正类, 0.0 代表负类
training_data = spark.createDataFrame([
    (1.0, Vectors.dense([0.0, 1.1, 0.1]), 1.0),
    (2.0, Vectors.dense([2.0, 1.0, -1.0]), 1.0),
    (3.0, Vectors.dense([2.0, 1.3, 1.0]), 0.0),
    (4.0, Vectors.dense([0.0, 1.2, -0.5]), 0.0)
], ["id", "features", "label"])

阅读全文

注册 立即解锁全文并访问全部文章: 网站会员, 成为小万的高级会员 and 海外DE会员 tiers 专享.

订阅
已有账号? 登录

小万和大树知识成长营地

注册成功!

欢迎回来,已成功登录。

你已成功订阅 小万和大树知识成长营地。

成功!请查收登录邮件。

成功!账单信息已更新。

账单信息未更新。