示例#1
0
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))
示例#2
0
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)
示例#3
0
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)