Прогноз объёма и индивидуальная оценка склонности отвечают на разные вопросы. Ни один сам по себе не доказывает причинный эффект кампании.
Цель, горизонт и доступные сведения
Определите прогнозируемую величину, единицу, период и горизонт решения. Используйте только признаки, доступные в момент предполагаемого прогноза. Будущая информация создаёт утечку данных и может искусственно улучшить результат проверки.
Проверять в хронологическом порядке
Обучайтесь на прошлом, оценивайте на более позднем периоде и повторяйте, продвигаясь во времени. Учитывайте задержку появления фактических результатов. Настраивайте преобразования только на обучающих данных и отделяйте финальный тест от выбора модели.
Сравнивать с базой и проверять действие
Сравните с простой базой, например предыдущим периодом или сезонным ориентиром, на тех же данных и горизонте. Документируйте ошибку и неопределённость: хороший исторический тест не гарантирует будущие результаты. Для оценки эффекта действия нужен подходящий причинный дизайн, например корректно спланированный эксперимент.
Источники и проверка
- scikit-learn — Common pitfalls
- scikit-learn — TimeSeriesSplit
- TensorFlow — Time series forecasting
- NIH — Research Methods Resources
Проверяйте прогноз в реальном времени.
Модель трафика может выглядеть точной, если оценка включает как более ранние, так и более поздние периоды. Проверка с учетом времени разделяет обучение и тестирование в хронологическом порядке и позволяет сравнивать прогнозы с простой базовой моделью на неизвестных периодах.
- Определите горизонт, единицу измерения и допустимую ошибку перед проектированием функций.
- Сравните модель с сезонной базовой моделью и исключите информацию, недоступную на момент прогнозирования.
- Отслеживайте ошибку по периодам и сегментам после выпуска, затем переобучите модель с документированным обоснованием.
Первичный источник: scikit-learn — TimeSeriesSplit. Связанный метод: прочитать практическое руководство.
Границы измерения углерода
Сравнение требует общих границ и функциональной единицы.
- Перечислите компоненты, регион, период и функциональную единицу, например завершённую операцию. Сравнивайте сценарии с одинаковой предоставленной услугой.
- Запишите энергию, коэффициент выбросов и выделенную долю оборудования. Различайте измерение и оценку; исключённый компонент не означает нулевой след.
- Вымышленный пример: (12 + 3) gCO2e / 5 операций = 3 gCO2e на операцию. Меняйте неопределённые допущения и сравнивайте суммарные выбросы.
Воспроизводимый приёмочный случай
Вымышленный пример: данные не описывают клиента или наблюдаемый результат.
Посмотреть данные случая
{
"functional_unit": "accepted_task",
"energy_kWh": 2,
"intensity_gCO2e_per_kWh": 100,
"embodied_gCO2e": 50,
"accepted_tasks": 100,
"SCI_gCO2e_per_task": 2.5
}Ожидаемое решение
(2 × 100 + 50)/100 = 2,5 г CO2e на задачу, только в заявленных границах.
Процедура проверки
- Определите границы, функциональную единицу и коэффициенты.
- Разделите энергию, воплощённые выбросы и результаты.
- Сохраните происхождение и расчёт без скрытых компенсаций.
Достаточно ли доли возобновляемой энергии для сравнения ПО?
Нет. Укажите границы, энергию, коэффициенты, оборудование и функциональную единицу.
Первичный источник: Green Software Foundation — Software Carbon Intensity. Связанный метод: прочитать практическое руководство.
Пропуски, ноль и оценка
Отсутствующее наблюдение не равно измеренному нулю.
- Разделяйте неполученное поле, неприменимое наблюдение и сбой сбора. Сохраняйте ноль как действительное измерение; замена всех пропусков нулями смешивает разные состояния.
- В вымышленном примере [10, пропуск, 0] среднее двух наблюдений равно 5. Деление на три после замены пропуска нулём отвечает на другой вопрос; покажите оба количества.
- Для оценённого значения сохраните признак подстановки и правило. Сравните результаты с оценками и без; при отсутствии действительных наблюдений показывайте отсутствие результата, не среднее ноль.
Воспроизводимый приёмочный случай
Вымышленный пример: данные не описывают клиента или наблюдаемый результат.
Посмотреть данные случая
{
"values": [
10,
null,
0
],
"observed_count": 2,
"mean_observed": 5,
"mean_if_missing_replaced_with_zero": 3.3333333333,
"extended_sample": {
"values": [
10,
null,
0,
20,
null,
30
],
"known_count": 4,
"expected_count": 6,
"known_sum": 60,
"mean_observed": 15,
"mean_after_zero_fill": 10
},
"missing_only_sample": {
"values": [
null,
null
],
"known_count": 0,
"mean_observed": null
}
}Ожидаемое решение
Среднее наблюдаемых значений — 5. Замена пропуска нулём меняет совокупность и результат.
Одни данные, два средних: покажите правило
Вымышленные данные: [10, пропуск, 0, 20, пропуск, 30]. Четыре известных значения из шести ожидаемых наблюдений; известная сумма: 60. Имеющийся ноль наблюдался.
| Обработка | Расчёт среднего | Интерпретация |
|---|---|---|
| Только известные значения | 60 ÷ 4 = 15 | Среднее описывает четыре известных значения. Оно не доказывает, что два пропущенных имели бы то же распределение. |
| Пропуски заменены нулями | 60 ÷ 6 = 10 | Два нуля добавлены правилом, а не наблюдались. Среднее отвечает на другой вопрос; обоснуйте правило перед сравнением. |
| Другая выборка: [пропуск, пропуск] | Не вычисляется | Нет известных значений: покажите недоступность. Нулевое среднее подразумевало бы несуществующее наблюдение. |
Процедура проверки
- Разделите пропуски, нули и оценки.
- Рассчитайте средние до и после исключения.
- Сохраните количества и правила по переменным. Проверьте также группу, где все значения отсутствуют: без явного правила её нельзя представлять как измеренный ноль.
Первичный источник: pandas — Working with missing data. Связанный метод: прочитать практическое руководство.
