如何绘制8x8相关矩阵

时间:2019-10-07 10:06:49

标签: python python-3.x pandas

我正在尝试在不同的特征分数和相应的录取机会之间绘制8x8 correlation matrix。我可以知道应该怎么做吗?

import tensorflow as tf
import numpy as np
import pylab as plt
from sklearn.model_selection import train_test_split
from sklearn import preprocessing
import pandas as pd

admit_data = np.genfromtxt('admission_predict.csv', delimiter= ',')
X_data, Y_data = admit_data[1:,1:8], admit_data[1:,-1]
x_train, x_test, y_train_, y_test_ = train_test_split(
                                            X_data, 
                                            Y_data, 
                                            test_size=0.3, 
                                            random_state=42
                                      )
scaler = preprocessing.StandardScaler()
x_train = scaler.fit_transform(x_train)
x_test = scaler.fit_transform(x_test)
y_train = y_train_.reshape(len(y_train_), no_labels)
y_test = y_test_.reshape(len(y_test_), no_labels)

data = admit_data
df = pd.DataFrame(data, columns = ['Serial No.','GRE Score','TOEFL Score','University Rating','SOP','LOR','CGPA','Research','Chance of Admit'])
df.corr()

这是我正在阅读的代码,我的文件看起来like this

请帮助我绘制8x8 correlation matrix,到目前为止,我的代码未返回8x8 correlation matrix

2 个答案:

答案 0 :(得分:1)

import matplotlib.pyplot as plt
cors = df.corr()
plt.matshow(cors)
plt.yticks(range(cors.shape[1]), cors.columns, fontsize=7)
plt.xticks(range(cors.shape[1]), cors.columns, fontsize=7, rotation=90)
plt.colorbar()

要使用除“序列号”列以外的所有列,请改用以下cors:

cors = df.drop("Serial No.", axis=1).corr()

答案 1 :(得分:0)

例如:

import numpy as np
import matplotlib.pyplot as plt

one = np.random.rand(80).reshape(8, 10)
corr = np.corrcoef(one)

fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(6, 6))
mat = ax.imshow(corr)
fig.colorbar(mat, ax=ax, shrink=0.8)