Scikit-learn: min_weight_fraction_leaf предложил улучшения

Созданный на 28 июн. 2016  ·  3Комментарии  ·  Источник: scikit-learn/scikit-learn

Описание

Я неправильно использовал параметр min_weight_fraction_leaf в DecisionTreeClassifier и RandomForestClassifier, и я думаю, что, вероятно, другие люди делают то же самое, что и я.

Например, документация для min_weight_fraction_leaf в DecisionTreeClassifier говорит

Минимальная взвешенная часть входных выборок, которая должна находиться в листовом узле.

Мне было действительно непонятно, что в документах подразумевается под «взвешенной долей входных выборок». Сначала я думал, что это взвешивание, основанное на размере классов или значениях, заданных class_weight . Думаю, небольшое изменение в описании параметра могло бы прояснить эту путаницу. Возможно что-то вроде

Минимальная взвешенная часть входных выборок, которая должна находиться в листовом узле, где веса определяются с помощью sample_weight в методе fit ().

Кроме того, похоже, что min_weight_fraction_leaf применяется, только если sample_weight указано в вызове fit() . Если sample_weight не указан в вызове fit() , min_weight_fraction_leaf игнорируется. Здесь я думаю, что min_weight_fraction_leaf прежнему следует применять в предположении, что все образцы одинаково взвешены, ИЛИ должно быть выдано предупреждение о том, что min_weight_fraction_leaf не будет использоваться, поскольку sample_weight не было предоставлено.

Версии

Дарвин-15.5.0-x86_64-i386-64bit
Python 3.5.1 | Continuum Analytics, Inc. | (по умолчанию, 7 декабря 2015 г., 11:24:55)
[GCC 4.2.1 (Apple Inc., сборка 5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

Кроме того, я хотел бы внести предложенные мной изменения (если они будут сочтены достойными), но у меня мало опыта работы с библиотеками с открытым исходным кодом. Если кто-то захочет мне помочь, может потребоваться немного поддержки.

Самый полезный комментарий

Я думаю, что если установлено min_weight_fraction_leaf и не указано sample_weights , это должно либо вызвать ошибку, либо принять одинаковые веса. В этом случае это немного избыточно с min_samples_leaf но я думаю, что предположение о равномерном весе все равно будет лучше.

Все 3 Комментарий

Пожалуйста, отправьте PR

29 июня 2016 года в 06:09 Бен [email protected] написал:

Описание

Я использовал параметр min_weight_fraction_leaf для
DecisionTreeClassifier и RandomForestClassifier неправильно, и я думаю
скорее всего, другие люди делают то же самое, что и я.

Например, документация для min_weight_fraction_leaf в
РешениеДеревоКлассификатор
http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
говорит

Минимальная взвешенная доля входных выборок, необходимая для
листовой узел.

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

Минимальная взвешенная доля входных выборок, необходимая для
листовой узел, где веса определяются с помощью sample_weight в методе fit ().

Кроме того, кажется, что min_weight_fraction_leaf применяется только в том случае, если
sample_weight предоставляется в вызове fit (). Если sample_weight не
предоставленный в вызове fit (), min_weight_fraction_leaf молча
игнорируется. Здесь я думаю, что min_weight_fraction_leaf все еще должен применяться под
предположение, что все образцы одинаково взвешены ИЛИ должно быть предупреждение
учитывая, что min_weight_fraction_leaf не будет использоваться, поскольку sample_weight
не было предоставлено.
Версии

Дарвин-15.5.0-x86_64-i386-64bit
Python 3.5.1 | Continuum Analytics, Inc. | (по умолчанию, 7 декабря 2015 г., 11:24:55)
[GCC 4.2.1 (Apple Inc., сборка 5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/scikit-learn/scikit-learn/issues/6945 или отключите
нить
https://github.com/notifications/unsubscribe/AAEz6xE2BmEJHo6hGgTWoigsPutoD4_nks5qQX9zgaJpZM4JAe96
.

Я думаю, что если установлено min_weight_fraction_leaf и не указано sample_weights , это должно либо вызвать ошибку, либо принять одинаковые веса. В этом случае это немного избыточно с min_samples_leaf но я думаю, что предположение о равномерном весе все равно будет лучше.

Я думаю, это похоже на min_samples_leaf . Вместо того, чтобы требовать абсолютного количества выборок в каждом листовом узле, min_weight_fraction_leaf предоставляет возможность требовать долю выборок (или весов) в каждом листе. Использует ли модель веса для выборок, зависит от class_weight .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги