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")
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)
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)