Как реализовать регрессию Random Forest в PySpark

Реализация регрессии Random Forest в PySpark

Учебник PySpark по моделированию регрессии с Random Forest

Фото от Jachan DeVol на Unsplash

Введение

PySpark – это мощный движок обработки данных, построенный на основе Apache Spark и разработанный для обработки данных большого объема. Он обеспечивает масштабируемость, скорость, гибкость, интеграцию с другими инструментами, простоту использования, встроенные библиотеки машинного обучения и возможности обработки в реальном времени. Он является идеальным выбором для эффективной и эффективной обработки больших объемов данных, а его пользовательский интерфейс позволяет легко писать код на Python.

Используя данные о бриллиантах, найденные в ggplot2 (источник, лицензия), мы рассмотрим, как реализовать модель регрессии случайного леса и проанализировать результаты с помощью PySpark. Если вы хотите увидеть, как линейная регрессия применяется к тому же набору данных в PySpark, вы можете посмотреть его здесь!

В этом учебнике будут рассмотрены следующие шаги:

  1. Загрузка и подготовка данных в векторизованном виде
  2. Обучение модели с использованием RandomForestRegressor из MLlib
  3. Оценка производительности модели с использованием RegressionEvaluator из MLlib
  4. Построение и анализ важности признаков для прозрачности модели
Фото от Martin de Arriba на Unsplash

Подготовка данных

Набор данных diamonds содержит такие функции, как carat, color, cut, clarity и другие, все они перечислены в документации набора данных.

Целевая переменная, которую мы пытаемся предсказать, – это price.

df = spark.read.csv("/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", header="true", inferSchema="true")display(df)

Как и в учебнике по линейной регрессии, нам нужно предварительно обработать наши данные, чтобы у нас был итоговый вектор числовых признаков для использования в качестве входных данных модели. Нам нужно закодировать наши категориальные переменные в числовые признаки, а затем объединить их с нашими числовыми переменными, чтобы получить один конечный вектор.

Вот шаги, чтобы достичь этого результата: