визуализация корреляций по определенному классу в цели

У меня есть набор данных, состоящий из четырех классов, что означает, что целевая переменная имеет 4 разных класса (например, 0,1,2,3), поскольку мы знаем, что можем получить наиболее коррелированные функции с нашей целью с помощью панд, используя этот фрагмент.

# Find correlations with the target and sort
correlations = train.corr()['Target'].sort_values()
# Display correlations
print('Most Positive Correlations:\n', correlations.tail(15))
print('\nMost Negative Correlations:\n', correlations.head(15))

но мой вопрос в том, что мне нужно получить наиболее коррелированные функции для конкретного целевого класса. например, я хочу получить, какие функции имеют высокий эффект (коррелированы) для целевого класса 3. Я пробовал это,

correlations = train.corr()[(train['Target'] == 3)].sort_values()

но выдает эту ошибку

IndexingError: Unalignable boolean Series provided as indexer (index of the 
boolean Series and of the indexed object do not match

мой ожидаемый результат


person Jama Hussein Mohamud    schedule 04.10.2018    source источник


Ответы (1)


Вы не дали нам ничего для работы, но я предполагаю, что ваша проблема заключается в вызове .corr() перед маскировкой. Вам нужно позвонить:

correlations = train[(train['Target'] == 3)].corr().sort_values()

Редактировать:

Более элегантное решение, вероятно, groupby. Попробуйте что-нибудь вроде:

train.groupby('Target').apply(lambda grp: grp.corr())
person Brian Joseph    schedule 04.10.2018
comment
Брайан, спасибо за ваш ответ, единственное, что я могу вам предоставить, это набор данных, который невозможен, но предположим, что у вас есть набор данных поезда, в котором целевая переменная имеет четыре разных метки, и вам нужно увидеть корреляцию функций на конкретная метка (класс). Также ваш код дал мне эту ошибку, хотя я не думаю, что это то, что мне нужно. TypeError: sort_values() отсутствует 1 обязательный позиционный аргумент: 'by' - person Jama Hussein Mohamud; 04.10.2018
comment
@JamaHusseinMohamud, эта ошибка связана с тем, что sort_values ​​требует столбца для сортировки при вызове метода в DataFrame. Я не знаю, какие у вас столбцы, но если вы укажете sort_values с именем столбца, это должно исправить ошибку. Просто удалите sort_values ​​все вместе, если вы хотите просто увидеть корреляции. - person Brian Joseph; 04.10.2018
comment
Спасибо за ваше время, но я пробовал оба варианта, и он дает значения NAN под целью. другими словами, оба эти параметра дадут вам корреляцию между функциями, но не дадут вам корреляцию между функциями и конкретной меткой в ​​​​целевой функции. - person Jama Hussein Mohamud; 04.10.2018
comment
@JamaHusseinMohamud, извините, это не работает, но мне трудно отлаживать то, что происходит без каких-либо данных, чтобы дать мне представление - person Brian Joseph; 05.10.2018