P 7 Logistic Regression and Decision Tree

 

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import (
    accuracy_score,
    precision_score,
    recall_score,
    confusion_matrix,
)
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import plot_tree
import matplotlib.pyplot as plt

data = pd.read_csv("C:\\Users\\Downloads\\DS\\Iris_Dataset.csv")

X = data.drop(columns=["Id", "Species"])
y = data["Species"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

logreg_model = LogisticRegression()

logreg_model.fit(X_train, y_train)

y_pred_logreg = logreg_model.predict(X_test)

accuracy_logreg = accuracy_score(y_test, y_pred_logreg) * 100
precision_logreg = precision_score(y_test, y_pred_logreg, average="weighted") * 100
recall_logreg = recall_score(y_test, y_pred_logreg, average="weighted") * 100

print("Logistic Regression Model Performance:")
print("Accuracy:", accuracy_logreg)
print("Precision:", precision_logreg)
print("Recall:", recall_logreg)

conf_matrix_logreg = confusion_matrix(y_test, y_pred_logreg)
print("Confusion Matrix:")
print(conf_matrix_logreg)

dt_model = DecisionTreeClassifier()

dt_model.fit(X_train, y_train)

plt.figure(figsize=(12, 8))
plot_tree(
    dt_model,
    filled=True,
    feature_names=X.columns,
    class_names=data["Species"].unique()
)
plt.show()