def second_classifier_trainonall(data, virtual_labels, vl_ind): print("\nTARGET CLASSIFIER") Xdata = copy.deepcopy(data.Xtarget[data.tar_train_index]) Xdata_aux = copy.deepcopy(data.Xtarget[data.tar_train_index]) for i in range(10*4): Xdata = np.append(Xdata, Xdata_aux, 1) X_target_test = data.Xtarget[data.tar_test_index] X_target_test = np.squeeze(X_target_test) Xdata = np.squeeze(Xdata) Xdata = np.append(Xdata, X_target_test[vl_ind], 0) for s in range(len(data.Xsource)): Xdata = np.append(Xdata, data.Xsource[s], 0) labels = copy.deepcopy(data.ytarget[data.tar_train_index]) labels_aux = copy.deepcopy(data.ytarget[data.tar_train_index]) for i in range(10*4): labels = np.append(labels, labels_aux, 0) labels = np.append(labels, virtual_labels[vl_ind]) for s in range(len(data.Xsource)): labels = np.append(labels, data.ysource[s], 0) forest = RandomForestClassifier(n_estimators=NUM_ESTIMATORS, n_jobs=-1, max_depth=MAX_DEPTH, max_features=MAX_FEATURES, min_samples_split=MIN_SAMPLES_SPLIT) forest = forest.fit(Xdata, labels) Xtest = np.squeeze(data.Xtarget[data.tar_test_index]) ytest = np.squeeze(data.ytarget[data.tar_test_index]) predictions = forest.predict(Xtest) print("Final accuracy: ", ut.accuracy_test(predictions, ytest))
def main_random_forest(): for i in range(NUM_ITERATIONS): print("************ RANDOM FOREST METHOD:",i+1,"************") data = utrf.load_data_from_files() results = rf.base_rf(data, utrf.Results()) results = rf.determine_relevance(results) print("\n--- Virtual labels ---") virtual_labels, indices = rf.get_virtual_vote(results) ytarget = np.squeeze(data.ytarget[data.tar_test_index]) print("\nVirtual label accuracy:", utrf.accuracy_test(virtual_labels[indices], ytarget[indices])) rf.second_classifier_trainonall(data, virtual_labels, indices)
def main_random_forest(): for i in range(NUM_ITERATIONS): print("************ RANDOM FOREST METHOD:", i + 1, "************") data = utrf.load_data_from_files() results = rf.base_rf(data, utrf.Results()) results = rf.determine_relevance(results) print("\n--- Virtual labels ---") virtual_labels, indices = rf.get_virtual_vote(results) ytarget = np.squeeze(data.ytarget[data.tar_test_index]) print("\nVirtual label accuracy:", utrf.accuracy_test(virtual_labels[indices], ytarget[indices])) rf.second_classifier_trainonall(data, virtual_labels, indices)