Удалить переменную с нулевой дисперсией - PullRequest
0 голосов
/ 25 апреля 2020

Может ли кто-нибудь помочь мне в написании кода для удаления переменной, дисперсия которой равна нулю во фрейме данных, используя python?

1 Ответ

0 голосов
/ 25 апреля 2020

Удаление функций с низкой дисперсией

X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]

Здесь есть 3 логических функции, каждая с 6 экземплярами. Предположим, что мы sh удалим те, которые являются постоянными, по крайней мере, в 80% случаев. Некоторые вероятностные расчеты показывают, что эти особенности должны иметь дисперсию ниже 0,8 * (1 - 0,8). Следовательно, мы можем использовать Ref: Scikit link

from sklearn.feature_selection import VarianceThreshold
sel = VarianceThreshold(threshold=(.8 * (1 - .8)))    
sel.fit_transform(X)

Вывод будет:

      array([[0, 1],
             [1, 0],
             [0, 0],
             [1, 1],
             [1, 0],
             [1, 1]])
...