Хороший пример из статьи oreilly для случая ML набора данных о времени полета авиакомпании.Запрос состоит в том, чтобы выбрать 80% записей для обучения.
SELECT
date,
airline,
departure_airport,
departure_schedule,
arrival_airport,
arrival_delay
FROM
[bigquery-samples:airline_ontime_data.flights]
WHERE
ABS(HASH(date)) % 10 < 8
Насколько мне известно, дата не уникальна.Допустим, если все 30% полетов выполняются в определенный день (это не лучший пример, другой набор данных мог бы лучше вписаться в этот сценарий), то значение хеш-значения для этого всегда одинаково.Если мы модифицируем их с 10, то 30% записи будут либо оставаться в <8 сторонах, либо> = 8 сторонах.
Если мое понимание правильное и этот запрос вызывает смещение, есть ли другой лучший способразделить набор данных до 80/10/10?