
Ciência de Dados Open Source
Informações do documento
Autor | Guilherme Rodrigues Da Silva |
instructor | Prof. MSc. Guilherme De Cleva Farto |
Escola | Instituto Municipal de Ensino Superior de Assis – IMESA |
Curso | Ciência da Computação |
Tipo de documento | Trabalho de Conclusão de Curso |
Local | Assis |
Idioma | Portuguese |
Formato | |
Tamanho | 1.54 MB |
Resumo
I.Desafios da Ciência de Dados e Aprendizado de Máquina
Este trabalho aborda os desafios de lidar com o grande volume e variedade de dados (Big Data) gerados pelos avanços tecnológicos. A Ciência de Dados (Data Science), com o uso de Aprendizado de Máquina (Machine Learning) e análise estatística, é crucial para a gestão e análise desses dados, impactando tanto a comunidade científica quanto o mercado de negócios. A pesquisa explora conceitos de Data Science, Machine Learning, e ferramentas Open Source, com foco prático em suas aplicações. Um estudo de KOBSA (2001) mostrou que websites com serviços personalizados tiveram um aumento de 47% em novos clientes, demonstrando a importância do marketing direto e sistemas de recomendação baseados em dados. Em relação ao tránsito urbano, Cintra (2014) quantificou o custo dos congestionamentos em São Paulo em R$ 40 bilhões em 2012 (7,6% do PIB), enquanto Castro (2017) propõe otimizar o fluxo de veículos através da temporização inteligente de semáforos.
1. O Crescimento da Ciência de Dados e seus Desafios
O texto inicia reconhecendo o desafio atual de lidar com o enorme volume e variedade de dados gerados pela evolução tecnológica. Este crescimento exponencial de informações, frequentemente referenciado como Big Data, aumenta significativamente a complexidade dos processos de análise. Surge, então, a Ciência de Dados como a área responsável por gerenciar esses dados de múltiplas fontes, analisá-los e auxiliar na tomada de decisões por meio de procedimentos computacionais, aprendizagem de máquina e análises estatísticas. A crescente demanda por especialistas em Ciência de Dados é observada tanto na comunidade científica quanto no mercado de negócios, impulsionando a necessidade de pesquisas e compreensões mais profundas sobre os conceitos e ferramentas envolvidas. O objetivo central deste trabalho é justamente explorar esses conceitos de forma prática, combinando teoria e aplicação, para assim contribuir para o desenvolvimento desta área.
2. Aplicações da Ciência de Dados Marketing e Trânsito Urbano
O documento apresenta duas áreas de aplicação significativas para ilustrar a importância da Ciência de Dados. Em primeiro lugar, destaca-se o impacto no marketing direto. Uma pesquisa de KOBSA (2001) demonstra que sites que oferecem serviços personalizados conseguem um aumento de 47% no número de novos clientes, comprovando a eficácia dos sistemas de recomendação baseados em dados para alcançar maior sucesso neste setor. Em segundo lugar, a área de trânsito urbano é analisada como um campo crucial para a aplicação da Ciência de Dados. O aumento da urbanização e da quantidade de veículos nos centros urbanos geram congestionamentos, impactando negativamente a economia. Cintra (2014) calcula que os congestionamentos em São Paulo resultaram em um prejuízo de 40 bilhões de reais em 2012, equivalente a 7,6% do PIB da cidade. Estudos como o de Castro (2017), que propõe a otimização do fluxo de veículos através da temporização inteligente de semáforos, demonstram o potencial da Ciência de Dados em resolver problemas complexos em áreas urbanas, mostrando ainda que uma redução de 27,63% no tempo de viagem na região metropolitana de São Paulo geraria um aumento de 15,75% na produtividade dos trabalhadores.
3. Ciência de Dados na Área da Saúde e Tomada de Decisões
Além das aplicações em marketing e trânsito, o documento menciona a contribuição da Ciência de Dados na área da saúde. Métodos estatísticos avançados são usados para analisar grandes conjuntos de dados biológicos, visando identificar e predizer as funções de genes e proteínas. Estudos citados, como Wang et al. (2003) e Silva (2010), mostram que a análise in silico, combinada com experimentos laboratoriais, permite a identificação de famílias inteiras de genes a partir de informações genéticas em bancos de dados públicos. Em resumo, a área de saúde também se beneficia do potencial da Ciência de Dados para o avanço do conhecimento científico e novas descobertas. A crescente necessidade de soluções que extraiam informações relevantes para apoiar a tomada de decisões impulsiona o desenvolvimento e aplicação da Ciência de Dados em diversos setores, destacando-se como um campo interdisciplinar que utiliza técnicas de diversas áreas científicas para extrair informação e conhecimento a partir de dados, conforme Dhar (2013).
II.Ferramentas Open Source em Machine Learning
O estudo se concentra em iniciativas Open Source para Machine Learning, focando em ferramentas como TensorFlow (Google), Keras, Scikit-learn, PyTorch, e Theano. A escolha destas ferramentas se justifica pela sua popularidade, capacidade e contribuição para a democratização da Inteligência Artificial (IA). A pesquisa explora a história do movimento Open Source, desde o projeto GNU até a Open Source Initiative (OSI), destacando a importância de softwares livres como alternativa ao software proprietário. A facilidade de uso e a possibilidade de construção de gráficos complexos no PyTorch, e a rápida prototipagem e interação com dados no Theano são fatores importantes para a escolha destas ferramentas no contexto de projetos de Data Science.
1. O Movimento Open Source e sua Importância em Machine Learning
A seção discute o contexto das ferramentas Open Source em Machine Learning, iniciando com um breve histórico do movimento Open Source. Menciona-se o projeto GNU (1983), iniciado por Richard Stallman, com o objetivo de criar um sistema operacional livre, como alternativa ao Unix. A Free Software Foundation, criada em 1984, consolidou o movimento, levando ao surgimento do sistema operacional GNU/Linux e de inúmeros outros softwares livres sob a Licença Pública Geral. A Open Source Initiative (OSI), criada em 1998 por Eric Raymond e Linus Torvalds, promoveu a adoção do software livre no mundo dos negócios, utilizando o termo "Open Source" para facilitar a aceitação por empresas mais conservadoras. A adoção de ferramentas Open Source em Machine Learning é justificada pela sua contribuição para a democratização da Inteligência Artificial (IA), tornando-a mais acessível a pesquisadores e desenvolvedores.
2. Ferramentas Open Source em Machine Learning TensorFlow Keras e Scikit learn
A pesquisa destaca algumas das principais iniciativas Open Source utilizadas no contexto de Machine Learning. TensorFlow, desenvolvida pelo Google, é apresentada como uma biblioteca para tarefas de aprendizagem de máquina que utiliza grafos para representar modelos de redes neurais. Keras, uma biblioteca de alto nível escrita em Python, é descrita como um frontend para TensorFlow, simplificando o trabalho com redes neurais. Scikit-learn, originalmente desenvolvido por David Cournapeau no Google Summer of Code, é mencionado como uma biblioteca em Python para Machine Learning que fornece algoritmos para regressão, classificação, agrupamento, entre outros, integrando-se bem com as bibliotecas numéricas NumPy e SciPy. O Google Summer of Code é destacado como um programa que incentiva estudantes desenvolvedores a contribuírem para projetos de software de código aberto.
3. PyTorch e Theano Características e Filosofias
O texto apresenta PyTorch e Theano como bibliotecas Open Source adicionais para Machine Learning. PyTorch, desenvolvida pelo Facebook, é descrita como uma biblioteca imperativa para Python, baseada no Torch (Lua), destacando-se pela facilidade na construção de gráficos, mesmo os de alta complexidade. A execução imediata dos cálculos, característica da filosofia imperativa, facilita a depuração do código. Theano, por sua vez, utiliza Python como linguagem de interface, permitindo prototipagem rápida e interação com dados. Embora Python tenha limitações em cálculos matemáticos intensivos, Theano supera essas restrições com mecanismos de otimização, baseando-se na biblioteca NumPy e oferecendo extensibilidade através de expressões gráficas personalizáveis em C++, CUDA ou Python. Ambas as bibliotecas são relevantes para o desenvolvimento de aplicações de Machine Learning.
III.Algoritmos de Machine Learning e Aplicações Práticas
O trabalho apresenta e aplica diferentes algoritmos de Machine Learning: regressão linear, regressão logística, e K-Means. A regressão logística é usada para prever a sobrevivência de passageiros do Titanic, baseado em um dataset com informações como classe, sexo, idade e valor da passagem. A análise de um dataset fictício de uma empresa ilustra o uso do algoritmo K-Means para clusterização de dados e a regressão linear para determinar a influência de fatores como tempo no app e tempo no site na quantia anual gasta pelos usuários. Essa análise serve para auxiliar a tomada de decisões estratégicas da empresa, com foco em melhoria da experiência do usuário no aplicativo.
1. Algoritmos de Machine Learning Utilizados
A pesquisa utiliza três algoritmos distintos de Machine Learning para a exploração de bases de dados: Regressão Linear, Regressão Logística e K-Means. A Regressão Linear, um algoritmo de aprendizagem supervisionada, estima o valor de uma variável com base em outras variáveis. Um exemplo citado é a estimativa do tamanho da mão de uma pessoa a partir de sua altura. Já a Regressão Logística, também de aprendizagem supervisionada, é empregada em problemas de classificação binária, onde a saída é um valor binário (0 ou 1). O algoritmo K-Means, pertencente à aprendizagem não supervisionada, é utilizado para agrupamento de dados. Ele divide os dados em 'n' grupos, atribuindo cada dado ao grupo cuja média é mais próxima. A escolha destes algoritmos se justifica por sua ampla aplicação e capacidade de lidar com diferentes tipos de problemas de análise de dados, demonstrando a versatilidade das técnicas de Machine Learning.
2. Aplicação Prática Previsão de Sobrevivência no Naufrágio do Titanic
Um exemplo prático de aplicação dos algoritmos de Machine Learning é apresentado utilizando um dataset de passageiros do Titanic. Este dataset contém informações sobre cada passageiro, como identidade, sobrevivência (sim/não), classe, sexo, idade, parentes a bordo, número do bilhete, valor da passagem, cabine e porto de embarque. Com um total de 418 passageiros, o objetivo é prever, com base nos dados, se um passageiro específico sobreviveria ou não ao naufrágio. Para esta tarefa, o algoritmo de Regressão Logística é utilizado, mostrando sua capacidade de lidar com um problema de classificação binária. A escolha do algoritmo se justifica pela natureza binária da variável dependente (sobrevivência), adequada para o modelo logístico.
3. Estudo de Caso Análise de Dados de Empresa e Otimização de Lucros
Outro exemplo prático se concentra em um estudo de caso com dados de uma empresa, com o objetivo de determinar onde investir para aumentar o lucro. A análise busca prever a "Quantia anual gasta" pelos clientes, utilizando como variáveis independentes o "Tempo médio de sessão", "Tempo no App", "Tempo no Site" e "Tempo de adesão". Para isso, são usados algoritmos de Regressão Linear, com o intuito de identificar os coeficientes de cada variável em relação ao valor gasto. Os resultados revelam a maior influência do "Tempo no App" nos gastos, indicando que a empresa deve focar em melhorar a experiência do usuário nesse canal para aumentar seus lucros. A aplicação da Regressão Linear mostra sua utilidade em problemas de previsão e otimização em contextos empresariais, demonstrando a importância da análise de dados para a tomada de decisões estratégicas.
4. Aplicação Prática Clusterização com K Means em Dataset Fictício
Para exemplificar o algoritmo de K-Means, o documento utiliza um dataset fictício gerado pela função 'make_blobs' da biblioteca Scikit-learn. Esta função permite criar datasets com múltiplos clusters (grupos), fornecendo controle sobre o número de amostras, características e centros. O objetivo é realizar a clusterização dos dados em um número determinado de grupos, e comparar a separação realizada pelo algoritmo com a separação real (conhecida, por se tratar de um dataset fictício). Apesar da comparação direta ser possível nesse contexto, destaca-se que em problemas reais essa comparação não é tão direta, pois o K-Means é um algoritmo de aprendizagem não-supervisionada, onde a resposta (rótulos) não é previamente conhecida. Esta aplicação demonstra a capacidade do K-Means em agrupar dados sem supervisão, um aspecto importante para análise exploratória e descoberta de padrões em conjuntos de dados complexos.
IV.Redes Neurais Artificiais e Aprendizado de Máquina
A pesquisa inclui uma discussão sobre Redes Neurais Artificiais (RNAs), comparando-as com estruturas neurais biológicas e destacando suas capacidades de aprendizado, generalização e processamento paralelo. O texto revisa o histórico das RNAs, desde os modelos matemáticos de McCulloch até as arquiteturas modernas, incluindo os tipos de aprendizado supervisionado, não supervisionado e por reforço. A capacidade das RNAs de lidar com dados ruidosos e incompletos é enfatizada, assim como sua aplicação em problemas complexos onde a definição de um algoritmo específico para cada problema é desnecessária.
1. Redes Neurais Artificiais Conceito e Analogia Biológica
A seção define Redes Neurais Artificiais (RNAs) como modelos matemáticos que se assemelham às estruturas neurais biológicas, possuindo capacidade computacional através de aprendizado e generalização. Segundo Rezende (2003), são modelos matemáticos com capacidade computacional obtida por aprendizado e generalização. Goldschmidt (2010) as descreve como modelos computacionais não lineares inspirados no cérebro, buscando reproduzir características humanas como aprendizado, generalização, abstração e associação. Sua estrutura as torna eficazes no aprendizado de padrões a partir de dados históricos não lineares, incompletos, ruidosos e até contraditórios. A analogia com o cérebro humano é central, pois, assim como o cérebro aprende e toma decisões, as RNAs buscam replicar essa capacidade de processamento de informações, armazenamento de conhecimento baseado em aprendizagem, e disponibilização deste conhecimento para aplicações específicas.
2. Histórico e Definição das Redes Neurais Artificiais
O texto apresenta um breve histórico da neurocomputação, iniciando na década de 40 com os trabalhos do neurofisiologista Warren McCulloch, que apresentou um modelo matemático de simulação do processo biológico em células nervosas. Este modelo inicial possuía apenas uma saída, calculada a partir da soma dos valores de entrada. A definição formal de uma rede neural artificial, segundo Hecht-Nielsen (1990), é de uma estrutura que processa informação de forma paralela e distribuída, composta por unidades computacionais interconectadas por conexões unidirecionais. Cada unidade possui uma única conexão de saída, que pode ser dividida em diversas conexões conforme necessário. As RNAs processam informações com base na estrutura de neurônios do cérebro, imitando a capacidade humana de aprendizagem e tomada de decisão baseada em experiência. Assim, uma RNA pode ser interpretada como um esquema de processamento que armazena conhecimento e o torna disponível para uma determinada aplicação.
3. Características Essenciais das RNAs Aprendizado e Generalização
Duas características principais das RNAs são destacadas: aprendizado por experiência e generalização. As RNAs aprendem padrões a partir de dados através de repetidas apresentações, buscando abstrair modelos de conhecimento automaticamente. A capacidade de generalização permite que as RNAs lidem com ruídos e distorções nos dados, respondendo positivamente a novos padrões, mesmo que diferentes dos dados de treinamento. Uma RNA, de forma simplificada, possui um sistema de neurônios e conexões ponderadas por pesos, organizados em camadas (entrada, escondida e saída). A arquitetura de uma RNA simples é ilustrada, mostrando os neurônios como círculos e as ligações como linhas representando os pesos. A capacidade de generalizar é fundamental para o sucesso das RNAs em aplicações práticas, permitindo-lhes lidar com a imprecisão inerente aos dados reais.
V.Dispositivos Móveis e Embarcados em Machine Learning
Considerando o crescimento exponencial de dispositivos móveis e embarcados, projetados em 50 bilhões de conexões até 2020 pela Dataprev (2017), a pesquisa discute os desafios de implementar Machine Learning nesses dispositivos. A limitação de recursos em dispositivos de baixo custo é um paradigma importante, e o texto menciona pesquisas da Microsoft que buscam tornar o aprendizado de máquina mais eficiente para essa aplicação, incluindo abordagens inovadoras como o uso de redes neurais com poucos bits.
1. O Crescimento dos Dispositivos Móveis e Embarcados
A seção inicia reconhecendo o aumento significativo no número de dispositivos móveis e embarcados, projetando a existência de 50 bilhões de dispositivos conectados em 2020, com 27 bilhões de conexões máquina-a-máquina. A Dataprev (2017) estima um acréscimo de 15 trilhões de dólares ao PIB mundial nos próximos anos devido a esse crescimento. Essa alta demanda por dispositivos conectados destaca a necessidade de investimentos em tecnologias que os tornem inteligentes. O texto argumenta que a Aprendizagem de Máquina se torna fundamental para o desenvolvimento e aprimoramento desses dispositivos, impulsionando a necessidade de pesquisas e inovações nesta área, para atender a essa crescente demanda e tirar proveito do potencial econômico.
2. Desafios da Implementação de Machine Learning em Dispositivos Embarcados
A seção discute os desafios na implementação de Machine Learning em dispositivos móveis e embarcados. Atualmente, muitos desses dispositivos atuam como sensores, coletando e enviando dados para modelos de aprendizado de máquina na nuvem. O grande desafio, conforme Erfani (2017), é a necessidade de grande capacidade computacional e armazenamento para processar esses dados. Implementar todo esse hardware em dispositivos embarcados de baixo custo é o paradigma central a ser superado. O texto menciona pesquisas da Microsoft que buscam soluções para essa problemática, focando em duas abordagens principais: reduzir o tamanho das redes neurais, utilizando poucos bits (em alguns casos apenas um bit) em vez do padrão de 32 bits, e otimizar os algoritmos de treinamento para maior eficiência em seus nichos específicos, buscando um melhor desempenho com menores recursos.