ТИТАНИК. ПОСТРОЕНИЕ МОДЕЛИ. ОКОНЧАНИЕ.
=======================================

Сервису phind.com (это ИИ специализирующийся на IT-технологиях)
был задан вопрос:


Имеется база данных titanic, в ней таблица tit3_norm,
с нормализованными данными ее структура такова:

titanic=# \d tit3_norm

 Таблица "public.tit3_norm"
   Столбец   |   Тип
-------------+---------
 id          | integer
 age_norm    | numeric
 pclass_norm | numeric
 sex         | text
 sibsp_norm  | numeric
 parch_norm  | numeric
 fare_norm   | numeric
 embarked    | text


Целевой параметр survived хранится в таблице tit3_alive,
ее структура:

titanic=# \d tit3_alive

 Таблица "public.tit3_alive"
 Столбец  |   Тип
----------+---------
 id       | integer
 survived | integer


Идентификаторы id в обеих таблицах соответствуют одному и тому же человеку.


Задача:

Используя язык Python обучить модель прогнозировать выживаемость
произвольного пассажира с id = x

Первый скрипт train.py должен:

- получить данные из двух таблиц postgres tit3_norm и tit3_alive;
- корректно разделить их на тренировочную и тестовую части;
- обучить модель используя библиотеку catboost (ML-библиотека от Яндекс);
- оценить качество результата;
- сохранить обученную модель в файл.

Второй скрипт predict.py должен:

- считать модель из файла;
- получить из аргумента ID пассажира;
- дать ответ выжил этот пассажир или нет.

Третий скрипт control.py должен:
- добавить в таблицу tit3_alive поле control типа int;
- используя модель, заполнить новую колонку предсказанными
  моделью данными: выжил -> 1, не выжил -> 0;
- найти число ошибок и их процент.


Ответ на это вопрос - предмет сегодняшнего занятия.
Кроме ИИ, мы тоже поучаствуем.

Путём нескольких итераций диалога с сервисом и работы
напильником/руками можно получить приемлемый результат.

Тренировка модели. Код.

205train.png (светлый)   205train2.png (тёмный)   205train.py.html (текст)

Прогноз модели. Код.

205predict.png (светлый)   205predict2.png (тёмный)   205predict.py.html (текст)

Эффективность модели. Код.

205control.png (светлый)   205control2.png (тёмный)   205control.py.html (текст)


 ЗАПУСК СКРИПТОВ
-----------------

Условия необходимые для безошибочной работы скриптов:

  - операционная система Linux;
  - наличие корректной базы данных Postgres titanic;
  - в виртуальной среде Python установлены все необходимые модули;
  - наличие правильных (отлаженных) скриптов;

Команды выполняются в терминале Linux.


Обучение модели на данных из Posrgres.

python train.py


Прогноз выживания для пассажира с id = 123,
(123 - это пример,  число может быть любым от 1 до 1309),
аргумент передается скрипту в командной строке.

python predict.py 123

здесь у питона два аргумента: 1-й - это сам скрипт, 2-й - id пассажира.


Контроль работы модели.
Вычисляется реальный процент ошибочных прогнозов.
Доли процента могут плавать, но чаще всего будут между 6 и 7%.

python control.py



ВЫВОД

С вероятность 93% наша модель предсказывает правильный ответ.
Это не лучший в мире результат.
В реальных проектах идеальным, считается 99.9%, приемлемым - 98-97%.
Но для учебной задачи и 93% неплохо.







Конец