(Часть I)
Описание проекта:
Исследователи данных из BigMart собрали данные о продажах 1559 товаров в 10 магазинах в разных городах за 2013 год. Также были определены определенные атрибуты каждого продукта и магазина. Цель этого проекта по обработке и анализу данных – построить прогнозную модель и определить продажи каждого товара в конкретном магазине.
Используя эту модель, BigMart попытается понять свойства продуктов и магазинов, которые играют ключевую роль в увеличении продаж.
В данных отсутствуют значения, так как некоторые магазины не сообщают все данные из-за технических сбоев. Следовательно, необходимо обращаться с ними соответствующим образом.
Мы решим эту проблему структурированным образом. Мы будем следовать таблице содержания, приведенной ниже.
- Постановка задачи:
Понимание свойств продаж товаров в разных 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».
Существуютразличные методы, которые можно использовать для обработки отсутствующих данных.
- Удаление столбцов с отсутствующими данными
- Удаление строк с отсутствующими данными
- Заполнение отсутствующих данных значением — вменение
- Вменение с дополнительным столбцом
- Заполнение регрессионной моделью
Но вы должны понимать, что 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 для нашего проекта, в следующей части я собираюсь построить Модели машинного обучения.
Спасибо за прочтение ! если у вас есть какие-либо дополнения, не стесняйтесь сказать мне.
Увидимся в следующей части!