Вопрос или проблема
У меня есть набор данных о разных людях с их страховыми расходами. Я обучил нейронную сеть для предсказания страховых расходов (столбец charges) на основе других признаков (возраст, индекс массы тела и т. д.). Вот как работает моя нейронная сеть:
insurance_model.compile(
loss=tf.keras.losses.mae,
optimizer=tf.keras.optimizers.Adamax(learning_rate=0.001),
metrics=["mae"]
)
Вот некоторые статистические данные о моей целевой переменной (столбец charges)
А вот гистограмма значений столбца charges:
Я оцениваю свою нейронную сеть по среднему абсолютному отклонению (mae), и в конце мое mae=1300 для обоих наборов данных: обучающего и тестового.
Итак, меня интересует, достаточно ли 1300?
Как я могу узнать, хорош ли какой-либо результат?
Среднее абсолютное отклонение легко интерпретировать: в среднем значение, предсказанное вашей моделью, отклоняется на 1300.
- Во-первых, это выглядит хорошо относительно диапазона целевого значения: 1300 довольно мало для диапазона от 0 до 60000.
- Среднее целевого значения составляет 13k, поэтому ошибка составляет 10% от среднего, что вполне разумно. Если мы экstrapolируем, это может означать, что ошибка составляет в среднем около 10%.
Я бы предложил взглянуть на распределение ошибок (в частности, на дисперсию), чтобы получить некоторые указания, такие как: “система имеет x% вероятности предсказать значение в пределах y% от правильного значения”.
Также может быть полезно изучить, в каких случаях происходят наибольшие ошибки. В частности, коррелирует ли ошибка со значением? Это может иметь значение, потому что ошибка в 3k огромна, если целевое значение составляет 2k, но она маленькая, если целевое значение составляет 50k.
Как я могу знать, хорош ли какой-либо результат?
Сравнивая с базовой системой. Базовой системой может быть какая-то ранее существовавшая система, упрощенная модель (см. пример ниже) или какая-то более сложная модель с использованием другого метода.
В этом случае самой простой базовой системой будет система, которая всегда предсказывает медиану. Вычисление MAE в этом случае дает некоторое представление о том, насколько ваша реальная система лучше базового метода.
Вы также можете реализовать более простую регрессионную модель, например, с помощью SVM или дерева решений.
Ответ или решение
Чтобы определить, является ли результат вашей модели достаточно хорошим, следует учитывать несколько аспектов, включая величину ошибки, распределение ошибок, а также сравнение с базовыми моделями. Вот подробный анализ того, как вы можете оценить свою модель:
1. Анализ величины ошибки
Вы используете среднюю абсолютную ошибку (MAE) для оценки качества модели, и ваша модель показывает MAE равную 1300. Для начала рассмотрим это значение в контексте вашего целевого признака (столбец charges):
- Диапазон значений: Если целевые значения колеблются от 0 до 60,000, то ошибка в 1300 кажется достаточно малой. Это составляет около 2-3% от максимального значения.
- Среднее значение: Вы упомянули, что среднее значение целевого признака составляет около 13,000. MAE равная 1300 представляет собой примерно 10% от этого среднего, что можно считать приемлемым уровнем ошибки для прогноза.
2. Анализ распределения ошибок
Важно проанализировать распределение ваших ошибок, чтобы понять, насколько ваша модель точна в различных диапазонах предсказаний:
- Статистика ошибок: Постройте график распределения ошибок модели (прогнозируемые значения минус истинные значения). Это даст вам представление о том, как часто ваши предсказания отклоняются от истинных значений и каково распределение этих отклонений.
- Коэффициент вариации: Вычислите коэффициент вариации (отношение стандартного отклонения к среднему) для ошибок. Это поможет понять, насколько велика изменчивость ваших предсказаний.
- Оценка по интервалу: Используйте интервал предсказаний, чтобы определить, с какой вероятностью модель предсказала значение в пределах, например, ±10% от истинного значения.
3. Сравнение с базовыми моделями
Для более объективной оценки целесообразности ваших результатов стоит сравнить их с простыми базовыми моделями:
- Базовая модель с медианным предсказанием: Вычислите MAE для модели, которая всегда предсказывает медианное значение вашего целевого столбца. Это поможет определить, насколько ваша модель улучшает результаты по сравнению с этой простой стратегией.
- Сравнение с другими моделями: Попробуйте реализовать более простую модель (например, линейная регрессия, решающее дерево или метод опорных векторов) и сравните результаты MAE с вашей нейронной сетью. Это даст вам представление о том, насколько сложная модель оправдывает свою сложность.
4. Построение визуализаций ошибок
Создание визуализаций может помочь лучше проиллюстрировать эффективность модели:
- Графики остатков: Постройте график остатков для оценки взаимосвязи между предсказанными значениями и остатками. Если есть закономерности, это может указывать на то, что модель может быть улучшена.
- Корреляция ошибок с истинными значениями: Проверьте, как ваши ошибки зависят от истинных значений. Возможно, ваша модель наблюдает более крупные ошибки на определенных диапазонах значений.
Заключение
Ваша MAE в 1300 является сравнительно приемлемой на основании вышеизложенных факторов, но для окончательной оценки необходимо рассмотреть указанные аспекты. Если ваши результаты значительно улучшаются по сравнению с базовыми моделями, а также неплохо справляются с задачей прогнозирования, то мы можем считать вашу модель удовлетворительной. Периодическая переоценка и улучшение модели на основе новых данных также помогут поддерживать ее релевантность и точность.