from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score from sklearn.model_selection import train_test_split from sklearn.pipeline import make_pipeline from sklearn.preprocessing import StandardScaler iris = load_iris() X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.25, stratify=iris.target, random_state=42, ) model = make_pipeline( StandardScaler(), LogisticRegression(max_iter=200), ) model.fit(X_train, y_train) predictions = model.predict(X_test) accuracy = accuracy_score(y_test, predictions) classifier = model.named_steps["logisticregression"] sample_prediction = model.predict(X_test[[0]])[0] sample_probability = model.predict_proba(X_test[[0]])[0] sample_probabilities = { str(iris.target_names[index]): round(float(probability), 3) for index, probability in enumerate(sample_probability) } print(f"train rows: {X_train.shape[0]}") print(f"test rows: {X_test.shape[0]}") print(f"accuracy: {accuracy:.3f}") print(f"classes: {', '.join(iris.target_names[classifier.classes_])}") print(f"coefficient shape: {classifier.coef_.shape}") print(f"first prediction: {iris.target_names[sample_prediction]}") print(f"first probabilities: {sample_probabilities}")