(Часть I)

Описание проекта:

Исследователи данных из BigMart собрали данные о продажах 1559 товаров в 10 магазинах в разных городах за 2013 год. Также были определены определенные атрибуты каждого продукта и магазина. Цель этого проекта по обработке и анализу данных – построить прогнозную модель и определить продажи каждого товара в конкретном магазине.

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

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

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

  1. Постановка задачи:

Понимание свойств продаж товаров в разных 10 магазинах. и построить прогнозную модель для определения продаж каждого товара в конкретном магазине

2. Генерация гипотез

Первый шаг к решению проблем в проектах по науке о данных — это не создание моделей машинного обучения. На самом деле, после изучения бизнес-проблемы нам нужно то, что мы назвалиГенерацией гипотез. Это действительно важный шаг в обеспечении успешного проекта по науке о данных. это шаг, на котором мы объединяем наши навыки решения проблем с нашей бизнес-интуицией.

«Гипотеза может быть просто определена как предположение. Научная гипотеза — это разумное предположение». — Исаак Азимов

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

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

В нашем случае: прогноз продаж в торговых точках

давайте создадим несколько гипотез, которые повлияют на нашу целевую переменную «Item_Outlet_Sales».

Создание гипотез на основе различных факторов:

Функции на основе продукта:

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

Особенности, основанные на магазине:

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

Местоположение магазина , название магазина , репутация

=> Записав гипотезу и посмотрев на набор данных, вы заметите, что написали гипотезу по большинству признаков, присутствующих в наборе данных.

3. Загрузка пакетов и данных

Наш набор данных содержит 12 переменных и 8523 наблюдения.

4. Структура данных и содержание

Описание:

*ItemИдентификатор* :Уникальный идентификатор продукта
*ItemWeight* : Вес продукта
*ItemFatСодержание* : Продукт с низким содержанием жира или not
*ItemВидимость * :% общей площади выкладки всех товаров в магазине, выделенной для конкретного товара
*ItemType *: Категория, к которой принадлежит товар
*ItemMRP *: Максимальная розничная цена (прейскурантная цена) продукта
*OutletIdentifier *: Уникальный идентификатор магазина
*OutletУчреждениеГод * : год основания магазина
*OutletРазмер *: Размер магазина в пересчете на занимаемую площадь
*OutletLocationТип * :Тип города, в котором расположен магазин
*OutletType *: Является ли торговая точка просто продуктовым магазином или супермаркетом
*ItemOutlet Продажи*: продажи товара в конкретном магазине. Это переменная результата, которую нужно предсказать.

Различные типы переменных нашего фрейма данных: object, float64 и int64.

5. Исследовательский анализ данных

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

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

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

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

Работа с пропущенными значениями:

Мы заметили, что наш фрейм данных содержит пропущенные значения в 2 столбцах «Item_Weight» и «Outlet_Size».

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

  1. Удаление столбцов с отсутствующими данными
  2. Удаление строк с отсутствующими данными
  3. Заполнение отсутствующих данных значением — вменение
  4. Вменение с дополнительным столбцом
  5. Заполнение регрессионной моделью

Но вы должны понимать, что There is no perfect way for filling the missing values in a dataset.

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

Хорошей практикой является просмотр процента отсутствующих значений в вашем наборе данных.

В нашем случае, я думаю, лучше всего:
заменить все NA медианой для числового столбца
затем заменить все NA режимом для категориального столбца.

Обязательно удалите дубликаты значений

df = df.drop_duplicates()

Обнаружение выбросов:

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

Один из наиболее часто используемых и наиболее надежных подходов для поиска выбросов:

IQR (межквартильный диапазон):

IQR = Quartile3 — Quartile1

Мы можем визуализировать выбросы с помощью BoxPlot:

Визуализация данных

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

мы замечаем, что тип супермаркета 3, который имеет самые высокие продажи

Преобразование категориального в числовое: КОДИРОВАНИЕ

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

Это все, что касается EDA для нашего проекта, в следующей части я собираюсь построить Модели машинного обучения.

Спасибо за прочтение ! если у вас есть какие-либо дополнения, не стесняйтесь сказать мне.

Увидимся в следующей части!