import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.dummy import DummyClassifier from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.naive_bayes import GaussianNB from sklearn.svm import SVC from sklearn.ensemble import RandomForestClassifier from xgboost import XGBClassifier from sklearn.metrics import accuracy_score from sklearn.datasets import load_iris # Wczytanie danych Iris iris = load_iris() X = iris.data y = iris.target # Podział danych na zbiory treningowe i testowe X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Lista klasyfikatorów do porównania classifiers = [ DummyClassifier(strategy='most_frequent'), LogisticRegression(random_state=42), DecisionTreeClassifier(random_state=42), KNeighborsClassifier(), GaussianNB(), SVC(random_state=42), RandomForestClassifier(random_state=42), XGBClassifier(use_label_encoder=False, eval_metric='mlogloss', random_state=42) ] # Słownik do przechowywania wyników results = {} # Trenowanie klasyfikatorów i obliczanie dokładności for clf in classifiers: clf_name = clf.__class__.__name__ clf.fit(X_train, y_train) y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) results[clf_name] = accuracy # Wyświetlanie wyników for classifier_name, accuracy in results.items(): print(f"{classifier_name}: {accuracy:.2f}") # Wyznaczanie najlepszego klasyfikatora best_classifier_name = max(results, key=results.get) best_accuracy = results[best_classifier_name] print(f"\nNajlepszy klasyfikator: {best_classifier_name} z dokładnością {best_accuracy:.2f}")