[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/BAGPALLAB7/pythonprogram/master/KNN_algorithm [Back]  [Original]

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
from scipy.spatial import distance

def euc(a,b):
    return distance.euclidean(a, b)
   

class ScrappyKNN():
    def fit(self, features_train, labels_train):
        self.features_train = features_train
        self.labels_train = labels_train
       
    def predict(self, features_test):
        predictions = []
        for item in features_test:
            label = self.closest(item)
            predictions.append(label)
           
        return predictions
   
    def closest(self, item):
       best_dist = euc(item, self.features_train[0])
       best_index = 0
       for i in range(1,len(self.features_train)):
           dist = euc(item, self.features_train[i])
           if dist < best_dist:
               best_dist = dist
               best_index = i
       return self.labels_train[best_index]

iris = datasets.load_iris()

print(iris)

features = iris.data
labels = iris.target

print(features)
print(labels)

features_train, features_test, labels_train, labels_test  = train_test_split(features, labels, test_size=.5)
#print(len(features))
#print(len(features_train))

my_classifier = ScrappyKNN()
#my_classifier = KNeighborsClassifier()
my_classifier.fit(features_train, labels_train)

prediction = my_classifier.predict(features_test)

print(prediction)
print(accuracy_score(labels_test, prediction))

iris1 = [[7.1, 2.9, 5.3, 2.4]] #virginica
iris_prediction = my_classifier.predict(iris1)

if iris_prediction == 0:
    print("Setosa")
if iris_prediction == 1:
    print("Versicolor")
if iris_prediction == 2:
    print("Virginica")

Web Proxy Viewer  |  New URL  |  Original Page