Присвоение цветов матрице смешения в Python - PullRequest
0 голосов
/ 30 апреля 2020

У меня запутанная матрица 18х18. Для лучшей визуализации ошибок я хочу составить карту цветов в соответствии со значением, которое мы имеем в нашей стандартизированной матрице.

Я хочу сделать цветовую градацию, чтобы визуализировать данные более адекватно. Например, области, где попадания составляют более 80%, будут иметь цветовую шкалу, отличную от областей, где попадания составляют от 20% до 80%. Наконец, области, где попадания меньше 20%, будут иметь различную градацию цвета.

У меня есть следующий код (где мы создаем кадр данных и вместе с ним нашу матрицу путаницы).

   import os
    import numpy as np
    import pandas as pd
    import seaborn as sn

    working_path = os.getcwd() 

    df = pd.read_csv("salida.txt",delimiter="\t") 

    df.rename(columns={'Number of Syllables': 'NSyllables'}, inplace = True) 

conf_matC = pd.crosstab(df['TargetC'], df['RespC'], rownames=['Target'], colnames=['Response'], margins = True); 
ncmC = conf_matC.drop(["All", "**"], axis = 0); 
confusion_matrixC = ncmC.drop(["All", "**","gr", "zr"], axis = 1); 
ncmC1 = confusion_matrixC/confusion_matrixC.max().astype(np.float64); #Normalize matrix   normarlize_confusion_matrixC = ncmC1.round(2); 

printed_matrixC = sn.heatmap(normarlize_confusion_matrixC, cmap='Oranges', annot=False); 

С помощью этого кода мы получаем следующую матрицу:

Response     b   ch     d    f     g     k  ...    rr     s     t    x    y     z
Target                                      ...                                  
b         1.00  0.0  0.10  0.0  0.08  0.00  ...  0.00  0.00  0.00  0.0  0.0  0.00
ch        0.00  1.0  0.00  0.0  0.00  0.00  ...  0.00  0.00  0.00  0.0  0.0  0.00
d         0.00  0.0  1.00  0.0  0.08  0.00  ...  0.08  0.00  0.02  0.0  0.0  0.00
f         0.00  0.0  0.00  1.0  0.00  0.00  ...  0.00  0.00  0.00  0.0  0.0  0.36
g         0.03  0.0  0.00  0.0  1.00  0.00  ...  0.00  0.00  0.00  0.0  0.0  0.00
k         0.00  0.0  0.00  0.0  0.00  1.00  ...  0.00  0.00  0.00  0.0  0.0  0.00
l         0.00  0.0  0.03  0.0  0.00  0.00  ...  0.00  0.00  0.00  0.0  0.0  0.00
m         0.03  0.0  0.00  0.0  0.08  0.00  ...  0.08  0.00  0.00  0.0  0.0  0.00
n         0.00  0.0  0.10  0.0  0.00  0.00  ...  0.08  0.00  0.00  0.0  0.0  0.00
ny        0.00  0.0  0.00  0.0  0.00  0.00  ...  0.00  0.00  0.00  0.0  0.0  0.00
p         0.00  0.0  0.00  0.0  0.00  0.00  ...  0.00  0.00  0.04  0.0  0.0  0.00
r         0.00  0.0  0.00  0.0  0.00  0.00  ...  0.08  0.00  0.02  0.0  0.0  0.00
rr        0.00  0.0  0.00  0.0  0.00  0.00  ...  1.00  0.00  0.00  0.0  0.0  0.00
s         0.00  0.0  0.00  0.0  0.00  0.00  ...  0.00  1.00  0.00  0.0  0.0  0.00
t         0.00  0.0  0.00  0.0  0.00  0.09  ...  0.00  0.00  1.00  0.0  0.0  0.12
x         0.00  0.0  0.00  0.0  0.00  0.00  ...  0.00  0.00  0.00  1.0  0.0  0.04
y         0.00  0.0  0.00  0.0  0.00  0.00  ...  0.00  0.00  0.00  0.0  1.0  0.00
z         0.00  0.0  0.00  0.0  0.00  0.00  ...  0.00  0.12  0.00  0.0  0.0  1.00

Видится как изображение в кадре данных: Матрица смешения данных в кадре

Сначала я сделал карту тепла моей матрицы путаницы, но она дает мне несколько ошибок отображения, как показано на изображении ниже.

матрица путаницы тепловой карты

Как я мог решить эту проблему и распечатать матрицу по цвету без срезанных чисел? Могу ли я сделать различные цветовые градации в зависимости от степени успеха, как описано выше?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...