CCCPaste

9924d188d5980

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}")