Tendo recentemente começado a me ensinar Machine Learning e Análise de Dados, estou me deparando com uma parede de tijolos sobre a necessidade de criar e consultar grandes conjuntos de dados. Gostaria de pegar os dados que agreguei na minha vida profissional e pessoal e analisá-los, mas não tenho certeza da melhor maneira de fazer o seguinte:
Como devo armazenar esses dados? Excel? SQL? ??
Qual é uma boa maneira para um iniciante começar a tentar analisar esses dados? Sou um programador profissional de computadores, portanto a complexidade não está nos programas de gravação, mas é mais ou menos específica no domínio da análise de dados.
EDIT: Desculpas pela minha imprecisão, quando você começa a aprender sobre algo, é difícil saber o que você não sabe, sabe? ;)
Dito isto, meu objetivo é aplicar isso a dois tópicos principais:
Métricas da equipe de software (pense na velocidade ágil, na quantificação de riscos, na probabilidade de uma iteração concluída com êxito, considerando o número de pontos da história)
Aprendizado de máquina (ex. Exceções do sistema ocorreram em um determinado conjunto de módulos, qual é a probabilidade de um módulo lançar uma exceção no campo, quanto custará isso, o que os dados podem me dizer sobre os principais módulos a serem aprimorados me o melhor retorno possível, preveja qual parte do sistema o usuário desejará usar a seguir para começar a carregar dados, etc.).
fonte
Respostas:
Se você tiver grandes conjuntos de dados - aqueles que fazem o Excel ou o Bloco de Notas carregar lentamente, um banco de dados é um bom caminho. O Postgres é de código aberto e muito bem feito, e é fácil conectar-se ao JMP, SPSS e outros programas. Você pode querer experimentar neste caso. Você não precisa normalizar os dados no banco de dados. Caso contrário, o CSV é favorável ao compartilhamento.
Considere o Apache Hive se você tiver mais de 100 milhões de linhas.
Em termos de análise, aqui estão alguns pontos de partida:
Descreva uma variável:
Descreva o relacionamento entre variáveis:
Outliers? Verifique a distância de Mahalanobis
Gráfico em mosaico para categorias
Preveja um número real (como preço): regressão
Técnicas de regressão OLS ou regressão de aprendizado de máquina
quando a técnica usada para prever é compreensível pelos seres humanos, isso é chamado de modelagem. Por exemplo, uma rede neural pode fazer previsões, mas geralmente não é compreensível. Você pode usar a regressão para encontrar também os principais indicadores de desempenho.
Prever associação à classe ou probabilidade de associação à classe (como aprovada / reprovada): classificação
Coloque observações em grupos "naturais": agrupamento
Coloque atributos em grupos "naturais": fatoração
Quantificando risco = desvio padrão, ou proporção de vezes que "coisas ruins" acontecem x quão ruins elas são
Probabilidade de uma iteração concluída com êxito, dada o número x de pontos da história = Regressão logística
Boa sorte!
fonte
Se você estiver olhando para falhas do sistema, poderá estar interessado no seguinte documento, empregando técnicas de aprendizado de máquina para diagnóstico de falhas no eBay. Pode dar uma idéia de que tipo de dados coletar ou como uma equipe abordou um problema específico em um domínio semelhante.
Se você está apenas começando, algo como RapidMiner ou Orange pode ser um bom sistema de software para começar a jogar com seus dados rapidamente. Ambos podem acessar os dados em diversos formatos (arquivo csv, banco de dados, entre outros).
fonte
Sua pergunta é tão ampla que a resposta é: depende. Ainda assim, para dar uma resposta mais útil, indicarei o que acho comum em Pesquisa.
O armazenamento de dados geralmente é feito em arquivos de texto. Ao fazer análises estatísticas, você trabalha principalmente com uma coleção de um tipo de vetores. Isso pode ser visto como uma tabela e escrito no formato csv. A razão pela qual essas coisas são frequentemente armazenadas em texto simples é porque simplesmente todas as ferramentas podem lê-las e é fácil transformá-las.
Sobre a análise, isso é um pouco mais difícil de ser específico. Se for bidimensional, faça um gráfico de dispersão. Se for de alta dimensão, faça o PCA e veja onde existem os primeiros componentes principais para descobrir variáveis importantes. Se você tiver dados de tempo, plote-os. Tudo isso é tão geral que, para ser útil, você precisa realmente indicar melhor quais são seus dados.
fonte
A única coisa em que o ROOT é realmente bom é armazenar enormes quantidades de dados. ROOT é uma biblioteca C ++ usada em física de partículas; ele também vem com ligações Ruby e Python, para que você possa usar pacotes nessas linguagens (por exemplo, NumPy ou Scipy) para analisar os dados quando achar que o ROOT oferece poucas possibilidades prontas para uso.
O formato de arquivo ROOT pode armazenar árvores ou tuplas, e as entradas podem ser lidas sequencialmente, para que você não precise manter todos os dados na memória ao mesmo tempo. Isso permite analisar petabytes de dados, algo que você não gostaria de tentar com Excel ou R.
A documentação do ROOT I / O pode ser acessada aqui .
fonte