Как сохранить истинные метки, которые я должен кодировать? - PullRequest
0 голосов
/ 26 февраля 2020

Для того, чтобы получить дерево решений с больным навыком, мне нужно, чтобы Labelencode имел фрейм данных.

    S02Q01_Gender  S02Q02_Age_rec   S02Q03A_Region  S02Q03B_Settlement_type     S02Q03C_Province    S02Q10A_Employment  S02Q11_Professional_field   Segment Cluster
0   Female         12-19            Marrakesh       Urban                       Casablanca-Settat   Student             None                        Class1
1   Male           65 or above      Marakesh        Rural                       El Jadida           My Employed, part-time  Property                Class2
...

Однако для правильного построения графика на матрице путаницы мне нужно сохранить метки столбца target.

Я пытался:

y_test_dencoded = label_encoder.inverse_transform(y_test)
y_pred_dencoded = label_encoder.inverse_transform(y_pred)

cnf_matrix = metrics.confusion_matrix(y_test_dencoded, y_pred_dencoded, labels=None, sample_weight=None)

И вычерчивание:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt

df_cm = pd.DataFrame(cnf_matrix, index = [i for i in set(y_test_dencoded)],
                  columns = [i for i in set(y_pred_dencoded)])
plt.figure(figsize = (10,7))
ax = sn.heatmap(df_cm, annot=True)
bottom, top = ax.get_ylim()
ax.set_ylim(bottom + 0.5, top - 0.5)

Возвращает путаницу, но я не знаю, хорошо ли я это обозначаю ...

1 Ответ

0 голосов
/ 27 февраля 2020

Если ваш классификатор clf, вы можете использовать clf.classes_ для определения номеров, присвоенных меткам моделью.

Например, если clf.classes_ равно ["class1", "class3", "class2"] (при условии, что у вас есть только три класса), что означает следующее сопоставление между предварительно заданными метками и фактическими метками: {0: "class1", 1:"class3", 2: "class2"}

В этом случае в выходных данных матрицы путаницы sklearn метки тика оси X равны 2, 1, 0 и метки тика оси Y равны 0, 1, 2 (в порядке возрастания значений оси). Вы можете сопоставить их с метками, используя приведенный выше словарь.

...