Я неправильно использовал параметр 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
Кроме того, я хотел бы внести предложенные мной изменения (если они будут сочтены достойными), но у меня мало опыта работы с библиотеками с открытым исходным кодом. Если кто-то захочет мне помочь, может потребоваться немного поддержки.
Пожалуйста, отправьте 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
.
Самый полезный комментарий
Я думаю, что если установлено
min_weight_fraction_leaf
и не указаноsample_weights
, это должно либо вызвать ошибку, либо принять одинаковые веса. В этом случае это немного избыточно сmin_samples_leaf
но я думаю, что предположение о равномерном весе все равно будет лучше.