корреляция каждой переменной предиктора с выходной переменной - PullRequest
0 голосов
/ 28 октября 2019

Получение коэффициента корреляции каждой переменной предиктора по отношению к выходной переменной

Итак, я пробовал разные способы вычисления коэффициентов корреляции и построения тепловой карты и т. Д. Все это дает мне значения и графики, но я не могуизвлечь "информацию" из этого набора данных. У меня огромный набор данных: 50000 X 500 - и в основном разреженные данные (много нулей, но нет пропущенных значений). Я хочу получить corr coef (я думаю, что abs () имеет смысл) каждой переменной-предиктора по отношению к выходной переменной;Это проблема классификации (выходные данные либо 0, либо 1), и я хочу выбрать объекты с высокой корреляцией с выходной переменной. После этого шага я планирую запустить метод выбора объектов (например, SelectKBest)

corr = df[df.columns[1:]].corr()['OUTPUT'][:] И, когда я использую условие для этой серии, например: corr.where(corr > 0.5) Я получаю много (ну, большинство из них) значений 'nan'.

Ранее я также вычислял корреляциюдля всего набора данных: df.corr(), что не совсем полезно

Я нашел другой пост, в котором предлагалось что-то похожее ниже: я пробовал это с помощью значений abs () для матрицы корреляции, но это для каждого набора переменных; so_corr = (corr.where(np.triu(np.ones(corr.shape), k=1).astype(np.bool)).stack().sort_values(ascending=False))

Я хочу быстро удалить / уменьшить возможности, поэтому я хочу сохранить те из них, которые связаны с выходной переменной. Кроме того, имена функций не помогают: col1, col2, col35 и т. Д. Не заказано. Если я запускаю: corr = df[df.columns[1:]].corr()['OUTPUT'][:] Я хочу что-то вроде: col1 0.74 col2 0.34 col3 0.0 . .

Я также хочу иметь возможность выбрать те, которые выше или ниже определенного значения: corr.where(corr >0.6) И иметь доступ кимена ланчей.

Есть предложения?

...