Я использую Scikit-learn для применения алгоритма машинного обучения на моих наборах данных. Иногда мне нужно иметь вероятности меток/классов, созданных самими ярлыками/классами. Вместо того, чтобы Spam/Not Spam как ярлыки электронных писем, я хочу иметь только, например: 0.78 вероятность, что данное письмо является спамом.
Для этой цели я использую optim_proba() с RandomForestClassifier следующим образом:
clf = RandomForestClassifier(n_estimators=10, max_depth=None,
min_samples_split=1, random_state=0)
scores = cross_val_score(clf, X, y)
print(scores.mean())
classifier = clf.fit(X,y)
predictions = classifier.predict_proba(Xtest)
print(predictions)
И я получил эти результаты:
[ 0.4 0.6]
[ 0.1 0.9]
[ 0.2 0.8]
[ 0.7 0.3]
[ 0.3 0.7]
[ 0.3 0.7]
[ 0.7 0.3]
[ 0.4 0.6]
Где второй столбец для класса: Спам. Однако у меня есть две основные проблемы с результатами, о которых я не уверен. Первая проблема заключается в том, что результаты представляют вероятности меток, не подверженных влиянию размера моих данных? Вторая проблема заключается в том, что результаты показывают только одну цифру, которая не очень специфична в некоторых случаях, когда вероятность 0,701 сильно отличается от 0,708. Есть ли способ получить следующие 5 цифр, например?
Большое спасибо заранее за то, что вы прочитали эти два вопроса и их вопросы.