def errop(ficheiro,W,total):
    dictionary,temp,y=cria_dados.read_output(ficheiro)
    X,Y=cria_dados.criaXY(dictionary,total,y)
    Y_estimativa=X*W
    #Y_estimativa=map(lambda temp: 2**temp[0],Y_estimativa.tolist())
    
    erroRR=np.abs((Y-Y_estimativa)/Y)
    
    mediaRR=sum(erroRR.transpose().toarray()[0])/erroRR.shape[0]

        
    '''
    erroRR=erroRR.transpose()
    erroRR=erroRR.tolist()[0]
    for i in erroRR:
        i=i**2
    mediaRR=(sum(erroRR)/len(erroRR))
    mediaRR=np.sqrt(mediaRR)
    '''    
    '''    
    estimativa=sum(Y)/len(Y)
    for i in Y:
         i=(i-estimativa)**2
    media=sum(Y)/len(Y)
    '''    
    return mediaRR#,media       #mediaRR -> MSE || media->erro de algoritmo parvo
import sys
sys.path.append("../")
import cria_dados
import sklearn.linear_model as lm
import numpy as np
import pdb
import scipy.io
import iteracoes as it
import scipy.sparse as sparse
import pickle
f="../../le_ficheiro/someta"

dictionary, total, y =cria_dados.read_output(f+"train.txt")
X,Y=cria_dados.criaXY(dictionary,total,y,False)

lambd=1000.0*X.shape[0]

#scipy.io.savemat("X.mat",mdict={'X':X})
#scipy.io.savemat("Y.mat",mdict={'Y':Y})
clf=lm.ElasticNet(alpha=lambd/X.shape[0],max_iter=900000,fit_intercept=False,normalize=False, l1_ratio=1.0)
cena=clf.fit(X.todense(),Y.todense())
dictionary,temp,y=cria_dados.read_output(f+"test.txt")
Xteste,Yteste=cria_dados.criaXY(dictionary,total,y,False)

YP=cena.predict(Xteste)
YP=sparse.csr_matrix(YP)
YP=YP.transpose()
erro=np.abs(YP-Yteste)
media=sum(np.array(erro.todense()))/erro.shape[0]
print "_____________________________________"
print media
Ejemplo n.º 3
0
    plt.subplot(212)
    plt.title("Percentagem de W com valor =0")
    import pylab    
    print yyy
    #pylab.ylim([0,100])
    plt.plot(yyy,"b",yyy,"ro")    
    plt.show()  
    return w_new,y_new

    
    



if __name__ == '__main__':
    dictionary,total,y=cria_dados.read_output("../le_ficheiro/train_meta.txt")
    X,Y=cria_dados.criaXY(dictionary,total,y)
    X,total=cria_dados.delcomun(X,total)

    Y=sparse.csr_matrix(Y)
    X=sparse.csr_matrix(X)
    
    vec=sparse.csr_matrix([5 for i in xrange(X.shape[1])])
    vec=vec.transpose()
    W,F=lasso(X,Y,vec,total)
    print "----------erro---------"    
    print "TESTE",RRegression_beta.erro("../le_ficheiro/test_meta.txt",W,total)
    print "-----------------------"
    print "TRAIN",RRegression_beta.erro("../le_ficheiro/train_meta.txt",W,total)
    print "-----------------------"
    print "DEV",RRegression_beta.erro("../le_ficheiro/dev_meta.txt",W,total)