from sklearn.linear_model import LogisticRegression
from sklearn.multiclass import OneVsOneClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# Load iris dataset
iris = load_iris()
X, y = iris.data, iris.target
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# One-vs-One Classifier
ovo_classifier = OneVsOneClassifier(LogisticRegression(solver='lbfgs', random_state=42))
ovo_classifier.fit(X_train, y_train)
ovo_predictions = ovo_classifier.predict(X_test)
ovo_accuracy = accuracy_score(y_test, ovo_predictions)
print("One-vs-One Accuracy:", ovo_accuracy)
# One-vs-Rest Classifier
ovr_classifier = LogisticRegression(multi_class='ovr', solver='liblinear', random_state=42)
ovr_classifier.fit(X_train, y_train)
ovr_predictions = ovr_classifier.predict(X_test)
ovr_accuracy = accuracy_score(y_test, ovr_predictions)
print("One-vs-Rest Accuracy:", ovr_accuracy)
# Multinomial Classifier
multinomial_classifier = LogisticRegression(multi_class='multinomial', solver='lbfgs', random_state=42)
multinomial_classifier.fit(X_train, y_train)
multinomial_predictions = multinomial_classifier.predict(X_test)
multinomial_accuracy = accuracy_score(y_test, multinomial_predictions)
print("Multinomial Accuracy:", multinomial_accuracy)