Модель ускоренного времени отказа в PySpark для моделирования повторяющихся событий - PullRequest
1 голос
/ 19 марта 2019

Я пытаюсь предсказать вероятности для клиента, который переупорядочивает корзину заказов из своей истории заказов, используя модель Accelerated Failure Time в PySpark.Мои входные данные содержат

  • различные характеристики клиента и соответствующую корзину заказов в качестве предикторов
  • дней между двумя последовательными заказами в качестве метки и
  • ранее наблюдаемых заказов в качестве цензурыи будущие заказы как цензура.

PySpark - это выбор здесь, поскольку существуют некоторые ограничения для среды, и у меня нет другой альтернативы для обработки огромных объемов истории заказов (~ 40 ГБ).Вот мой пример реализации:

> from pyspark.ml.regression import AFTSurvivalRegression from
> pyspark.ml.linalg import Vectors
> 
> training = spark.createDataFrame([
>     (1,1.218, 1.0, Vectors.dense(1.560, -0.605)),
>     (1,2.949, 0.0, Vectors.dense(0.346, 2.158)),
>     (2,3.627, 0.0, Vectors.dense(1.380, 0.231)),
>     (2,0.273, 1.0, Vectors.dense(0.520, 1.151)),
>     (3,4.199, 0.0, Vectors.dense(0.795, -0.226))], ["customer_id","label", "censor", "features"]) aft =
> AFTSurvivalRegression()
> 
> model = aft.fit(training)

Вопросы:

  1. Имеет ли метод AFTSurvivalRegression в pyspark.ml.regression возможность кластеризации записей в моем наборе данных на основе идентификатора клиента?Если да, пожалуйста, объясните, как реализовать?
  2. Желаемый результат будет содержать вероятности того, что конкретный клиент переупорядочит различные корзины заказов.Как я могу получить эти значения, расширив мою реализацию кода?
...