Example #1
0
from KNN import KNNClassifier
from tools.arff import Arff
import numpy as np

diabetes_train = "../data/KNN/diabetes.arff"
diabetes_test = "../data/KNN/diabetes_test.arff"
seismic_train = "../data/KNN/seismic-bumps_train.arff"
seismic_test = "../data/KNN/seismic-bumps_test.arff"

mat = Arff(seismic_train, label_count=1)
mat2 = Arff(seismic_test, label_count=1)
raw_data = mat.data
h, w = raw_data.shape
train_data = raw_data[:, :-1]
train_labels = raw_data[:, -1]

raw_data2 = mat2.data
h2, w2 = raw_data2.shape
test_data = raw_data2[:, :-1]
test_labels = raw_data2[:, -1]

KNN = KNNClassifier(15, "nominal", weight_type='inverse_distance')
KNN.fit(train_data, train_labels)
pred = KNN.predict(test_data)
score = KNN.score(test_data, test_labels)
print(f"Score: {score[1]*100:.2f}%")
#np.savetxt("diabetes-prediction.csv", pred, delimiter=',', fmt="%i")
Example #2
0
import numpy as np
from KNN import KNNClassifier
raw_data_X = [[3.393533211, 2.331273381],
              [3.110073483, 1.781539638],
              [1.343808831, 3.368360954],
              [3.582294042, 4.679179110],
              [2.280362439, 2.866990263],
              [7.423436942, 4.696522875],
              [5.745051997, 3.533989803],
              [9.172168622, 2.511101045],
              [7.792783481, 3.424088941],
              [7.939820817, 0.791637231]
             ]
raw_data_y = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]
X_train = np.array(raw_data_X)
y_train = np.array(raw_data_y)

x = np.array([8.093607318, 3.365731514])
x_predict=x.reshape(1,-1)
knn_clf = KNNClassifier(k=6)
print(knn_clf)
knn_clf.fit(X_train,y_train)
y_predict = knn_clf.predict(x_predict)
print(y_predict)
Example #3
0
    raw_data2 = mat2.data
    h2, w2 = raw_data2.shape
    test_data = raw_data2[:, :-1]
    test_labels = raw_data2[:, -1].reshape(-1, 1)

    train_data, test_data = normalize(train_data, test_data)

    # KNN = KNNClassifier(labeltype='classification', weight_type='inverse_distance',k=15)
    # KNN = KNNClassifier(labeltype='classification', weight_type='', k=3)
    # KNN = KNNClassifier(labeltype='regression', weight_type='', k=15)
    KNN = KNNClassifier(labeltype='regression',
                        weight_type='inverse_distance',
                        k=3)
    KNN.fit(train_data, train_labels)
    pred, shape = KNN.predict(test_data)
    score = KNN.score(test_data, test_labels)
    print(score)
    # np.savetxt("diabetes_prediction.csv", pred, delimiter=',',fmt="%i")
    # np.savetxt("seismic-bump-prediction_mine.csv", pred, delimiter=',', fmt="%i")

    ################# the following is used for credit data set ##################
    # mat = Arff("credit.arff", label_count=1)
    # data = mat.data[:, 0:-1]
    # labels = mat.data[:, -1].reshape(-1, 1)
    # attr_type = mat.attr_types
    # KNN = KNNClassifier(labeltype='HEOM', weight_type='', k=3, columntype=attr_type)
    # X, X_test, y, y_test = train_test_split(data, labels, test_size=0.25)
    # KNN.fit(X, y)
    # score = KNN.score(X_test, y_test)
    # print(score)