예제 #1
0
elif method == 'Ridge':
	lr.My_Ridge()
	z_predict = lr.My_Predict(X_fit, False)	

elif method == 'Lasso':
	lr.My_Lasso()
	z_predict = lr.My_predict(X_fit, True)
	
diff = z - z_predict
MSE = 1.0/(n*n)*(sum(diff*diff))
print (MSE)
"""

# Do bootstrap
boot = Bootstrap(X_fit, z, B, lambda_, split, method)
m, z_test = boot.My_Bootstrap()

#print (z_test)

z_mat = np.tile(z_test, (B, 1))

# Calculate different statistical properties
MSE = np.mean(np.mean((z_test - m)**2, axis=1, keepdims=True))
bias = np.mean((z_test - np.mean(m, axis=1, keepdims=True))**2)
variance = np.mean(np.var(m, axis=1, keepdims=True))
doubleR = 1.0 - sum((sum(
    (z_mat - m)**2)) / sum(sum(
        (z_mat - np.mean(m, axis=1, keepdims=True))**2)))
#R2 = np.mean(doubleR)
"""
a = (z_test - m)**2
예제 #2
0
    """
	###### Part 4 #######

	Uses the OLS, ridge and lasso regression of the training data and plots 
	the R-score for test data and predicted data, for different lambdas.
	"""

    method = 'OLS'
    doubleR_OLS = np.zeros(9)
    lambda_ = np.array(
        [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0])
    Y_mat = np.tile(Y_test, (100, 1))
    for i in range(9):
        # do bootstrap
        boot = Bootstrap(X_train, X_test, Y_train, 100, lambda_[i], method)
        Y_pred, coeff_train = boot.My_Bootstrap()
        doubleR_OLS[i] = 1.0 - ((Y_mat - Y_pred)**2).sum() / (
            (Y_mat - Y_mat.mean())**2).sum()

    method = 'Ridge'
    doubleR_ridge = np.zeros(9)
    for i in range(9):
        # do bootstrap
        boot = Bootstrap(X_train, X_test, Y_train, 100, lambda_[i], method)
        Y_pred, coeff_train = boot.My_Bootstrap()
        doubleR_ridge[i] = 1.0 - ((Y_mat - Y_pred)**2).sum() / (
            (Y_mat - Y_mat.mean())**2).sum()

    method = 'Lasso'
    doubleR_lasso = np.zeros(9)
    for i in range(9):