Professional Documents
Culture Documents
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