Оптимальные проценты выборки

Оптимальные проценты выборки

Обзор стратегий сэмплирования

Для оптимизации производительности системы используются различные стратегии сэмплирования на разных этапах обработки данных. Это позволяет значительно ускорить процесс оптимизации без потери качества результатов.

Стратегии сэмплирования

graph TB
    subgraph "Этапы оптимизации"
        Start[Начальные данные]
        First[Первые поколения]
        Middle[Средние поколения]
        Final[Финальные тесты]
    end
    
    subgraph "Стратегии"
        VS[VolatilitySampling]
        TS[TimeBasedSampling]
        US[UniformSampling]
    end
    
    subgraph "Проценты выборки"
        P5[5-10%]
        P25[15-25%]
        P100[100%]
    end
    
    subgraph "Качество результатов"
        Q85[85-90%]
        Q95[90-95%]
        Q100[100%]
    end
    
    Start --> First
    First --> Middle
    Middle --> Final
    
    First --> VS
    Middle --> TS
    Final --> US
    
    VS --> P5
    TS --> P25
    US --> P100
    
    P5 --> Q85
    P25 --> Q95
    P100 --> Q100

Рекомендуемые проценты выборки

ЭтапРекомендуемый %СтратегияСохранение качества
Первые поколения5-10%VolatilitySampling85-90%
Средние поколения15-25%TimeBasedSampling90-95%
Финальные тесты100%UniformSampling100%

Стратегии сэмплирования

VolatilitySampling (5-10%)

  • Применение: Первые поколения генетического алгоритма
  • Принцип: Выборка на основе волатильности цены
  • Преимущества: Быстрая оценка, сохранение ключевых паттернов
  • Недостатки: Может пропустить стабильные периоды

TimeBasedSampling (15-25%)

  • Применение: Средние поколения оптимизации
  • Принцип: Равномерная выборка по времени
  • Преимущества: Хороший баланс скорости и качества
  • Недостатки: Может пропустить редкие события

UniformSampling (100%)

  • Применение: Финальные тесты и валидация
  • Принцип: Полная выборка всех данных
  • Преимущества: Максимальная точность
  • Недостатки: Медленная обработка

Оценка времени выполнения

Для 100k котировок на 1 CPU / 1 GB RAM:

graph LR
    subgraph "Объем данных"
        D100[100,000 котировок]
        D25[25,000 котировок]
        D10[10,000 котировок]
        D5[5,000 котировок]
    end
    
    subgraph "Время обработки"
        T120[~120 сек/агент]
        T30[~30 сек/агент]
        T12[~12 сек/агент]
        T6[~6 сек/агент]
    end
    
    subgraph "Масштабирование"
        S34000[34,000 дней]
        S212[212 дней]
        S85[85 дней]
        S42[42 дня]
    end
    
    D100 --> T120
    D25 --> T30
    D10 --> T12
    D5 --> T6
    
    T120 --> S34000
    T30 --> S212
    T12 --> S85
    T6 --> S42
ВыборкаКотировокВремя/агент100 агентов9M комбинаций
100%100,000~120 сек3.3 часа34,000 дней (✗)
25%25,000~30 сек50 мин212 дней (✗)
10%10,000~12 сек20 мин85 дней (△)
5%5,000~6 сек10 мин42 дня (△)
GA (50 gen × 100 pop)5%6 сек8.3 часа

Рекомендации по настройке

Для разработки и тестирования

  • Используйте 5-10% выборку для быстрой итерации
  • Применяйте VolatilitySampling для выявления проблем
  • Фокусируйтесь на ключевых параметрах

Для предварительной оптимизации

  • Используйте 15-25% выборку для баланса
  • Применяйте TimeBasedSampling для стабильности
  • Оптимизируйте основные параметры

Для финальной валидации

  • Используйте 100% выборку для точности
  • Применяйте UniformSampling для полного покрытия
  • Валидируйте все параметры

Оптимизация производительности

Параллельная обработка

performance:
  large_data_processing:
    enable_parallel_processing: true
    max_parallel_workers: 4
    enable_batch_processing: true
    batch_size: 1000

Кэширование результатов

performance:
  large_data_processing:
    enable_caching: true
    cache_ttl: "1h"

Адаптивная популяция

performance:
  ml_optimization:
    enable_adaptive_population: true
    min_population_size: 25
    max_population_size: 100

Мониторинг производительности

Метрики для отслеживания

  • ga_sampling_ratio — текущий процент выборки
  • ga_processing_time — время обработки агента
  • ga_population_size — размер популяции
  • ga_generation_count — количество поколений

Алерты производительности

  • Таймауты обработки (> 1200s)
  • Высокое использование памяти (> 80%)
  • Медленная сходимость (> 100 поколений)

Заключение

Правильный выбор стратегии сэмплирования критически важен для производительности системы. Рекомендуется:

  1. Начинать с малых выборок (5-10%) для быстрой итерации
  2. Увеличивать выборку (15-25%) для стабильной оптимизации
  3. Использовать полную выборку (100%) для финальной валидации
  4. Мониторить производительность и адаптировать стратегии
  5. Кэшировать результаты для повторного использования

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