В предыдущей статье я подробно расскажу о методах предварительной обработки данных, которые могут использоваться в любой области. Сейчас я просто объясню «как мы реализуем методы предварительной обработки данных, используемые в машинном обучении».
Некоторые методы, которые используются в любом алгоритме машинного обучения для обработки данных и полезны для будущего использования для получения лучших результатов. Я использовал Python, вы будете использовать любой язык, на котором хотите обрабатывать данные.
В python сначала мы импортируем библиотеки/модули, которые помогают нам различать код на разные сегменты.
Импорт библиотек
import numpy as np # For any type of mathematics work import matplotlib.pyplot as plt # For any type of chart import pandas as pd # structure and analysis the data
Мы использовали набор данных для разных стран, который включает некоторые зависимые и независимые переменные.
Импорт набора данных
dataset = pd.read_csv("Data.csv") X = dataset.iloc[: , :-1].values #first colon indicates all the values and second colon or -1 indicate everthing except last column Y = dataset.iloc[: , 3].values
При импорте данных мы обнаружили, что некоторые значения в полях Возраст и Зарплата отсутствуют, а некоторые категориальные данные включены в список Куплено. независимые ценности.
Итак, мы решаем эти вопросы в несколько этапов.
Отсутствующие значения
from sklearn.preprocessing import Imputer #sklearn is ML library and pre-processing is sub-library to process the any type of data. # And, bascially Imputer library allow us to find out missing data imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0) # axis is 0 because imputing column imputer = imputer.fit(X[:, 1:3]) # choose specific column index X[:, 1:3] = imputer.transform(X[:, 1:3])
При поиске пропущенных значений мы использовали среднее данного значения.
Категориальные данные
# Categorical data means we will deal with independent variables # Encoding the Independent Variable from sklearn.preprocessing import LabelEncoder, OneHotEncoder # Label Encoder is the class to encode data in 0 or 1 form labelencoder_X = LabelEncoder() X[: , 0] = labelencoder_X.fit_transform(X[: , 0]) onehotencoder = OneHotEncoder(categorical_features = [0]) X = onehotencoder.fit_transform(X).toarray() # Encoding the Dependent Variable labelencoder_Y = LabelEncoder() Y = labelencoder_Y.fit_transform(Y)
Что такое Категориальный?
Категориальные переменные — это те переменные, которые попадают в определенную категорию. Цвет волос, пол, специальность колледжа, посещаемость колледжа, политическая принадлежность, инвалидность или сексуальная ориентация — все это категории, которые могут иметь списки категориальных переменных. Обычно переменные принимают одну из нескольких фиксированных переменных в наборе.
Например:
- Категория «цвет волос» может содержать категориальные переменные «черный», «каштановый», «блондин» и «рыжий».
- Категория «пол» может содержать категориальные переменные «Мужской», «Женский» или «Другое».
Разделение набора данных
from sklearn.cross_validation import train_test_split X_train,X_test,Y_train,Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 0)
Разделение набора данных означает разделение всего набора данных на две части.
- Тестовые данные
- Данные поезда
При разделении тест содержит 20% данных, а поезд содержит 80% данных. Для разделения данных мы использовали пакет scikit-learn с методом cross_validation, а затем импортировали модуль train_test_split.
Масштабирование функций
# We use to denominate the values of same scale and values. from sklearn.preprocessing import StandardScaler sc_X = StandardScaler() # sc(scale) X_train = sc_X.fit_transform(X_train) X_test = sc_X.transform(X_test) #sc_Y = StandardScaler() #Y_test = sc_Y.fit_transform(Y_test)
Что такое StandardScaler?
Стандартизация набора данных является общим требованием для многих оценщиков машинного обучения: они могут плохо себя вести, если отдельный признак более или менее похож на стандартные нормально распределенные данные (например, по Гауссу с нулевым средним и единичной дисперсией). .
Модуль preprocessing
дополнительно предоставляет служебный класс StandardScaler
, который реализует Transformer
API для вычисления среднего значения и стандартного отклонения в наборе для обучения и тестирования.
Разница между Fit_transform() и transform()?
Чтобы центрировать данные (чтобы они имели нулевое среднее значение и единичную стандартную ошибку), вы вычитаете среднее значение, а затем делите результат на стандартное отклонение.
x′=(x−μ) /σ
Следовательно, fit()
каждого преобразования sklearn просто вычисляет параметры (например, μ и σ в случае StandardScaler) и сохраняет их как внутреннее состояние объектов. После этого вы можете вызвать его метод transform()
, чтобы применить преобразование к определенному набору примеров.
Методы масштабирования объектов
Использованная литература :
Если вам нужен полный код Python для предварительной обработки всех данных, перейдите по ссылке ниже.
И дополнительные сведения о предварительной обработке данных, включая все методы или функции, которые вы использовали для повышения квалификации данных в будущем.
Полная информация о предварительной обработке данных и ее типах, которые облегчают чтение данных и позволяют использовать их в будущем.
https://medium.com/@silicon.smile1/data-preprocessing-b1552b4060f3