```python! import numpy as np import pandas as pd from sklearn.ensemble import IsolationForest from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, classification_report, confusion_matrix from scipy.io import loadmat # Load data prefix = 'yelp_data/' data_file = loadmat(prefix + 'YelpChi.mat') labels = data_file['label'].flatten() feat_data = data_file['features'].todense().A # Create and fit the Isolation Forest model iso_forest = IsolationForest(contamination=0.5, random_state=42) predictions = iso_forest.fit_predict(feat_data) predictions = np.where(predictions == -1, 1, 0) # Create a DataFrame with predictions and labels data = {'predictions': predictions, 'labels': labels} df = pd.DataFrame(data) # Calculate confusion matrix conf_matrix = confusion_matrix(labels, predictions) TP, FP, TN, FN = conf_matrix[1, 1], conf_matrix[0, 1], conf_matrix[0, 0], conf_matrix[1, 0] # Calculate evaluation metrics accuracy = accuracy_score(labels, predictions) precision = precision_score(labels, predictions) recall = recall_score(labels, predictions) f1 = f1_score(labels, predictions) # Generate classification report class_report = classification_report(labels, predictions) # Print the results print("True Positives (TP):", TP) print("False Positives (FP):", FP) print("True Negatives (TN):", TN) print("False Negatives (FN):", FN) print("Accuracy:", accuracy) print("Precision:", precision) print("Recall:", recall) print("F1 Score:", f1) print("Classification Report:") print(class_report) ```