Example #1
0
def choose_hyper(phi, y, polyx, polyy, order):
    w = do_regression(phi, y, lambd=10)
    y_prime = (grand_order(polyx, order) * w)

    least_error = 100
    target_alpha = 1
    alphas = np.linspace(-20, -18, 10)
    for alp in alphas:
        w = do_regression(phi, y, alp)
        y_prime = (grand_order(polyx, order) * w)
        error = data_reading.MeanSquareError(y_prime, polyy)
        if error <= least_error:
            target_alpha = alp
            least_error = error
    return target_alpha
Example #2
0
def choose_hyper(matFi, sampy, polyx, polyy, order):
    least_error = 100
    target_alpha = 1
    alphas = np.linspace(-3, 2, 1000)
    for alp in alphas:
        y_prime = grand_order(polyx, order) * do_regression(matFi, sampy, alp)
        error = data_reading.MeanSquareError(y_prime, polyy)
        if error <= least_error:
            target_alpha = alp
            least_error = error
    return target_alpha
Example #3
0
    alphas = np.linspace(-20, -18, 10)
    for alp in alphas:
        w = do_regression(phi, y, alp)
        y_prime = (grand_order(polyx, order) * w)
        error = data_reading.MeanSquareError(y_prime, polyy)
        if error <= least_error:
            target_alpha = alp
            least_error = error
    return target_alpha


if '__main__' == __name__:
    poly_data, poly_keys = data_reading.readMatFile("poly_data.mat")
    order = 10

    X, y = grand_order(poly_data['sampx'][0], order), poly_data['sampy']
    polyx, polyy = poly_data['polyx'][0], poly_data['polyy']
    count_data, count_keys = data_reading.readMatFile("count_data.mat")
    target_alpha = choose_hyper(X, y, polyx, polyy, order)
    w = do_regression(X, y, target_alpha)
    y_prime = grand_order(polyx, order) * w

    fig = plt.figure("LASSO")
    ax = fig.add_subplot(111)
    ax.plot(poly_data['sampx'][0],
            y,
            color='r',
            linestyle='',
            marker='*',
            label="sample")
    # regression line
Example #4
0
    total_length = len(sampx)
    percents = [0.1, 0.25, 0.5, 0.75]

    result = np.zeros((4, 5))
    for j in range(1000):
        MSEs = []
        for percent in percents:
            try:
                mse = []
                train_length = int(percent * total_length)
                a = np.random.randint(0, total_length, size=[1,
                                                             train_length])[0]
                sampx_sub = sampx[a]
                sampy_sub = sampy[a]
                phi = grand_order(sampx_sub, order)
                # LS
                LS_y_prime = grand_order(polyx, order) * LSregression(
                    phi.T, sampy_sub, order)
                mse.append(data_reading.MeanSquareError(LS_y_prime, polyy))
                # RLS
                RLS_target_alpha = RLS_hyper(phi.T, sampy_sub, polyx, polyy,
                                             order)
                RLS_y_prime = grand_order(polyx, order) * RLSregression(
                    phi.T, sampy_sub, RLS_target_alpha)
                mse.append(data_reading.MeanSquareError(RLS_y_prime, polyy))

                #LASSO
                LASSO_target_alpha = LASSO_hyper(phi, sampy_sub, polyx, polyy,
                                                 order)
                LASSO_y_prime = grand_order(polyx, order) * LASSOregression(
Example #5
0
 LS.set_title("LR")
 RLS = plt.subplot(3,2,4)
 RLS.set_title("RLS")
 LASSO = plt.subplot(3,2,6)
 LASSO.set_title("LASSO")
 RR = plt.subplot(3,2,5)
 RR.set_title("RR")
 LS.plot(polyx,polyy,color='b',linestyle='-',marker='',label="target")
 RLS.plot(polyx,polyy,color='b',linestyle='-',marker='',label="target")
 LASSO.plot(polyx,polyy,color='b',linestyle='-',marker='',label="target")
 RR.plot(polyx,polyy,color='b',linestyle='-',marker='',label="target")
 
 train_length = int(percent * total_length)
 sampx_sub = sampx[range(train_length)]
 sampy_sub = sampy[range(train_length)]
 phi = grand_order(sampx_sub,order)
 # LS
 LS_y_prime = grand_order(polyx,order) * LSregression(phi.T,sampy_sub,order)
 LS.plot(polyx,LS_y_prime,color='r',linestyle='-',marker='',label="predict")
 # RLS
 RLS_target_alpha = RLS_hyper(phi.T,sampy_sub,polyx,polyy,order)
 RLS_y_prime = grand_order(polyx,order) * RLSregression(phi.T,sampy_sub,RLS_target_alpha)
 RLS.plot(polyx,RLS_y_prime,color='r',linestyle='-',marker='',label="predict")
 #LASSO
 LASSO_target_alpha = LASSO_hyper(phi,sampy_sub,polyx,polyy,order)
 LASSO_y_prime = grand_order(polyx,order) * LASSOregression(phi,sampy_sub,LASSO_target_alpha)
 LASSO.plot(polyx,LASSO_y_prime,color='r',linestyle='-',marker='',label="predict")
 #RR
 RR_y_prime = grand_order(polyx,order) * RRregression(phi,sampy_sub,order)
 RR.plot(polyx,RR_y_prime,color='r',linestyle='-',marker='',label="predict")
 #BR
Example #6
0
            target_alpha = alp
            least_error = error
    return target_alpha


if __name__ == "__main__":
    poly_data, poly_keys = data_reading.readMatFile("poly_data.mat")

    order = 10

    sampx = poly_data['sampx'][0]
    sampy = poly_data['sampy']
    polyx = poly_data['polyx'][0]
    polyy = poly_data['polyy']

    matFi = grand_order(sampx, order).T
    # part of painting

    fig = plt.figure("RLS")

    w = do_regression(matFi, sampy, 1)
    target_alpha = choose_hyper(matFi, sampy, polyx, polyy, order)
    y_prime = grand_order(polyx, order) * do_regression(
        matFi, sampy, target_alpha)
    plt.plot(poly_data['sampx'][0],
             sampy,
             color='r',
             linestyle='',
             marker='*',
             label="sample")
    plt.plot(polyx,
Example #7
0
def do_regression(phi,sampy,order=1):  
  w = ((np.linalg.inv(phi * phi.T)) * phi) * sampy
  # part of painting
  return w

if __name__ == "__main__":
  poly_data , poly_keys = data_reading.readMatFile("poly_data.mat")

  order = 5

  sampx = poly_data['sampx'][0]
  sampy = poly_data['sampy']
  polyx = poly_data['polyx'][0]
  polyy = poly_data['polyy']

  w = do_regression(grand_order(sampx,order).T,sampy,order)
  targety = grand_order(polyx,order) * w

  fig = plt.figure("LS")
  ax = fig.add_subplot(111)
  # sample points
  ax.plot(poly_data['sampx'][0],sampy,color='r',linestyle='',marker='*',label="sample")
  # regression line
  ax.plot(polyx,targety,color='g',linestyle='-',marker='',label="predict")
  # poly points
  ax.plot(polyx,polyy,color='b',linestyle='-',marker='',label="target")
  print data_reading.MeanSquareError(targety,polyy)

  ax.legend()
  plt.show()