Beispiel #1
0
def Association(idTabela, filtro, qtd_regras):

    tabela = imp.ObterTabela(idTabela)

    sql = dbTab.GerarSQL(idTabela, 'S')
    if tabela.sql_sem_hist != None and tabela.sql_sem_hist != '':
        if filtro == 'H':
            sql = sql + ' WHERE NOT (' + tabela.sql_sem_hist + ')'
        elif filtro == 'A':
            sql = sql + ' WHERE (' + tabela.sql_sem_hist + ')'

    lista = db.consultarSQL(sql)
    regras = desc.Association(lista, int(qtd_regras))

    dp_regras = json.dumps(regras)

    session = db.getSession()
    tabDesc = session.query(db.TabelaDescricao).filter_by(
        id_tabela=idTabela).filter_by(id_alg=id_alg_rule_association).first()
    if tabDesc == None:
        tabDesc = db.TabelaDescricao(None, idTabela, id_alg_rule_association,
                                     dp_regras, datetime.now())
        session.add(tabDesc)
    else:
        tabDesc.modelo = dp_regras
        tabDesc.dt_processo = datetime.now()

    session.commit()
    session.close()

    return tabDesc
def profAlunos():
    seg.ChecarPerfil(seg.PERFIL_Professor)

    colunaIdAluno = meta.ObterColunaIdAluno()
    nomeColunaClasse, idColunaClasse = meta.ObterColunaClasse(
        colunaIdAluno.id_tabela)

    sql = dbTab.GerarSQL(colunaIdAluno.id_tabela, 'O',
                         [colunaIdAluno.id, idColunaClasse])
    df = dm.db.consultarSQLDataFrame(sql)

    lista = []
    for index, row in df.iterrows():
        login_aluno = row[colunaIdAluno.nome]
        usuario = usu.ObterUsuarioPorLogin(login_aluno)
        lista.append(usuario)

    campos = ({
        'campo': 'login',
        'titulo': 'matricula'
    }, {
        'campo': 'nome',
        'titulo': 'Nome'
    })

    grd = comp.grid('Lista de Alunos', lista, campos)

    return dict(grid=grd)
Beispiel #3
0
def ObterAlunosParaRecomendacoes(id_aluno):
    listaMensanges = []
    nomeAluno = ''
    tx_acerto = 0

    nomeColuna, id_colunaClasse = meta.ObterColunaClasse()

    colunaClasse = meta.ObterColuna(id_colunaClasse)
    tabela = imp.ObterTabela(colunaClasse.id_tabela)

    colunaIdAluno = meta.ObterColunaIdAluno(colunaClasse.id_tabela)

    listaAlunos = []
    listaColunas = []
    listaColunas.append(colunaIdAluno.id)
    listaColunas.append(colunaClasse.id)

    sql = dbTab.GerarSQL(tabela.id, 'O', listaColunas)
    dfAlunos = db.consultarSQLDataFrame(sql)

    session = db.getSession()

    for index, row in dfAlunos.iterrows():
        usuario = session.query(
            db.Usuario).filter_by(login=row[colunaIdAluno.nome]).first()
        usuario.selecionado = False

        if id_aluno == usuario.id:
            nomeAluno = usuario.nome
            usuario.selecionado = True

        listaAlunos.append(usuario)

    session.close()

    algPredicao = ObterTabelaPredicao(tabela.id)
    for alg in algPredicao.Alg:
        if alg.selecionado:
            tx_acerto = alg.tx_acerto

    if id_aluno != 0:
        listaMensanges = ObterRecomendacoesPorAluno(id_aluno)

    return dict(listaAlunos=listaAlunos,
                listaMensanges=listaMensanges,
                id_aluno=id_aluno,
                nomeAluno=nomeAluno,
                tx_acerto=tx_acerto)
