Gazprom-Neft-SmartOil-Contest-2-Task-3

Baseline for MAE = 137.2310

Соревнование

Gazprom Neft SmartOil Contest-2 (score -- 137.7980)

В данном kernel я привожу способ построения простейшей модели и её обучение на основе предоставленных данных. Особое внимание я уделил способу валидации. Так как валидация для временных рядов затруднена в связи с возможностью утечек данных.

Я избрал подход, который основывается на следующей простой идее. Давайте будем делить нашу выборку на части по скважинам. Более формально запишем это так. Пусть есть набор скважин 0, для каждой из которых есть последовательность измерений 1. Будем производть валидацию на различных подмножествах 2. В задаче требуется предсказать значение переменной Нефть, м3 на 12 месяцев вперёд.

Покажем, как будем строить множества для обучения и валидации. Важной заметкой является то, что в качестве метрики выбрана MAE. В данной задаче она не слишком корректна. Но именно она определяет способ построения алгоритмов и обучающих множеств. Так как MAE считается независимо для каждого измерения, предлагается строить независимые классификаторы для предсказания значения i-го месяца. Таким образом, для формирования ответа будем иметь 12 регрессоров.

Рассмотрим 3. Будем делать предсказание на i-ый месяц вперёд по 12 предыдущим месяцам. Рассмотрим соответствующий набор . Тогда примерами, обучающей выборки для 1-го классификатора можно считать:

4

5

6

7

Обучающими примерами для 2-го классификатора будут:

8

9

10

11

и так далее. Если для какая-то последовательность оказывается не достаточно длинной, то можно заполнить все значения до первого измерения нулями.

Немного обсудим то, какие скважины брать. Ответ очень прост. Берём всё, что попадется под руку. Т.е. объединяем test_before и train. Эти множества не пересекаются.