Как получить прогноз вероятности и метки одновременно, используя sklearn - PullRequest
1 голос
/ 17 февраля 2020

У меня есть мультиклассовый классификатор, и мне нужно получить вероятность и метку одновременно.

model.predict_proba(X) возвращает вероятности для всех обученных классов для каждой точки данных.

model.predict(X) возвращает метку для каждой точки данных.

Я не хочу прогнозировать дважды каждую точку данных.

1 Ответ

0 голосов
/ 17 февраля 2020

Просто используйте predict_proba, а затем, чтобы получить метку, используйте np.argmax:

dataset = read_csv('pollution.csv', header=0, index_col=0)
x = dataset[['pollution', 'dew', 'temp', 'press', 'wnd_spd', 'snow']].values
y = dataset[['wnd_dir']].values
from sklearn.ensemble import RandomForestClassifier

cls = RandomForestClassifier(random_state=0)
cls.fit(x, y)

z = cls.predict_proba(x)
labels = np.argmax(z, axis=1)
classes = cls.classes_
labels = [classes[i] for i in labels]
print(accuracy_score(y, labels))
...