Exemplo n.º 1
0
def backstepwise(data, out, k):
    feature_num = len(data[0])
    index_array = [i for i in range(feature_num)]
    droper = feature_num - k
    
    for i in range(droper):
        beta = leastsquare.ls(data[:,np.array(index_array)], out)
        yhat = leastsquare.predict(data[:,np.array(index_array)], beta)
        theg2 = leastsquare.thegama2(yhat, out, len(index_array))
        z = leastsquare.z_score(beta, np.sqrt(theg2), data[:,np.array(index_array)])
        min_z = 999999999.
        min_idx = None
        for j in range(len(z)):
            if z[j] < min_z:
                min_z = z[j]
                min_idx = j
        index_array.remove(index_array[min_idx])
    
    beta = leastsquare.ls(data[:,np.array(index_array)], out)
    
    return beta, index_array
Exemplo n.º 2
0
def RSS(X, Y, beta):
    yhat = leastsquare.predict(X, beta)
    return np.sum((yhat-Y)**2)