Увеличьте отзыв для класса меньшинства в XGBClassifier - PullRequest
0 голосов
/ 08 января 2019

Я использую XGBClassifier, чтобы предсказать, будет ли пользователь нажимать на объявление или нет.
Я ищу совет, чтобы увеличить мой отзыв для класса меньшинства.

О моих данных:

1. Total rows: 1,266,267
2. Total clicks: 1960 rows (0.15%) => imbalanced dataset
3. Features used:
    - Num of views 
    - Device used 
    - Time (categorized into 6 buckets)
    - Ad category
    - Site id (there are 338 unique site id)
    - User features (there are 583 unique features)(Note: features available for 60% of the data)

После одной горячей операции общее количество столбцов / элементов составляет 943.
Конечные данные в формате разреженной матрицы.

Результат модели:

Model                   | AUC    | Logloss | Recall* | Precision*
------------------------|--------|---------|---------|-----------
Using all 943 features  | 0.7359 | 0.05392 | 0.47    | 0.85
----------------------------------------------------------------
Clustered user features | 0.7548 | 0.05470 | 0.51    | 0.80
into groups             |
Final model features    |
num=361                 |
----------------------------------------------------------------
*recall and precision refers to the minority class (click=1). 
**recall, precision for majority class (click=0) is 1.

Чтобы увеличить отзыв в несбалансированном наборе данных, я попытался:

  1. Сэмплинг (наивысший отзыв 0,92, но точность на 0,03)
  2. SMOTE (максимальный отзыв 0,77, но точность 0,05)
  3. Другой алгоритм (лучше всего XGBoost)
  4. Настройка гиперпараметра (отзыв увеличен на 0,01)

Вопрос:

1. Is my model too complex that it can't generalise well?
2. I have compared my AUC with results from other research papers. 
   Research AUC ranges from 0.7 to 0.82. 
   But, none of them showed the recall/confusion matrix.
   To anyone that has done CTR prediction before, can I know your recall/confusion matrix?
3. Is there other ways that can help increase recall for imbalanced dataset?
...