Я новичок в Python, и мне нужно построить график между коэффициентом корреляции каждого атрибута с целевым значением. У меня есть входной набор данных с огромным количеством значений. Я предоставил образец значения набора данных, как показано ниже. Нам нужно предсказать, уйдет ли конкретный потребитель из компании, и, следовательно, столбец Result является целевой переменной.
SALARY DUE RENT CALLSPERDAY CALL DURATION RESULT
238790 7 109354 0 6 YES
56004 0 204611 28 15 NO
671672 27 371953 0 4 NO
786035 1 421999 19 11 YES
89684 2 503335 25 8 NO
904285 3 522554 0 13 YES
12072 4 307649 4 11 NO
23621 19 389157 0 4 YES
34769 11 291214 1 13 YES
945835 23 515777 0 5 NO
Здесь, если вы видите, столбец результата - это строка, а остальные столбцы - целые числа. Подобно результату, у меня также есть несколько других столбцов (не упомянутых в образце), которые имеют строковое значение. Здесь мне нужно вычислить значения столбца, который имеет как строковые, так и целочисленные значения. Используя словарь, я присвоил значение каждому столбцу, который имеет строковое значение. Пример: в столбце результатов указано «Да» или «Нет». Следовательно, ему присвоено значение, как показано ниже:
D = {'NO': 0, 'YES': 1}
и используя лямбда-функцию, перебрал каждый столбец набора данных и заменил NO на 0 и YES на 1. Я попытался вычислить коэффициент корреляции по формуле:
pearsonr(S.SALARY,targetVarible)
Где S - фрейм данных, содержащий все значения. Точно так же я пройдусь по всем столбцам набора данных и вычислю коэффициент корреляции каждого столбца относительно целевой переменной.
Это эффективный способ расчета коэффициента корреляции? Потому что я получаю значение, показанное ниже (0,088327739664096655, 1,1787456108540725e-25), e ^ -25 кажется слишком маленьким.
Есть ли другой способ рассчитать это? Не могли бы вы предложить какой-либо другой способ ввода значений String, чтобы его можно было рассматривать как целое число по сравнению с другими столбцами, имеющими целочисленные значения (кроме словарей и лямбда-выражений, которые я использовал?)
Также мне нужно построить гистограмму, используя тот же код. Я планирую использовать pyplot из matplotlib import в качестве библиотеки plt.
Не могли бы вы предложить какую-либо другую функцию для построения гистограммы? В основном я использую библиотеки sklearn, numpy и pandas, чтобы использовать существующие из них функции. Было бы здорово, если бы мне кто-то помог. Спасибо.
df.corr()
вычислит коэффициенты корреляции для каждой комбинации столбцов вdf
. Он должен быть достаточно эффективным. Ваша ошибка вызвана неправильным разрезанием фрейма данных.df[i:]
означает переход к i-й строке вперед. Вам необходимо использовать нарезку столбцов, напримерdf.iloc[:,i]
. - person attitude_stool   schedule 16.02.2016