This code trains a simple decision tree on iris data, calculates error rate, and prints some wrong predictions for failure analysis.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# Load data
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=42)
# Train model
model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)
# Predict
predictions = model.predict(X_test)
# Calculate error rate
wrong = sum(predictions != y_test)
total = len(y_test)
error_rate = wrong / total
print(f"Wrong predictions: {wrong}")
print(f"Total predictions: {total}")
print(f"Error rate: {error_rate:.2f}")
# Failure analysis: show some wrong cases
error_count = 0
for i, (pred, true) in enumerate(zip(predictions, y_test)):
if pred != true:
print(f"Index {i}: predicted {pred}, actual {true}")
error_count += 1
if error_count >= 3: # show only first 3 errors
break