Zaobserwowałem, że scikit-learn clf.tree_.feature okazjonalnie zwraca ujemne wartości. Na przykład -2. O ile rozumiem, clf.tree_.feature powinien zwracać sekwencyjną kolejność funkcji. Jeśli mamy tablicę nazw funkcji ['feature_one', 'feature_two', 'feature_three']
, wówczas -2 będzie się odnosić do feature_two
. Jestem zaskoczony użyciem ujemnego indeksu. W bardziej sensownym sensie odnosić się do feature_two
przez indeks 1. (-2 jest odniesieniem dogodnym dla trawienia człowieka, a nie do obróbki maszynowej). Czy czytam to poprawnie?clf.tree_.feature - jaki jest wynik? (scikit-learn)
Aktualizacja: Oto przykład:
def leaf_ordering():
X = np.genfromtxt('X.csv', delimiter=',')
Y = np.genfromtxt('Y.csv',delimiter=',')
dt = DecisionTreeClassifier(min_samples_leaf=10, random_state=99)
dt.fit(X, Y)
print(dt.tree_.feature)
Oto wynik:
[ 8 9 -2 -2 9 4 -2 9 8 -2 -2 0 0 9 9 8 -2 -2 9 -2 -2 6 -2 -2 -2
2 -2 9 8 6 9 -2 -2 -2 8 9 -2 9 6 -2 -2 -2 6 -2 -2 9 -2 6 -2 -2
2 -2 -2]
Czy możesz podać przykład? – tfv
@tfv, Właśnie napisałem przykład. – user1700890