Я использую функцию roc_auc_score() из scikit-learn для решения задачи многоклассовой классификации. С радужной оболочкой, которая имеет три метки (и другой набор данных), я получаю точно такой же результат, когда использую «один против одного» и «один против остальных». Кто-нибудь знает, почему это так? Вот мой код:
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=0)
clf = DecisionTreeClassifier(random_state=0)
clf = clf.fit(X_train, y_train)
y_pred = clf.predict_proba(X_test)
auc_ovr = roc_auc_score(y_test, y_pred, average='macro', multi_class='ovr')
auc_ovo = roc_auc_score(y_test, y_pred, average='macro', multi_class='ovo')
print(f'OVR: {auc_ovr}, OVO: {auc_ovo}')
Последняя строка вывода:
OVR: 0.9833333333333334, OVO: 0.9833333333333334
Подробнее здесь: https://stackoverflow.com/questions/709 ... ame-result
Почему OvO и OvR возвращают одинаковый результат? ⇐ Python
Программы на Python
-
Anonymous
1737478939
Anonymous
Я использую функцию roc_auc_score() из scikit-learn для решения задачи многоклассовой классификации. С радужной оболочкой, которая имеет три метки (и другой набор данных), я получаю точно такой же результат, когда использую «один против одного» и «один против остальных». Кто-нибудь знает, почему это так? Вот мой код:
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y, random_state=0)
clf = DecisionTreeClassifier(random_state=0)
clf = clf.fit(X_train, y_train)
y_pred = clf.predict_proba(X_test)
auc_ovr = roc_auc_score(y_test, y_pred, average='macro', multi_class='ovr')
auc_ovo = roc_auc_score(y_test, y_pred, average='macro', multi_class='ovo')
print(f'OVR: {auc_ovr}, OVO: {auc_ovo}')
Последняя строка вывода:
OVR: 0.9833333333333334, OVO: 0.9833333333333334
Подробнее здесь: [url]https://stackoverflow.com/questions/70981876/why-does-ovo-and-ovr-return-the-same-result[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия