Шаг 4 Построение модели машинного обучения

Далее в книге мы предоставляем код, который поможет вам построить модель машинного обучения на основе подготовленного датасета и обучить ее предсказывать значения столбца "Survived" (выживший). С помощью этой модели вы сможете оценить вероятность своего выживания, если бы вы оказались на Титанике в тот роковой день.

Пользователь:

Библиотека pandas, matplotlib, seaborn уже установлены и наш файл titanic.csv уже загружен в переменную data.

Файл titanic.csv содержит следующие столбцы:

Survived: int64, Pclass: int64, Name: object, Sex: object, Age: float64, Siblings/Spouses Aboard: int64, Parents/Children Aboard: int64, Fare: float64

Столбец Survived – это целевая переменная, которую необходимо научится предсказывать на основании переменных Pclass, Name, Sex, Age, Siblings/Spouses Aboard, Parents/Children Aboard, Fare

Построй модель на языке python и обучи ее.

Предобработка данных на проверку дублей, пустых значений уже выполнена.

Чат:

Поскольку предобработка данных уже выполнена, приступим к построению и обучению модели. В качестве модели я выберу случайный лес (Random Forest) из библиотеки sklearn.

Сначала разделим данные на обучающую и тестовую выборки, а затем обучим модель.



Теперь, когда модель обучена, вы можете использовать её для предсказания выживаемости на новых данных.

Пример:



Таким образом, вы можете использовать обученную модель для предсказания выживаемости на основе данных о пассажирах.

Внимание:

Как вы заметили на представленном выше скриншоте, пользователь использовал слово "продолжай". Мы используем это слово в случае, когда по каким-то неизвестным нам причинам ChatGPT не завершает свой ответ до конца и обрывается на полпути.

Написание слова "продолжай" воспринимается чатом как инструкцию продолжить с того места, где он остановился. Однако, если мы напишем это слово, когда чат уже завершил свою мысль, то он воспримет это как просьбу дать нам еще примеров или информации по данному запросу.

Результат:

Выполняем все рекомендации Чата и посмотрим смотрим что из этого получилось.



Пользователь:

Что означает Accuracy: 0.76 и Survived prediction: 0

Чат:

Accuracy: 0.76 означает, что точность вашей модели составляет 76%. Точность (accuracy) – это доля правильно классифицированных объектов от общего количества объектов. В данном случае, модель правильно предсказала выживаемость пассажиров в 76% случаев на тестовой выборке. Это одна из метрик оценки качества классификации.

Survived prediction: 0 относится к примеру с новыми данными о пассажире. Значение 0 указывает на то, что модель предсказывает, что этот пассажир не выживет в случае кораблекрушения. В данной задаче классификации значение 0 соответствует классу "не выжил", а значение 1 соответствует классу "выжил".

Пользователь:

Давайте попробуем сделать изменения в коде самостоятельно, без запросов в ChatGPT. Мы заменим значения для предсказания на свои собственные, вместо мужчины мы подставим женщину, а все остальные параметры оставим без изменений.

Результат:

Выполняем все изменения и посмотрим смотрим что из этого получилось.




Получается, что женщина с теми же параметрами выжила. Это неудивительно, учитывая тот факт, что на борту спасательных шлюпок в первую очередь спасали женщин и детей. Мы можем сделать вывод, что пол пассажира был одним из факторов, влияющих на выживаемость в данном случае.

Пользователь:

Как добиться более высокой точности модели?

Чат:

Для достижения более высокой точности модели можно выполнить следующие шаги:

Инжиниринг признаков:

Создайте новые признаки на основе существующих данных. Например, вы можете создать признак "IsAlone" (один путешествует), если количество родственников на борту (Siblings/Spouses Aboard + Parents/Children Aboard) равно нулю.

data["IsAlone"] = (data["Siblings/Spouses Aboard"] + data["Parents/Children Aboard"]).apply(lambda x: 1 if x == 0 else 0)

Отбор признаков:

Оцените значимость признаков и исключите незначимые или шумные признаки из обучения.

Оптимизация гиперпараметров:

Подберите оптимальные значения гиперпараметров модели, например, используя поиск по сетке (GridSearchCV) или случайный поиск (RandomizedSearchCV) из sklearn.

Дополнительно – рекомендации автора:

Для более полного понимания метрик машинного обучения, их разнообразия и правильного выбора в различных ситуациях, мы рекомендуем ознакомиться с книгой того же автора под названием "Оценка качества моделей машинного обучения: выбор, интерпретация и применение метрик".

Также, если вам необходимо овладеть процессом машинного обучения для табличных данных и узнать, какие вопросы стоит задавать чат-боту при обработке таких данных, мы рекомендуем прочитать книгу этого же автора "Табличное Мастерство: Осваиваем Модели Машинного Обучения для Анализа Табличных Данных". Обе книги помогут вам овладеть профессиональными навыками в области машинного обучения и эффективно применять их на практике.

Загрузка...