Apache Spark предлагает API для машинного обучения под названием MLlib . PySpark также имеет этот API машинного обучения на Python. Он поддерживает различные виды алгоритмов, которые упомянуты ниже —
-
mllib.classification — пакет spark.mllib поддерживает различные методы для двоичной классификации, мультиклассовой классификации и регрессионного анализа. Некоторые из самых популярных алгоритмов в классификации — Случайный Лес, Наивный Байес, Дерево Решений и т. Д.
-
mllib.clustering — кластеризация — это проблема обучения без присмотра, при которой вы стремитесь группировать подмножества сущностей друг с другом, основываясь на некотором понятии сходства.
-
mllib.fpm — Частое сопоставление с образцом — это добыча частых элементов, наборов элементов, подпоследовательностей или других подструктур, которые обычно являются одними из первых шагов для анализа крупномасштабного набора данных. Это была активная тема исследования в области интеллектуального анализа данных в течение многих лет.
-
mllib.linalg — MLlib утилиты для линейной алгебры.
-
mllib.recommendation — Совместная фильтрация обычно используется для рекомендательных систем. Эти методы направлены на заполнение пропущенных записей в матрице ассоциации элементов пользователя.
-
spark.mllib — в настоящее время поддерживает совместную фильтрацию на основе моделей, в которой пользователи и продукты описываются небольшим набором скрытых факторов, которые можно использовать для прогнозирования пропущенных записей. spark.mllib использует алгоритм Alternating Least Squares (ALS) для изучения этих скрытых факторов.
-
mllib.regression — Линейная регрессия относится к семейству алгоритмов регрессии. Цель регрессии — найти взаимосвязи и зависимости между переменными. Интерфейс для работы с моделями линейной регрессии и сводками моделей аналогичен случаю логистической регрессии.
mllib.classification — пакет spark.mllib поддерживает различные методы для двоичной классификации, мультиклассовой классификации и регрессионного анализа. Некоторые из самых популярных алгоритмов в классификации — Случайный Лес, Наивный Байес, Дерево Решений и т. Д.
mllib.clustering — кластеризация — это проблема обучения без присмотра, при которой вы стремитесь группировать подмножества сущностей друг с другом, основываясь на некотором понятии сходства.
mllib.fpm — Частое сопоставление с образцом — это добыча частых элементов, наборов элементов, подпоследовательностей или других подструктур, которые обычно являются одними из первых шагов для анализа крупномасштабного набора данных. Это была активная тема исследования в области интеллектуального анализа данных в течение многих лет.
mllib.linalg — MLlib утилиты для линейной алгебры.
mllib.recommendation — Совместная фильтрация обычно используется для рекомендательных систем. Эти методы направлены на заполнение пропущенных записей в матрице ассоциации элементов пользователя.
spark.mllib — в настоящее время поддерживает совместную фильтрацию на основе моделей, в которой пользователи и продукты описываются небольшим набором скрытых факторов, которые можно использовать для прогнозирования пропущенных записей. spark.mllib использует алгоритм Alternating Least Squares (ALS) для изучения этих скрытых факторов.
mllib.regression — Линейная регрессия относится к семейству алгоритмов регрессии. Цель регрессии — найти взаимосвязи и зависимости между переменными. Интерфейс для работы с моделями линейной регрессии и сводками моделей аналогичен случаю логистической регрессии.
Существуют и другие алгоритмы, классы и функции, также входящие в состав пакета mllib. На данный момент давайте разберемся с демонстрацией на pyspark.mllib .
В следующем примере показана совместная фильтрация с использованием алгоритма ALS для построения модели рекомендаций и оценки ее по данным обучения.
Используется набор данных — test.data
1,1,5.0 1,2,1.0 1,3,5.0 1,4,1.0 2,1,5.0 2,2,1.0 2,3,5.0 2,4,1.0 3,1,1.0 3,2,5.0 3,3,1.0 3,4,5.0 4,1,1.0 4,2,5.0 4,3,1.0 4,4,5.0
--------------------------------------recommend.py---------------------------------------- from __future__ import print_function from pyspark import SparkContext from pyspark.mllib.recommendation import ALS, MatrixFactorizationModel, Rating if __name__ == "__main__": sc = SparkContext(appName="Pspark mllib Example") data = sc.textFile("test.data") ratings = data.map(lambda l: l.split(','))\ .map(lambda l: Rating(int(l[0]), int(l[1]), float(l[2]))) # Build the recommendation model using Alternating Least Squares rank = 10 numIterations = 10 model = ALS.train(ratings, rank, numIterations) # Evaluate the model on training data testdata = ratings.map(lambda p: (p[0], p[1])) predictions = model.predictAll(testdata).map(lambda r: ((r[0], r[1]), r[2])) ratesAndPreds = ratings.map(lambda r: ((r[0], r[1]), r[2])).join(predictions) MSE = ratesAndPreds.map(lambda r: (r[1][0] - r[1][1])**2).mean() print("Mean Squared Error = " + str(MSE)) # Save and load model model.save(sc, "target/tmp/myCollaborativeFilter") sameModel = MatrixFactorizationModel.load(sc, "target/tmp/myCollaborativeFilter") --------------------------------------recommend.py----------------------------------------
Команда — Команда будет следующей —
$SPARK_HOME/bin/spark-submit recommend.py
Выходные данные — выходные данные вышеупомянутой команды будут —