Logistická regresia
Tu je jednoduché cvičenie Jupyter Notebook pre študentov, aby sa naučili o klasifikácii pomocou logistickej regresie. Toto cvičenie ich prevedie načítaním súboru údajov, trénovaním logistického regresného modelu a vyhodnotením jeho výkonu.
Cvičenie: Klasifikácia pomocou logistickej regresie
Cieľ:Načítanie množiny údajov. Trénovanie logistického regresného modelu. Vyhodnoťte výkonnosť modelu. Požiadavky:Nainštalujte knižnicu scikit-learn. Použite jednoduchú množinu údajov, ako je napríklad množina údajov Iris.
Krok 1: Nainštalujte požadované knižnice:
%pip install scikit-learn
Step 2: Import Libraries:
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
Krok 2: Import knižníc:
# Load the Iris dataset
iris = datasets.load_iris()
X = iris.data
y = iris.target
# Use only two classes for binary classification
X = X[y != 2]
y = y[y != 2]
Krok 4: Rozdelenie množiny údajov:
# Split the dataset into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Krok 5: Trénovanie modelu logistickej regresie:
# Initialize and train the logistic regression model
model = LogisticRegression()
model.fit(X_train, y_train)
Krok 6: Urobte predpovede:
# Make predictions on the test set
y_pred = model.predict(X_test)
Krok 7: Urobte predpovede:
# Evaluate the model's performance
accuracy = accuracy_score(y_test, y_pred)
cm = confusion_matrix(y_test, y_pred)
cr = classification_report(y_test, y_pred)
print(f'Accuracy: {accuracy}')
print('Confusion Matrix:')
print(cm)
print('Classification Report:')
print(cr)
Krok 8: Vizualizujte výsledky:
# Visualize the confusion matrix
plt.figure(figsize=(8, 6))
plt.imshow(cm, interpolation='nearest', cmap=plt.cm.Blues)
plt.title('Confusion Matrix')
plt.colorbar()
tick_marks = np.arange(len(iris.target_names[:2]))
plt.xticks(tick_marks, iris.target_names[:2], rotation=45)
plt.yticks(tick_marks, iris.target_names[:2])
fmt = 'd'
thresh = cm.max() / 2.
for i, j in np.ndindex(cm.shape):
plt.text(j, i, format(cm[i, j], fmt),
ha="center", va="center",
color="white" if cm[i, j] > thresh else "black")
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.tight_layout()
plt.show()
Pokyny pre študentov:
Podľa pokynov nainštalujte požadované knižnice a načítajte množinu údajov.
Trénujte logistický regresný model a vyhodnoťte jeho výkon.
Upravte kód tak, aby používal rôzne množiny údajov alebo pridajte do modelu ďalšie funkcie.
Preskúmajte vplyv rôznych hyperparametrov na výkon modelu.
- Make a submission
