Git Product home page Git Product logo

easystream.jl's People

Contributors

conradox avatar filipebraida avatar nicolasmagalhaes avatar yaansz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

easystream.jl's Issues

Possibilidade de Loop no conector TablesConector

Existe a possibilidade de criar um loop na leitura de um conjunto de dados, tornando os dados ilimitados e os padrões se tornam recorrentes dada a janela de tempo
Poderia ter configurações de como é feita a recorrência, ex. pode ser voltar para o inicio ou até voltar de trás para frente.

Modificadores

A ideia é criar modificadores que serão chamados quando o stream obter novos dados. Um exemplo de modificador é o de filtragem. Nele o usuário poderá filtrar algumas colunas do stream de forma automática.
Exemplo de código.

using EasyStream

stream = EasyStream.Dataset1CDT(5)

filter = EasyStream.FilterModifier([:Column1, :Column2])
push!(stream, filter)

EasyStream.listen(stream)

A ideia veio do MOA

Possíveis ideias de modificadores:

  • Geração de Ruído #9
  • Geração de Drift #9

Criação de um Modifier para gerar novas colunas

No momento o FilterModifier, por conta de como foi implementado, só pode receber como input um vetor de elementos distintos, mas acho que em algum momento poderíamos incrementar esse Modifier ou até criar um outro Modifier de forma que pudéssemos usar ele para gerar uma coluna com os mesmo dados, mas com um nome diferente, ou seja, que ele tenha suporte pra receber como input um Pair{Symbol, Symbol}. A principio, isoladamente, não aparenta fazer muito sentido, mas na criação de um pipeline pra gerarmos uma nova coluna a partir da transformação linear de outra coluna acho que seria útil.

Altura em Centímetros
176

Caso quiséssemos gerar uma nova coluna que representasse a altura em polegadas.

    filter1 = FilterModifier(:Altura, :Altura => :Altura2)
    filter2 = Modifier(:Altura2, : x  -> x / 2,54)
    push!(stream, filter1)
    push!(stream, filter2)

Aí nós teríamos:

Altura em Centímetros Altura em Polegadas
176 68,75

Aprimoramento do conector para geração de dados

Ainda existe um problema que as funções geradoras podem gerar elementos sequenciais. Com isso, podem gerar sempre o elemento da mesma classe. Para isso, foi feito dessa forma:

total = 100
data = conn.generator(;n_samples = total, conn.args...)

Talvez seja necessário criar um cache para evitar esse tipo de coisa e não precisar gerar toda hora. Problema do cache quando houver modificação dos argumentos. Temos que definir uma solução para esse problema.

Avisos desnecessários no FilterModifier

Quando a coluna não está presente no stream, a função apply ficará avisando em todo novo dado que essa coluna é inexistente. A ideia que só avise uma vez por coluna.

Levantamento dos datasets para stream

A ideia é criar um módulo ou um pacote que terá diversos datasets consolidados na área de stream. Desta maneira, facilitando o uso de experimentos clássicos.

Levantar as seguintes informações:

  • Nome da Datasets
  • Onde está hospedado
  • Licença
  • Referência

Criação de parâmetros para dar sort ou random do TablesConnector

A ideia é que o usuário poderá definir se aqueles dados possuem alguma ordem (ex. possuir um timestamp já), forçar ser aleatório ou deixar como está. Talvez na ordem tenha que passar se é crescente ou decrescente.

Uma boa é verificar outros libs como fazem isso (para definir os parâmetros).

f(; orderby = :random)

Checagem do nome da coluna no FilterModifier

A coluna está sendo checada através da função string(col) in names(data)). Essa conversão é ruim, pois, desta forma, será utilizado a comparação de String e não de Symbol (que é mto mais rápida).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.