TGViewer
🍳 Датазавтраки ☕️ НСК (Академ) 🍳 Датазавтраки ☕️ НСК (Академ) @databreakfast · 705 subscribers
Post #1750 338
Рассказывал про подход к тестированию на исторических данных, когда мы тестировали многоруких бандитов - идем по реальному датасету и собираем статистику - как было бы, если бы мы выбрали другой вариант. Примерно так:

import pandas as pd
import numpy as np
from collections import deque

CACHE_SIZE = 100
CACHE_LAG = 3600

class ContrFactualNext:
def __init__(self, df: pd.DataFrame):
self.df = df
self.locator = 0
self.length = self.df.shape[0]
self.preference = ''
self.recsys_list = df.logger.unique().tolist()
self.stacks = {k: deque(maxlen=CACHE_SIZE) for k in self.recsys_list}

def __iter__(self):
return self

def __len__(self) -> int:
return self.length

def __next__(self):
while self.locator < self.length:
row = self.df.iloc[self.locator]
if (self.preference == '') or (self.preference == row.logger):
# возвращаем запись из лога
self.locator += 1
return row
dq = self.stacks[self.preference]
while len(dq):
# возвращаем запись из кеша, берем самую старую
tmp = dq.popleft()
# tmp = dq.pop()
assert (row.created_at - tmp.created_at).seconds >= 0 # ожидаем, что записи отсортированы по времени
if (row.created_at - tmp.created_at).seconds < CACHE_LAG: # проверяем, что запись не слишком старая
return tmp
self.stacks[row.logger].append(row)
self.locator += 1
# добавляем запись в кеш
raise StopIteration


в preference мы указываем наши текущие пожелания - точку под какую руку бандитов хотим получить. Могу на следующем датазавтраке на примерах показать, если интересно
  • ❤ 3
More from @databreakfast
  1. Oct 11, 2026Датафест кончился, а датазавтраки остались. 13.10.2026 🍳 датазавтрак по вторникам ☕️ в Но…
  2. Oct 10, 2026мой доклад с датафеста с пометками
  3. Oct 7, 2026https://ods.ai/events/datafestsiberia7
  4. Oct 6, 2026Еще я рассказывал про оценку ИИ-систем, но на полях этого двухчасового датазавтрака мне не…
  5. Oct 6, 2026Опять говорили про игру-построй-компьютер-с-нуля https://ershovcomputer.ru/ она того стоит
  6. Oct 6, 2026Говорили про локальные кодовые модели на Mac Studio или 4х5090 - я бы пробовал https://oll…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →