import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_olivetti_faces
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report,
confusion_matrix
# Load dataset
data = fetch_olivetti_faces(shuffle=True, random_state=42)
X, y = data.data, data.target
# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.3, random_state=42)
# Train Naive Bayes model
model = GaussianNB()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# Evaluation
print(f'Accuracy: {accuracy_score(y_test, y_pred) * 100:.2f}%')
print("\nClassification Report:")
print(classification_report(y_test, y_pred, zero_division=0))
print("\nConfusion Matrix:")
print(confusion_matrix(y_test, y_pred))
# Cross-validation
cv_score = cross_val_score(model, X, y, cv=5).mean()
print(f'\nCross-validation Accuracy: {cv_score * 100:.2f}%')
# Show some predictions
fig, axes = plt.subplots(3, 5, figsize=(12, 8))
for ax, img, true, pred in zip(axes.ravel(), X_test, y_test, y_pred):
ax.imshow(img.reshape(64, 64), cmap='gray')
ax.set_title(f"True: {true}, Pred: {pred}")
ax.axis('off')
plt.tight_layout()
plt.show()
10
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.datasets import load_breast_cancer from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler from sklearn.decomposition import PCA from sklearn.metrics import confusion_matrix, classification_report # Load dataset data = load_breast_cancer() X, y = data.data, data.target # Standardize features X_scaled = StandardScaler().fit_transform(X) # Apply KMeans clustering kmeans = KMeans(n_clusters=2, random_state=42, n_init=10) y_kmeans = kmeans.fit_predict(X_scaled) # Evaluate clustering print("Confusion Matrix:") print(confusion_matrix(y, y_kmeans)) print("\nClassification Report:") print(classification_report(y, y_kmeans)) # Reduce dimensions for visualization pca = PCA(n_components=2) X_pca = pca.fit_transform(X_scaled) # Prepare DataFrame for plotting df = pd.DataFrame(X_pca, columns=['PC1', 'PC2']...
Comments
Post a Comment