Я думаю, что когда вы определяете String
, вы определяете объект. Поэтому вам нужно использовать .equals()
. Когда вы используете примитивные типы данных, вы используете ==
, но с String
(и любым объектом) вы должны использовать .equals()
.
У меня была такая же проблема в последнее время, и единственный способ, который я нашел, - это попытаться определить размер шрифта (он все равно может быть синеватым с большой фигурой. Например, для построения 4-го дерева используйте:
fig, ax = plt.subplots(figsize=(30, 30))
xgb.plot_tree(model, num_trees=4, ax=ax)
plt.show()
Чтобы сохранить его, вы можете сделать
plt.savefig("temp.pdf")
Кроме того, каждое дерево разделяет два класса, поэтому у вас есть столько деревьев, сколько класс.
Чтобы добавить к ответу Серка, вы также можете изменить размер фигуры перед ее отображением:
# ...
plot_tree(model)
fig = plt.gcf()
fig.set_size_inches(18.5, 10.5)
plt.show()