Предел отклонения показывает RuntimeWarning: Степени свободы <= 0 для среза - PullRequest
0 голосов
/ 03 марта 2020

У меня есть фрейм данных, и я хотел бы удалить объекты с низкой дисперсией. Я использовал следующую функцию для фильтрации столбцов с низкой дисперсией:

def variance_threshold_selector(data, threshold):

    selector = VarianceThreshold(threshold)
    selector.fit(data)

return data[data.columns[selector.get_support(indices=True)]]

И я получил следующее предупреждение для различных пороговых значений:

/anaconda3/envs/Observation/lib/python3.7/site-packages/sklearn/feature_selection/_variance_threshold.py:77: RuntimeWarning: Degrees of freedom <= 0 for slice.
  self.variances_ = np.nanvar(X, axis=0)

/anaconda3/envs/Observation/lib/python3.7/site-packages/sklearn/feature_selection/_variance_threshold.py:88: RuntimeWarning: invalid value encountered in less_equal
  (self.variances_ <= self.threshold)):

/anaconda3/envs/Observation/lib/python3.7/site-packages/sklearn/feature_selection/_variance_threshold.py:99: RuntimeWarning: invalid value encountered in greater

Что это за предупреждения и как их разрешить их?

1 Ответ

0 голосов
/ 04 марта 2020

после этого post :

RuntimeWarning: Степени свободы <= 0 для среза </p>

происходит при использовании неправильной формы

после этого post :

RuntimeWarning: недопустимое значение, встречающееся в less_equal

Скорее всего, это происходит из-за np.nan где-то во входных данных

и после этого post :

RuntimeWarning: недопустимое значение, большее

Ваша проблема вызвана элементами NaN или Inf в вашем массиве out_ve c

...