Уверенность в прогнозах DecisionTreeClassifier - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь понять, как работают алгоритмы классификации для создания своего рода общего конвейера, поэтому я только начал с модели LinearSVC. Вообще говоря, я делаю:

model = LinearSVC(loss='squared_hinge', penalty='l2', dual=False, tol=1e-3)
model.fit(X_train, y_train)
pred_labels = model.predict(X_unlabeled)  
confidence_on_pred_labels = model.decision_function(X_unlabeled)

Мне действительно нужны в качестве вывода прогнозируемые метки и их достоверность. Но когда я пытаюсь сделать это с другими моделями, я не могу найти способ завоевать доверие. Например,

model = DecisionTreeClassifier(random_state=0)
model.fit(X_train, y_train)
pred_labels = model.predict(X_unlabeled)  
confidence_on_pred_labels = model.predict_proba(X_unlabeled)

. В этом случае предикат_проба возвращает для каждой прогнозируемой метки кортеж, содержащий значения [0,1] (вместо достоверности между 0 и 1 в качестве единого числа). Я имею в виду, что абсолютно все прогнозы имеют значение 0,0 или 1,0, в середине нет значений. Например, если я бегу

set(model.predict_proba(X_unlabeled)[:,1]) I will get [0.0, 1.0] 

Это нормально?

Как я могу получить такой номер? Или какие другие модели позволяют мне получить уверенность в прогнозах? Лучшее,

1 Ответ

0 голосов
/ 02 октября 2019

Не помечены ли X теми же данными, что и X без меток? Это может быть причиной того, что ваши вероятности отображаются как [0. 1.]. Если вместо этого вы дадите ему данные, которые вы пытаетесь предсказать, но они не совпадают, вы должны получить разные вероятности. model.predict_proba должен работать, чтобы показать вам вероятности класса.

...