Diff of /LogisticRegression.py [000000] .. [6b894f]

Switch to unified view

a b/LogisticRegression.py
1
import pandas as pd
2
import matplotlib as plt
3
import numpy as np
4
from sklearn import linear_model
5
#from sklearn.model_selection cross_validation
6
from scipy.stats import norm
7
8
from sklearn.svm import SVC
9
from sklearn import svm
10
from sklearn.svm import LinearSVC
11
from sklearn.model_selection import train_test_split
12
13
from sklearn.metrics import accuracy_score
14
from random import seed
15
from random import randrange
16
from csv import reader
17
import csv
18
import numpy as np
19
import pandas as pd
20
from pandas import read_csv
21
import matplotlib.pyplot as plt
22
from sklearn.metrics import mean_squared_error
23
from sklearn.metrics import mean_absolute_error
24
from sklearn.metrics import r2_score
25
from sklearn.linear_model import LogisticRegression
26
from sklearn.model_selection import train_test_split
27
from sklearn import preprocessing
28
29
30
def process(path):
31
    data=pd.read_csv(path)
32
    print("data.columns=",data.columns)
33
    label_encoder = preprocessing.LabelEncoder()
34
    data['Diagnosis']= label_encoder.fit_transform(data['Diagnosis'])
35
    data['Gen']= label_encoder.fit_transform(data['Genero'])
36
    X=data[['Age', 'Weight (Kg)', 'Height (cms)', 'Gen','Heart Rate', 'oxygen saturation', 'Respiratory Rate','Systolic Blood Pressure', 'Diastolic Blood Pressure','Mean Blood Pressure']]
37
    y=data['Diagnosis']
38
    
39
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
40
    
41
    model2=LogisticRegression(C=1, class_weight=None, dual=False, fit_intercept=True,
42
          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,
43
          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,
44
          verbose=0, warm_start=False)
45
    model2.fit(X_train, y_train)
46
    y_pred = model2.predict(X_test)
47
    print("predicted")
48
    print(y_pred)
49
    print(y_test)
50
    result2=open("results/resultLR.csv","w")
51
    result2.write("ID,Predicted Value" + "\n")
52
    for j in range(len(y_pred)):
53
        result2.write(str(j+1) + "," + str(y_pred[j]) + "\n")
54
    result2.close()
55
    
56
    mse=mean_squared_error(y_test, y_pred)
57
    mae=mean_absolute_error(y_test, y_pred)
58
    r2=r2_score(y_test, y_pred)
59
    
60
    
61
    print("---------------------------------------------------------")
62
    print("MSE VALUE FOR Logistic Regression IS %f "  % mse)
63
    print("MAE VALUE FOR Logistic Regression IS %f "  % mae)
64
    print("R-SQUARED VALUE FOR Logistic Regression IS %f "  % r2)
65
    rms = np.sqrt(mean_squared_error(y_test, y_pred))
66
    print("RMSE VALUE FOR Logistic Regression IS %f "  % rms)
67
    ac=accuracy_score(y_test,y_pred)
68
    print ("ACCURACY VALUE Logistic Regression IS %f" % (ac*100))
69
    print("---------------------------------------------------------")
70
    
71
72
    result2=open('results/LRMetrics.csv', 'w')
73
    result2.write("Parameter,Value" + "\n")
74
    result2.write("MSE" + "," +str(mse) + "\n")
75
    result2.write("MAE" + "," +str(mae) + "\n")
76
    result2.write("R-SQUARED" + "," +str(r2) + "\n")
77
    result2.write("RMSE" + "," +str(rms) + "\n")
78
    result2.write("ACCURACY" + "," +str(ac*100) + "\n")
79
    result2.close()
80
    
81
    
82
    df =  pd.read_csv('results/LRMetrics.csv')
83
    acc = df["Value"]
84
    alc = df["Parameter"]
85
    colors = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#8c564b"]
86
    explode = (0.1, 0, 0, 0, 0)  
87
    
88
    fig = plt.figure()
89
    plt.bar(alc, acc,color=colors)
90
    plt.xlabel('Parameter')
91
    plt.ylabel('Value')
92
    plt.title('Logistic Regression Value')
93
    fig.savefig('results/LRMetricsValue.png') 
94
    plt.pause(5)
95
    plt.show(block=False)
96
    plt.close()
97
98
#process("Child_Heart_Stage_dataset.csv")