import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.preprocessing import LabelEncoder from sklearn.metrics import accuracy_score, classification_report, confusion_matrix import pickle import statsmodels.api as sm import matplotlib.pyplot as plt import seaborn as sns data = pd.read_excel('/Users/apple/Downloads/21092023-July_Sept.xlsx', sheet_name="op") data = data.dropna() print(data) data.plot() label_encoder = LabelEncoder() categorical_cols = ['Gender', 'Caste', 'Category', 'Marital Status', 'Blood Group'] for col in categorical_cols: data[col] = label_encoder.fit_transform(data[col]) X = data[['Age', 'Gender', 'Caste', 'Category', 'Marital Status']] y = data['Test Result'] corr = X.corr() print(corr) sm.graphics.plot_corr(corr, xnames=list(corr.columns)) plt.show() X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = LogisticRegression() model.fit(X_train, y_train) y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) classification_report_result = classification_report(y_test, y_pred) #sns.heatmap(pd.DataFrame(classification_report_result).iloc[:-1, :].T, annot=True) # Calculate the confusion matrix confusion = confusion_matrix(y_test, y_pred) # Plot the confusion matrix using Seaborn plt.figure(figsize=(8, 6)) sns.heatmap(confusion, annot=True, fmt='d', cmap='Blues', linewidths=0.5) plt.xlabel('Predicted') plt.ylabel('Actual') plt.title('Confusion Matrix') plt.show() print(f"Accuracy: {accuracy}") print("Classification Report:") print(classification_report_result) # with open('logistic_regression_model.pkl', 'wb') as model_file: # pickle.dump(model, model_file) # with open('logistic_regression_model.pkl', 'rb') as model_file: # loaded_model = pickle.load(model_file) # new_data = pd.DataFrame({'Age': [30], 'Gender': ['MALE'], 'Caste': ['SC'], 'Category': [''], 'Marital Status': ['Single']}) # predicted_result = loaded_model.predict(new_data) # print(predicted_result)