Spark MLlib

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark, spark mllib, spark rdd, spark streaming

Spark MLlib — это библиотека фреймворка Apache Spark, позволяющая реализовывать механизм машинного обучения (Machine Learning, ML) и решать задачи, связанные с построением и обучением ML-моделей (например, модель классификации, регрессионная модель, модель кластеризации). Спарк MLlib позволяет работать с машинным обучением в распределенном кластере, то есть обучение модели может осуществляться несколькими узлами (компьютерами) одновременно. При этом в качестве данных для обучения он принимает распределенные наборы RDD (Resilient Distributed Dataset) [1].

Что такое Spark MLlib: основные особенности архитектуры

Спарк MLlib — это библиотека функций, позволяющих реализовывать алгоритмы машинного обучения в распределенном Big Data фреймворке Apache Spark. MLlib предназначена для работы с ML-моделями в кластерах и может использоваться во всех языках программирования, которые поддерживает Spark (Java, Python, Scala). В MLlib также имеется реализация таких алгоритмов, как распределенные случайные леса (distributed random forest), метод К-средних (K-means) и метод чередующихся наименьших квадратов (alternating least squares). Все эти алгоритмы требуют определить для каждого элемента набор характеристических признаков (features), который будет передаваться как параметр для функции обучения. Архитектура MLlib предоставляет разработчику несколько собственных, среди которых следующие:

  • Vector — это структура представляющая собой вектор в математическом смысле (одномерный массив, состоящий из нескольких значений). В MLlib имеется 2 разновидности векторов:
    • плотные векторы — это векторы, которые хранят все элементы, входящие в исходный набор, полученный в результате преобразований;
    • разреженные векторы — это векторы, хранящие только ненулевые значения из исходного набора значений.
  • LabeledPoint — это маркированная точка, которая включает в себя вектор (набор) признаков и маркер, являющийся вещественным числом;
  • Model — это класс, представляющий собой семейство моделей, являющихся результатом работы обучающего алгоритма [1].

Как появился Spark MLlib: краткая история

Создание библиотеки Спарк Mllib началось в 2009 году, когда началась разработка распределенного фреймворка Apache Spark. Предполагалось, что MLlib полностью заменит реализацию уже имеющейся тогда библиотеки для работы с машинным обучением Apache Mahout. Благодаря распределенной архитектуре Spark, MLlib оказалась в 9 раз быстрее, чем Apache Mahout. В 2014 году проект Spark был принят в число проектов верхнего уровня Apache, и библиотека MLlib расширила свой функционал благодаря тому, что Apache Mahout получила интерфейс Spark. Первая версия MLlib 1.0.0 выпущена 30 мая 2014 года. Автором MLlib считается румынско-канадский ученый в области информатики Матей Захария. Последняя версия MLLib 3.1.0 выпущена 5 января 2021 года [2].

Начало работы со Spark MLlib

Для того, чтобы начать работать с библиотекой MLlib, необходимо настроить базовую конфигурацию с помощью импортирования класса Vectors:

from pyspark.mllib.linalg import Vectors

Для создания векторов используются методы dense() (для создания плотного вектора) и sparse() (для создания разреженного вектора):

Vector = Vectors.dense([1.0, 2.0, 3.0])  # плотный вектор
Vector_sp = Vectors.sparse (4, {0: 1.0, 2: 2.0}) # разреженный вектор

Для масштабирования векторов используется класс StandardScaller. Следующий код на языке Python отвечает за масштабирование двух векторов по средним значениям:

vectors = [Vectors.dense([-2.0, 5.0, 1.0]),
Vectors.dense([2.0, 0.0, 1.0])] ## создание векторов
vectors_data = sc.parallelize(vectors) ## преобразование векторов в набор RDD для обучения модели
scaler = StandardScaler(withMean=True, withStd=True)
data_model = scaler.fit(vectors_data) ## обучение модели для масштабирования

Таким образом, параллельность алгоритмов машинного обучения библиотеки Спарк MLlib позволяет обрабатывать наборы Big Data и получать наиболее точные результаты. Все это делает фреймворк Apache Spark весьма полезным средством для Data Scientist’а и разработчика Big Data приложений.

Записаться на курс

Смотреть раcписание

Источники

  1. К.Харау, Э.Ковински, П.Венделл, М.Захария. Изучаем Spark: молниеносный анализ данных
  2. https://ru.wikipedia.org/wiki/Apache_Spark

Поиск по сайту