В науке о данных и машинном обучении нормализация данных играет решающую роль в подготовке наборов данных для анализа и обучения моделей. Одним из распространенных методов нормализации является нормализация диапазона, при которой числовые данные масштабируются до определенного диапазона, обычно от 0 до 1. В этой статье мы рассмотрим несколько методов реализации нормализации диапазона, приведя примеры кода для каждого подхода.
Метод 1: масштабирование минимального и максимального значений
Метод масштабирования минимального и максимального значений представляет собой простой подход к нормализации диапазона. Он масштабирует данные путем вычитания минимального значения и деления на диапазон набора данных.
def min_max_scaling(data):
min_val = min(data)
max_val = max(data)
scaled_data = [(x - min_val) / (max_val - min_val) for x in data]
return scaled_data
# Usage example
data = [10, 20, 30, 40, 50]
scaled_data = min_max_scaling(data)
print(scaled_data)
Метод 2: sklearn.preprocessing.MinMaxScaler
Библиотека scikit-learn предоставляет удобный способ выполнить нормализацию диапазона с помощью класса MinMaxScaler
. Он автоматически вычисляет минимальное и максимальное значения набора данных и соответствующим образом применяет масштабирование.
from sklearn.preprocessing import MinMaxScaler
data = [[10], [20], [30], [40], [50]]
scaler = MinMaxScaler()
scaled_data = scaler.fit_transform(data)
print(scaled_data)
Метод 3: numpy.interp
Функция numpy.interp
может использоваться для линейной интерполяции значений в пределах указанного диапазона. Применяя эту функцию, мы можем эффективно добиться нормализации диапазона.
import numpy as np
data = [10, 20, 30, 40, 50]
scaled_data = np.interp(data, (min(data), max(data)), (0, 1))
print(scaled_data)
Метод 4: TensorFlow
Если вы работаете с TensorFlow, вы можете использовать его встроенные функции для нормализации диапазона.
import tensorflow as tf
data = tf.constant([10, 20, 30, 40, 50], dtype=tf.float32)
scaled_data = tf.keras.utils.normalize(data)
print(scaled_data)
Метод 5: pandas.DataFrame
Если ваши данные находятся в DataFrame pandas, вы можете использовать функцию apply
вместе с лямбда-выражениями для нормализации определенных столбцов.
import pandas as pd
data = pd.DataFrame({'A': [10, 20, 30, 40, 50],
'B': [5, 15, 25, 35, 45]})
normalized_data = data.apply(lambda x: (x - x.min()) / (x.max() - x.min()))
print(normalized_data)
В этой статье мы рассмотрели несколько методов реализации нормализации диапазона. Мы рассмотрели методы с использованием базового Python, таких библиотек, как scikit-learn, NumPy, TensorFlow и pandas. Применяя эти методы, вы можете эффективно масштабировать свои данные до желаемого диапазона, что делает их пригодными для различных задач обработки данных и машинного обучения.