Есть ли разница в базовых критериях sklearn «энтропия» и «log_loss» для классификаторов дерева решений?

Я реализую классификатор дерева решений, используя sklearn и проверяя различные критерии, но не могу найти разницу между критериями «энтропия» и «log_loss». Базовый файл _classes.py древовидной папки в исходном коде sklearn определяет потери журнала и энтропию как один и тот же тип в своем критерии классификатора, предположительно делая их одной и той же операцией?

CRITERIA_CLF = {
    "gini": _criterion.Gini,
    "log_loss": _criterion.Entropy,
    "entropy": _criterion.Entropy,
}

В чем основная разница? Кажется, что либо потеря журнала, либо энтропия под капотом делают то же самое.

Вам следует предоставить ссылку на источник. Однако если это исходный код, то разницы явно нет. Возможно, ваш вопрос заключается в том, почему у одного и того же предмета два названия. Только разработчики знают наверняка, но я предполагаю, что оба имени широко используются, поэтому они включили оба.

Joe 18.05.2024 14:34
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
142
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет никакой разницы между log_loss и entropy в контексте алгоритмов дерева решений и случайного леса. На самом деле это просто взаимозаменяемые термины, используемые для обозначения одного и того же критерия. Как упоминалось в документации sklearn здесь:

Функция для измерения качества разделения. Поддерживаемые критерии: «джини» для примеси Джини, а «log_loss» и «энтропия» — для Получение информации по Шеннону, см. Математическая формулировка. Примечание: это параметр зависит от дерева.

Также проверив математические формулы, представленные в документе sklearn, вы можете обнаружить, что в данном контексте это взаимозаменяемые термины. На мой взгляд, лучший термин для использования теоретически - это энтропия, описанная в [Энтропия Шеннона.] [3] Термин «log_loss» действительно кажется немного неуместным в контексте деревьев решений. Также примечательно, что в предыдущих версиях sklearn единственными критериями разделения дерева решений были entropy и gini.

[3]: https://www.sciencedirect.com/topics/engineering/shannon-entropy#:~:text=The%20Shannon%20entropy%20S%20(%20x,new%20value%20in%20the%20process.

Другие вопросы по теме

Фильтрация данных Python для удаления выбросов на графике плотности
AttributeError: невозможно установить атрибут: как мне исправить этот класс, чтобы он работал хорошо?
Как использовать алгоритм агломеративной кластеризации из библиотеки Python scikit-learn с объявленным количеством объектов в кластере?
Какие части несбалансированного конвейера обучения применяются к набору тестов?
Как интегрировать классификатор FastAI в VotingClassifier sklearn?
Конвейер для модели ML с использованием LabelEncoding в преобразователе
Как сделать CNN инвариантным к положению паттерна в последовательности ДНК?
Выполнение рекурсивного исключения функций с использованием нескольких показателей производительности
Как выполнить matthews_corrcoef в sklearn одновременно между каждым столбцом, используя матрицу X и вывод y?
Как выполнить matthews_corrcoef в sklearn одновременно для каждого столбца, используя матрицу?