Я пытаюсь понять, как работают алгоритмы классификации для создания своего рода универсального конвейера, поэтому я только начал с модели 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)
В этом случае predict_proba возвращает для каждой предсказанной метки кортеж, содержащий [0,1] в качестве значений (вместо доверительного интервала между 0 и 1 в виде одного числа). Я имею в виду, что абсолютно все прогнозы имеют значение 0,0 или 1,0, без значений посередине. Например. если я побегу
set(model.predict_proba(X_unlabeled)[:,1]) I will get [0.0, 1.0]
Это нормально?
Как я могу получить такой номер? Или какие другие модели позволяют мне получить достоверность прогнозов? Лучший,