In [8]:
from sklearn.neighbors import KNeighborsClassifier
In [9]:
# definišemo instancu kNN, a za k biramo vrednost 3. To je prosleđeno samoj inicijalizaciji objekta kao parametar n_neighbors
kNN = KNeighborsClassifier(n_neighbors=3)
In [10]:
# prosleđujemo ulazne podatke našem algoritmu. 
# kNN je zapravo jedan od retkih algoritama koji nakon što mu se proslede ulazni podaci vrši samo prihatanje podataka
kNN.fit(X,y)
Out[10]:
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
           metric_params=None, n_jobs=1, n_neighbors=3, p=2,
           weights='uniform')
In [11]:
# sam algoritam radiće tek kada mu se dodeli test skup i kada pozovemo naredbu predict
# algoritam prvo pronalazi 3 (odnosno k) najbliže tačke, a zatim proverava koje su njihove klase i onda vrši "majority vote"
In [12]:
kNN.predict(x_test_1.reshape(1,-1))
Out[12]:
array([1])
In [13]:
# kNN primenjen na iris dataset
In [14]:
# učitajmo sam iris dataset
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
In [15]:
# podelimo sada dataset na trening i skup "ručno"
# Ovaj proces daće nam malo više intuicije kako se zapravo vrši ova podela i kako to možemo sami uraditi 
# bez korišćenja naredbe train_test_split()
In [16]:
# kreirajmo sve indekse za naš skup koji ima 150 elemenata
svi_indeksi = np.arange(150)
print(svi_indeksi)
[  0   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 116 117 118 119 120 121 122 123 124 125
 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
 144 145 146 147 148 149]