Beispiel #4
0
def Cluster(idTabela, filtro, qtd_clusters):

    tabela = imp.ObterTabela(idTabela)

    sql = dbTab.GerarSQL(idTabela, 'S')
    if tabela.sql_sem_hist != None and tabela.sql_sem_hist != '':
        if filtro == 'H':
            sql = sql + ' WHERE NOT (' + tabela.sql_sem_hist + ')'
        elif filtro == 'A':
            sql = sql + ' WHERE (' + tabela.sql_sem_hist + ')'

    lista = db.consultarSQLDataFrame(sql)
    modeloDados, listaCopy = ut.PrepararLista(lista)

    kmeans = desc.Cluster(listaCopy, int(qtd_clusters))
    clusters = kmeans.cluster_centers_
    labels = kmeans.labels_

    display = list()
    for x in range(0, int(qtd_clusters)):
        display.append('Cluster_' + str(x))

    objModelo = {
        'n_clusters': qtd_clusters,
        'modeloDados': modeloDados,
        'clusters': clusters.tolist(),
        'labels': labels.tolist(),
        'display': display
    }

    md_clusters = json.dumps(objModelo)

    session = db.getSession()
    tabDesc = session.query(db.TabelaDescricao).filter_by(
        id_tabela=idTabela).filter_by(id_alg=id_alg_clusters).first()
    if tabDesc == None:
        tabDesc = db.TabelaDescricao(None, idTabela, id_alg_clusters,
                                     md_clusters, datetime.now())
        session.add(tabDesc)
    else:
        tabDesc.modelo = md_clusters
        tabDesc.dt_processo = datetime.now()

    session.commit()
    session.close()

    return None
Beispiel #5
0
def CalcularPreditivo(idTabela, id_coluna, tam_tst):
    sql = dbTab.GerarSQL(idTabela, 'S')
    lista = db.consultarSQLDataFrame(sql)

    del lista['rowid']

    colunaClasse = meta.ObterColuna(id_coluna)

    modeloDados, listaCopy = ut.PrepararLista(lista)
    listaModeloPred = None

    jsModeloDados = json.dumps(modeloDados, default=iDefault)

    if colunaClasse.tipo == 'N':
        listaCopy[colunaClasse.nome] = ut.TransformarNumeros(
            lista[colunaClasse.nome].values())
        listaModeloPred = pred.ModeloReg(listaCopy, colunaClasse.nome, tam_tst)
    else:
        listaModeloPred, clfTree = pred.ModeloClf(listaCopy, colunaClasse.nome,
                                                  tam_tst)

    lstPesos = pred.ObterPesos(lista, clfTree, colunaClasse.nome,
                               colunaClasse.val_aluno_risco)
    strPesos = json.dumps(lstPesos)

    maiorTxAcerto = 0
    id_alg_sel = 0
    for modelo in listaModeloPred:
        txAcerto = modelo['TxAcerto']

        if maiorTxAcerto < txAcerto:
            id_alg_sel = modelo['id_alg']
            maiorTxAcerto = txAcerto

    tabPred = db.TabelaPredicao(0, idTabela, jsModeloDados, None, tam_tst,
                                strPesos, id_alg_sel)

    tabPred = SalvarTabelaPredicao(tabPred)
    SalvarTabelaPredicaoAlg(tabPred.id, listaModeloPred, lstPesos)

    #modelo2, listaCopy2 = ut.PrepararListaComModelo(modeloDados, lista)

    ExportarDados(idTabela)

    return listaModeloPred
