Увеличьте важность функции - PullRequest
       64

Увеличьте важность функции

0 голосов
/ 24 сентября 2018

Я работаю над проблемой классификации.У меня есть около 1000 объектов и целевая переменная имеет 2 класса.Все 1000 функций имеют значения 1 или 0. Я пытаюсь найти важность функции, но мои значения важности функции варьируются от 0,0 до 0,003.Я не уверен, что такое низкое значение имеет смысл.

Есть ли способ повысить значимость функции.

# Variable importance
rf = RandomForestClassifier(min_samples_split=10, random_state =1)  
rf.fit(X, Y)  
print ("Features sorted by their score:")
a =  (list(zip(map(lambda x: round(x, 3), rf.feature_importances_), X)))

Буду очень признателен за любую помощь!Спасибо

1 Ответ

0 голосов
/ 26 сентября 2018

Поскольку у вас есть только два целевых класса, вы можете выполнить t-тест на неравную дисперсию, который был полезен для поиска важных функций в задаче бинарной классификации, когда все другие методы ранжирования объектов не помогли мне.Вы можете реализовать это, используя функцию scipy.stats.ttest_ind .Это в основном статистический тест, который проверяет, отличаются ли два распределения.если возвращаемое значение p меньше 0,05, можно предположить, что это разные распределения.Чтобы реализовать для каждую функцию , выполните следующие действия:

  1. Извлеките все значения предикторов для классов 1 и 2. соответственно.
  2. Запустите test_ind для этих двух распределений, указавчто их дисперсия неизвестна, и убедитесь, что это двусторонний t-критерий
  3. Если значение p меньше 0,05, эта функция важна.

В качестве альтернативы,Вы можете сделать это для всех своих функций и использовать значение p в качестве показателя важности функции.Чем ниже значение p, тем выше важность функции.

Приветствия!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...