Поздоровайтесь с наукой о данных/машинным обучением с помощью этой забавной задачи.

Если вы начинаете заниматься наукой о данных и машинным обучением, то эта задача наверняка даст вам много новых идей и знаний о проблемах реального мира. Не стесняйтесь обратиться ко мне:-

https://www.linkedin.com/in/prabhash-shukla-a35510141/

У нас есть два набора данных: 1. Данные поезда 2. Данные испытаний.

Используя эти два данных, мы должны выяснить, сколько людей выживет в этой трагедии. Создайте другой набор данных о людях и отправьте его на конкурс.

Я просто использовал все функции и использовал разработку функций, чтобы данные можно было правильно очистить. Если данные отсутствуют, используйте некоторые инструменты мл, чтобы заполнить эти пустые функции. После всего процесса я использовал Sci-Kit Learn для различных алгоритмов для большей точности. Если вы можете как-то использовать Porter Stemmer, то это будет хорошо для вас, потому что вы будете иметь на 5–6% больше точности.

Ссылки на наборы данных представлены в моем профиле Github: -



Я объясню свой код шаг за шагом: -

Сначала вам нужно импортировать некоторые основные библиотеки Python:

теперь давайте импортируем необходимые наборы данных:

Теперь, когда у нас есть наборы данных, давайте просто проверим информацию о данных:

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

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

Теперь, прежде чем использовать разработку признаков, я хотел бы дать простое объяснение разработке признаков. Когда вы говорите об алгоритме машинного обучения, числовые данные — это все, что ему нужно. Таким образом, вы должны пройти процесс преобразования заданных данных в числовые значения. Например, у вас есть функция с указанием пола, тогда у вас есть просто 2–3 данных (мужской, женский и другие). Затем, чтобы преобразовать их в числовые значения, вы можете просто использовать словарь Python, чтобы присвоить им такие значения, как 1 для мужчин, 2 для женщин и 3 для других. Вот как вы должны применить свой подход к различным функциям. Вы также можете использовать другие функции в качестве поддержки. Если какая-то функция не помогает вам в любом случае или вы не можете получить представление о какой-либо функции. Вы можете пропустить эту часть, но это повлияет на точность вашего прогноза. Не могу сказать, но непредсказуемо, насколько в таком случае снизится точность.

В данном наборе данных у нас есть имена, но мы не можем использовать имена в качестве данных, так как нам нужны числовые значения, поэтому мы просто возьмем их названия. количество титулов и подсчет того, у какого титула больше имен. Это потому, что Мы не можем разрешить им такие номера, как Мистер 1, Доктор 2, Эр 3 и так далее. Выполнение этого процесса займет много времени, а также не будет эффективным для алгоритма. Поэтому я просто выбрал 4 числа как мистер, миссис, мисс и другие и поместил их в набор данных.

Вы можете просто использовать train.head(), чтобы проверить, что происходит с данными.

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

Теперь переходим к следующей функции: -

Здесь мы использовали 0 и 1 для пола. Вы также можете увидеть столбец Название для имен.

Почти в 90% наборов данных возникает общая проблема, и эта общая проблема связана с нулевыми значениями.

В этом наборе данных отсутствуют некоторые значения функции «Возраст». Вы можете просто использовать fillna() с помощью python, а также можете воспользоваться помощью других функций (только если функции связаны, например, если я говорю о цене билетов, тогда вы можете воспользоваться помощью функции PcClass, потому что первый класс будет иметь высокий цены и более низкий класс будут иметь меньше цен.Вы также можете воспользоваться помощью возраста, потому что дети должны иметь меньше цен.

Для проверки отсутствующих значений вы можете просто набрать test.info() или train.info().

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

Теперь вы увидите некоторые сложные функции, которые могут доставить вам некоторые трудности. У вас есть много вещей, например, если вы изучали Matplotlib или Seaborn, вы можете нарисовать их и подумать, что мы можем сделать, чтобы преобразовать их в числовые значения.

Например:-

На изображении выше вы можете видеть, что задняя часть титаника опускается, и это может быть полезно, так как доступно 3 класса. Первый, второй и третий класс и первый класс выше, и это более дорого. Как и другие детали, они дешевле по сравнению с первым классом и не надежнее. Вы можете проанализировать, увидев состояние Титаника или любого другого набора данных. Поэтому, когда дело доходит до выживания, у большего количества платы за проезд будет меньше шансов умереть, что может быть полезной частью.

Давайте перейдем к новой функции и воспользуемся Seaborn. Вы можете видеть, что для разных Эпох у нас разные результаты выживших людей. Вы можете увидеть различные взлеты и падения для разных возрастов.

Теперь мы разделим возраст на разные части, используя приведенный выше график. Затем мы посетим следующую функцию, в которой отсутствуют некоторые значения. Из столбца мы видим, что класс S больше, чем два других, поэтому мы заполним остальные классом S.

Теперь наделим их числовыми значениями.

Опять же, мы будем иметь дело с отсутствующими значениями в Pclass:

Теперь давайте нарисуем график для Fare, который зависит от класса и выживания людей.

Давайте теперь посмотрим на наши данные.

Билеты и каюта остались. Давайте посчитаем значения в Cabin.

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

Обеспечение равного разрыва важно для алгоритма машинного обучения.

Как вы можете видеть выше, при сопоставлении с числовыми значениями мы назначаем eqaul gap, чтобы предсказание не влияло. У него может быть плохой прогноз, если зазор будет другим.

Давайте перейдем к функции FamilySize:

Есть две функции SibSp и ParCh. Это братья и сестры и родитель-ребенок, поэтому мы объединим их в размер семьи.

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

Теперь, когда мы закончили со всеми функциями, удалите функции, которые нам не нужны, такие как Ticket, SibSp и ParCh.

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

Теперь давайте перейдем к основной части машинного обучения:

Сначала импортируйте алгоритмы с помощью Sci-kit Learn. На самом деле в этом примере используется 3–4 алгоритма. Перекрестная проверка также необходима.

Начнем с КНН.

Классификатор дерева решений: -

Случайный лесной классификатор: -

Машина опорных векторов:-

Как мы видим, SVM имеет большую точность, чем все вышеперечисленные. Это зависит от данных и алгоритма. Некоторым алгоритмам требуется больше данных для получения лучших результатов, а некоторым требуется меньше данных.

Поэтому мы должны отправить результаты в виде файла csv, поэтому мы будем использовать SVM в качестве нашей основной модели и создадим csv, используя следующий код:

Вы можете отправить этот набор данных в Kaggle для получения результатов и рейтинга. У меня точность 80,8%, и я стремлюсь к большей точности, если у вас есть какие-либо дополнительные идеи или какие-либо улучшения, которые я могу сделать, пожалуйста, напишите мне: -

Прабхашшукла[email protected]

Спасибо, надеюсь, у вас был хороший опыт.