Beispiel #6
0
def Outlier(idTabela, filtro, campoD, campoV):

    tabela = imp.ObterTabela(idTabela)

    sql = dbTab.GerarSQL(idTabela, 'S')
    if tabela.sql_sem_hist != None and tabela.sql_sem_hist != '':
        if filtro == 'H':
            sql = sql + ' WHERE NOT (' + tabela.sql_sem_hist + ')'
        elif filtro == 'A':
            sql = sql + ' WHERE (' + tabela.sql_sem_hist + ')'

    lista = db.consultarSQLDataFrame(sql)

    campoVal = meta.ObterColuna(campoV).nome
    campoDesc = meta.ObterColuna(campoD).nome

    existeOutlier, listaDf = desc.Outliers(lista, campoVal, campoDesc)

    modelo = {
        'campoV': campoVal,
        'campoD': campoDesc,
        'existe': existeOutlier,
        'lista': listaDf
    }

    md_outlier = json.dumps(modelo)

    session = db.getSession()
    tabDesc = session.query(db.TabelaDescricao).filter_by(
        id_tabela=idTabela).filter_by(id_alg=id_alg_outliers).first()
    if tabDesc == None:
        tabDesc = db.TabelaDescricao(None, idTabela, id_alg_outliers,
                                     md_outlier, datetime.now())
        session.add(tabDesc)
    else:
        tabDesc.modelo = md_outlier
        tabDesc.dt_processo = datetime.now()

    session.commit()
    session.close()

    return "OK"
Beispiel #7
0
def ExportarDados(id_tabela):
    tabela = imp.ObterTabela(id_tabela)
    #-- Rede Gazeta
    #path = "C:/Users/bstoll/source/repos/LA-Intervencao/LA-Intervencao/arquivosUpld"
    #-- pythonanywhere
    path = "/home/bstoll/mysite/arquivosUpld"
    #-- Casa
    #path = "C:/Users/Bruno Stoll/source/repos/LA-Intervencao/LA-Intervencao"

    pathFile = "{path}/{file}".format(path=path, file=tabela.nome + ".csv")

    listaColunas = meta.ListarColunas(id_tabela)
    ar_lst_cols = []
    for col in listaColunas:
        ar_lst_cols.append(col.id)

    sql = dbTab.GerarSQL(id_tabela, 'O', ar_lst_cols)
    df = dbTab.db.consultarSQLDataFrame(sql)
    if os.path.isfile(pathFile):
        os.remove(pathFile)

    df.to_csv(pathFile, index=False)
Beispiel #8
0
def GerarDfVisaoPln(id_tabela, colunasDimensoes, colunasMedidas, filtro=''):
    # montar itens da visão
    listaColunas = []
    listaTodasColunas = []
    listaColunasExibGrd = []
    defColunasAgrp = {  }
    campoCateg = None
    filtroClasse = 'O'
    for coluna in colunasDimensoes:
        listaColunas.append(coluna.id)
        nomeCampo = coluna.nome

        if campoCateg == '':
            campoCateg = coluna.nome
        else:
            campoSerie = coluna.nome

        defColunasAgrp[coluna.id] = ''
        listaTodasColunas.append(nomeCampo)
        listaColunasExibGrd.append( {'campo': coluna.nome, 'titulo': coluna.titulo } )

    for coluna in colunasMedidas:
        listaColunas.append(coluna.id)
        nomeCampo = coluna.nome

        if coluna.tipo == 'N':
            defColunasAgrp[coluna.id] = 'Sum'

        listaTodasColunas.append(nomeCampo)
        listaColunasExibGrd.append( {'campo': coluna.nome, 'titulo': coluna.titulo } )

    sql = dbTab.GerarSQL(id_tabela, filtroClasse, listaColunas, True, defColunasAgrp, filtro)
    df = db.consultarSQLDataFrame(sql)
    for col in df.columns:
        if col == 'final_result':
            df[col][df[col] == 'LA :: Prev :: Falha'] = 'Falha'
            df[col][df[col] == 'LA :: Prev :: Sucesso'] = 'Sucesso'

    return df
def GerarSQLTop10(idTabela):
    return dbTab.GerarSQL(idTabela) + ' LIMIT 10'
Beispiel #10
0
def ObterDadosPrevisao(idTabela):
    sql = dbTab.GerarSQL(idTabela, 'O')
    return db.consultarSQLDataFrame(sql)