-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKNN_Algorithm.py
More file actions
115 lines (87 loc) · 2.95 KB
/
KNN_Algorithm.py
File metadata and controls
115 lines (87 loc) · 2.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn
import warnings
warnings.filterwarnings('ignore')
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()
# print(cancer.data.shape)
# print(cancer.feature_names)
# print(cancer.target_names)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target, test_size= 0.25, random_state = 42)
# print(X_test.shape)
# sns.countplot(cancer.target)
# plt.show()
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
print(knn.score(X_train,y_train))
print(knn.score(X_test, y_test))
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred))
cf = confusion_matrix(y_test, y_pred)
# sns.heatmap(cf, annot=True)
# plt.show()
error_rate = []
for i in range(1,60):
knn = KNeighborsClassifier(n_neighbors=i)
knn.fit(X_train, y_train)
pred = knn.predict(X_test)
error_rate.append(np.mean(pred != y_test))
# print(error_rate)
plt.plot(range(1,60), error_rate, linestyle='dashed', marker='o')
# plt.show()
knn = KNeighborsClassifier(n_neighbors=11)
knn.fit(X_train, y_train)
pred_y = knn.predict(X_test)
print(knn.score(X_train,y_train))
print(knn.score(X_test,y_test))
# import numpy as np
# import pandas as pd
# import matplotlib.pyplot as plt
# import seaborn as sns
# import sklearn
# from sklearn.datasets import load_breast_cancer
# cancer = load_breast_cancer()
# # print(cancer.data.shape)
# from sklearn.model_selection import train_test_split
# X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.25, random_state=42)
# # print(X_train.shape)
# # print(cancer.target)
# # sns.histplot(cancer.target)
# # plt.show()
# from sklearn.neighbors import KNeighborsClassifier
# knn = KNeighborsClassifier()
# knn.fit(X_train, y_train)
# y_pred = knn.predict(X_test)
# print(knn.score(X_train, y_train))
# print(knn.score(X_test, y_test))
# from sklearn.metrics import confusion_matrix, classification_report
# # print(classification_report(y_pred, y_test))
# conf_metrix = confusion_matrix(y_test, y_pred)
# sns.heatmap(conf_metrix, annot=True)
# plt.show()
# # Optimal Value Of K
# error_rate = []
# for i in range(1,40):
# knn = KNeighborsClassifier(n_neighbors=i)
# knn.fit(X_train, y_train)
# pred_y = knn.predict(X_test)
# error_rate.append(np.mean(pred_y != y_test))
# # print(error_rate)
# plt.figure(figsize=(10,6))
# plt.plot(range(1,40), error_rate, linestyle='dashed', marker='o')
# plt.show()
# knn = KNeighborsClassifier(n_neighbors= 11)
# knn.fit(X_train, y_train)
# y_pred = knn.predict(X_test)
# print(knn.score(X_train, y_train))
# print(knn.score(X_test, y_test))
# cf = confusion_matrix(y_test, y_pred)
# sns.heatmap(cf, annot=True)
# plt.show()