Junior — Middle
81
Масъул шавед, ки мисолеро барои истифодаи намуна барои иҷрои нормализатсияи маълумотҳо диҳед?
Ҷавоб аз AI
sobes.tech AI
Для нормализации данных часто используют шаблон проектирования "Стратегия" (Strategy), который позволяет менять алгоритм нормализации без изменения кода, использующего эти данные.
Пример на Python:
from abc import ABC, abstractmethod
class NormalizationStrategy(ABC):
@abstractmethod
def normalize(self, data):
pass
class MinMaxNormalization(NormalizationStrategy):
def normalize(self, data):
min_val = min(data)
max_val = max(data)
return [(x - min_val) / (max_val - min_val) for x in data]
class ZScoreNormalization(NormalizationStrategy):
def normalize(self, data):
mean = sum(data) / len(data)
variance = sum((x - mean) ** 2 for x in data) / len(data)
std_dev = variance ** 0.5
return [(x - mean) / std_dev for x in data]
class DataProcessor:
def __init__(self, strategy: NormalizationStrategy):
self.strategy = strategy
def process(self, data):
return self.strategy.normalize(data)
# Использование
raw_data = [10, 20, 30, 40, 50]
processor = DataProcessor(MinMaxNormalization())
print(processor.process(raw_data)) # Нормализация Min-Max
processor.strategy = ZScoreNormalization()
print(processor.process(raw_data)) # Нормализация Z-Score
Такой подход позволяет легко менять способ нормализации, не меняя остальной код.