def radius(X_train, X_test, y_train, y_test, string, valor): if (string == "prob"): clf = RadiusNeighborsClassifier(radius=valor, weights='distance', n_jobs=-1) clf.fit(X_train, y_train.values.ravel()) return clf.predict_proba(X_test) clf = RadiusNeighborsClassifier(radius=valor, weights='distance', n_jobs=-1) clf.fit(X_train, y_train.values.ravel()) #pickles.criarModelo(clf,"Rocchio "+string) y_predito = clf.predict(X_test) micro = f1_score(y_test, y_predito, average='micro') macro = f1_score(y_test, y_predito, average='macro') #f1_individual = f1_score(y_test,y_predito,average=None) #salvar_dados.salvar(y_test,y_predito,micro, macro, f1_individual," Knn "+string) print("O f1Score micro do RadiusKnn ", string, " com ", valor, " de raio é: ", micro) print("O f1Score macro do RadiusKnn ", string, " com ", valor, " de raio é: ", macro)
def _transductive_classifier(self, X_train, y_train, test_instance): clf = RadiusNeighborsClassifier(radius=self.epsilon, weights='distance').fit( X_train, y_train) predict_set = clf.radius_neighbors(test_instance.reshape(1, -1))[1] predict_set = list(predict_set[0]) if len(predict_set) > 0: X_train_local, y_train_local = X_train[predict_set], y_train[ predict_set] if np.min(y_train_local) == np.max(y_train_local): prediction = y_train_local[0] else: clf = self._fit(X_train_local, y_train_local) if np.max(clf.predict_proba(test_instance.reshape( 1, -1))) < self.threshold_rejection: prediction = self.new_classes else: prediction = clf.predict(test_instance.reshape(1, -1))[0] else: prediction = self.new_classes return prediction
def signal_proba(model, X): return RadiusNeighborsClassifier.predict_proba(model, X)[:, 1]