predicting_time_targets = 0.0

# grid search
for index, i in enumerate(nu_list):
    for jndex, j in enumerate(gamma_list):
        print("nu=%r, gamma=%r"%(i,j))

        # model fitting
        start = timeit.default_timer()
        clf = ocsvm.fit(new_data, i, j)
        stop = timeit.default_timer()
        training_time_sum += stop - start

        # predicting
        start = timeit.default_timer()
        y_outliers = ocsvm.predict(clf, pseudo_outliers)
        stop = timeit.default_timer()
        predicting_time_outliers += stop - start

        start = timeit.default_timer()
        y_targets = ocsvm.predict(clf, pseudo_targets)
        stop = timeit.default_timer()
        predicting_time_targets += stop - start

        # calculate the error
        err_outliers = float(y_outliers[y_outliers[:]==1].shape[0]) / y_outliers.shape[0]
        err_targets = float(y_targets[y_targets[:]!=1].shape[0]) / y_targets.shape[0]
        err = 0.5*err_outliers + 0.5*err_targets
        # save results
        error_array[index][jndex] = err
        full_err_array[index][jndex] = [err_outliers, err_targets]