Как проверить прогнозирование оттока, используя данные в окне производительности - PullRequest
0 голосов
/ 08 марта 2020

Я работаю над прогнозом оттока. Наблюдение и производительность windows разделены, как показано ниже:

# use user last n.th mounth and create userpofile from this
#   |## observed period - user profile # |##perdict period-chur or not###|
#   |<-     number_of_months           ->|<-   predict_period_months   ->|

Для конкретной ситуации windows:

number_of_months=18 predict_period_months=4

def last_nth_month(x):
     min_date = x['MONTH_ID'].max()-pd.DateOffset(months=(number_of_months+predict_period_months))
     max_date = x['MONTH_ID'].max()-pd.DateOffset(months=predict_period_months)        
     return x.loc[(x['MONTH_ID']< max_date) & (x['MONTH_ID']>min_date),:]

Пользователь профиль основан на 18-месячном поведении в прошлом, а 4 последних месяца не использовались для обучения и тестирования.

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)

В результате я получил довольно хорошие результаты, используя Lightgbm:

          precision    recall  f1-score   support

       0       0.91      0.95      0.93     49092
       1       0.95      0.91      0.93     49092

accuracy                           0.93     98184

macro avg 0,93 0,93 0,93 98184 средневзвешенная средняя 0,93 0,93 0,93 98184

Точность = 0,9309256090605394

Есть ли какие-либо предположения о том, как использовать информацию в течение последних 4 месяцев для обученного тестирования модель

...