Untitled

 avatar
unknown
plain_text
a year ago
1.3 kB
6
Indexable
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report

# Step 1: Generate synthetic data
np.random.seed(42)
num_samples = 1660
mean_class1 = [1, 2]
cov_class1 = [[1, 0.5], [0.5, 1]]
mean_class2 = [4, 5]
cov_class2 = [[1, -0.5], [-0.5, 1]]

class1_data = np.random.multivariate_normal(mean_class1, cov_class1, num_samples // 2)
class2_data = np.random.multivariate_normal(mean_class2, cov_class2, num_samples // 2)

X = np.concatenate((class1_data, class2_data), axis=0)
y = np.array([0] * (num_samples // 2) + [1] * (num_samples // 2))

# Step 2: Perform data preprocessing (not needed for this synthetic data)

# Step 3: Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Step 4: Train the Naive Bayes classifier
model = GaussianNB()
model.fit(X_train, y_train)

# Step 5: Test the classifier with new data and analyze the results
y_pred = model.predict(X_test)

# Calculate accuracy
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

# Generate classification report
print("Classification Report:")
print(classification_report(y_test, y_pred))
Editor is loading...
Leave a Comment