/dota2-kaggle

Primary LanguageJupyter Notebook

Решение задачи https://inclass.kaggle.com/c/cmc-msu-machine-learning-spring-2015-2016-dota-competition

Генерация признаков

  • Вещественные признаки:

    • Для каждого героя извлекаем следующие признаки:
      • [r/d]i_xp: максимальный полученный опыт
      • [r/d]i_gold: достигнутая ценность героя
      • [r/d]i_lh: число убитых юнитов
      • [r/d]i_kills: число убитых игроков
      • [r/d]i_deaths: число смертей героя
      • [r/d]i_items: число купленных предметов
    • Сортируем эти признаки по каждой команде и берем разность данных признаков. В итоге получим 5х6 = 30 признаков
  • Уровни героев:

    • Генерим мешок слов над уровнями героев в диапазоне [0, 7]
  • Тип лобби:

    • OneHotEncoding
  • Первая кровь:

    • 0, если radiant 1, если dire 0.5, иначе.
  • Герои:

    • Мешок слов
    • Синергия и антисинергия с 7 фолдами

Объединяем и стандартизуем все признаки и получим матрицы X_train и X_test

  • Метапризнаки:
    • Градиентный бустинг над X_train c 10 фолдами

Объединяем c X_train и X_test и получим матрицы DATA и TDATA

Обучение:

Над X_train обучим XGBoost, а над DATA LogisticRegression

Контрольная модель:

0.72*LogisticRegression + 0.28*XGBoost