Я пытаюсь понять, как работают алгоритмы классификации для создания своего рода общего конвейера, поэтому я только начал с модели 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]
Это нормально?
Как я могу получить такой номер? Или какие другие модели позволяют мне получить уверенность в прогнозах? Лучшее,