Предварительная обработка данных - решающий шаг на пути к созданию модели машинного обучения. Если нет предварительной обработки данных, наша модель машинного обучения не будет работать должным образом. Представьте, что мы собираемся в путешествие, нам нужно подготовиться, например, забронировать авиабилеты, отели и так далее. В этом случае этап подготовки нашей поездки по машинному обучению - это предварительная обработка данных. Шаги следующие:
- Получение набора данных
- Импорт библиотек
- Импорт набора данных
- Недостающие данные
- Категориальные данные
- Разделение данных на обучающий набор и тестовый набор
- Масштабирование функций
- Шаблон предварительной обработки данных
- Получение набора данных
Вы можете создать свой собственный набор данных или использовать приведенный выше набор данных в качестве справочного материала для этого руководства. Это файл CSV. Итак, давайте посмотрим на приведенный выше набор данных и выясним, о чем все это. Набор данных содержит 10 наблюдений и информацию о клиентах компании, а первые три столбца содержат информацию об этих клиентах, такую как страна, возраст и зарплата, а четвертый столбец показывает, покупается продукт клиентом или нет.
Важнейшей частью набора данных является понимание и различение зависимых и независимых переменных. Первые три столбца представляют независимые переменные, а четвертый - зависимую переменную.
Для любых моделей машинного обучения нам нужны независимые переменные для прогнозирования зависимых переменных. Скорее всего, в приведенном выше случае мы будем использовать указанные выше 3 столбца для прогнозирования четвертого столбца.
2. Импорт библиотек
Библиотека - это инструмент, который используется для конкретной работы. Итак, самое интересное в библиотеке - это то, что вы предоставляете входные данные в библиотеку, а библиотека делает всю работу за нас. Мы собираемся использовать библиотеки, чтобы сделать нашу модель машинного обучения максимально эффективной. Есть 3 важные библиотеки, которые мы будем использовать большую часть времени.
- Numpy: эта библиотека содержит математические инструменты. Это используется, если мы хотим использовать в нашем коде какую-либо математику.
- MatplotLib: эта библиотека используется для построения диаграмм. Все, что вы хотите построить на Python, вы будете использовать из этой библиотеки.
- Pandas: эта библиотека используется для импорта наборов данных и управления ими.
Откройте свою IDE Spyder. Создайте новый файл с помощью меню Файл. Мы собираемся использовать этот файл в качестве шаблона для предварительной обработки данных для большинства ваших будущих проектов. Давайте импортируем библиотеки в Python, определенные выше.
импортировать numpy как np
импортировать matplotlib.pyplot как plt
импортировать pandas как pd
Здесь np, plt и pd - это ярлыки, представляющие библиотеки. Выделите все три строки и нажмите Ctrl / Cmd + Enter / Return, после чего в консоли вы увидите, что три строки работают правильно.
3. Импорт набора данных.
Первое, что нужно сделать перед импортом набора данных, - это установить рабочий каталог. Итак, чтобы установить рабочий каталог, перейдите в Проводник и выберите папку, которую вы хотите установить в качестве рабочего каталога, содержащего ваш CSV-файл, как показано на изображении ниже. Вы можете выбрать любую папку в качестве рабочего каталога, если в ней есть ваш CSV-файл.
Сохраните файл, над которым вы сейчас работаете, в тот же каталог, где находится ваш CSV-файл. Затем нажмите зеленую кнопку воспроизведения, расположенную в верхнем левом углу экрана, или вы можете использовать для этого ярлык F5. Теперь мы будем использовать панду для импорта набора данных.
dataset = pd.read_csv («Data.csv»)
Выделите строку и выполните код. Как вы можете заметить на изображениях выше, набор данных был импортирован, а также перейдите в раздел Обозреватель переменных, и вы заметите, что ваш набор данных импортируется. Если вы дважды щелкните текст набора данных в проводнике переменных, вы увидите наш набор данных. Обратите внимание, что в Python индекс наблюдения начинается с 0. На вкладке зарплаты ваше значение может быть в форме научного уведомления, например 6.2e + 04. Перейдите в раздел форматирования, как показано на втором изображении, и измените его значение на % .0f. 0, чтобы не было десятичного числа после запятой, и f для представления числа с плавающей запятой.
Теперь есть важное понятие, которое необходимо понять в машинном обучении на Python. Теперь у нас есть набор данных, но нам нужно различать матрицу функций и вектор зависимой переменной. Теперь мы собираемся создать матрицу из трех независимых переменных: страны, возраста и заработной платы.
X = dataset.iloc [:,: -1] .values
В приведенной выше строке кода [:,: -1] слева от запятой «:» представлены все строки в наборе данных, а справа - все столбцы. Итак, мы взяли все строки и все столбцы набора данных, кроме последнего столбца, а .values означает, что мы берем все значения и сохраняем их в X. Теперь мы собираемся сделать то же самое. для зависимой переменной.
y = dataset.iloc [:, 3] .values
Здесь мы берем все строки, но только последний столбец. Поскольку индексирование python начинается с 0, последний столбец - это наш третий индекс, представляющий купленный продукт.
Выполните команду, и вы заметите независимую и зависимую переменную в разделе проводника переменных, также мы можем ввести значения X и y в консоли Python, чтобы увидеть результат, как указано выше.
4. Отсутствующие данные
В реальном мире отсутствие данных - одна из самых распространенных проблем, с которыми мы сталкиваемся. Если вы посмотрите в наш набор данных, вы найдете два столбца с отсутствующими возрастом и зарплатой. Один из подходов к обработке такого случая - удалить наблюдение, содержащее недостающие данные, но это может быть опасно, потому что представьте, что этот набор данных содержит важную информацию, поэтому нам нужно найти решение для него. Более надежный подход - вычислить среднее значение всех данных столбца о возрасте и заработной плате. Итак, мы собираемся заполнить значение средним значением столбца.
Мы не собираемся вычислять среднее значение самостоятельно, скорее мы будем использовать библиотеку для выполнения этой работы за нас, и эта библиотека является sklearn.
из sklearn.impute import SimpleImputer
imputer = SimpleImputer (missing_values = np.nan, strategy = 'mean')
imputer = imputer.fit (X [:, 1: 3])
X [:, 1: 3] = imputer.transform (X [:, 1: 3])
Итак, давайте пройдемся по каждой строчке,
В первой строке мы импортируем вменяемую библиотеку sklearn, которая имеет класс SimpleImputer, который будет обрабатывать проблему с отсутствующими данными за нас.
Во второй строке мы создаем объект этого класса. Чтобы узнать подробности о классе, выберите имя класса и нажмите Cmd / Ctrl + I. Это предоставит надлежащую документацию для класса и того, как его использовать, и какие параметры нам нужно использовать.
- Первый определяемый параметр - это отсутствующие значения, и здесь мы определили np.nan, почему это так? Это потому, что если вы пойдете и посмотрите в набор данных, дважды щелкнув в проводнике переменных, вы заметите, что отсутствующие значения называются nan. Таким образом, поместив np.nan в качестве пропущенных значений, библиотека сможет определить, где находятся пропущенные значения, и действовать соответствующим образом.
- Второй параметр - это стратегия, поэтому стратегия, которую мы собираемся использовать, - это среднее значение. Существуют и другие стратегии, такие как наиболее частая, медианная, и это будет зависеть от сценария и набора данных.
Есть и другие параметры, но эти два параметра являются важными ключевыми параметрами для инициализации объекта.
Третья строка предназначена для подгонки импортируемого объекта к данным X. Однако мы не собираемся подгонять полную матрицу под импутирующий объект. Нам нужны только 2-й и 3-й столбцы матрицы, содержащие недостающие данные. Здесь X [:, 1: 3] означает, что мы берем индексы 1 и 2, но помещаем 3, потому что исключена верхняя граница.
Теперь нам нужно заменить отсутствующие данные на среднее значение столбца, что выполняется в четвертой строке с помощью функции преобразования.
Теперь выберите все строки, запустите его и проверьте значение X.
Мы подошли к шагу 4, позаботившись об отсутствующих данных, я расскажу об оставшихся шагах в следующей части Предварительная обработка данных-II. Будьте на связи!!!