from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.svm import LinearSVC
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
svc = LinearSVC()
log = LogisticRegression(random_state=0)
rf = RandomForestClassifier(n_estimators=200, max_depth=3, random_state=0)
#creating function model
def model(X,y,model_1,model_2,model_3):
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size = 0.33, random_state = 42)
model_1.fit(X_train, y_train)
model_2.fit(X_train, y_train)
model_3.fit(X_train, y_train)
model_1_accuracy = model_1.score(X_train, y_train)
model_2_accuracy = model_2.score(X_train, y_train)
model_3_accuracy = model_3.score(X_train, y_train)
model_1_predict_train = model_1.predict(X_train)
model_1_predict_test = model_1.predict(X_test)
model_2_predict_train = model_2.predict(X_train)
model_2_predict_test = model_2.predict(X_test)
model_3_predict_train = model_3.predict(X_train)
model_3_predict_test = model_3.predict(X_test)
model_1_clf_train = classification_report(y_train,model_1_predict_train,output_dict=True)
df=pd.DataFrame(model_1_clf_train).transpose()
model1_train_precision=round(df.loc["1"][0],2)
model1_train_recall=round(df.loc["1"][1],2)
model1_train_f1=round(df.loc["1"][2],2)
model_1_clf_test = classification_report(y_test,model_1_predict_test,output_dict=True)
df=pd.DataFrame(model_1_clf_test).transpose()
model1_test_precision=round(df.loc["1"][0],2)
model1_test_recall=round(df.loc["1"][1],2)
model1_test_f1=round(df.loc["1"][2],2)
model_2_clf_train = classification_report(y_train,model_2_predict_train,output_dict=True)
df=pd.DataFrame(model_2_clf_train).transpose()
model2_train_precision=round(df.loc["1"][0],2)
model2_train_recall=round(df.loc["1"][1],2)
model2_train_f1=round(df.loc["1"][2],2)
model_2_clf_test = classification_report(y_test,model_2_predict_test,output_dict=True)
df=pd.DataFrame(model_2_clf_test).transpose()
model2_test_precision=round(df.loc["1"][0],2)
model2_test_recall=round(df.loc["1"][1],2)
model2_test_f1=round(df.loc["1"][2],2)
model_3_clf_train = classification_report(y_train,model_3_predict_train,output_dict=True)
df=pd.DataFrame(model_3_clf_train).transpose()
model3_train_precision=round(df.loc["1"][0],2)
model3_train_recall=round(df.loc["1"][1],2)
model3_train_f1=round(df.loc["1"][2],2)
model_3_clf_test = classification_report(y_test,model_3_predict_test,output_dict=True)
df=pd.DataFrame(model_3_clf_test).transpose()
model3_test_precision=round(df.loc["1"][0],2)
model3_test_recall=round(df.loc["1"][1],2)
model3_test_f1=round(df.loc["1"][2],2)
overall = pd.DataFrame({"Model 1 Accuracy" : model_1_accuracy,
"Model 1 Train Data Precision" : model1_train_precision,
"Model 1 Train Data Recall" : model1_train_recall,
"Model 1 Train Data F1 Score" : model1_train_f1,
"Model 1 Test Data Precision" : model1_test_precision,
"Model 1 Test Data Recall" : model1_test_recall,
"Model 1 Test Data F1 Score" : model1_test_f1,
"Model 2 Accuracy" : model_2_accuracy,
"Model 2 Train Data Precision" : model2_train_precision,
"Model 2 Train Data Recall" : model2_train_recall,
"Model 2 Train Data F1 Score" : model2_train_f1,
"Model 2 Test Data Precision" : model2_test_precision,
"Model 2 Test Data Recall" : model2_test_recall,
"Model 2 Test Data F1 Score" : model2_test_f1,
"Model 3 Accuracy" : model_3_accuracy,
"Model 3 Train Data Precision" : model3_train_precision,
"Model 3 Train Data Recall" : model3_train_recall,
"Model 3 Train Data F1 Score" : model3_train_f1,
"Model 3 Test Data Precision" : model3_test_precision,
"Model 3 Test Data Recall" : model3_test_recall,
"Model 3 Test Data F1 Score" : model3_test_f1}, index = [0])
return overall.transpose()
model(X,y,svc,log,rf)