Knn codes
Data import
from sklearn import datasets
from sklearn.model_selection import train_test_split as data_split
from sklearn.preprocessing import MinMaxScaler
cancer = datasets.load_breast_cancer()
X = cancer.data
y = cancer.target
#normalization
transformer = MinMaxScaler()
X = transformer.fit_transform(X)
X.shape
(569, 30)
X_train,X_test,y_train,y_test = data_split(X,y,test_size=0.2,random_state=1004)
KNN Algorithm
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import confusion_matrix
from sklearn import metrics
# define dict to search lowest K & highest Accuracy
acc_dict = {}
def knn(k):
al = KNeighborsClassifier(k)
al.fit(X_train, y_train)
y_pred = al.predict(X_test)
acc = metrics.accuracy_score(y_test, y_pred)
acc_dict[k] = acc
print("K : ",k)
print("Accuracy : " , acc)
print("Confusion Matrix \n ----------\n" , confusion_matrix(y_test, y_pred))
return acc_dict
for i in range(1,100):
acc_dict = knn(i)
K : 1
Accuracy : 0.9473684210526315
Confusion Matrix
----------
[[46 5]
[ 1 62]]
K : 2
Accuracy : 0.9473684210526315
Confusion Matrix
----------
[[48 3]
[ 3 60]]
K : 3
Accuracy : 0.9473684210526315
Confusion Matrix
----------
[[45 6]
[ 0 63]]
K : 4
Accuracy : 0.9649122807017544
Confusion Matrix
----------
[[47 4]
[ 0 63]]
K : 5
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 6
Accuracy : 0.9649122807017544
Confusion Matrix
----------
[[47 4]
[ 0 63]]
K : 7
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 8
Accuracy : 0.9649122807017544
Confusion Matrix
----------
[[47 4]
[ 0 63]]
K : 9
Accuracy : 0.956140350877193
Confusion Matrix
----------
[[46 5]
[ 0 63]]
K : 10
Accuracy : 0.9649122807017544
Confusion Matrix
----------
[[47 4]
[ 0 63]]
K : 11
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 12
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 13
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 14
Accuracy : 0.9473684210526315
Confusion Matrix
----------
[[45 6]
[ 0 63]]
K : 15
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 16
Accuracy : 0.9473684210526315
Confusion Matrix
----------
[[45 6]
[ 0 63]]
K : 17
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 18
Accuracy : 0.9385964912280702
Confusion Matrix
----------
[[44 7]
[ 0 63]]
K : 19
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 20
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 21
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 22
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 23
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 24
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 25
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 26
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 27
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 28
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 29
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 30
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 31
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 32
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 33
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 34
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 35
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 36
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 37
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 38
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 39
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 40
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 41
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 42
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 43
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 44
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 45
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 46
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 47
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 48
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 49
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 50
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 51
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 52
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 53
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 54
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 55
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 56
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 57
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 58
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 59
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 60
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 61
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 62
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 63
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 64
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 65
Accuracy : 0.9122807017543859
Confusion Matrix
----------
[[41 10]
[ 0 63]]
K : 66
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 67
Accuracy : 0.9210526315789473
Confusion Matrix
----------
[[42 9]
[ 0 63]]
K : 68
Accuracy : 0.9298245614035088
Confusion Matrix
----------
[[43 8]
[ 0 63]]
K : 69
Accuracy : 0.9122807017543859
Confusion Matrix
----------
[[41 10]
[ 0 63]]
K : 70
Accuracy : 0.9122807017543859
Confusion Matrix
----------
[[41 10]
[ 0 63]]
K : 71
Accuracy : 0.9122807017543859
Confusion Matrix
----------
[[41 10]
[ 0 63]]
K : 72
Accuracy : 0.9122807017543859
Confusion Matrix
----------
[[41 10]
[ 0 63]]
K : 73
Accuracy : 0.9122807017543859
Confusion Matrix
----------
[[41 10]
[ 0 63]]
K : 74
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 75
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 76
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 77
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 78
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 79
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 80
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 81
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 82
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 83
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 84
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 85
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 86
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 87
Accuracy : 0.8947368421052632
Confusion Matrix
----------
[[40 11]
[ 1 62]]
K : 88
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 89
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 90
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[41 10]
[ 1 62]]
K : 91
Accuracy : 0.8947368421052632
Confusion Matrix
----------
[[40 11]
[ 1 62]]
K : 92
Accuracy : 0.8947368421052632
Confusion Matrix
----------
[[40 11]
[ 1 62]]
K : 93
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[40 11]
[ 0 63]]
K : 94
Accuracy : 0.8947368421052632
Confusion Matrix
----------
[[40 11]
[ 1 62]]
K : 95
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[40 11]
[ 0 63]]
K : 96
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[40 11]
[ 0 63]]
K : 97
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[40 11]
[ 0 63]]
K : 98
Accuracy : 0.8947368421052632
Confusion Matrix
----------
[[40 11]
[ 1 62]]
K : 99
Accuracy : 0.9035087719298246
Confusion Matrix
----------
[[40 11]
[ 0 63]]
#Search highest Score and lowest K
optimized_k = max(acc_dict,key=acc_dict.get)
Result
#최적화된 k의 값, score, confusion matrix를 출력
knn(optimized_k)
K : 4
Accuracy : 0.9649122807017544
Confusion Matrix
----------
[[47 4]
[ 0 63]]
{1: 0.9473684210526315,
2: 0.9473684210526315,
3: 0.9473684210526315,
4: 0.9649122807017544,
5: 0.9385964912280702,
6: 0.9649122807017544,
7: 0.9385964912280702,
8: 0.9649122807017544,
9: 0.956140350877193,
10: 0.9649122807017544,
11: 0.9385964912280702,
12: 0.9385964912280702,
13: 0.9385964912280702,
14: 0.9473684210526315,
15: 0.9385964912280702,
16: 0.9473684210526315,
17: 0.9298245614035088,
18: 0.9385964912280702,
19: 0.9298245614035088,
20: 0.9298245614035088,
21: 0.9298245614035088,
22: 0.9298245614035088,
23: 0.9298245614035088,
24: 0.9298245614035088,
25: 0.9298245614035088,
26: 0.9298245614035088,
27: 0.9298245614035088,
28: 0.9298245614035088,
29: 0.9298245614035088,
30: 0.9298245614035088,
31: 0.9298245614035088,
32: 0.9298245614035088,
33: 0.9298245614035088,
34: 0.9298245614035088,
35: 0.9298245614035088,
36: 0.9298245614035088,
37: 0.9298245614035088,
38: 0.9298245614035088,
39: 0.9298245614035088,
40: 0.9298245614035088,
41: 0.9298245614035088,
42: 0.9298245614035088,
43: 0.9298245614035088,
44: 0.9298245614035088,
45: 0.9298245614035088,
46: 0.9298245614035088,
47: 0.9298245614035088,
48: 0.9298245614035088,
49: 0.9298245614035088,
50: 0.9298245614035088,
51: 0.9298245614035088,
52: 0.9298245614035088,
53: 0.9210526315789473,
54: 0.9210526315789473,
55: 0.9210526315789473,
56: 0.9210526315789473,
57: 0.9210526315789473,
58: 0.9298245614035088,
59: 0.9298245614035088,
60: 0.9298245614035088,
61: 0.9298245614035088,
62: 0.9298245614035088,
63: 0.9210526315789473,
64: 0.9210526315789473,
65: 0.9122807017543859,
66: 0.9210526315789473,
67: 0.9210526315789473,
68: 0.9298245614035088,
69: 0.9122807017543859,
70: 0.9122807017543859,
71: 0.9122807017543859,
72: 0.9122807017543859,
73: 0.9122807017543859,
74: 0.9035087719298246,
75: 0.9035087719298246,
76: 0.9035087719298246,
77: 0.9035087719298246,
78: 0.9035087719298246,
79: 0.9035087719298246,
80: 0.9035087719298246,
81: 0.9035087719298246,
82: 0.9035087719298246,
83: 0.9035087719298246,
84: 0.9035087719298246,
85: 0.9035087719298246,
86: 0.9035087719298246,
87: 0.8947368421052632,
88: 0.9035087719298246,
89: 0.9035087719298246,
90: 0.9035087719298246,
91: 0.8947368421052632,
92: 0.8947368421052632,
93: 0.9035087719298246,
94: 0.8947368421052632,
95: 0.9035087719298246,
96: 0.9035087719298246,
97: 0.9035087719298246,
98: 0.8947368421052632,
99: 0.9035087719298246}