Exemplo n.º 1
0
def predict(relevance_vectors, X, mean, kernel_choice):

    prediction = []

    for xi in range(len(X)):

        phi_x = 0
        for ri in range(len(relevance_vectors)):

            if kernel_choice == "gaussian":
                phi_x += mean[ri + 1] * (kernel.gaussian(
                    X[xi], relevance_vectors[ri])) + mean[0]
            elif kernel_choice == "linear":
                t1 = X[xi]
                phi_x += mean[ri + 1] * (kernel.linear_kernel(
                    X[xi], relevance_vectors[ri])) + mean[0]
            elif kernel_choice == "polynomial":
                t1 = X[xi]
                phi_x += mean[ri + 1] * (kernel.polynomial_kernel(
                    X[xi], relevance_vectors[ri])) + mean[0]
            elif kernel_choice == "linear_spline":
                phi_x += mean[ri + 1] * (kernel.linear_spline(
                    X[xi], relevance_vectors[ri])) + mean[0]
            elif kernel_choice == "rbf":
                phi_x += mean[ri + 1] * (kernel.rbf(
                    X[xi], relevance_vectors[ri]))  # + mean[0]

        phi_x += mean[0]
        prediction.append(phi_x)

    return prediction
def design_matrix_classification(N, kernel_mode, X):

    ret = np.ndarray(shape=(N, N))

    for i in range(0, N):
        for j in range(0, N):
            if (kernel_mode == "polynomial"):
                ret[i, j] = kernel.polynomial_kernel(X[i], X[j - 1])
            elif (kernel_mode == "linear_spline"):
                ret[i, j] = kernel.linear_spline(X[i], X[j - 1])
            elif (kernel_mode == "gaussian"):
                ret[i, j] = kernel.gaussian(X[i], X[j - 1])
            elif (kernel_mode == "rbf"):
                ret[i, j] = kernel.rbf(X[i], X[j - 1])

    return ret
Exemplo n.º 3
0
def Relevance_Vector_Classification_Prediction (Xtest, relevance_vectors, weightMaxPosteriori, kernel_choice):

    Psum = 0
    res = []
    for xi in range(len(Xtest)):
        for ri in range (len(relevance_vectors)):
            if kernel_choice=="gaussian":
                Psum+=weightMaxPosteriori[ri+1]*(kernel.gaussian(Xtest[xi], relevance_vectors[ri])) + weightMaxPosteriori[0]
            elif kernel_choice=="linear":
                Psum+=weightMaxPosteriori[ri+1]*(kernel.linear_kernel(Xtest[xi], relevance_vectors[ri])) + weightMaxPosteriori[0]
            elif kernel_choice=="polynomial":
                Psum+=weightMaxPosteriori[ri+1]*(kernel.polynomial_kernel(Xtest[xi], relevance_vectors[ri])) + weightMaxPosteriori[0]
            elif kernel_choice=="linear_spline":
                Psum+=weightMaxPosteriori[ri+1]*(kernel.linear_spline(Xtest[xi], relevance_vectors[ri])) + weightMaxPosteriori[0]

        y = sigmoid_function(Psum)
            
        if y >0.5:
            res.append(1)
        elif y<= 0.5:
            res.append(0)

    return res