Код исследовательского анализа данных машинного обучения можно оптимизировать, если мы используем концепции объектно-ориентированного программирования. Я просмотрел множество веб-сайтов со статьями и технических блогов, чтобы найти способ структурировать наш код, чтобы использовать его где-нибудь еще для любых столбцовых данных. Существует множество доступных сайтов, но они не дают нам надлежащего понимания того, как оптимизировать наш код, но мы можем сделать это с помощью ООП Python.

Концепция

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

Предпосылки

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

Следующие преимущества, которые вы получите после применения концепции ООП к своим данным

  1. Это поможет вам сократить код, конечно, и время.
  2. Вы можете применить ту же технику, если вы извлекаете данные (при условии, что одни и те же функции) из нескольких API.
  3. Напишите один раз, примените один и тот же код для любых столбцовых данных.

В этой статье я буду использовать данные о продажах WoMart (доступ к ним можно получить из моего репозитория GitHub) просто для того, чтобы дать вам представление о том, как мы можем проводить исследовательский анализ данных, хотя это не ограничивается к этому вы можете применить ту же концепцию в любом другом месте, разработка функций, модель обучения и настройка гиперпараметров будут сделаны в более позднем курсе, поэтому давайте загрузим набор данных в блокнот Jupiter. Для этой цели мы будем использовать библиотеку pandas.

Теперь, прежде чем продолжить работу в качестве Data Geek, у вас должны быть соответствующие вопросы, такие как «Каков размер данных?». Сколько там столбцов? Сколько столбцов имеют категориальные переменные? В каком столбце пропущено значение? Сколько уникальных категорий доступно в наборе данных? Есть множество вопросов, которые будут циркулировать в вашей голове, и вы начнете искать каждый вопрос строка за строкой, что я нахожу совершенно разочаровывающим, так что, если я могу получить эти вопросы с помощью всего лишь скрипта Python, и вот тут-то и появляется объектно-ориентированное программирование. играть в. Мы напишем код ООП на python 3 для вышеуказанной цели, который можно использовать в любых столбчатых данных.

Итак, чтобы узнать информацию о данных, мне нужно создать объект класса, а затем получить доступ к методу следующим образом:

train_obj =DataInfo(train_df)
train_obj.info()

Вам может быть интересно узнать об этом беспорядочном коде. Давайте упростим, что я создал класс с именем 'DataInfo' внутри этого метода __init_(), который будет инициализировать объект простым термином, который сообщает классу, что объект создан. . Я получил доступ к методу под названием info, который даст вам сводку о Количество строк, Количество столбцов, Имя столбца , Информация о типе данных столбца, Описательная статистика и Общее количество пустых значений представлены в каждом столбце, и это можно использовать для любого набора данных. Теперь мы двинемся дальше, чтобы получить больше информации, такой как уникальная категория.

Для упрощения я не добавил метод info в приведенный выше код, хотя он есть в моем репозитории GitHub. В приведенном выше коде я создал метод с именем уникальная категория, объявил переменную с именем unique_values, которая будет выполнять итерацию с использованием лямбда-функции для получения некоторых уникальных значений в каждом столбце, а также я ищу столбцы, имеющие объект типа данных, который является категориями. Теперь, чтобы получить уникальную категорию, нам нужно получить доступ к методу из объекта класса следующим образом:

train_obj.uniqueCategory()

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

test_obj = DataInfo(df_test)
test_obj.info()

см., что у нас есть информация о тестовом наборе данных, если сравнить с обучающим набором данных, есть 2 столбца, которые отсутствуют в тестовом наборе данных, один — «заказ», а другой — «продажи». Отсутствующие продажи — это нормально, так как это наша целевая переменная или зависимая переменная. Я использовал метод, чтобы узнать столбец порядка, который вы можете получить из моего репозитория GitHub, но эта тема, безусловно, выходит за рамки нашей цели, теперь давайте выясним уникальные значения и категории для тестового набора данных следующим образом.

test_obj.uniqueCategory()

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

В будущем я буду получать данные с помощью нескольких API и дам вам представление о том, как работать с несколькими наборами данных, используя концепцию ООП, которая полностью принадлежит мне.

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

Спасибо!!!

м-н Таусиф

Ссылки: