Поскольку ваше предсказание - это сырые вероятности, вам нужно, чтобы они были классом. Следующая >=0.5
условная проверка заключается в преобразовании их в TRUE
или FALSE
. Если вы хотите, чтобы это было 1 или 0 (если ваша переменная class
является двоичным фактором 1
или 0
), вы можете просто подмножество для строк, где ваше предсказание и истинные метки классов не согласуются с друг друга.
`validation[as.numeric(validation$class) != as.numeric(predict_train >= 0.5), ]`
Поскольку вы не отправляли данные, я должен сделать некоторые предположения о структуре или формате ваших данных. Вы можете адаптировать код, чтобы получить строки, где есть неверное предсказание (если они не являются числовыми 0 или 1, комментировать и не дают мне знать или не публикуют образец).
Передайте оси на вызовы графика:
waterindep['waterpoint_type'].value_counts().plot(
kind='bar',title='Waterpoint_Type', ax=ax1)
waterindep['waterpoint_type_group'].value_counts().plot(
kind='bar',title='Waterpoint_Type_Group', ax=ax2)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
np.random.seed(2015)
fig1 = plt.figure(figsize=[15,8])
gs = gridspec.GridSpec(100,100)
ax1 = fig1.add_subplot(gs[:,0:50])
ax2 = fig1.add_subplot(gs[:,51:100])
waterindep = pd.DataFrame(np.random.randint(10, size=(100,2)),
columns=['waterpoint_type', 'waterpoint_type_group'])
waterindep['waterpoint_type'].value_counts().plot(kind='bar',title='Waterpoint_Type', ax=ax1)
waterindep['waterpoint_type_group'].value_counts().plot(kind='bar',title='Waterpoint_Type_Group', ax=ax2)
plt.show()
Обратите внимание, что вы также можете использовать
fig, axs = plt.subplots(figsize=[15,8], ncols=2)
ax1, ax2 = axs
вместо gridspec.GridSpec
для создания осей. Он будет иметь лучший вид между осями «из коробки».