You are on page 1of 3

ADS ASSIGNMENT: PERFORMANCE MEASURE

BY AKSHAY KUMAR JAIN, M.MAHAANSH REDDY, SIDDHANT SHARMA, SYED MOHD ABID

CODE:
import pandas as pd
import seaborn as sns
import numpy as np
import csv
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
from sklearn.metrics import confusion_matrix

df1 = pd.read_excel("/content/RetinalImagesDatasetStudents.xlsx", useco
ls=['MG', 'MR', ' GnDTruth'])
df = df1[['MG', 'MR']].copy()
print(df.head())

kmeans = KMeans(n_clusters=2)
kmeans.fit(df)
y_kmeans = kmeans.predict(df)
print(y_kmeans)
centers = kmeans.cluster_centers_

mg_0 = [df["MG"][i] for i in range(0, len(y_kmeans)) if y_kmeans[i]==0]
mg_1 = [df["MG"][i] for i in range(0, len(y_kmeans)) if y_kmeans[i]==1]
avg_mg0 = sum(mg_0)/len(mg_0)
avg_mg1 = sum(mg_1)/len(mg_1)

label = []
if avg_mg0 > avg_mg1:
    label = ['v' if i == 1 else 'a' for i in y_kmeans]
else:
    label = ['v' if i == 0 else 'a' for i in y_kmeans]
print(label)

df1["Output(Y_means)"] = y_kmeans
df1["MyTruth"] = label
df1["Predicted Correctly"] = ['True' if label[i] == df1[" GnDTruth"][i] 
else 'False' for i in range(0, len(label))]
df1.to_excel("output.xlsx",sheet_name='sheet1',index=False)

accurate = ['True' for i in range(0, len(label)) if label[i] == df1[" G
nDTruth"][i]]
accuracy = (len(accurate)/len(label)) * 100
print("Accuracy {}%".format(accuracy))
plt.scatter(df["MG"], df["MR"], c=y_kmeans, s=50)
plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.5)
plt.show()

matrix = confusion_matrix(df1[' GnDTruth'], label)
print(matrix)

tp, fn, fp, tn = matrix.reshape(-1);
print("True positive: {} False negative:{}, False Positive:{}, True Neg
ative:{}".format(tp, fn, fp, tn))

plt.imshow(matrix, cmap='Blues')
for (i, j), z in np.ndenumerate(matrix):
    plt.text(j, i, z)
plt.xlabel("kmeans label")
plt.ylabel("truth label")
plt.show()

print("Senstivity: {}".format(tp / (tp + fn)))
print("Specificity: {}".format(tn / (tn + fp)))
print("Precision: {}".format(tp / (tp + fp)))
print("Recall: {}".format(tp / (tp + fn)))

OUTPUT:
THANK YOU

You might also like