Scraper Обновлено: 11 July, 2014

Масштабирование данных для машинного обучения в Python с помощью Scikit-Learn

  Перевод   Ссылка на автора

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

В этом посте вы обнаружите два простых метода преобразования данных, которые вы можете применить к своим данным в Python, используя scikit учиться,

Обновить: Смотрите этот пост для более актуального набора примеров,

Изменение масштаба данных

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

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

Нормализация данных

Нормализация относится к изменению масштаба числовых атрибутов в диапазоне от 0 до 1.

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

Пример ниже демонстрирует нормализацию данных набора цветов Iris.

Normalize the data attributes for the Iris dataset
			Python
			
			
# Normalize the data attributes for the Iris dataset.
from sklearn.datasets import load_iris
from sklearn import preprocessing
# load the iris dataset
iris = load_iris()
print(iris.data.shape)
# separate the data from the target attributes
X = iris.data
y = iris.target
# normalize the data attributes
normalized_X = preprocessing.normalize(X)

Для получения дополнительной информации см. нормализовать функцию в документации API.

Стандартизация данных

Стандартизация относится к сдвигу распределения каждого атрибута, чтобы иметь среднее значение нуля и стандартное отклонение единицы (дисперсия единицы).

Полезно стандартизировать атрибуты для модели, которая опирается на распределение атрибутов, таких как гауссовские процессы.

Приведенный ниже пример демонстрирует стандартизацию данных набора цветов Iris.

Standardize the data attributes for the Iris dataset
			Python
			
			
# Standardize the data attributes for the Iris dataset.
from sklearn.datasets import load_iris
from sklearn import preprocessing
# load the Iris dataset
iris = load_iris()
print(iris.data.shape)
# separate the data and target attributes
X = iris.data
y = iris.target
# standardize the data attributes
standardized_X = preprocessing.scale(X)

Для получения дополнительной информации см. функция масштабирования в документации API.

Совет: какой метод использовать

Трудно понять, улучшит ли масштаб ваших данных производительность ваших алгоритмов, прежде чем применять их. Если часто можно, но не всегда.

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

Резюме

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

В этом посте вы обнаружили, как масштабирование данных вписывается в процесс прикладного машинного обучения, и два метода: нормализация и стандартизация, которые вы можете использовать для изменения масштаба данных в Python с помощью библиотеки scikit-learn.

Обновить: Смотрите этот пост для более актуального набора примеров,