Я создал дерево CART в Python Scikit-Learn и RPART R. Оба используют индекс Джини для разделения. Но я вижу разные результаты.
Данные на Google Диске: данные
Код в Python:
X = dummy2.drop('y', axis = 1)
y = dummy2.y
from sklearn.tree import DecisionTreeClassifier, export_text, plot_tree
tree1 = DecisionTreeClassifier(max_depth = 2, random_state = 1)
tree1.fit(X, y)
fig, ax = plt.subplots(figsize=(30, 10))
plot_tree(tree1, ax = ax, feature_names = X.columns,
class_names = y.unique(), filled = True,
node_ids= True, proportion=True, fontsize = 20)
plt.show()
Код в R :
library(rpart)
m <- rpart(y~., data = dummy2, method = 'class')
library(rpart.plot)
rpart.plot(m)
Я вставляю древовидные диаграммы Python и R:
In R:
Как ни странно, результат python вообще не показывает класс B. Согласно данным, вывод R правильный. Почему DecisionTreeClassifier в scikit-learn не дает правильного вывода? Или мне что-то не хватает?
Заранее большое спасибо.