def assign_labels(data, centroids): from shogun.Classifier import KNN from numpy import arange labels = Labels(arange(1., 11.)) fea = RealFeatures(data) fea_centroids = RealFeatures(centroids) distance = EuclidianDistance(fea_centroids, fea_centroids) knn = KNN(1, distance, labels) knn.train() return knn.apply(fea)
def assign_labels(data, centroids, ncenters): from shogun.Distance import EuclideanDistance from shogun.Features import RealFeatures, MulticlassLabels from shogun.Classifier import KNN from numpy import arange labels = MulticlassLabels(arange(0., ncenters)) fea = RealFeatures(data) fea_centroids = RealFeatures(centroids) distance = EuclideanDistance(fea_centroids, fea_centroids) knn = KNN(1, distance, labels) knn.train() return knn.apply(fea)
def classifier_knn_modular(fm_train_real=traindat,fm_test_real=testdat,label_train_multiclass=label_traindat, k=3 ): from shogun.Features import RealFeatures, Labels from shogun.Classifier import KNN from shogun.Distance import EuclidianDistance feats_train=RealFeatures(fm_train_real) feats_test=RealFeatures(fm_test_real) distance=EuclidianDistance(feats_train, feats_train) labels=Labels(label_train_multiclass) knn=KNN(k, distance, labels) knn_train = knn.train() output=knn.apply(feats_test).get_labels() multiple_k=knn.classify_for_multiple_k() return knn,knn_train,output,multiple_k
trainData = trainData.reshape(-1, 10000) f.close() f = open(os.path.dirname(__file__) + '../data/arcene_train.label') trainLabel = np.fromfile(f, dtype=np.int32, sep=' ') f.close() # Load test data. f = open(os.path.dirname(__file__) + '../data/arcene_test.data') testData = np.fromfile(f, dtype=np.float64, sep=' ') testData = testData.reshape(-1, 10000) f.close() f = open(os.path.dirname(__file__) + '../data/arcene_test.label') testLabel = np.fromfile(f, dtype=np.float64, sep=' ') f.close() # Construct a KNN classifier with a neighborhood size of 9. feat = RealFeatures(trainData.T) distance = EuclideanDistance(feat, feat) labels = BinaryLabels(trainLabel.astype(np.float64)) testFeat = RealFeatures(testData.T) knn = KNN(9, distance, labels) knn.train() # Predict the classification. output = knn.apply(testFeat).get_labels() # Validate the classification. print output == testLabel