Что такое алгоритм многослойного персептрона в Apache Spark

В прошлый раз мы говорили про особенности работы алгоритма «один против всех» в Spark. Сегодня поговорим про модель классификации многослойного персептрона в распределенном Big Data фреймворке Apache Spark. Читайте далее про особенности работы алгоритма многослойного персептрона, благодаря которому Apache Spark имеет возможность Big Data анализа и классификации в распределенной среде.

Как работает модель многослойного персептрона: особенности классификации

Многослойный персептрон (Multilayered perceptron) — это класс нейронных сетей прямого распространения (сигналы ошибки модели распространяются от выходов модели к ее входам, в направлении обратном прямому распространению сигналов в обычном режиме работы), состоящий из трех слоев: входного, скрытого и выходного. В качестве активационных функций (определяющих выходные сигналы) нейронов используются логистическая и гиперболический тангенс. Поскольку классификацию можно рассматривать как частный случай регрессии, когда выходная переменная является категориальной, на основе многослойного персептрона можно также строить классификаторы [1].

Работа с алгоритмом многослойного персептрона в Spark: несколько практических примеров

Для того, чтобы начать работу с алгоритмом многослойного персептрона, необходимо настроить базовую конфигурацию, импортировав некоторые классы ml-библитоеки Spark [2]:

from pyspark.ml.classification import MultilayerPerceptronClassifier
from pyspark.ml.evaluation import MulticlassClassificationEvaluator

Из импорта видно, что для работы с алгоритмом многослойного персептрона в pyspark используется класс MultilayerPerceptronClassifier, который находится в пакете который находится в пакете pyspark.ml.classification, хранящим в себе классы, описывающие модели классификации и их оценщики. В качестве оценки модели будем использовать оценщик мультиклассовой классификации, за который в pyspark отвечает класс MulticlassClassificationEvaluator. В качестве примера будем использовать встроенный размеченный датасет для мультиклассовой классификации. Для начала необходимо прочитать этот датасет и загрузить его в память [2]:

data = spark.read.format("libsvm")\
.load("C:/spark/spark-3.0.1-bin-hadoop2.7/data/mllib/sample_multiclass_classification_data.txt")
apache spark курсы, pyspark что это, курс по тюнингу spark, курс потоковой обработки spark kafka, курсы по интеграции spark kafka, bigdata курсы, курс основы apache spark, курсы для администраторов apache spark, bigdata курсы, курс потоковой обработки spark, курс по тюнингу spark, курсы для инженеров данных apache spark, курс dataframes spark, обучение администраторов spark, apache spark streaming, курсы kafka streaming, pyspark что это, bigdata курсы, обучение spark sql, курсы по интеграции spark kafka, обучение spark sql
Фрагмент датасета

Далее необходимо разбить загруженный датасет на тренирововчную и тестовую выборку случайным образом. За случайное разбиение на выборки отвечает метод randomSplit() [2]:

splits = data.randomSplit([0.6, 0.4], 1234)
train = splits[0]
test = splits[1]

Так как алгоритм многослойного персептрона работает на основе нейронных сетей, он также имеет слои нейронов: слой на входе, 2 средних (скрытых) слоя нейронов, а также слой нейронов на выходе [2]:

# 4 нейрона на входном слое
# 5 нейронов и 4 нейрона на средних слоях (скрытых)
# 3 нейрона на выходе
layers = [4, 5, 4, 3]

Для построения модели необходимо создать экземпляр класса MultilayerPerceptronClassifier [2]:

trainer = MultilayerPerceptronClassifier(maxIter=100, layers=layers, blockSize=128)

В качестве параметров конструктора у класса MultilayerPerceptronClassifier используется следующие [2]:

  • maxIter — максимальное количество итераций при обучении модели (эпохи обучения);
  • layers — слои нейронов, из которых состоит обучаемая модель;
  • blockSize — размер блока данных для их преобразований в матрицы (вектора).

Для обучения модели используется метод fit(), а затем формируется датасет с предсказаниями с помощью метода transform() для последующей оценки модели [2]:

model = trainer.fit(train)
result = model.transform(test)

В качестве оценщика будем использовать оценщик мультиклассовой классификации MulticlassClassificationEvaluator с метрикой accuracy. За формирование оценки модели отвечает метод evaluate() класса MulticlassClassificationEvaluator [2]:

predictionAndLabels = result.select("prediction", "label")
evaluator = MulticlassClassificationEvaluator(metricName="accuracy")
print("Test set accuracy = " + str(evaluator.evaluate(predictionAndLabels)))
apache spark курсы, pyspark что это, курс по тюнингу spark, курс потоковой обработки spark kafka, курсы по интеграции spark kafka, bigdata курсы, курс основы apache spark, курсы для администраторов apache spark, bigdata курсы, курс потоковой обработки spark, курс по тюнингу spark, курсы для инженеров данных apache spark, курс dataframes spark, обучение администраторов spark, apache spark streaming, курсы kafka streaming, pyspark что это, bigdata курсы, обучение spark sql, курсы по интеграции spark kafka, обучение spark sql
Точность модели

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

Код курса
GRAS
Ближайшая дата курса
по запросу
Продолжительность
ак.часов
Стоимость обучения
0 руб.

Больше подробностей про применение Apache Spark в проектах анализа больших данных, разработки Big Data приложений и прочих прикладных областях Data Science вы узнаете на практических курсах по Spark в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

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

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

Источники

  1. https://wiki.loginom.ru/articles/multilayered-perceptron.html
  2. https://spark.apache.org/docs/latest/ml-classification-regression.html#multilayer-perceptron-classifier

Добавить комментарий

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