#python #correlation
Вопрос:
У меня 41 переменная, и большинство из них вообще не коррелируют. Я хотел бы включить только несколько столбцов, чтобы проиллюстрировать более сильно коррелированные или более сильно отрицательно коррелированные столбцы. Как бы я ни старался, я, похоже, не могу заставить это работать, несмотря на то, что я просмотрел множество статей и вопросов. Спасибо.
df.столбцы
Индекс ([«Ответ», «Согласие», «Выравниватель возраста», «Команда», «Партнер по команде», «Сила болельщика», «Важность победы», «Эмоции», «Счастье», «Удовлетворение», «Страсть», «Игра для просмотра», «Игра для просмотра», «Возможность просмотра», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр», «Просмотр». NameChangeViewershipRoadGame», «NameChangeViewershipTVCable», «NameChangeViewershipStreaming», «NameChangeViewershipRestaurantBar», «Куплен», «Куплен_джерсей_1», «Куплен_клофинг_2», «Куплен_морабилия_3», «Куплен_оффице_4», «Приобретенные_оборудование_5», «Приобретенные_событие», «Приобретенные_событие», «Приобретенные_событие», «Приобретенные_событие», «Приобретенное_событие», «Support_SeasonTickets», «Support_Donations», «Support_Volunteer», «SupportNameChangeSeasonTickets», «SupportNameChangeDonateMoney», «SupportNameChangeVolunteer», «Штат», «Пол», «Возраст», «Этническая принадлежность», «Этническая принадлежность», «Доход», «Рисунок», «Электронная почта»], dtype= «объект»)
корреляция_матрица = df.corr().раунд(2)
рис., ax = plt.подзаголовки(размер рисунка=(50,50)) sns.тепловая карта(данные=корреляция_матрица,cmap = «радуга» , примечание=Истина, ax=ax)
Мысли?
Комментарии:
1. можете ли вы опубликовать пример того, чего вы хотите достичь? потому что возможно, что два столбца сильно коррелированы, но есть столбец, который коррелирует со многими другими столбцами, например, значение в матрице корреляции>0,5, и многие другие сценарии
2. Вот небольшая часть матрицы. Мне нужны столбцы, в которых есть > .50. Согласие Возрастная группа, сила фанатов, важность победы, Эмоции, счастье, удовлетворение, страсть, Просмотр видеоигры, Согласие НаН НаН НаН НаН НаН нан Нан Возрастная группа НаН 1 нан НаН НаН НаН нан нан нан 1 0,02 0,02 0,02 -0,03 0,01 0 Сила фанатов, НаН Нан 0,02 1 0,69 0,39 0,41 0,3 0,32 Важность победы, нан Нан 0,02 0,69 1 0,44 0,44 0,34 0,37
Ответ №1:
Очищенная матрица будет
Согласие | Уравнитель возраста | Команда | Сила вентилятора | Важность победы | |
---|---|---|---|---|---|
Согласие | NaN | NaN | NaN | NaN | NaN |
Уравнитель возраста | NaN | 1.0 | NaN | NaN | NaN |
Команда | NaN | NaN | 1.00 | 0.02 | 0.02 |
Сила вентилятора | NaN | NaN | 0.02 | 1.00 | 0.69 |
Важность победы | NaN | NaN | 0.02 | 0.69 | 1.00 |
Чтобы решить эту проблему, вам нужно выбрать любое значение матрицы, не являющееся диагональным, и абсолютное значение >0,5
temp = df[(df>0.5)amp;(df!=1)].abs().max()
print(temp[~temp.isna()])
Это даст имена столбцов, которые имеют по крайней мере одну корреляцию в матрице корреляции>0,5
Это дает
FanStrength 0.69
WinImportance 0.69
dtype: float64
Комментарии:
1. Благослови Тебя Господь! Это здорово.