コード例 #1
0
print('{:18s} = {:.4f}'.format('Standard deviation', sd_c1))
print('{:18s} = {:.4f}\n'.format('Threshold', threshold_c1))

pass_rate = utils.get_rate(x_passed_s2, x_passed_s1)
print(f'Pass rate = {pass_rate * 100:.4f}%')
# print('Blocked by Reliability Domain:')
# utils.print_blocked_samples(x_passed_s1, ind_passed_s2)

# %%
# Stage 3 - Decidability
print('\n---------- Decidability ----------------')
model_knn = knn.KNeighborsClassifier(
    n_neighbors=k, n_jobs=-1, weights='distance')
model_knn.fit(x_train, y_train)

x_passed_s3, ind_passed_s3 = ad.check_decidability(
    x_passed_s2, pred_passed_s2, model_knn)


# Print
pass_rate = utils.get_rate(x_passed_s3, x_passed_s2)
print(f'Pass rate = {pass_rate * 100:.4f}%')
# print('Blocked by Decidability Domain:')
# utils.print_blocked_samples(x_passed_s2, ind_passed_s3)

# %%
# Results
score = accuracy_score(y_ae, pred_ae)
print(f'Accuracy before AD = {score*100:.4f}%')
print()

pass_rate = utils.get_rate(x_passed_s3, x_ae)
コード例 #2
0
# %%
# Decidability Domian uses the kNN model which is trained by the entire training
# set.
# Using the same value from Reliability Domain.
print(f'k = {k}')
model_knn = knn.KNeighborsClassifier(
    n_neighbors=k,
    n_jobs=-1,
    weights='distance'
)
model_knn.fit(x_train, y_train)

# %%
# Testing Decidability Domain
x_passed_dd, idx_within_dd = ad.check_decidability(
    x_ae, np.array(pred_ae), model_knn, verbose=1)
print(f'\nPass rate = {len(x_passed_dd) / len(x_ae) * 100.0:.4f}%')

# %%
def print_blocked_samples(x, ind_passed):
    ind_blocked = utils.get_filtered_indices(x, ind_passed)
    for x_i in x[ind_blocked]:
        print(f'[{x_i[0]: .4f}, {x_i[1]: .4f}]')

# %% [markdown]
# ## Full pipeline
# The entire pipeline for AD

# %%
# Preparing the test set
x_new = x_ae