Реальные примеры масштабирования
1. Анализ финансовых данных
Нормализация цен на акции
import numpy as np
import pandas as pd
def normalize_stock_prices(prices):
return (prices - prices.min()) / (prices.max() - prices.min())
stock_prices = np.array([50, 55, 60, 52, 58])
normalized_prices = normalize_stock_prices(stock_prices)
2. Подготовка признаков для машинного обучения
Подготовка признаков для нейронных сетей
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
def prepare_ml_features(X):
scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)
return X_scaled, scaler
## Example dataset preparation
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
X_train_scaled, scaler = prepare_ml_features(X_train)
X_test_scaled = scaler.transform(X_test)
3. Обработка изображений
Нормализация цветовых каналов
import numpy as np
def normalize_image_channels(image):
return (image - image.min()) / (image.max() - image.min())
## RGB image normalization
rgb_image = np.random.randint(0, 256, (100, 100, 3))
normalized_image = np.apply_along_axis(normalize_image_channels, 2, rgb_image)
4. Обработка данных с сенсоров
Калибровка показаний датчиков IoT
def calibrate_sensor_readings(readings, min_val, max_val):
return [(reading - min_val) / (max_val - min_val) * 100
for reading in readings]
temperature_readings = [18.5, 20.3, 22.1, 19.7]
calibrated_readings = calibrate_sensor_readings(
temperature_readings,
min(temperature_readings),
max(temperature_readings)
)
Сравнение методов масштабирования
Применение |
Метод масштабирования |
Основное преимущество |
Нейронные сети |
Масштабирование MinMax |
Ограниченный диапазон входных данных |
Линейная регрессия |
Стандартное масштабирование |
Нулевое среднее |
Обнаружение аномалий |
Робастное масштабирование |
Устойчивость к выбросам |
5. Нормализация временных рядов
Подготовка временных рядов для прогнозирования
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
def prepare_time_series(series):
scaler = MinMaxScaler()
scaled_series = scaler.fit_transform(series.values.reshape(-1, 1))
return scaled_series, scaler
## Example time series scaling
time_series_data = pd.Series([100, 120, 110, 130, 125])
scaled_series, scaler = prepare_time_series(time_series_data)
Визуализация рабочего процесса масштабирования
graph TD
A[Raw Data] --> B[Identify Scaling Needs]
B --> C{Select Scaling Method}
C -->|Neural Network| D[MinMax Scaling]
C -->|Statistical Analysis| E[Standard Scaling]
C -->|Outlier-rich Data| F[Robust Scaling]
D --> G[Scaled Data Ready for Processing]
E --> G
F --> G
Лучшие практики для масштабирования в реальных условиях
- Всегда понимать характеристики своих данных.
- Выбирать метод масштабирования в зависимости от конкретного случая использования.
- Поддерживать единообразное масштабирование на обучающих и тестовых наборах данных.
- Сохранять исходные взаимосвязи между данными.
- Обрабатывать возможные крайние случаи и выбросы.
Освоив эти методы масштабирования в реальных условиях с помощью LabEx, вы будете готовы справиться с различными задачами предварительной обработки данных в разных областях.