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

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

  1. ЗНАЙТЕ СВОИ ДАННЫЕ: Прежде чем применять какие-либо этапы обработки или строить какую-либо модель машинного обучения на основе ваших данных, первое, что вам нужно сделать, это узнать, какой тип данных у вас есть. Это можно сделать, просто используя информацию и описание (на Python).
    - info () выделяет тип данных и нулевые значения
    -
    describe () показывает обобщенную информацию, такую ​​как min, max, std и т. д., для всех столбцов
    Это помогает нам узнать, какие поля следует заполнить, какие поля являются текстовыми и, следовательно, должны быть преобразованы в числовую форму, посмотреть на распределение, чтобы узнать, требуется ли масштабирование и т. д.

2. ЗАПОЛНИТЕ ОТСУТСТВУЮЩИЕ ЗНАЧЕНИЯ. Вы можете заполнить его множеством способов, например NA, среднее значение, режим, медиана или даже отбрасывание (как упоминалось ранее). Но не забудьте использовать режим / медиана для заполнения категориального поля данных (преобразованного в числовое), так как использование среднего может предоставить вам десятичные точки, которые на самом деле не представляют никакую категорию (для кодирования меток)

Пример- › Пусть будет 2 категории:« A »и« B ». Пусть с помощью LabelEncoding они преобразуются в 1 и 2. Теперь означает 1,5, что не представляет никакой категории. . Та же проблема не возникнет с OHE.

3. ПРОВЕРИТЬ ИСТОЧНИКОВ: Вы можете использовать z-оценку для этой цели. Любые данные с z-оценкой ниже -3 или выше 3 являются выбросами. Визуализация данных может быть удобной.

Вы можете обратиться к разделу 2 и разделу 3 следующей статьи, которые посвящены отсутствующим значениям и обработке выбросов. В статье рассказывается о различных причинах отсутствия значений в данных, а также о различных методах их заполнения. Кроме того, в следующем разделе рассказывается, как выбросы влияют на набор данных и методы их устранения - Руководство по исследованию данных.

4. УДАЛИТЬ НЕЗАВИСИМЫЕ КОЛОНКИ: если у вас есть постоянное поле (столбец только с одним значением) или столбец с большим количеством пропущенных значений (около 70% ), такие переменные необходимо удалить из данных, поскольку они не добавляют в модель никакой важной информации, но увеличивают размерность набора данных.

5. ПРЕОБРАЗОВАНИЕ СТРОК В ЧИСЛОВЫЕ ЗНАЧЕНИЯ. Большинство алгоритмов машинного обучения не могут работать со строками, поэтому нам необходимо преобразовать строки в числа с помощью OneHotEncoder или LabelEncoding. OneHotEncoding используется, когда строки не имеют никакого порядка между ними, а LabelEncoding используется, когда строки имеют порядок.

Пример- › У нас есть 25 категорий в поле. При использовании LabelEncoding пусть 'A' будет преобразовано в 1, а 'B' в 2, поскольку 'Y' будет преобразовано в 25 (по тому же шаблону), следовательно, A ближе к B, чем Y, но это не настоящий кейс. Все категории одинаково разные. Эта проблема устраняется с помощью OHE, но также увеличивается размер.

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

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

6. РАЗРАБОТКА ФУНКЦИЙ: Это относится к созданию новых функций с использованием старых функций. Но помните, что у него не должно быть высокой корреляции с другими существующими функциями.

Пример- › total area = area_1st_floor + area_ground_floor, где total_area - это новый объект, а два других уже существуют в наборе данных.

В третьем разделе этой статьи вы познакомитесь с искусством разработки функций и некоторыми основными методами ее выполнения - Руководство по исследованию данных. Кроме того, существует очень популярная библиотека для автоматизированной разработки функций, называемая AutoML, и в следующей статье дается базовое введение в нее: Автоматическая разработка функций с использованием AutoML

7. СКОРОСТЬ / КУРТОЗ: для проблем с регрессией проверьте цель на асимметрию / эксцесс и, если будет признана виновность, примените преобразование журнала или преобразование BoxCox. Это важно для предположения, что данные имеют нормальное распределение из-за центральной предельной теоремы.

8. МАСШТАБИРОВАНИЕ. Масштабирование необходимо иногда, поскольку без масштабирования одни функции получают больше преимуществ, чем другие, такие как «Возраст» и «Доход». Здесь, хотя они оба имеют одинаковый вес, но из-за различий в весах доход может стать доминирующим (только в некоторых моделях машинного обучения). Для этого доступны RobustScaler, StandardScaler и Min-MaxScaler. Хотя RobustScaler устойчив к выбросам, поэтому мой выбор - первый.

9. КОРРЕЛЯЦИЯ ФУНКЦИЙ: если какие-либо две обнаруженные функции коррелировали, либо их можно сохранить, либо исключить любую из них (проверьте результат обучения для обоих случаев).

10. УМЕНЬШЕНИЕ РАЗМЕРНОСТИ. Если количество элементов превышает количество строк данных, вам может потребоваться PCA для уменьшения размера ( например, уменьшение количества элементов со 100 до 10 без каких-либо большая потеря данных), чтобы избежать ПРОКЛЯТИЯ ИЗМЕРЕНИЯ. Ниже я привел ссылки на соответствующие статьи о снижении размерности для дальнейшего чтения:

11. Проверьте ДИСБАЛАНС В ЦЕЛИ (целевое поле). Это означает наличие целевого значения в подавляющем большинстве, чем любое другое целевое значение.

Пример- › Если для цели указано« Да »и« Нет », тогда« Да »- около 95%, а« Нет »- только 5%.

Эту проблему можно решить, используя повышающую дискретизацию (воспроизведение данных «Нет») или понижающую дискретизацию (уменьшение данных «Да») в наборе обучающих данных.

Кроме того, использование визуализации данных вместе с некоторыми шагами поможет вам получить лучшие результаты. Также разделите данные для целей проверки, используя правило 80:20. И не забудьте применить все изменения как к обучению, так и к набор данных тестирования.

Это были некоторые из основных аналитических шагов, которые могут дать вам лучшие результаты в задаче классификации или регрессии. Хотя для проблем, связанных с НЛП, временными рядами и т. Д., Может потребоваться еще несколько шагов, основной подход остается тем же. Но всегда помните, что в науке о данных, как правило, нет ничего (вы можете получить наилучшие результаты без каких-либо из вышеперечисленных шагов), и, следовательно,

Узнай больше, Узнай больше !!!

Посмотрите и другие мои статьи !!