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

Некоторые методы, которые используются в любом алгоритме машинного обучения для обработки данных и полезны для будущего использования для получения лучших результатов. Я использовал 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