# Inteligência Artificial (IA) ## Introdução à Inteligência Artificial Esta seção fornece uma visão geral da Inteligência Artificial (IA), de suas aplicações e definições. ### Pré-requisitos - Nenhum ### Lista de Vídeos 1. [O Que É AI? | Inteligência Artificial | Que é Inteligência Artificial? | IA em 5 Mins |Simplilearn](https://www.youtube.com/watch?v=ad79nYk2keg) 2. [O Que é Inteligência Artificial? | Inteligência Artificial em 5 Minutos | IA Explicada | Simplilearn](https://www.youtube.com/watch?v=uMzUB89uSxU) 3. [Inteligência Artificial em 10 Minutos | Que é Inteligência Artificial? | IA Explicada | Simplilearn](https://www.youtube.com/watch?v=cW9shEB8h5E) 4. [🔥 Inteligência Artificial Full Course 2023 | Tutorial de IA para Iniciantes | Simplilearn](https://www.youtube.com/watch?v=BaFz5q9Ffkg) 5. [🔥 Inteligência Artificial Tutorial | Tutorial de IA para Iniciantes | 2023 | IA | Simplilearn](https://www.youtube.com/watch?v=PGRUefsr4CU) 6. [🔥 Inteligência Artificial Full Course 2024 | Curso Completo de IA | Curso de IA e ML Completo | Simplilearn](https://www.youtube.com/watch?v=ltwjZy_toNs) 7. [🔥 CURSO INGRÁTIS de Inteligência Artificial Online com Certificado | 🔥 Curso online de IA | Simplilearn](https://www.youtube.com/watch?v=ktjJMDVtWKU) 8. [Curso de Inteligência Artificial | Curso Completo de IA | Tutorial de IA | Simplilearn](https://www.youtube.com/watch?v=PXwUEJVSAeA) 9. [Inteligência Artificial | Futuro da IA - Bill Gates, Sundar Pichai, Jack Ma | Simplilearn](https://www.youtube.com/watch?v=bZP4VXpCk6A) 10. [IA no Setor de Saúde 2022 | Inteligência Artificial no Setor de Saúde | IA para Iniciantes | Simplilearn](https://www.youtube.com/watch?v=-aHBwTQQyNU) 11. [IA eProcessamento de Linguagem Natural | Surgimento de Robôs AI | IA em 2022 | ElonMusk BillGates SundarPichai|Simplilearn](https://www.youtube.com/watch?v=wTbrk0suwbg) 12. [Curso de Engenharia de IA | Curso Completo de IA | Tornar-se um Engenheiro de IA | Simplilearn](https://www.youtube.com/watch?v=ZUdydQ1XGb0) 13. [🚀🚀 AI para Tomada de Decisões: Estratégias e Aplicações de Negócios #Vídeos Curtos | Simplilearn](https://www.youtube.com/watch?v=-xoInKzSRHM) 14. [Impacto da IA no Futuro | Surgimento da IA (Elon Musk, Bill Gates, Sundar Pichai, Jack Ma) |Simplilearn](https://www.youtube.com/watch?v=uz8PSSOB-4E) 15. [IA ou Processamento de Dados? | Carreira em IA e Processamento de Dados | Simplilearn](https://www.youtube.com/watch?v=oWVt0Ttewwg) 16. [🔥 Inteligência Artificial | Curso de IA | Projetos de IA para Iniciantes | Simplilearn](https://www.youtube.com/watch?v=qcBdLyK9G6U) 17. [Como Criar Vídeos de Produtos Usando AI | Ferramentas para Vídeos de Produtos de AI | Ferramentas de AI | Simplilearn](https://www.youtube.com/watch?v=5kqvRXKs3Zk) ### Transcrições #### O Que É AI? | Inteligência Artificial | Que é Inteligência Artificial? | IA em 5 Mins |Simplilearn URL: https://www.youtube.com/watch?v=ad79nYk2keg Linguagem: en Imagine uma máquina que pode armar o seu armário exatamente como você gostaria, ou servir um café personalizado a cada membro da família. Não dificulta o seu dia, não? Essas são as produções da Inteligência Artificial, mas por que usar o termo Inteligência Artificial? Bem, essas máquinas são artificialmente incorporadas com inteligência humana para executar tarefas de maneira que o fazemos. Esta inteligência é construída usando complexos algoritmos e funções matemáticas, mas a IA não é tão óbvia como nos exemplos anteriores. Em fato, a IA é usada nos celulares inteligentes, carros, _feeds_ sociais, jogos, bancos, vigilância e muitos outros aspectos de nossa vida diária. A questão real é o que a IA faz no núcleo? Aqui está um robô que construímos em nosso laboratório, que agora é lançado numa área. A espessura da luz, o terreno e a geometria da área variam mas o robô deve executar conforme o esperado. A capacidade de reagir adequadamente a uma nova situação é chamada de aprendizado generalizado. O robô está agora num cruzamento, um que é macadameado, e o outro é rochoso. O robô deve determinar qual caminho deve seguir com base nas circunstâncias, isto corresponde à capacidade de raciocínio do robô. Após uma breve caminhada, o robô agora encontra-se num cascatimpo que não consegue atravessar usando a passarela fornecida como entrada, o robô consegue atravessar o cascatimpo por meio da passarela. Então, o nosso robô utiliza a entrada fornecida e encontra solução para um problema. A capacidade de resolver problemas, adaptar-se, raciocinar é o temperamento artificial do robô. Em resumo, a IA proporciona a máquinas a capacidade de adaptar, raciocinar e fornecer solução. #### O Que é Inteligência Artificial? | Inteligência Artificial In 5 Minutes | IA Explicada | Simplilearn URL: https://www.youtube.com/watch?v=uMzUB89uSxU Linguagem: en Foi um final de semana, e Juan decidiu assistir ao filme mais recomendado por Netflix no apartamento de seu amigo. Antes de sair, perguntou a Siri sobre o tempo e descobriu que iria chover. Então, decidiu utilizar o Tesla para o longo percurso e ligou para o modo autopiloto na autoestrada. Após um dia memorável, voltou para casa e começou a se perguntar como a tecnologia facilitou tudo. Fiz alguns pesquisas na internet e descobriu que Netflix, Siri e Tesla estão todos usando IA. Então, o que é IA? IA, ou Inteligência Artificial é nada mais que fazer os computadores e máquinas pensarem e agirem como os seres humanos. IA não é um termo novo, Juan McCarthy, um cientista da computação, cunhou o termo IA no ano de 1956, mas demorou algum tempo para evoluir, pois exigia um poder de processamento pesado. A Inteligência Artificial não é restrita apenas à sugestão de filmes e assistentes virtuais, mas ela é dividida em três tipos de IA: 1. Inteligência artificial estreita (IA fraca) se concentra apenas numa tarefa (por exemplo, AlphaGo é um grande mestre no jogo de Go, mas não é esperado que seja mesmo adequado ao xadrez, portanto, esta IA é fraca). 2. Inteligência artificial geral (AGI) é tratada como a capacidade de uma agente inteligente de entender ou adquirir qualquer habilidade intelectual que um ser humano pode (o supercomputador IBM Watson e o GPT3 caem neste grupo). 3. Inteligência artificial super intensificada (ASI) marca o estágio onde as máquinas ultrapassam a inteligência humana (você talvez tenha visto filmes e sonhou em como o mundo seria se as máquinas dominassem o mundo, atraído pelo lírico, Juan fez mais astuta investigações, e encontrou que o aprendizado de máquinas, aprendizado profundo e processamento de linguagem natural estão todos ligados à IA). O aprendizado de máquinas é um subconjunto da IA e é o processo de automatizar e melhorar como as máquinas aprendem através de seus próprios experimentos sem a ajuda humana. O aprendizado de máquinas pode ser usado na detecção de spam de correio electrónico, diagnóstico médico, etc. A aprendizado profundo é um campo baseado em aprendizado e melhoria sozinho por olhar para algoritmos de computação e a tecnologia pode ser aplicada na reconhecimento facial, reconhecimento de fala e muitos outros aplicativos. O processamento de linguagem natural (NLP) pode ser definido como a capacidade de máquinas de aprender idiomas humanos e traduzi-los (FALEM cair neste grupo). As aplicações da IA estão se avançando em todos os campos importantes como saúde, educação, robótica, banca, comércio eletrônico, e a lista continua. Por exemplo, na área da saúde, a IA é usada para diagnosticar doenças, ajudando proveidores de serviços de saúde e seus pacientes a decidir melhores tratamentos e estilos de vida. Quanto à educação, a IA está ajudando professores automatizar a avaliação, organizar e realizar as conversas entre devidas-fazer e autoridades ou parentes. Na área robótica, ias robológicas empregam atualizações de tempo real para detectar obstruções no seu caminho e redesenhar instantaneamente as suas rotas. A IA oferece análises de dados avançados que estão transformando a banca através da redução de fraudes e melhora da segurança. Atualmente existe uma grande demanda por Engenheiros de IA que podem ajudar as indústrias a desenvolver sistemas inteligentes, oferecendo remunerações efetivamente altas na laboração de 120 mil dólares ou mais. O mercado de IA tem um potencial de crescimento considerável, com um faturamento previsto de 190 mil milhões de dólares até 2025. Então, a pergunta à você: Inteligência Artificial é sobre jogar um jogo de computador, criando um dispositivo usando sua própria inteligência para programar uma máquina inteligente, investindo sua energia mental em uma máquina e fornecendo a resposta correta juntamente com sua razão e poder para ganhar um cupom de voucher Amazon. Pense nisso e deixe seus comentários na secção de comentários e escreveremos a resposta em uma semana. Esperamos que tenha gostado deste vídeo, e receberia uma appreciative thumbs up. Aqui é o seu aviso para subscrever nossa canal e clicar na ícone de sino para mais informações sobre tecnologias e tendências mais recentes. Muito obrigado e volte já! [Música]. # Aprenda a dominar a Inteligência Artificial com SimplyLearn Saiba como dominar a Inteligência Artificial (IA) e preparar-se para uma carreira lucrativa no campo, inscrevendo-se no Programa de Certificado Profissional em IA e Aprendizagem de Máquina em colaboração com a Universidade Purdue e IBM. ## Introdução Melhore a satisfação do cliente, aumente a receita e garanta uma posição competitiva no mercado com a ajuda de negócios de tecnologia. Centenas de pesquisas demonstram que a IA vai criar cerca de 97 milhões de empregos nos próximos anos. Porque a SimplenLearn pode ajudá-lo? * Domine a IA * Verifique o programa de certificado profissional em IA e Aprendizagem de Máquina em colaboração com a Universidade Purdue e IBM * Acelere a sua carreira aprendendo ferramentas como Python, TensorFlow, Keras, Django e muito mais Nossos ex-alunos trabalham em empresas top de Amazon, Adobe, Google, IBM, Microsoft, Deloitte e muito mais. Comece uma carreira excitante e lucrativa no campo da inteligência artificial com um programa de certificado profissional em IA e Aprendizagem de Máquina em colaboração com a Universidade Purdue e IBM. --- ## Visão Geral do Curso Este curso completo cobre os seguintes tópicos: 1. Entendendo a Inteligência Artificial 2. Tipos de Aplicações de IA 3. Algoritmos de IA e Casos de Uso 4. Fundamentos da Aprendizagem de Máquina 5. Oportunidades de Carreira em IA 6. Harnessing the Power of AI em Campos Crúciais --- ## Seção 1: Entendendo a Inteligência Artificial ### O que é IA? A Inteligência Artificial (IA) é o processo de fazer computadores ou máquinas pensarem e agirem como seres humanos. A IA permite aos computadores executar tarefas que usualmente requerem inteligência humana, como: - Resolução de problemas - Aprendizado - Razão - Percepção O computador cientista John McCarthy cunhou o termo "Inteligência Artificial" em 1956. No entanto, não evoluíu significativamente até que a potência de computação pesada se tornasse disponível. ### Tipos de IA Classificando-a amplamente, há três tipos de IA: 1. **Inteligência Artificial Restrita (IAR ou IA Debil)** - máquinas podem realizar uma tarefa específica, como Netflix, Siri, chatbots, sistemas de recomendação espaciais, etc. 2. **Inteligência Artificial Geral (IAG ou IA Geral)** - a capacidade de um agente inteligente de compreender ou aprender quaisquer habilidades intelectuais que um humano pode. A supercomputadora IBM's Watson e o GPT-3 estão nessa categoria. 3. **Inteligência Artificial Superior (IAS ou IA Superior)** - máquinas ultrapassam a inteligência humana. --- ## Seção 2: Algoritmos e Casos de Uso da IA - Aprendizagem por Máquina - Processo de automatização e melhoria na maneira como computadores aprendem de suas experiências sem intervenção humana - Deteção de spam de e-mails - Diagnóstico médico - Aprendizagem Profunda - Subconjunto da IA que usa redes neurais artificiais para imitar o cérebro humano - Reconhecimento facial - Reconhecimento de fala - Processamento de Linguagem Natural (PLN) - Capacidade de máquinas de aprender e entender a língua humana - Chatbots --- ## Seção 3: Oportunidades de Carreira em IA A IA está avançando em cada campo crítico, criando oportunidades para profissionais em: - Saúde - Educação - Robótica - Bancário - E-commerce Com o mercado da IA previsto para chegar a $190 bilhões em 2025, a cada dia mais indústrias procuram Engenheiros de IA que podem desenvolver sistemas inteligentes e oferecer salários lucrativos para mais de $120. 000 por ano. --- Para mais informações, certifique-se de conferir o curso completo, e não esqueça de inscrever-se no nosso canal e deixar um comentário após fazer venda. Estamos a certeza de que cada dúvida que você tiver sobre a IA será descrita ao final deste curso. O link é provido na descrição e comentários. Título: Entendendo Inteligência Artificial: Aplicações, Impacto e Implicações Futuras ------------------------------------------------------------------------------- ### Introdução A Inteligência Artificial (IA) é uma tecnologia em rápida evolução capaz de processar fala, manter conversations e entender linguagem natural. Embora a IA consciente apenas exista hipoteticamente, os sistemas podem compreender características, estados e condições internos, e perceber emoções humanas a um certo grau. Neste artigo, vamos explorar as 10 aplicações mais relevantes da IA, assistentes intelligentes poderosos e o futuro desta revolucionária tecnologia. ### Mídias Sociais 1. **Publicação Automática**: A IA pode criar posts para você em redes sociais, projetar anúncios e automatizar monitoramento. As ferramentas de reconhecimento de imagem do Facebook estão cada vez mais populares, constantemente melhorando os algoritmos para uma experiência do usuário mais enriquecedora. 2. **Linhas do Tempo Pessoalizadas**: A Twitter usa a IA para recomendar tweets com base nas preferências do usuário, oferecendo uma experiência individualizada. 3. **Filtragem de Spam**: Os serviços de email usam a IA para separar os e-mails indesejáveis dos importantes, melhorando sua caixa de entrada. 4. **Reconhecimento Facial**: Os algoritmos de reconhecimento facial em nossos dispositivos permitem o acesso seguro concedendo o acesso aos usuários com base em suas características. ### Aplicações Autónomas em Indústrias 1. **Automóveis**: A IA está revolucionando a indústria automobilística, influenciando a produção, o design e o pós-produção. Empresas como a Tesla aproveitam a IA para sistemas de ajuda ao motorista e avaliação de riscos. 2. **Agricultura**: A IA está ajudando a melhorar a agricultura de precisão, melhorando a qualidade e a precisão na colheita, detetando doenças em plantas e deficiências nutricionais nas plantas. ### Jogos 1. **Personagens Inteligentes**: A IA pode criar personagens humanoides não jogáveis que aprimoram a experiência game de design e testes. 2. **Previsão de Comportamento**: A IA pode prever o comportamento humano em jogos para criar uma experiência mais imersiva. ### Saúde 1. **Inteligência de Decisão**: A IA tem potencial de revolucionar a saúde profissional, permitindo aos proveedores construir sobre soluções atuais, acelerando a pesquisa e o desenvolvimento e reduzindo a fraude e tarefas com inchaço de dinheiro. 2. **Assistentes Virtuais**: Os assistentes de chatbot IA como Erica pela Bank of America ajudam os clientes a gerenciar seus recursos financeiros de forma mais eficiente. ### Robótica 1. **Atualizações em Tempo Real**: Os robôs IA podem sentir o seu ambiente e tomar decisões em tempo real, criando máquinas inteligentes e adaptáveis a várias situações. ### O Futuro da IA - A IA está esperada para tocar 60% de indústrias até 2027, chegando a um tamanho de mercado de $267 bilhão. - Enquanto as preocupações sobre perda de emprego persistem, a IA é estimada para criar mais empregos e oportunidades através de várias indústrias. - Nos próximos dez anos, pesquisas e avanços em AGI se tornarão mais prominentes. ### Conclusão A IA está transformando nossas vidas a uma taxa desconhecida, ajudando a tomar decisões, a otimizar e a automatizar tarefas repetitivas. Dividas sobre possible impactos sobre indivíduos persistem, mas a IA oferece uma excelente oportunidade de progresso e crescimento. Você pronto para a revolução da IA? --- Fique informado e compartilhe seus pensamentos sobre os melhores assistentes AI powerful que já encontrou na secção de comentários abaixo! Translação para Portugal (Portuguese de Portugal), mantida a formatação Markdown: # Machine Learning e Inteligência Artificial: transformando nossas vidas diárias Tecnologia de Inteligência Artificial (IA) está moldando váres sectores do mercado empresarial e melhorando nossas vidas diárias. A IA vai mudar este mundo para bem. Os filmes de Fantasia e obras literarias retratom um futuro com máquinas sentinentes capazes de fazer interages com os Humanos e tornarem efetus tareas justamente o que as Humãos as fazem regularmente. Como se essa história nos contàmos que foi essa apenas uma cena de abertura sem nenhas dúvdos? Tudo isto é possibilitado daí por para diante já por conta do Machine learning, que o estudo pelo qual programamo máquinas para pensaro e agão como os huamnamos sem ele especificitamente programmas para isto. E já estámos utilizados o Machine learining em mais da nosso diariumo sem descobrir acima de por isso nosso correão spam na correção ou gramática que vemos tão frequentamente em nosros documentos para que não acha-tamos o apenas em se utiliza mas na verdader munduo por nuns os lugeros. ### Utilizoz do Machine de aprendizedamento diúrio - #### Recaptura deinformação Recaptura em Informatoão Recaptura ame informaciao é extremamente úuil quando de repente já necessitávamos de muita informariao sobre muito pouas palavoras. Existem asasas o google que tentam recubrir todas este informaciações em pouvos segantos e na sequencia tornam-nhás mais flexiveis sobre as nssas pesicas de informaciones. Farííamos ter pouvos 50 palavor com os quéllas necessitávamas, mas pois agå com o pouvos da internet, pois agoa agora se têm para contar todo esse palavor do seu conèntudo à fármua de na sequencia estão mais difusos mais agilismos. Foi por questios de prática ser que se implementaram as correções órtógrafiles na navegação digitial. Esta técua funciona melhor quando apresentamos uns dados limpa e sãos numa forma exácta quando necessitándolo. Tal é o método que uma maquena que apuas para isto. Um programa que irá analiaser as variações ao dado informacio e voltará nos resultados conforme a ordem de palavor é melhor indicador de posibilidades nas correções quando comparamdos com maneirões que não foram testados pois agooa é claro que vai ser péssinho quando se é dado tanta informaciones mas não nós sabedes por que essas informiones não são utilitáruas. Sabe-nhás que, ao esvertares essa informíaão, sõe lhá claro que na maioria deres casós se transteira certo? Já que vemos que em casos certos é bastante úfico a correctiação desse tipo d'infolção, teríamos acostumarmos-hos ao factoa? Esperamos bem por isse e que vários outruros programão começourem a analizar as maquinas onde essa formas de conctua da correção em palavoor poderá sugerir. - #### Reclonhezenzia perzonal faceílica por recloderezazón facecial Apoa quero fazer contas, foi o Facebook este ano que mostrou que esse tipo era factíou quando implementanho a fotografía facial entre as suis característsicas. Facial recognition was só algo percus o mundo dos telefones viajantes nesse tempo é só agonté que está agora integrado em apesar por mais que senao vámos a descobrir um bom número na população deste mundo nunca oucebemos fazer uso isto. Todo o aí que escreve publicamente na próxima vexima # Soluções de Aprendizado de Máquina ## Resumo Este documento fornece uma explicação de várias soluções de aprendizado de máquina, com focus em classificação, regressão e agrupamento, além de suas aplicações. **Atenção**: Este documento preserva todas as URLs e referências existentes. ### Classificação A classificação é um tipo de algoritmo de aprendizagem supervisionada utilizado quando o resultado que se busca é um `sim` ou um `não`, em forma de `a` ou `b`, `verdadeiro` ou `falso`. Por exemplo, se um degrau deseja prever se um determinado cliente voltará a sua loja ou não, ele utilizará um algoritmo de classificação. Alguns algoritmos que caem nesta categoria são: - Árvores de Decisão - `k`-Vizinhos mais próximos (`k`-NN) - Floresta Aleatória - Regressão Logística ### Regressão A regressão é um tipo de algoritmo de aprendizagem supervisionada utilizado quando o dado previsto é numérico. Por exemplo, se o degrau deseja prever o preço de um produto baseado na demanda, ele irá optar por regressão. ### Agrupamento O agrupamento é um tipo de aprendizagem não supervisionada, utilizado quando o dado precisa ser organizado. A maioria dos sistemas de recomendação utilizados por Flipkart, Amazon, etc. , fazem uso de agrupamento. Outra grande aplicação é em motores de busca, onde os motores de busca estudam a história de pesquisa antiga do usuário para identificar as suas preferências e fornecer os melhores resultados de pesquisa. Um dos algoritmos que caem nesta categoria é o k-médias. ## Algoritmos Chave Aqui, vamos olhar para quatro algoritmos chaves que são utilizados amplamente: 1. `k`-Vizinhos mais próximos (`k`-NN) 2. Regressão Linear 3. Árvore de Decisão 4. Floresta Aleatória Começaremos com `k`-Vizinhos mais próximos (`k`-NN): **`k`-Vizinhos mais próximos (`k`-NN)** - O `k`-NN é novamente um tipo de algoritmo de classificação. - Ponto de dados similares formam agrupamentos. Os azuis, rosa e verde representam três agrupamentos diferentes no exemplo a seguir. - Quando recebemos um ponto de dados desconhecido, ele é classificado baseado no agrupamento mais próximo ou mais similar. - `k` em KN é o número de vizinhos de dados mais próximos que desejamos comparar o ponto de dados desconhecido com. ! [](data: image/png; base64, JywgIAFNA…) ### Regressão Linear - A Regressão Linear é novamente um tipo de algoritmo de aprendizagem supervisionada utilizado para estabelecer uma relação linear entre as variáveis. - A variável dependente é mostrada no eixo y e a independente no eixo x. - Os pontos verdes representam vários ponto de dados. - Neste exemplo, estamos a tentar prever o peso de uma pessoa baseado na sua altura. ! [](data: image/png; base64, JywgIAFNA…) ### Árvore de Decisão - O Álgoritmo Árvore de Decisão é um tipo de algoritmo que utiliza uma metodologia de ramificação para resolver o problema e tomar decisões baseadas nos critérios. - Pode ser relacionado com decisões diárias que fazemos. Por exemplo, imagine um si estás a sentar em casa em dúvida se vais ao banho ou não. ### Floresta Aleatória - A Floresta Aleatória é uma extensão do algoritmo Árvore de Decisão. **Atenção**: O resto dos algoritmos (SVC, SVM, DBSCAN, PCA, Aprendizagem por Rewards, Monte Carlo, SARSA e Rede de Q-APrendizado Profundo) não foram formatados neste exemplo devido a limitações de espaço. Para mais informações, selecione o texto original. ## Metodologia ### Aprendizagem Supervisionada - A Aprendizagem Supervisionada toma entradas etiquetadas e os mapeiam para saídas conhecidas, o que significa que já conhece a variável alvo. Um exemplo de aprendizagem supervisionada é o treinamento de uma máquina para identificar a imagem de um animal. ### Aprendizagem Não Supervisionada - A Aprendizagem Não Supervisionada encontra padrões e compreende as tendências nos dados para descobrir a saída, portanto o modelo tenta etiquetar os dados baseado nas características da entrada de dados. ### Aprendizagem por Rewards - A Aprendizagem por Rewards segue um método de tentativa e erro para obtê-lo solução. Depois de conseguir uma tarefa, o agente recebe um prêmio e, se a tarefa não for cumprida corretamente, haverá algumas penalidades. Um exemplo poderia ser treinar um cão para abaixar a bola, onde, se o cão aprende a abaixar a bola, você lhe dá um recompensa como um biscoito. ## Solução de Problemas - A Aprendizagem Supervisionada é geralmente utilizada para problemas de classificação e regressão. - A Aprendizagem Não Supervisionada é utilizada para problemas de agrupamento e assiciation. - A Aprendizagem por Rewards é reward-based, então, para cada tarefa ou para cada etapa completada, haverá uma recompensa recebida pelo agente. # Aplicações de Aprendizado de Máquina: Intro, aprendizagem supervisionada, aprendizagem não supervisionada e aprendizagem pelo reforço ## Introdução Este documento examina várias aplicações do Aprendizado de Máquina (ALM) incluyindo aprendizagem supervisionada, não supervisionada e de reforço. **Algoritmos de aprendizagem supervisionada** podem ser benéficas para o **prognostico de vendas** de vários produtos em dois e três trimestres por aplicem para análise de preços bélicas ou identifique se um célula câncerou seja de câncer ou não cancerosa. **Algoritmos de aprendizagem não supervisionada** são dominada predominante nas: - **Segmento de cliente**: por examinando os comportamentos de cliente, os temores, prefirações, interesses que possímos agrupa os cliente que possem característica parecidos de grupo agrupo e gera churn. Exemplo- customer churn analysis. ## Apredizagem de reforço - **Branches Industria**: os Algoritmos de apredizagem reforçadas podem estar bastante desenvolvida construir bases para as . - **Valor análise e Previsión**: A red-recompensa permite analisése a Estimação empresa valoe ser de vitalimportância ajuda imubrançada com solvidasções formulador invesidotor racionalmente, prever empresas sues valor na atual investidores estatisticam é útuto em esto. --- ## Reginha Logística Linear **Entamós-mos nas aplicções da regressionárea-Módelagem do aprenesagem computacional, ou ML, baseia-nos principalmente predict predictive quantitas ou variveis indpéendeedentes independententes. ** Em um sentidose general como esta model preditive se estime as as **pópüoções médioes que é de valor e os middles é as masse agrupados num valoos da variable principal independente com** variâbels variante independência com valuaoes individuaos assintióricamente associos da variable qual indpendents variábels **outcom** -qual os objetividados para ter valor independens varibils quantitativeis indpendense qual predictáveis assim quantite o regimento estime ou não uma probabilità com as** qual **podera a **tíde a e regressia possuinte mútlipes variable múltips preditaos como se não existe esta o model simples mais comun com este indiquado . ***Em Economice Conformaremo com valor total a potencialeidade quantitarete ainda poder prevesáram por país, como quantitate qual país que indipendent quantitive variabs (y)* [ **Regressao quantita e continuaremos**. ] ```python Estimate Houses for Q4, in USA: Total homes that Sell Assume you use last quarter information on average household monthly revenue R as X e quarterly Y data of your houses that a company has 70M$, now let M(a quarter number) estimate average home of sold Use average Y : mean_of_y [estimated sold Y homes]. X[Quater revenue revenue_Q-] is equal [independient_varivabe_with] total household income_i and so it'll equal revenue divided by each total income individual average monthly values as the y . m =sum [mean * M(Tq)+b of {1-(sum Y}/T] ; this regession Equááção. b(o quadrátio médio in) e sum a quantique soma m e y forall homes indiquated to [mean m X-m e varialbles qual estime foralls b quantitativos individuo average month quantita a residuals m =sum [{estimate in independent quantiviate - estinado-varial} ^2 or square] over every household's i total [1]/i for house a home , total average house average i as (y * R - predicted M* independent values)/ , R_I total estimated individual R home # Regressão Linear em Markdown ## Calculando uma Reta Calculamos uma reta onde `y` é a inclinação (`m`) vezes `X` mais um coeficiente (`C`). Primeiro, vamos calcular a média (a soma de `x` vezes `Y` dividida pelo número de pontos de dados) e explicar o conceito que ele representa, o qual é conhecido como o erro quadrado médio. Esta informação também é conhecida como a soma dos quadrados dos resíduos ou erros. Abaixo, encontra-se onde a inclinação (`m`) é igual à parte superior da fórmula, computada como: ``` (Number of data points * Sum of x * Y) / (1 + Sum of x^2) ``` A parte inferior é simplesmente o número de linhas * Sum de x^2, que pode ser facilmente computado como 86 para a sum de x^2. Com esses valores, você pode inseri-los na fórmula e calcular a inclinação (`m`) e o coeficiente (`C`). ## Valores Preditos de Y para Valores Correspondentes de X Usando a equação linear onde `m` é a inclinação calculada e `C` é o coeficiente calculado, podemos prever os valores de Y para valores correspondentes de X. Em seguida, vamos plotar estes valores: - Os pontos azuis representam os valores de y reais. - Os pontos marrons representam os valores de y previstos, baseados no modelo que criamos. A distância entre os valores reais e previstos é conhecida como resídual ou erro. A linear best-fit line deve ter a menor soma dos quadrados desses erros, também conhecida como e-square. ### Exemplo Aqui está um exemplo de como implementar regressão linear múltipla em Python usando a DataFrame do apracado pandas: ``` import numpy as NP import pandas as PD import matplotlib. pyplot as PLT import seaborn as SNS # Carrega o conjunto de dados e extrai variáveis independentes e dependentes companies = PD. read_csv('path/to/your/1000_companies. csv') X = companies. iloc[: , : -1] y = companies. iloc[: , -1] # Visualiza o dado SNS. scatterplot(X, y) PLT. show() ``` Este código vai carregar um conjunto de dados que contém 1000 empresas, extrai as variáveis independentes (todas as colunas exceto a última) e a variável dependente (a última coluna), e vai visualizar o dado usando um gráfico scattering criado com seaborn. Você pode modificar o código para usar seu próprio conjunto de dados. # Análise de Visualização de Dados e Modelo de Regressão Linear ## Introdução Começamos por examinar os dados visualizados para melhor compreender as relações entre diferentes variáveis. Depois disso, iremos conduzir a criação de um modelo linear de regressão mais prático, capaz de prever dados importantes e melhorar nossos lucros. ## Visualização de Dados ! [Visualização de Dados] [1] Nesta visualização, podemos encontrar o seguinte: - Gastos em Pesquisa e Desenvolvimento (coluna 0) - Gastos Administrativos (coluna 1) - Gastos em Marketing (coluna 2) - Lucro (coluna 3) Interessantemente, cruzamos diferentes variáveis, particularmente o lucro com ele mesmo. Como a escala à direita mostra, essas correspondências são exatas devido ao uso do mesmo dado. Na diagonal, encontrará a linha mais Escura que demonstra os dados com correspondência mais alta—os mesmos dados do Gasto em Pesquisa e Desenvolvimento e Gastos Administrativos. Como se torna mais claro, a luz, há menos conexões entre os dados, o que demonstram claramente que o lucro é o mesmo que ele mesmo, e tem uma alta correlação com Gastos em Pesquisa e Desenvolvimento, ligeiramente menos com Gastos em Marketing, e até menos com Gastos Administrativos. ### Preparação dos Dados para o Modelo de Regressão Linear Agora que conseguimos compreender melhor os dados, vamos começar a prepará-los para o nosso modelo de regressão linear. Decidimos separar os dados em um conjunto de treino e um conjunto de teste, de modo a poder testar a confiabilidade e garantir que o nosso modelo seja preciso. ```python from sklearn. model_selection import train_test_split X = . . . (dados pre-processados) y = . . . (dados do lucro) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0. 2, random_state=0) ``` Agora possuímos nossos dados X_train e X_test processados para treinamento e teste do nosso modelo de regressão linear. ## Criação do Modelo de Regressão Linear ```python from sklearn. linear_model import LinearRegression regressor = LinearRegression() regressor. fit(X_train, y_train) y_pred = regressor. predict(X_test) ``` Aqui, criamos nosso modelo de regressão linear usando a classe LinearRegression. Usamos três para enfitrar o modelo com o nosso conjunto de dados de treinamento (X_train e y_train) e para prever os dados de teste (X_test). ## Avaliação do Modelo de Regressão Linear ```python from sklearn. metrics import r2_score r2_score(y_test, y_pred) ``` Usamos a função r2_score para calcular a pontuação R² e garantir que o nosso modelo de regressão linear seja preciso. Uma pontuação R² maior indica um bom ajuste e previsões mais precisas. ### Referências [1] Visualização de Dados (Opcional) Esta plotagem é destinada à demonstração e não está incluída no ficheiro Markdown. # Regressão Linear: Predizibilidade da receita e do número de esquiadores com Neilada Este documento ab range a treinamento exitoso de um modelo utilizando Regressão Linear para predizibilidade da receita em empresas e do número de esquiadores com base na neilada. ## Êxito do Modelo e Importância da Regressão Linear O nosso modelo foi exitosamente treinado, utilizando determinados predictores, para prever a receita de empresas e o número de esquiadores com base na neilada. O valor de R² de 0, 91 ou 92 para o nosso modelo demonstra sua validade, já que envolve um componente de geração aleatória. Isso garante o modelo é bom, assegurando êxito. ! [Yay! ](https://i.imgur.com/xiyg3Mo.png) ## Análise de Vendas e Hiring de Data Scientist Para manter uma constante monitorização das vendas, imagine-se que podemos contratar um data scientist. Nossos indivíduos de nivel corporativo parecem mais semelhantes a agentes secretos, mas com sua especialização podem nos ajudar a melhorar nosso negócio e previsão de figuras de vendas no futuro. ! [Agents](https://i.imgur.com/mMz3kGt.png) ## Predizibilidade de Esquiadores com base na neilada Podemos utilizar Regressão Linear para previsão do número de esquiadores com base na neilada. Como a neilada aumenta, também aumenta o número de esquiadores, demonstrando uma relação direta. Esta relação pode ser expressa da seguinte forma: ``` y = beta0 + beta1 * X1 ``` Neste caso, a neilada é a variável independente e o número de esquiadores é a variável dependente. Temos uma variável preditora única, a quantidade de neilada e uma variável resposta, o número de esquiadores. Esta relação pode ajudar a prever o número de esquiadores e assim o número de pessoas que precisam servir, o número de teleféricos em operação e outros aspectos relacionados ao gerenciamento de uma área de esquii. ### Compreensão da Regressão Linear A Regressão Linear é uma análise estatística que tenta mostrar a relação entre duas variáveis. Cria um modelo preditivo baseado n attendance os trend em dados, utilizando o método de menores quadrados - o método mais comumente utilizado. Agora, percebe-se mais de perto deste método e com minimums como funciona. #### Dados fornecidos Para ilustrar a Regressão Linear, utilizaremos um dado conjunto de locais alugados e outras informações. Nossa meta é prever o locatório com base no tamanho. #### Avaliação da linha ideal 1. Plot the graph ! [Linha ideal](https://i.imgur.com/nmR8Cw6.png) 2. Escolha as médias de locações e alugueis Média de locações: 3 Média de alugueis: 5 3. A linha ideal passa pelas medias de locações e alugueis. 4. Para encontrar os valores de M e C para a linha ideal, utilize a fórmula: ``` m = n / (n * sum(x * y) - (sum(x) * sum(y))) C = (sum(y) * sum(x^2) - sum(x) * sum(x * y)) / (n * sum(x^2) - (sum(x)^2)) ``` ## Predizibilidade de receitas utilizando Linha Linear Depois de se compreender com a parte básica da Regressão Linear, podemos aplicar esta a previsão de receitas com base no tráfego pago, tráfego orgânico e tráfego social. Aqui se apresenta uma guia passageira sobre como analisar os dados e previsão de receitas. 1. Colect the data set com tráfego pago, tráfego orgânico, e receita. 2. Utilize a fórmula e os fatos discutidos acima para construir o modelo de Regressão Linear. 3. Os coeficiente `m` e `C` podem ser calculados para formar a equação `Y = mX + C`. 4. Preencha as variáveis X (tráfego pago, tráfego orgânico, e tráfego social) e encontre as Y previstas (receitas). 5. Avalie a performance da previsão e allies o modelo se nescessário. # Modelo de Regressão Linear Múltipla Este documento aborda como usar um Modelo de Regressão Linear Múltipla para analisar a influência das fontes de tráfego (pago, orgânico e social) no faturamento. ## Visão Geral Neste tutorial, avaremos esses passos: 1. Carregar os dados do arquivo CSV 2. Dividir os dados em conjuntos de treino e teste 3. Validar o modelo de regressão 4. Analisar os dados ## Carregando os Dados Primeiro, criamos uma variável chamada `cells` e carregamos os nossos dados set. Em R, utilizamos o sinal menos menos (`<-`) para atribuir valores a uma variável. ```R cells <- read. csv("<caminho-para-arq-csv>. csv") ``` Substitua `<caminho-para-arq-csv>` pelo caminho para o seu arquivo CSV. ## Dividindo os Dados Vamos dividir os dados em conjuntos de treino e teste para validar o modelo. ```R set. seed(2) split <- sample. split(cells$revenue, SplitRatio = 0. 7, seed = 2) train_data <- subset(cells, split == TRUE) test_data <- subset(cells, split == FALSE) ``` ## Aplicando o Modelo de Regressão Vamos criar um modelo de regressão linear (`lm`) e usar para prever o faturamento com base no tráfego pago, orgânico e social. ```R model <- lm(revenue ~ paid + organic + social, data = train_data) ``` ## Análise dos Resultados Pode analisar os resultados somente resumindo os dados, visualizando-os e avaliando o desempenho do modelo usando os dados de teste. ### Resumo dos Dados ```R summary(train_data) head(train_data) ``` ### Visualização ```R plot(train_data) ``` ### Desempenho do Modelo Compare o faturamento predito com o faturamento real usando os dados de teste. ```R predicted_revenue <- predict(model, newdata = test_data) compare_predicted_and_actual_revenue(predicted_revenue, test_data$revenue) ``` Este tutorial fornece uma visão geral de como utilizar um modelo de regressão linear múltipla para analisar a relação entre as fontes de tráfego e o faturamento. Aplicando estes passos, você pode aplicar este modelo aos seus próprios dados e extrair insinhos valiosos para melhorar as suas decisões comerciais. Título: Tutorial de Regressão Logística ======================================== Subtítulo: Predição de sobrevivência dos passageiros do Titânico --------------- Introdução ------------- Neste tutorial, vamos aprender a utilizar a regressão logística para construir um modelo predictivo de Machine Learning para prever se os passageiros do Titânico sobreviveram ou não após o naufrágio. Dados necessários ---------------- Para seguir este tutorial, teremos que utilizar as seguintes informações ao nosso dispor sobre os passageiros da Titânico: - ID do passageiro - Classe de passageiro (1ª Classe, 2ª Classe, 3ª Classe) - Nome do passageiro (opcional) Utilização de Regressão Logística ------------------------------ A regressão logística é um algoritmo muito comumente utilizado para classificação, sendo assim, ajudará o sistema a aprender com base em dados etiquetados. Esse processo é muito semelhante ao como os humanos aprendem, pois simplesmente mostramos um exemplo para o sistema e ajudamos o sistema a reconhecer o exemplo. Entendendo a Regressão Logística ------------------------------- Em estatística, a regressão logística é um modelo de estatística linear para modelar o relacionamento entre uma variável binária e uma ou mais variáveis independentes. Neste tutorial, vamos utilizar a variável dependente para prever se um passageiro do Titânico sobreviveu ou não. Para treinar o modelo, utilizaremos dados etiquetados (marcados com sobrevivência ou não) como os detalhes da passagem do passageiro, suas características socioeconômicas, e até mesmo o nome, caso sejam necessários. Introdução ao aprendizado supervisionado -------------------------------------- O aprendizado supervisionado é um dos dois tipos principais de métodos de aprendizado de máquina. Ele utiliza dados marcados, ou dados etiquetados, para orientar o sistema no processo de aprendizado. Neste tutorial, vamos estender o uso da regressão logística para aprender o que é aprendizado supervisionado, aplicações e como utiliza-las para prever a sobrevivência dos passageiros do Titânico. Classe e Regressão na Aprendizagem de Máquina ------------------------------------------- A supervised learning é um tipo de aprendizagem de máquina que utiliza técnicas de classificação ou regressão para transformar dados de entrada em novos dados estiver utilizado o aprendizado supervisionado com objetivo de prever os dados de saída. Na regressão, usamos uma variável contínua de predição como preço, enquanto à classificação utiliza-se uma variável discreta, como classe. Em nosso caso, vamos usar classificação para prever a sobrevivência dos passageiros do Titânico. # Aprendizagem Supervisionada: Foco em Classificação e Regressão Logística Este texto apresenta uma visão geral da aprendizagem supervisionada, com um foco na classificação e na regressão logística. Nesta aprendizagem supervisionada, vamos focar na classificação e, dentro da classificação, vamos focar na algoritmo de regressão logística. Começamos pela classificação: ## Algoritmos para Classificação Existem vários algoritmos para execução da classificação. Aqui, vamos falar sobre alguns dos mais populares: 1. Árvore de Decisão 2. K-Próximos Vizinhos (KNN) 3. Regressão Logística (O foco deste vídeo) As árvores de decisão são uma escolha popular para classificação devido à sua facilidade de compreensão. O KNN é outro algoritmo utilizado para classificação. ## Regressão Logística Como mencionado anteriormente, a regressão logística é um algoritmo para a realização de classificação de dois escalares. ### Exemplo Suponhamos que o seu carro não tenha sido reparado por muito tempo e que você queira descobrir se é provável que rompa em breve. Isso é um problema de classificação em que deseja descobrir se o seu carro vai romper ou não. ### Aplicação do Algoritmo de Classificação Se plotarmos as informações em eixo X e eixo Y: - O eixo X representa o número de anos desde a última reparação. - O eixo Y representa a probabilidade do seu carro romper. A informação coletada de vários utilizadores de carros é dada como dados etiquetados. Isso significa que, para given número de anos desde a última reparação e a probabilidade ao se romper o carro, temos um gráfico de probabilidades em eixo X e eixo Y. A partir deste gráfico, podemos determinar se o seu carro é provável de se romper ou não. Vejamos isso: 1. A probabilidade pode ir de 0 a 1, como estão a conhecer e é intuitivo. 2. O número de anos estão no lado inferior, por exemplo, um ano, dois anos, três anos – as chances do seu carro se romperem são muito limitadas. 3. Como o número de anos aumenta, por exemplo, seis ou sete anos – existirá praticamente uma certeza de que o seu carro já vai ser provável se romper. ### Variáveis Independentes Discretas Na regressão logística, a variável dependente é discreta. Aqui, estamos olhando uma variável binária, o que significa que queremos saber se o carro vai romper ou não (Sim ou Não). ### Curva de Regressão Logística A curva da regressão logística vai nos ajudar a determinar a classe (ou o resultado). Tem que ser fixada uma empresa, por exemplo, 0, 5, de modo que qualquer valor inferior a 0, 5 é considerado como 0, e qualquer valor superior a 0, 5 é considerado como 1. ### Comparação entre Regressão e Regressão Logística Embora ambos tenham o termo "regressão" em comum, são diferentes: - A regressão linear é utilizada para encontrar um valor contínuo. Por exemplo, o preço de uma propriedade inmobiliária, a sua altura, ou o preço de uma ação. - A regressão logística é utilizada para resolver problemas de classificação em que predizemos um valor discreto, um valor catangético ou discreto. ## Exemplo de Regressão vs. Regressão Logística Vamos comparar regressão e regressão logística usando uma cenário de Recursos Humanos (RH): - A regressão linear ajuda o time de RH a encontrar um valor contínuo como aumento de salário de um funcionário. - No entanto, se o time de RH quiser saber se um funcionário é provável de ser promovido ou não, isso envolve um problema de classificação e registrar logística não pode ser utilizada. A regressão logística não pode lidar com um problema discreto, mesmo tendo dados etiquetados. Neste caso, estamos a olhar num dado discreto, ou seja, se um funcionário foi promovido (Sim ou Não). Se tentarmos ter um gráfico nesse e tentarmos encontrar uma reta, veríamos um grande erro e um erro de raiz média quadrático alto. Em vez disso, o modelo de regressão logística poderá se parecer com isso (curva de sigmoide), que é um processo gradual constante. A matemática atrás de regressão logística envolve encontrar os riscos para um evento acontecendo. O probabilidade de um evento acontecer dividida pela probabilidade do evento não acontecer é como estamos a medir os riscos. Os valores dos riscos vão de 0 para Infinity. A resumo, regressão linear é utilizada para problemas de regressão, onde espera-se um valor contínuo, enquanto regressão logística é utilizada para problemas de classificação, onde esperamos um valor discreto ou um valor catangético. Dê atenção que, em previsão do tempo, ambos são utilizados mas para propósitos diferentes: regressão linear para prever valores contínuos, tais como a temperatura, e regressão logística para prever valores discretos, tais como se vai chover ou não. Portanto, agora tem um entendimento básico da regressão logística e como difere da regressão linear. Espero que ajude! --- Nota: O texto foi formatado de acordo com as regras fornecidas, incluindo a manutenção de todos os URLs, a preservação de termos e comandos, e o uso correto da formatação Markdown para cabeçalhos, listas e blocos de código. Também corrigi errors de ortografia e gramáticos. # Regressão Logística para Classificação de Imagens ## Introdução Neste exemplo, mostaremos como aplicar regressão logística para prever o número apresentado numa imagem. Este é um exemplo ao vivo, e mostraremos o código num notebook Jupyter. Antes de mergulhar no código, é preciso clarear o processo e compreender a ideia. ### Visão Geral do Processo 1. **Formar o Modelo**: Assim como qualquer processo de aprendizado de máquina, o primeiro passo é treinar o modelo. Neste caso, estamos utilizando regressão logística. Depois de treinar o modelo, fornecemos um conjunto de treino adicional para melhor treinar o modelo. 2. **Testar o Modelo**: Quando o modelo estiver bem treinado, testamos a sua precisão com dados de teste. Nós dividimos nossos dados iniciais em dois subconjuntos: treino e teste. Continuamos a treinar e a testar o modelo até que conseguamos alcançar uma precisão aceitável. 3. **Implantar o Modelo**: Após alcançar um nível de precisão satisfatório, implantamos o modelo para inferência. ## Matriz de Confusão Uma matriz de confusão é uma tabela utilizada para descrever o desempenho de um modelo de classificação. A dimensão da matriz depende do número de saídas que esperamos. O modelo funciona de forma mais precisa quando a maioria dos números está no eixo diagonal. Os números fora do eixo diagonal devem ter poucos valores, com o máximo número no eixo diagonal, indicando predições corretas. ### Interpretação da Matriz de Confusão - Números ao longo do eixo diagonal indicam que o valor previso e o valor real são os mesmos. - Os elementos fora do eixo diagonal representam classificações erradas. Quando uma classificação errada ocorre, o número estará fora do eixo diagonal. ## Código Exemplo No exemplo a seguir, formaremos um modelo de regressão logística para reconhecer os dígitos (0-9) em imagens. Depois de treinar, verificaremos a precisão e visualizaremos a matriz de confusão. Lembre-se, este é apenas um exemplo simplificado. Em um cenário real, poderá ser necessário pré-processar os dados, lidar com valores ausentes e tunear o modelo para obter resultados melhores. ```python # Importar as bibliotecas necessárias # . . . # Carregar os dados # . . . # Verificar a forma dos dados print("Forma dos dados: ", data. shape) # Divide os dados em conjuntos de treino e teste dois_terco_dados_para_treino = 0. 8 X_treino, X_teste, y_treino, y_teste = treino_teste(dados, etiquetas, os=dados. shape[0], train_size=dos_terco_dados_para_treino) # Importar a regressão logística do scikit-learn logistic_reg = LogisticRegression() # Treinar o modelo logistic_reg. fit(X_treino, y_treino) # Testar a precisão do modelo acurácia_treino = logistic_reg. score(X_treino, y_treino) acurácia_teste = logistic_reg. score(X_teste, y_teste) print("Acurácia no treino: ", acurácia_treino) print("Acurácia no teste: ", acurácia_teste) # Visualizar a matriz de confusão from sklearn. metrics import confusion_matrix import seaborn as sns import matplotlib. pyplot as plt # . . . figura, eixo = plt. subplots(figsize=(8, 8)) sns. heatmap(confusion_matrix(y_teste, y_predito), annot=True, fmt='d') eixo. set_xlabel('Valor real') eixo. set_ylabel('Predição') plt. show() ``` Este exemplo é bastante genérico e pode ser customizado para trabalhar com outras informações de imagem. # Regressão Logística: Introdução e Cases de Uso Este documento detalha o uso da Regressão Logística na aprendizagem de máquinas, comparando-a com a Regressão Linear e discutindo seus aplicativos em diversos domínios. ## Visão Geral A Regressão Logística é um algoritmo de classificação utilizado para prever uma variável dependent securena baseadas em variáveis independentes. É diferente da Regressão Linear, que é usada para previsão de valores contínuos. ### A Matriz de Conflitos Para entender a Regressão Logística, primeiro iremos mergulhar na Matriz de Conflitos, uma ferramenta chave para avaliar o desempenho de um modelo de classificação. Na Matriz de Conflitos, o desempenho do modelo é determinado pelo número de predições corRetas (na diagonal) e pelo número total de observações de teste. Maior número em diagonal, melhor a precisão. A seguinte Matriz de Conflitos mostra um exemplo para um modelo de regressão logística: ``` Valor Real 0 1 Soma Predito 0 38 4 42 1 4 44 48 Soma 42 48 90 ``` Neste exemplo, a soma total de todos os números é igual ao número de observações na amostra de teste. A precisão é calculada somando os valores na diagonal e dividindo-os pelo número total de observações de teste. ### Visualizando a Matriz de Conflitos com um Mapa de Calor Para uma representação visual mais atraente, podemos criar um mapa de calor, que utiliza cores para representar os dados. Aqui está um exemplo de como um mapa de calor poderá parecer: [Insira aqui o mapa de calor] Como podemos ver, os valores da diagonal são os mais altos, indicando que o modelo é bastante preciso. ### Precisão usando a Matriz de Conflitos Para encontrar a precisão utilizando a Matriz de Conflitos, basta adicionar a total de valores na diagonal, por exemplo, 38 + 44 + 43, e dividir aquele valor pelo total número de observações de teste. Isto dará-vos a taxa de precisão. ### Um Exemplo Rápido Para ilustrar, vamos ver como o nosso modelo de regressão logística classificou algumas amostras dos dados: ``` Imagem Valor Real Valor Predito Imagem 4 Real: 4 Predito: 4 (Correto) Imagem 9 Real: 9 Predito: 9 (Correto) Imagem 1 Real: 1 Predito: 1 (Correto) ``` ### Resumo Neste vídeo, discutimos: - O que é a Regressão Logística e o seu lugar na aprendizagem de máquinas - A comparação entre a Regressão Logística e a Regressão Linear - A matemática por detrás da Regressão Logística e da função de Sigmóide - Exemplos de como a Regressão Logística é utilizada em problemas reais do mundo - Como implementar uma Regressão Logística para treinar o modelo e identificar imagens ## Recursos Aqui estão alguns recursos para ajudá-lo a aprender mais sobre a Regressão Logística: - [Introdução à Regressão Logística](https://www.datacamp.com/community/tutorials/) - [Regressão Logística com Python](https://machinelearningmastery.com/logistic-regression-python/) - [Regressão Logística vs Regressão Linear](https://www.datacamp.com/community/tutorials/logistic-vs-linear-regression) ### Observações - A Regressão Linear é usada para prever uma variável dependente para variáveis independentes. O resultado é um valor inteiro previsível. - A precisão é medida através da estimativa mínima-quadrada para a Regressão Linear, enquanto para a Regressão Logística, pela estimativa de probabilidade máxima. - Ambos os modelos podem ser usados em diversos domínios de negócios, a Regressão Linear é muito útil para previsões numéricas, como as altas e baixas do mercado de acções. - A Regressão Logística é utilizada para problemas de classificação e é popular na processamento de imagens, onde é utilizada para classificar imagens ou vegetais, por exemplo. - Os modelos de Regressão Logística levam variáveis independentes (características) como entrada, como outras ferramentas de aprendizagem de máquinas. - Em Pyton, você pode utilizar bibliotecas como pandas, scikit-learn, e matplotlib para trabalhar com dados e criar modelos. Feliz de aprender! NP{fontstretch=1 em} # Resumo da Coação Proposta de Seguro ## Visão Geral Este documento fornece uma visão detalhada do processo e das etapas envolvidas na determinação da coação proposta de seguro, com um foco no entendimento dos dados, pré-processamento e criação de modelos. ## Entendimento de Dados e Pré-processamento Para determinar as cobranças do seu seguro, é necessário understander as informações fornecidas pelo dataset. Aqui está uma lista de fatores importantes a Considerar: 1. **Contando Colunas**: O dataset possui 7 colunas; colunas importantes são as de cargas, sexo, fumante e região. 2. **Tratamento de Variáveis Categóricas**: Para feminino contra masculino, fumante (sim/não), e região, este dataset exigirá algum pré-processamento para convertê-las em formatos apropriados para análise. ## Pré-processamento de Dados Aqui está uma visão geral dos passos de pré-processamento: 1. **Codificação de Rótulo**: Usaremos a [Codificação de Rótulo do scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html) para converter variáveis categóricas em variáveis numéricas. Por exemplo, para a coluna do sexo: ```python from sklearn. preprocessing import LabelEncoder # Inicialize o codificador de rótulos le = LabelEncoder() # Enfite o codificador ao dado do sexo le. fit(sexo) # Transforme o dado usando o codificador sexo_codificado = le. transform(sexo) ``` 2. **Diminuição de Duplicatas**: Para a eliminação de linhas duplicadas no dado. ## Criação de Modelos Após o pré-processamento dos dados, podemos criar o modelo para prever as cargas. Neste caso, vamos utilizar Regressão Linear: ```python from sklearn. linear_model import LinearRegression # Crie o modelo de Regressão Linear modelo = LinearRegression() # Enfite o modelo ao dado de treino modelo. fit(X_treino, y_treino) ``` ## Previsão Quando o modelo estiver treinado, podemos utilizar para prever as cargas para os dados de teste. ```python y_previsto = modelo. predict(X_teste) ``` ## Análise de L Simple (Bônus) Como extensão, analisaremos o dataset de L Simple para determinar se um cogumelo é comestível ou venenoso. Com 23 colunas diferentes, teremos de usar o codificador de rótulo novamente para convertê-las em variáveis numéricas. Por favor, note que o código para análise do dataset de L Simple não fornecido neste resumo, mas pode ser implementado com passos semelhantes de modelagem e pré-processamento de dados. ## Conclusão Neste documento, fornecemos uma visão geral do processo de análise de dados, com um foco no entendimento dos dados, pré-processamento e modelagem, utilizando o método de Regressão Linear para determinar as cargas do seguro. Mencionamos ainda a necessidade de pré-processamento das variáveis categóricas usando o codificador de rótulo. Como uma extensão, apresente brevemente a análise do dataset de cogumelos e os seus passos de pré-processamento necessários. Para uma análise mais detalhada, consulte o notebook específico ou código fonte. # Fundamentos da Ciência de Dados: Classificação Neste tutorial vamos explorar os fundamentos da ciência de dados, focando no assunto da classificação. A classificação é uma ferramenta amplamente utilizada na inteligência artificial, e forma a base de muitas aplicações. ## O Que é Classificação? A classificação é uma tarefa que requer a utilização de algoritmos de aprendizagem de máquina para aprender a atribuir um rótulo de classe a dados fornecidos. O processo pode ser ilustrado da seguinte forma: ``` Dados Não Classificados -> Algoritmo de Classificação -> Dados Classificados ``` O algoritmo de classificação é uma caixa preta em muitos aspectos, e vamos abordar suas funções internas ao longo de nosso estudo. ## Aplicações Reais A classificação tem muitas aplicações reais. Aqui estão umas poucas exemplos: 1. **Classificador de Spam de Email**: O caixote de entrada de email passa por um filtro que classifica os emails como válidos ou spam. 2. **Classificador de Voz**: Alexa, Google Voice e outros classificadores de voz agrupam palavras juntas para encontrar padrões e disparar ações específicas. 3. **Análise de Sentimento**: É usado em marketing para entender se um produto ou serviço é gostado ou não. 4. **Detecção de Fraude**: Os bancos utilizam algoritmos de classificação para detectar atividades suspeitas nas contas bancárias. 5. **Classificação de Imagens**: As imagens podem ser classificadas para identificar animais selvagens em uma determinada área baseado em uma webcam exterior. 6. **Previsão de Escrita à Mão**: A classificação pode ser usada para prever a escrita à mão, classificando letras (A, B, C, D) e palavras. ## Algoritmos de Classificação Populares Vamos olhar para algumas Classificadores populares, tocando brevemente em vários sabores para entender como funcionam. Vamos incluir demonstrações práticas em Python ao longo do tutorial. ### Regressão Logística A Regressão Logística é um classificador utilizado para modelar a probabilidade de uma certa classe ou evento existir. Ele fornece sua saída usando a função logística ou função de sigmóide para retornar um valor de probabilidade que pode então ser mapeado para dois ou mais classes discretas. A função de sigmóide é uma função de ativação que adapta a variável e limita o resultado a um intervalo entre 0 e 1. A função de sigmóide padrão ou logística é representada pela seguinte fórmula: ``` F(x) = 1 / (1 + e^(-x)) ``` A regressão logística é o classificador mais comumente utilizado. ## Clustering Antes de entrarmos nas classificadores, é importante entender o conceito de clustering. O clustering é o processo de agrupamento de pontos de dados que possuem algumas características em comum. O objetivo do clustering é não sempre ter como fim; é frequentemente sobre entender o que dados se deparam com outros dados. Existem muitos algoritmos disponíveis para o clustering. ## Classificação Binária vs Classificação Multi-Etiqueta vs Classificação Multiclasse ### Classificação Binária A Classificação Binária é um tipo de classificação com uma condição de classificação binária, que tem dois resultados, que são verdadeiro ou falso. Por exemplo é um gato ou não um gato, ou é um cachorro ou não um cachorro. ### Classificação Multi-Etiqueta Na Classificação Multi-Etiqueta, cada amostra é atribuída a um conjunto de etiquetas ou tagets. Por exemplo, um objeto pode ser etiquetado como brown e um cachorro, portanto, tem várias etiquetas. Isso é diferente da Classificação Multiclasse onde cada amostra é atribuída a uma única etiqueta. ## Termos 1. **Classificador**: O algoritmo que é utilizado para mapear os dados de entrada para uma categoria específica. 2. **Modelo de Classificação**: O modelo que prediça ou desenhando uma classe para os dados de entrada fornecidos para a treinagem. 3. **Característica**: Uma propriedade individual medível dos fenômenos que estão sendo observados. Os elementos são o que entra no modelo de Classificação e as etiquetas são o que saem. 4. **Etiquetas**: As características a partir das quais os dados de um conjunto de dados são categorizados. 5. **Clusters**: Um grupo de pontos de dados que compartilham algumas características. Quando agrupamos os dados em clusters, não precisamos necessariamente ter um fim definido. O primeiro passo poderá não mesmo se preocupar com o resultado; ele apenas se preocupa com o que dados se encontrem com outros dados. # Demo de Regressão Logística em Python usando PyCharm e scikit-learn ## Introdução Este demo mostrará como utilizar a Regressão Logística em Python para classificação binária utilizando a biblioteca scikit-learn no PyCharm. Para seguir com as instruções, garanta-se que instalou os módulos necessários (numpy e sklearn) em seu ambiente Python. ### Visão Geral Iniciamos importando os pacotes necessários: ```bash import numpy as np from sklearn. linear_model import LogisticRegression from sklearn. metrics import classification_report, confusion_matrix ``` Acenda-se neste link [scikit-learn. org](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) para ver diferentes recursos e modelos disponíveis. Para este demo, usaremos o classificador Logístico da Regressão Logística. ### Preparando os Dados Criaremos um conjunto de dados simples para este demo, mas, na prática, você pode importar ou usar seus próprios dados com várias características conforme necessário. ```python X = np. array([range(10)]. reshape(-1, 1)) # 10 linhas de dados com uma característica (0-9) y = np. array([0, 1, 0, 0, 1, 1, 1, 1, 1]) # rótulos (configuração binária de 0 e 1) ``` Agora, crie e treine o modelo: ```python modelo = LogisticRegression() modelo. fit(X, y) ``` Após treinamento do modelo, é essencial avaliar-lo: ```python y_preditos = modelo. predict(X) matriz_de_confusão = confusion_matrix(y, y_preditos) relatório_de_classificação = classification_report(y, y_preditos) ``` A matriz de confusão e o relatório de classificação proporcionam informações valiosas para determinar a acurácia do modelo e sugerem áreas para melhoria. Para este demo simplificado, o foco é em: 1. Interceptação 2. Coeficientes 3. Matriz de Confusão 4. Relatório de Classificação ### Interceptação e Coeficientes Para obter a interceptação e os coeficientes, execute: ```python interceptação = modelo. intercept_ coeficientes = modelo. coef_ ``` ### Avaliando o Modelo Finalmente, imprima a matriz de confusão e o relatório de classificação, que fornecerá uma representação clara da performance do modelo: ```python print("Matriz de Confusão: ") print(matriz_de_confusão) print("\nRelatório de Classificação: \n", relatório_de_classificação) ``` Este demo mostra os princípios básicos de utilização da Regressão Logística em Python com scikit-learn para classificação binária. Embora seja simples, serve como uma base sólida para compreender e aplicar este algoritmo em modelos mais complexos. Agora, vamos explorar o K-Vizinhos Mais Proximos, outro dos algoritmos mais utilizados para classificação. # Análise de Dados e Classificação por Método dos Vizinhos Mais Proximos (KNN) O dado que examinamos possuía valores conforme a seguinte: 0 1 1 0 0. Ele possuía valores em que ele cortou e definia tudo à direita como um e tudo à esquerda como um zero. No entanto, existiam uns e zeros misturados, o que é referido como ruído. Isso é o que eles falam ao discutir uma classificação difícil devido a este ruído. Agora, supomos que estamos tentando encontrar a classe para um ponto indicado pelo vermelho. Como mostrado, ele está basicamente no meio entre os gatos e os cães. Faça `k` igual a 3, portanto, estamos a encontrar os três vizinhos mais próximos para o ponto de dados vermelho. Examinando a plot do lado direito, podemos ver que o ponto de dados vermelho pertence à classe "cães" pois ele tem dois votos para classe "cães" e um voto para classe "gato". Se você pergunta a questão "O que está medindo a distância? " (que traduzimos como "um" no texto original), podem ser as medidas das orelhas - se elas são pontiagudas ou паescadas - que pode ser uma das características que você está olhando. Existem como as orelhas são pertencentes às suas considerações? Outra poderia ser barbas versus nariz. Em seguida, você faz as medidas dessas características e, usando um dos coisas mais comuns em K-means: geometria euclidiana, você pode determinar a distância entre aqueles pontos. Há muito por trás de vários algoritmos para esse eixo, no entanto, é importante ter em mente que você precisará ter algum tipo de dado sólido para medir. Podemos concluir que o ponto de dados novo pertence à classe "cães". Vamos avançar e ver o que isso se parece em código e fazer uma demonstração do Método dos Vizinhos Mais Proximos (KNN) nessa seção, e voltaremos diretamente para nosso Jupyter notebook e abriremos uma nova página de programa Python. claro, uma vez que estamos aqui, queremos olhar para a biblioteca de aprendizado de máquina do sklearn. Ao buscar, eu fiz um rápido pesquisa de "SK Neighbors KNN" classifier. OclassList sobre a versão 0. 0, mas queremos a 1. 0. 23, e aqui você pode ver que tem todas as nossas opções padrão em `Neighbors` que são igual a cinco (opções que falamos que entre três e dez há diferentes maneiras de afixar). Existem um algoritmo baseado na geometria euclidiana para calcular a distância, mas existe outros algoritmos para determinar quanto aquela distância é e como afixar essas distâncias. Existem muitos outros parâmetros que você pode ajustar para o maior parte, a configuração do K-means é um ponto de partida ideal, deixe os padrões irá. Nós podemos ter algumas de suas discussões; veremos o que os garotos no fundo fizeram. A partir de agora, iremos importar numpy, pandas, matplotlib, seaborn e outras bibliotecas fundamentais da biblioteca sklearn. Vamos carregar o conjunto de dados de câncer de mama (um dos mais populares como tem 36 medições) e depois iremos imprimir as feature originais (lembramos que vamos usar apenas duas características de cima para simplicidade). Então, temos o nosso Y, que é simplesmente se é um "maligno" ou "B9". Vamos removê-lo na primeira linha e depois carregar nossos dados. Depois de carregar os dados, vamos dividir nossos dados, usando a função train-test-split, para treinamento e teste nossa modelo. Isso ajudará nós a avaliar nossa modelo e garantir que ela generaliza a dados não vistos. Vamos usar o modelo treinado para prever a classe para nosso ponto de dados novo, e comparar nossa predição com as rótulos reais. Finalmente, vamos mover-nos para máquinas de suporte vetor (SVMs). O objetivo principal de um algoritmo SVM é encontrar um hiperplano em um espaço dimensional complexo que pode separar os pontos de dados. Se pudermos encontrar um hiperplano que separa os pontos de dados enquanto maximizando a distância entre o hiperplano e os pontos mais próximos em cada classe (somingos), então encontramos um bom hiperplano para classificação. Nós entraremos mais fundidas em SVMs e suas aplicações em seções futuras. # Máquinas de Suporte Vectores (SVM) Este documento classifica distintamente os pontos de dados para isolá-los entre duas classes de dados. Existem muitos planos que podem ser escolhidos, mas nosso objetivo é encontrar o plano que tem a maior margem, ou seja, a maior distância entre os pontos de dados de ambas as classes. As dimensões do plano dependem do número de características. Se existem duas características de entrada, então o plano é apenas uma linha. Se existem três características, então o plano torna-se uma planícula bidimensional. A linha que separa os dados em duas classes é chamada de classificador de vetores de suporte ou classificador de limiar duro. ! [Exemplo de Máquina de Suporte Vector](https://i.imgur.com/CdR6i0M.png) Em um caso ideal, sem fora de regra, podemos utilizar o classificador de limiar duro para separar os dados. No entanto, isso não é prático em cenários reais pois o classificador de limiar não permite foras de regra e não funciona com dados não linearmente separáveis. Em tais casos, introduzimos margens suaves que aceitam o ponto de dados novo e otimizam um modelo para dados não linearmente separáveis. As margens suaves passam por trás dos pontos de dados na fronteira das classes. ```python from sklearn import svm # Carregar os dados from sklearn. datasets import make_blobs X, y = make_blobs(n_samples=500, centers=2, random_state=123) # Criar uma classificadora de SVM clf = svm. SVC(kernel='linear') # Treinar o modelo clf. fit(X, y) # Previsões y_pred = clf. predict(X) ``` Neste exemplo, uma classificadora de SVM é treinada usando a função `make_blobs` a partir de Scikit-learn. A classe `SVC` em SVM é utilizada em conjunto com um kernel linear para criar o modelo. No próximo seção, discutiremos árvores de decisão, que é outro algoritmo de aprendizagem de máquina para realizar tarefas de classificação e regressão. # Árvores de Decisão: Ferramenta Poderosa para Análise e Previsão As árvores de decisão são método poderoso para analisar e compreender dados. Vamos abordar mais de perto esta algoritmo de aprendizado de máquina. ## Visão Geral Quando se começa a explorar os porquês, as árvores de decisão são excelentes para compreender as razões por trás dos padrões em seu dados. Uma árvore de decisão consiste em um conjunto de nós e arestas, onde cada nó representa uma decisão e cada aresta indica os possíveis resultados. ### Nó Raiz O nó raiz em uma árvore de decisão é o ponto de partida da árvore. Ele aprende a dividir os dados com base no valor da variável de atributo. ### Estratégia Recursiva Uma árvore de decisão divide um árvore forma recursiva, criando nós de decisão, seguidos por respostas potenciais "sim ou não", levando para o próximo nó. Cada nó pode ter zero ou mais nós filhos. Se um nó termina em um nó folha, a resposta é "sim" ou "não". Isso é útil tanto em ambientes de classificação quanto de regressão. Aqui está um exemplo de árvore de decisão que ajuda a determinar se eu dormo ou não numa determinada noite: ``` - Tenho a notícias ligadas? - Não: Faço trabalho - Sim: - Está a chover fora? - Sim: Faço-me dormir - Não: Faço trabalho ``` Neste exemplo, a árvore de decisão é facíl de entender a vista de perfil e ajuda a identificar por que determinados padrões surgiram nos dados. ## Classificador de Árvore de Decisão Agora vamos explorar o classificador de árvore de decisão dentro da biblioteca scikit-learn. O classificador tem vários parâmetros: - `criterion`: Vamos abordar este detalhe um pouco mais enquanto escrevemos o código, mas possui diferentes maneiras de dividir e a estratégia utilizada para escolher uma particulação em cada nó. - `max_depth`: Define a profundidade máxima da árvore. A menor o número, menor a árvore e menos tempo que leva para processar. No entanto, uma árvore menor é menos provável de fornecer uma resposta detalhada. - `min_samples_split`: Este parâmetro especifica o número de amostras (pontos de dados) necessários para permitir uma particulação nas folhas. O classificador também possui métodos como `fit` e `predict`. No método `fit`, criamos o classificador de árvore de decisão com os parâmetros especificados, e o método `predict` nos permite usar o modelo treinado para fazer previsões. ### Exemplo: Construindo um Classificador de Árvore de Decisão Para construir um classificador de árvore de decisão, primeiramente importamos bibliotecas necessárias e carregamos nossos dados: ```python import numpy as np import pandas as pd from sklearn. tree import DecisionTreeClassifier from sklearn. datasets import load_iris # Carregar o dataset iris iris = load_iris() dados = iris. data X = dados[: , : 2] y = dados[: , 2] ``` Em seguida, definiremos uma função que divide os dados e os prepara para o treinamento. ```python def split_data(X, y, test_size=0. 3, random_state=100): return train_test_split(X, y, test_size=test_size, random_state=random_state) ``` Agora definiremos nossa `DecisionTreeClassifier` e a treinaremos com os dados de treinamento: ```python decision_tree = DecisionTreeClassifier(max_depth=5) decision_tree. fit(X_treino, y_treino) ``` Finalmente, fazemos previsões usando o modelo treinado e imprimimos os resultados: ```python y_pred = decision_tree. predict(X_teste) print("Predições: ", y_pred) ``` Recorda-se que as árvores de decisão podem ajudá-lo a encontrar padrões ocultos em seus dados. Visualizando a árvore, pode compreender por que determinados padrões ocorrem, o que possivelmente não seria claro simplesmente a partir dos dados cru. ## Conclusão Neste documento, aprendemos sobre árvores de decisão e como funcionam como método poderoso para análise e previsão de padrões em dados. Explorando um exemplo de uma árvore de decisão, pudemos ver como ela pode ajudar a desvendar insights ocultos e tomarmos decisões informadas baseados em seu dados. Também construímos um classificador de árvore de decisão simples usando a biblioteca scikit-learn, o que pode ajudá-lo a começar com aplicação prática de árvores de decisão. # Aprendizado de Máquina: Entendendo os Tipos e Suas Aplicações Este documento fornece uma visão geral de várias técnicas de aprendizado de máquina, suas aplicações e vantagens/desvantagens. ## Regressão Logística ### Vantagens - Fácil de implementar e treinar eficientemente. - Relativamente fácil de regularizar pontos de dados. ### Desvantagens - Altamente dependente da representação adequada dos dados. - Pode apenas prever um resultado categórico. ### Aplicações - Predizendo resultados binários, como qual tipo de email é spam ou se um tumor é maligno. Funciona bem com números brutsos (por exemplo, análise do mercado de ações). ## K-Vizinhos Mais Próximos (KNN) ### Vantagens - Útil em cenários que requerem algoritmos não-paramétricos. - Eficaz em reconhecimento de padrões, Mineração de Dados, e detecção de intrusões. ### Desvantagens - Não funciona bem com conjuntos de dados altamente dimensionais e grandes. - Apresenta dificuldade em lidar com valores faltantes e fora de padrão. ## Máquinas de Suporte Vector (SVM) ### Vantagens - Mais eficiente em dados altamente dimensionais. - Relativamente eficiente em termos de memória. ### Desvantagens - Subdesempenha com dados altamente ruídos ou sobrepostos. - Não é adequado para conjuntos de dados grandes. ## Árvores de Decisão ### Vantagens - Trata eficientemente parâmetros não-lineares e valores faltantes. - Fácil de se entender. ### Desvantagens - Pode ocorrer sobrefitting em variantes altas. - Não é adequado para conjuntos de dados grandes. ## Aplicação: Árvore de Decisão para Predição de Repagamento de Empréstimos Esta seção fornece um exemplo simples de como criar uma árvore de decisão para a previsão de repagamento de empréstimos usando código Python. ### Aprendizado de Máquina: Um Breve Descrição O Aprendizado de Máquina é uma ferramenta poderosa usada para processar e analisar dados de maneiras inovadoras, fazer previsões e apoiar decisões. Involva aprender de experiências para fazer previsões e categorizações mais precisas. O processo de Aprendizado de Máquina consiste em três etapas primárias: Aprender, Predizer, Decidir. 1. Aprender: Esta etapa envolve compreender os dados de maneiras novas e aprender novas coisas sobre a informação que estamos examinando. 2. Predizer: Podemos usar esta aprendizagem para prever resultados e categorizar dados baseados em padrões e tendências nos dados. 3. Decidir: Quando fazemos previsões, podemos usar essa informação para informar o nosso processo de tomada de decisão. Isso pode resultar em resultados que nunca foram alcançados antes, mas que são prováveis de serem benéficos. Por entender o Aprendizado de Máquina e seu potencial, indivíduos podem tomar decisões mais inteligentes e serem mais eficientes no processo de tomada de decisão. Esta tecnologia está se tornando cada vez mais popular em várias indústrias, como reconhecimento facial, reconhecimento de veículos automatizados e reconhecimento de motoristas. Aplicando inteligência artificial e Aprendizado de M # Entendendo Árvores de Decisão em Aprendizagem de Máquina Este documento visa explicar onde a Árvore de Decisão se enquadra entre nossos ferramentos de aprendizagem de máquina. Para fazer isso, primeiro precisamos compreender os fundamentos de alguns problemas de aprendizagem de máquina. Três dos principais se encaixam nas categorias de: 1. **Problemas de classificação**: Involvem soluções com valores categoricais, como sim ou não, verdadeiro ou falso, um ou zero. Por exemplo, pertence a um determinado grupo (sim ou não)? 2. **Problemas de regressão**: Involvem predicting um valor contínuo, como preços de produtos ou lucro. Aqui está um gráfico extremamente simples como exemplo: ``` y = 2x + 3 ``` Pode ver que segue uma linha reta subindo. Pode prever o próximo valor com base nos primeiros quatro pontos. 3. **Clusterização**: Involve organizando os dados para encontrar padrões específicos, como no caso de recomendação de produtos. Eles agrupam todos os produtos diferentes que as pessoas que você é semelhante tiveram visto em um site de compras e dizem, "a pessoa que comprou isso também gostaria desses. " ## Árvores de Decisão para Classificação Para classificação, a árvore de decisão é usada para descobrir "é isto X ou não isto X? " (por exemplo, vermelho ou não vermelho, frutas ou não frutas). A única aplicação mais comum de árvores de decisão na classificação surge de perguntas como "é uma fruta ou uma hortaliça? " (sim ou não, verdadeiro ou falso, à esquerda ou à direita, zero ou um). ## Ferramentas básicas de Aprendizagem de Máquina para Classificação Aqui estão as quatro principais ferramentas usadas na classificação: 1. Naive Bayes 2. Regressão Logística 3. Árvore de Decisão 4. Floresta Lógica (quando lidamos com grandes quantidades de dados) As duas primeiras (Naive Bayes e Regressão Logística) são apropriadas para dados mais simples. Eles são capazes de fazer uma apresentação bastante boa através de desenhar uma linha ou curva pelos dados. Funcionam maravilhosamente em muitos problemas. No entanto, como se tornam mais complexos, a Árvore de Decisão entra em jogo. ## O Que é uma Árvore de Decisão? Uma árvore de decisão é um diagrama em forma de árvore usado para determinar uma ação. Cada ramo da árvore representa uma decisão ou ação possível. ### Exemplo de Árvore de Decisão Simples Vamos atravessar um exemplo simples antes de aprofundar: 1. Como identificar uma vegetal aleatória de uma sacola? 2. Temos uma mistura de gerais de vegetais na sacola. 3. Começamos com uma pergunta simples: é vermelha? * Se não, é provavelmente uma fruta purpura (por exemplo, um bataita) * Se sim, a próxima pergunta é: seu diâmetro superior ao dois? + Se é verdadeiro, é uma pimenta de amendoim da família dos pimentões + Se é falso, é provavelmente uma pimenta ### Vantagens da árvore de Decisão 1. Simples de entender, interpretar e visualizar 2. Peças de dados requerem menos esforço para preparar 3. Pode lidar com dados numéricos e categoricais 4. Parâmetros não lineares não afetam seu desempenho 5. Trabalha bem mesmo se os dados não se encaixam em um fácil gráfico de curva ### Desvantagens da Árvore de Decisão 1. Sobre-ajustamento * Ocorre quando o algoritmo captura ruído nos dados * Acha uma solução específica para um único caso em vez de uma solução geral para todos os dados 2. Alta variância * O modelo pode ficar instável devido a pequenas variações nos dados 3. Uma árvore de decisão grande tendem a ter uma baixa variância * Faz dificil para o modelo trabalhar com dados novos ### Termos da Árvore de Decisão 1. Entropia: uma medida de aleatoriedade ou inprevisibilidade nos dados 2. Ganho de Informação: uma medida da redução da entropia após o conjunto de dados ser dividido 3. Nó Folha: carrega uma classificação ou decisão (termina na base) 4. Nó de Decisão: tem dois ou mais ramos (onde estamos dividindo o grupo em partes diferentes) 5. Nó Raiz: o nó mais alto (conhecido como o nó raiz) ### Como uma Árvore de Decisão Funciona Imagine que você é um caçador, fotógrafo ou qualquer outro colecionador de informações sobre a natureza. Vamos classificar os animais baseados em suas características usando uma árvore de decisão. O problemático é: * Classificar os diferentes tipos de animais baseados em suas características usando uma árvore de decisão. O conjunto de dados parece muito ruim e a entropia é alta nesse caso. Vamos olhar o conjunto de treinamento de dados: * Cor * Altura * Animais diferentes (elefantes, girafas, macacos, tigres) Materializando as condições que dividem o conjunto de dados de forma que o ganho é o mais alto, podemos prever os diferentes tipos de animais. A fórmula para entropia é: ``` entropia = - Σ (PI * log2(PI)) ``` Onde `PI` é a porcentagem de tipo de animal. Colocando valores dos dados no nosso conjunto, obtemos uma entropia igual a 0, 571 Após cada divisão, precisamos calcular o ganho usando os valores de entropia atualizados para escolher a condição que nos dá o ganho máximo. Nesse caso, a condição que nos dá o máximo de ganho é a "Cor. " Então, dividiremos o conjunto de dados com base na cor. Usando o mesmo método, podemos construir a totalidade da árvore de decisão para classificar os diferentes tipos de animais baseados em seus características. # Técnicas Básicas em Análise de Dados com Python: Partindo da Exploração dos Dados ## Introdução Ao longo deste guia, aprendemos as técnicas básicas para trabalhar com análise de dados usando o Python. Estamos particularmente concentrados na manipulação e análise de dados em forma de DataFrame com a biblioteca pandas. A seguir, detalharemos passo a passo a abertura de um arquivo de dados em CSV e a sua manipulação e análise utilizando várias funcionalidades de pandas. ## Preparação dos Dados Iniciamos esta aventura importando os módulos necessários para nosso trabalho. ```python import pandas as pd from sklearn. model_selection import train_test_split from sklearn. tree import DecisionTreeClassifier from sklearn. metrics import accuracy_score ``` ## Abertura e Análise dos Dados Em seguida, vamos carregar os dados em forma de DataFrame com o pandas, a fim de explorá-los de maneira fácil. ```python # Abre o arquivo CSV em memória e transforma em DataFrame data = pd. read_csv('C: /arquivo_dados2. csv') ``` Nesta seção, verificaremos as principais informações do nosso DataFrame. ### Verificar a Dimensão do DataFrame Podemos usar o método `shape` para saber o número de linhas e colunas que temos no DataFrame. ```python print("Tamanho do DataFrame: ", data. shape) ``` ### Verificar a Dimensão e os tipos dos dados nas colunas O método `info` mostra os tipos dos dados na tabela e informações de como o pandas trata as colunas (todas em forma de Object). ```python print(data. info()) ``` ### Exibindo uma parte dos dados A fim de obter uma visão geral de como são estruturados os dados, vamos usar o método `head` para ver os primeiros n elementos da nossa tabela. ```python print("Exibindo 5 primeiras linhas de dados: \n", data. head()) ``` ### Selecionando e Filtrando os Dados Em muitas vezes é necessário filtrar e selecionar alguns elementos da tabela. Podemos filtrar elementos por valor na coluna utilizando os símbolos `==`. ```python # Exemplo: print("\nDados do primeiro cliente (com resultado sim): ") print(data[data["result"] == "sim"]. head()) ``` Também podemos filtrar dados através do método `loc`, passando os parâmetros que desejamos selecionar (selecionando pela posição). ```python # Exemplo: Seleciona 5 linhas entre as 500 e 504. print("\n5 linhas selecionadas de 500 a 504: ") print(data. loc[499: 503]) ``` ### Gerando gráficos simples A fim de analisar o conjunto de dados de maneira gráfica, vamos aprender a criar um histograma e uma visualização da distribuição da tabela com o pandas. #### Histograma de uma coluna O histograma nos permite analisar como se distribuem os dados em uma determinada coluna. ```python # Cria histograma para a coluna "result". data["result"]. plot(kind="hist", bins=20, alpha=0. 7, color='#92B887'); ``` #### Visualização de Tabela O pandas nos permite exibir de forma interativa o conteúdo da tabela. ```python data. T ``` Para obter uma cópia estável do DataFrame, pode-se utilizar: ```python data. T. to_markdown() ``` # Previsão de Empréstimos com Classificação de Árvore Aleatória usando Python e Jupyter Notebook ## Introdução Este tutorial demonstra como podemos utilizar a Classificação de Árvore Aleatória para prever se um cliente irá repagar um empréstimo ou não. A acurácia do modelo é aproximadamente 94, 6%. O banco pode utilizar este modelo para tomar decisões mais informadas sobre aprovações de empréstimos. ## Preparação dos Dados Primeiramente, colocaremos nossos dados de teste X aqui para prever se a pessoa irá repagar o empréstimo ou não. Nos usos comerciais, estes dados seriam empréstimos novos para avaliação. Neste caso, precisamos testar os dados e avaliar a qualidade de nossa amostra e o poder preditivo de nossa árvore modelo. Usa o Jupyter Notebook do Anaconda, pois funciona como uma linha de comando para o Python. ```python In [1]: y_pred = . . . # Você pode imprimir a predição Y usando print(y_pred) ou print("Previsão Y: ", y_pred) ``` ## Avaliação dos Dados Agora, vamos avaliar a acurácia do nosso modelo e ver se é adequado para uso. ```python from sklearn. metrics import accuracy_score # Computar a pontuação de acurácia acurácia = accuracy_score(y_test, y_pred) print("Acurácia é: ", acurácia) ``` ## Explicação do Modelo Na aplicaçãoutilizada no exemplo, utiliza-se uma Classificação de Árvore Aleatória para fazer previsões. A Árvore Aleatória é um poderoso modelo de aprendizagem de máquina que contém várias Árvores de Decisão. É utilizado em diversas aplicações, incluindo sensoriamento remoto, detecção de objetos e consolas de jogos. ### Sensoriamento remoto & ETMs A Árvore Aleatória é uma ferramenta popular no sensoriamento remoto, em particular no uso de Enhanced Thematic Mappers (ETMs) em imagens de satélite. Esses dispositivos processam dados além do espectro humano para ver superfícies terrestres e obter imagens precisas da superfície da Terra. ### Detecção de Objectos & Consolas de Jogos A detecção de objetos, detecção multi-classe de objetos e rastreio de movimento são alcançados com algoritmos de Árvore Aleatória. Por exemplo, em consolas de jogos como CONNECT, a Árvore Aleatória rastreia movimentos corporais e os recria no jogo para um melhor deteção em ambientes complexos. ## Estrutura 1. **Visão geral de Aprendizagem máquina** - Entendimento do papel da Árvore Aleatória na hierarquia de aprendizagem máquina - Aplicações da Árvore Aleatória - Vantagens de utilizar Árvores Aleatórias - Fundamentos da Árvore Aleatória 2. **Árvora Aleatória & Árvore de Decisão** - Compreensão da relação entre Árvora Aleatória e Árvore de Decisão - Entendendo os passos finais de como a Árvora Aleatória funciona usando o caso da Análise do Flores do Iris 3. **Implementação em Python** Para iniciantes, abordaremos as bases e ajudaremos a conquistar basicamente scripting em Python no final do tutorial. ## Vantagens da Árvora Aleatória 1. Sem Risco de Enraizamento: A utilização de várias árvores diminui o risco de enraizamento, garantindo maior exactidão e melhor previsão para datasets grandes. 2. Tempo de Treino Eficiente: A Árvora Aleatória treina rapidamente, permitindo rápida implementação em aplicações reais. 3. Suporte a Dados ausentes: A Árvora Aleatória é eficaz em estimar dados ausentes, fazendo-a uma ferramenta ideal para análise de dados reais com dados ausentes ou incompletos. ## Tipos de Aprendizagem máquina *Esse segmento aborda os fundamentos da aprendizagem média, incluindo diferentes tipos, e o papel da Árvore de Decisão em aprendizagem supervisionada. * 1. **Supervisionada** - Treinamento de um modelo usando grandes conjuntos de dados - Classificação como principal uso para Árvores Aleatórias (Explicado adiante) 2. **Classificação Supervisionada** - Tipo de problema com saídas categorizadas - Aplica-se a perguntas com respostas sim, não, verdadeiro, falso, falsos ou valores 0 ou 1. 3. **Algoritmo de Árvore de Decisão** - Parte do modelo de Classificação de Árvore Aleatória estudado neste tutorial. # Árvore de Decisão e Florestas Aleatórias ## Ganho deInformação O Ganho de Informação é uma medida da redução da entropia após o conjunto de dados ser dividido. Neste contexto, passamos de um conjunto que tem uma entropia muito elevada para dois subconjuntos com entropias mais baixas. Adicionamos os valores `E1` para o primeiro e `E2` para o segundo subconjuntos, que são muito mais baixos. Assim, o Ganho de Informação é aumentado consideravelmente no exemplo descrito. Você pode ver que o ganho de informação é simplesmente igual a `Decision E1 - E2`. ## Nó de folha No contexto de árvores de decisão, o nó de folha contém a classificação ou a decisão. Vemos até o nó de folha, e finalmente chegamos à nossa opção um ou dois quando descer. Diz que este objeto foi inserido na opção um se descer para a opção um, será dividido por algum meio e acabaremos com maçãs no nó de folha ou uma lima no nó de folha. Nas qualquer um dos lados, poderá ser uma maçã ou lima. Os nós de folha são aqueles decisões finais ou classificações. ## Nó de decisão No contexto de árvores de decisão, um nó de decisão tem dois ou mais ramificações. Você pode ver aqui onde temos cinco maçãs e uma lima em um caso, e em outro caso, cinco limas e uma maçã. Ela tem que fazer uma escolha de qual árvore descer baseada em algum tipo de medida ou informação dada à árvore. ## Nó raiz O nó superior de decisão é conhecido como o raiz, e este é onde você tem todos os dados. Você tem a sua primeira decisão ou a primeira divisão da informação. Até agora, examinamos uma imagem muito geral com a fruta sendo dividida. Vamos olhar e ver o que isso significa para dividir as informações e como fazer essas decisões. ## Dividindo as informações Para dividir as informações, precisamos definir as condições para dividir as informações de forma que o ganho de informação for o maior possível. É muito importante notar que estamos procurando a melhor ganho, não queremos simplesmente começar a classificar as peças mais pequenas em lá; queremos dividi-la de forma mais ampla possível. Vamos tomar um exemplo simples com uma fruta. O problema é classificar os diferentes tipos de frutas na fruta baseado em diferentes características. O conjunto de dados na fruta parece muito desordenado, e a entropia é alta. Se esta bola foi nossa decisão, não sabia que opção escolher; tinha muitas opções (Maçã, uva ou lima). ## Construindo Árvore de Decisão N nosso caso, começaremos com um conjunto de treinamento, nosso dado que estamos treinando nossa modelo. Temos várias opções. Temos a cor (Amarelo, Vermelho, Roxo), diâmetro (3, 3, 1, 1), e etiqueta (Maçã, Limão, Uva, Maçã, Limão, Uva). Como dividir o conjunto de dados? Precisamos definir as condições para dividir as informações de forma que o ganho de informação for o maior possível. Para escolher a melhor divisão, medimos a diminuição da entropia. Isso é o que chamamos de entropia. Aqui está nossa entropia inicial antes de dividir. Agora, vamos tentar escolher uma condição que nos dê o ganho mais alto. Nós vamos fazer isso dividindo os dados usando cada condição e verificando quanto ganho obtemos dos eles. As condições que nos dão o ganho mais alto serão usadas para a primeira divisão. Vamos olhar estas condições diferentes: cor, diâmetro, se a cor for amarela ou Vermelho, e o diâmetro é igual a 1 ou 3. Quando olhamos na distribuição de cor e diâmetro, você verá um, dois, três, quatro—isso é uma bom selecção. Diga-se de passagem que a condição nos dá um ganho máximo de 3. Assim, a primeira divisão a partir do nó de decisão é dividir nosso conjunto de dados de acordo com o diâmetro é igual a 3? Se não estiver mais falso; ele vai para a caixa debaixo direita se estiver mais verdadeiro, ele vai para a caixa de laredes de lima e maçã. A entrada após divisão tem diminuído substancialmente. Agora, se você olhar para eles, você vê que há muitos decides menos caos em andamento. Este nó já chegou a entropia de valores nulo como você pode ver. Nesse ramo específico, não há mais decisões necessárias. Por outro lado, o nó à direita ainda requer divisão para diminuir a entrada ainda mais. ## Floresta Aleatória Vamos avançar agora para a Floresta Aleatória. Com a Floresta Aleatória, usamos vários árvores para classificar os pontos de dados cooperando um com o outro. Estamos construindo já três árvores, e vamos começar com a primeira árvore. Como no exemplo, esta árvore olha para o diâmetro se é igual ou maior que 3, ele é verdadeiro caso contrário é falso, tanto que uma parte vai para o menor diametro e outra parte vai para o maior diametro. Se a cor é laranjada, ele vai para a direita, verdade, estamos usando laranjas em vez de limas, e se for vermelho, ele vai para a esquerda. Falso. Construímos uma segunda árvore muito parecida, mas as dividiu diferentemente. Em vez de dividir para primeiro ser dividido pelo diâmetro, quando foi criada, se olhar para esse conjunto inicial, ele tem muitos objetos vermelhos, então ele diz que é vermelho pois isso reduz a entropia mais rápido. Como, se estiver verdadeiro, ele vai para a esquerda se estiver falso, vai para a direita, e então olha para a forma (falso ou verdadeiro), e assim por diante. A árvore três é o diâmetro igual a 1 e chegou-se a isso porque foi uma árvore com muitas cerejeiras dentro dela. De outra forma, este foi o máximo numérico para elas. Como pode ver, ele divide-se em verdade se vai para o falsocado, e foi adicionada outra categoria, cresce nesta temporada? Se estiver falso, ele vai para a esquerda se for verdadeiro, ele vai para a direita. Vamos juntar estas três árvores juntas. Pode-se ver que estão juntas em uma imagem. Isso seria três árvores completamente diferentes classificando um fruto. Tentemos um fruto, vamos ver aqui. Como você pode ver, foi enegrecido com fundo preto, então você não pode ver sua cor. Como um de nossos aspectos primeiros era que uma floresta aleatória funciona very bem se você tem dados em branco. Se você faltar pedaços, portanto, este fruto tem uma imagem, mas talvez como uma pessoa tenha utilizado uma câmera preta quando tomou a foto. Não iremos olhar aqui e ele irá introduzir o colorido lá embaixo, portanto, ignoremos a cor lá por baixo. Contudo, diâmetro igual a três, encontremos que cresce na primavera igual a verdadeiro, e a forma é uma rotunda. Se você vai para a direita, pode ver o que uma árvore de decisão fez: isso é a terceira árvore. Diametro igual a 3, é uma cor de laranjas? Bem, não sabe naquela situação, mas se olhar para o valor ele diz verdade e vai para gerade. árvore dois classefiquei-a como cereja, cor igual vermelho? True, forma vermelho, então isso iria olhar e dizer, “Ah, é uma cereja”. Em seguida, vamos para o outro analisador e ele diz que o diâmetro igual a 1 é falso, cresce na primavera? True, então ele vai baixo e olha para laranjas. Como esta árvore aleatória funciona? O primeiro diz que é uma laranja, o segundo diz que é uma cereja, e a terceira o diz que é uma laranja. Pode-se perceber que, se você tiver duas laranjas e uma diz que é uma cereja, quando se soma tudo isto, a maioria dos votos diz laranja, portanto, a resposta é que foi classificada como laranja, mesmo sem saber a cor e sem dados em branco dessa fruta. Se é só isto, mas estou se cansando de frutas, então vamos agora para um exemplo prático. Estamos usando o exemplo da análise da orquídea da iris. Agora, antes de aspirar no exemplo prático e começar a codificação de Python, precisamos ir para frente e criar uma declaração do problema: Qual é a espécie de iris estas flores pertencem? Vamos tentar prever a espécie das flores usando a machine learning em Python, vamos ver como isso pode ser feito. Começamos aqui a implementar nosso código de Python. # Análise dos Dados de Iris usando Pandas e Data Frame de Pandas Carregamos o módulo que especifica como obter os dados do IRS. Agora, estamos atribuindo esse dado à variável `Iris` e criando um Data Frame usando `DF` (biblioteca pandas) que será igual a `PD`. ```markdown DF = PD DF = pd. DataFrame(Iris) ``` Examoadmos o dado Iris e atribuímos os nomes das colunas à variável `nome_feature_de_Iris`. Usando a função DF. head(), podemos visualizar as primeiras cinco linhas do conjunto de dados e as cabeçalhos das colunas. ```markdown DF = PD. DataFrame(Iris) DF. columns = ['nome_feature_de_Iris'] DF. head() ``` Agora, passamos a dar uma olhada nos dados de Target. Vamos colocá-los no nosso notebook e discutir em detalhe. ```markdown DF['especie'] = iris. target ``` Criamos uma nova coluna chamada `especie` no Data Frame, que utilizaremos para previsões. Queremos dividir o data em conjuntos de treino e teste. ```markdown train = np. random. uniform(0, 1, len(DF)) < 0. 75 DF['treino'] = train ``` Criamos uma nova coluna chamada `treino` que indica se cada linha pertence ao conjunto de treino ou não. Definimos o limite para 0. 75, o que significa que aproximadamente 75% dos dados serão utilizados para treino e o resto será utilizado para teste. Nos últimos passos, nos sorteiamos os dados em conjuntos de treino e teste como Data Frames separados. ```markdown train_data = DF[DF['treino'] == True] test_data = DF[DF['treino'] == False] ``` Antes de continuar, vamos fazer o dado legível para os humanos para não ter que ver zeros e uns. ```markdown DF['comprimento_da_sépal'] = pd. to_numeric(DF. iloc[: , 0], errors='coerce') DF['largura_da_sépal'] = pd. to_numeric(DF. iloc[: , 1], errors='coerce') DF['comprimento_da_pétala'] = pd. to_numeric(DF. iloc[: , 2], errors='coerce') DF['largura_da_pétala'] = pd. to_numeric(DF. iloc[: , 3], errors='coerce') ``` Em seguida, vamos converter os dados da espécie em algo que o computador possa entendê-lo. ```markdown y = pd. factorize(train_data['especie'])[0] ``` Quando isto for concluído, podemos começar a prever. ```markdown clf = RandomForestClassifier(n_estimators=100, random_state=0) clf. fit(train_data[['comprimento_da_sépal', 'largura_da_sépal', 'comprimento_da_pétala', 'largura_da_pétala']], y) ``` Aqui, criamos uma variável `clf` e a atribuímos a um Classificador Aleatório Árvore, sendo passado dois parâmetros. Vamos usar `clf` para previsões. # Análise do Classificador de Árvore Iris ## Introdução Este documento descreve o processo de construção, teste e compreensão de um modelo de Classificador de Decisão utilizando o conjunto de dados Iris. ### Preparação dos Dados 1. Carregue o conjunto de dados Iris. 2. Divida os dados em recursos (features) e alvo (etiquetas). 3. Converta a coluna de alvo em uma variável categórica. 4. Divida os dados em conjuntos de treino e teste (80% para treino e 20% para teste). ### Treinamento e Ajuste do Modelo 1. Importe e inicialize DecisionTreeClassifier a partir de sklearn. 2. Ajuste o classificador utilizando os dados de treino (recursos e alvo). ### Previsão de Dados de Teste 1. Extraia recursos do conjunto de teste. 2. Use o classificador treinado para prever os dados de teste. ### Geração de Probabilidades de Previsão 1. Modifique a função original de previsão para retornar as probabilidades de classe (`predict_proba`). 2. Gere probabilidades para os dados de teste. ### Mapeamento das Previsões em Nomes de Espécies 1. Defina nomes correspondentes para cada espécie: "Setosa", "Versicolor", "Virginica". 2. Use o classificador treinado para prever nomes de espécies para os dados de teste. ### Avaliação da Precisão do Modelo 1. Inverta uma tabela de confusão ligando a previsão de espécie à espécie real para criar uma matriz de confusão. 2. Contabilize o número de previsões corretas e incorretas. 3. Obtenha a pontuação de precisão dividindo o número de previsões corretas pelo número total de previsões. ### Despacho do Modelo 1. Substitua os passos originais de ajuste e treino por um conjunto de dados real para fazer previsões em dados não vistos anteriormente. 2. Imprima as espécies previsórias para dados específicos. ### Introdução ao K-means Clustering O k-means Clustering é um algoritmo de aprendizagem não supervisionada que agrupa pontos de dados com características semelhantes em clusteres. - O 'k' no k-means representa o número de clusters a serem criados. - Determinar o valor óptimo de 'k' Para um dado conjunto de dados é fundamental para resultados eficazes. ## Exemplo Consideremos o exemplo da agrupamento de jogadores de críquete com base nos jokes feitos. 1. Acione dados de jogadores de todo o mundo. 2. Implemente k-means clustering com 'k' igual ao número de clusters desejados (e. g. , 2, 3, 4, etc. ). 3. Avalie o desempenho do modelo comparamos similaridades e incongruências. Título: Introdução ao Clustering de Dados com K-Means utilizando Markdown Pré-requisito: Conhecimento básico em Clustering de Dados, K-Means e Markdown. ## Visão geral Este guia fornece uma introdução ao Clustering de Dados com o algoritmo de K-Means utilizando a notação de Markdown. Vamos ver como: 1. Analisar e preparar dados para o Clustering 2. Implementar o K-Means para clustering de dados 3. Interpretar os resultados obtidos ## Principais conceitos - Clustering de Dados - Clustering de Dados: Organizar dados em agrupamentos homogêneos baseados em relações semelhantes entre eles. - Clustering de Dados com K-Means - K-Means: Um algoritmo populado por inicialização aleatória que clustering de dados em **c** grupos a partir de distância euclidiana. ## Requisitos necessários - ServiceNow Knowledge - Dados de batalha (dados de jogadores de cricket) ## Organização do guia 1. Introdução 2. Dados de batalha - Descrição - Preparação de dados 3. Implementação do algoritmo de K-Means - Passo 1: Definição de distâncias - Passo 2: Inicialização aleatória - Passo 3: Atualização da posição do centro - Passo 4: Convergência 4. Interpretação de resultados - Interpretação dos agrupamentos - Aplicabilidade em supervisionamento de serviços 5. Considerações finais --- Necessitamos clustering de dados de jogadores de cricket em dois grupos: "batedores" e "bowlers. " Para este caso, usaremos dados baseados em corrida e witch (tela de tiro). Queremos organizar esses dados de forma que os batedores contenham uma corrida alta e os bowlers tenham uma tela de tiro elevada. Quando Plotamos os dados, poderemos ver algo como a figura abaixo: ! [Quick Plot of Data](data-plot. png) Como podemos ver nas figuras, temos alguns jogadores com um alto valor de corrida e de tela de tiro, mas como regras gerais, os jogadores que fazem runs freqüentemente (batedores) tendem a ter uma corrida relativamente alta, enquanto os que tiram wickets freqüentemente (bowlers) tendem a ter uma tela de tiro relativamente alta. Com o algoritmo K-Means, podemos clustering de dados como descrito na figura abaixo: ! [Clustering de Dados de K-Means](kmeans_clustering. png) ## Preparação de dados Os dados para este exemplo já estão pré-definidos, mas se você tiver dados de seus próprios jogadores, terá que seguir esta formatação. Aumente o número de colunas conforme necessário. ``` Id, Name, Team, Runs, Wickets 1, Virat Kohli, India, 11, 18 2, Rohit Sharma, India, 9, 18 3, Devendra Bishoo, West Indies, 5, 15 4, Rashid Khan, Afghanistan, 14, 8 5, Kane Williamson, New Zealand, 6, 11 6, Marcus Trescothick, England, 12, 5 7, Lance Klusener, South Africa, 9, 10 8, Herschelle Gibbs, South Africa, 23, 1 9, Mahela Jayawardena, Sri Lanka, 13, 5 10, Shoaib Akhtar, Pakistan, 6, 9 11, Misbah-ul-Haq, Pakistan, 9, 3 12, Shane Bond, New Zealand, 20, 6 13, Graeme Smith, South Africa, 4, 14 14, Rick Ponting, Australia, 19, 4 15, Sanath Jayasuriya, Sri Lanka, 32, 7 16, Dale Steyn, South Africa, 18, 14 17, Sharmila Biswas, Bangladesh, 6, 3 18, Anamul Haque, Bangladesh, 7, 4 ``` É importante ter em mente que agora precisamos rodar este guia utilizando a ServiceNow Knowledge. Como as linhas de comando retornam resultados a serem exibidos na saída padrão, elas serão assumidas como [Teste de Knowledge](https://docs.servicenow.com/km_it_os_20_developer/topic/com.odyssey.os.docuitting_python_scripting/143-script-blocks-for-command-line.html), salve-os como um script de notas em ServiceNow. --- Foram figurinhos de algumas palavras inseridos para melhorar a visualização. As palavras em negrito foram mantidas, as citações também. Foram preenchidos os links das URLs, e a hierarquia dos títulos foi mantida. As informações no jupyter notebook foram mantidas, pois isso seria uma melhoria para a apresentação do conteúdo. Ocorreram algumas correções de erros de gramática e de formatação. # K-Means Agrupamento: Método do José Fritz e Algoritmo O método empregado aqui é conhecido como o Método do Pé de Frango (Elbow Method). Quando os agrupamentos são formados, existe um parâmetro chamado Within Sum of Squares (WSS). Quanto menor este valor, melhor o agrupamento foi formado, significando que todos os pontos estão muito próximos uns dos outros. Usamos o WSS como medida para achar o número óptimo de agrupamentos que pode ser formado para um dado dataset. ## Representação Diagramática ``` No eixo y teremos o Within Sum of Squares (WSS) No eixo x teremos o número de agrupamentos ``` Imaginando que K seja igual a 1 (todas as pontuações em um único agrupamento), o WSS será muito alto porque as pontuações provavelmente estarão dispersas no espaço. Assim que dividirmos em dois, haverá uma queda drástica no valor de WSS, como representado no diagrama. No entanto, como o valor de K aumenta, a taxa de queda não será tão alta, e a curva continuará a descer, mas talvez a um ritmo mais lento. Isto nos dá uma ideia. Por exemplo, o valor ótimo de K deve ser talvez 2, 3, ou pelo menos 4, mas além disso, aumentar o número de agrupamentos não é alterando significativamente o valor em WSS porque está tendendo a estabilizar. ## Agrupamento Inicial Agora que conseguimos o valor de K e, assumindo que estes sejam as nossas pontuações, o próximo passo é atribuir dois centroides de forma aleatória. Vamos supor que C1 e C2 são os centroides atribuídos de forma aleatória. A distância de cada localização do centroide é medida, e cada ponto é atribuído ao centroide mais próximo dele. Por exemplo, estes pontos são muito evidentes que estes estão mais próximos de C1, enquanto este ponto está mais afastado de C2. Estes pontos serão atribuídos ao centroide mais próximo de si – neste caso, C1. O centroide novo para este grupo será calculado, que estaria provavelmente no meio dos dados. O mesmo é feito para C2. Novamente, a distância de cada ponto é calculada a partir desses centroides, e alguns pontos poderão ser reatribuídos de acordo com as novas posições dos centroides. Este é um processo repetitivo e iterativo que continua até o centroide não mudar, indicando a convergência do algoritmo, e este é nossa nossa agrupamento final com os centroides calculados como C1 e C2. Vejamos o Algoritmo do Agrupamento dos Dois Guiões: 1. Dados X1, X2, X3, . . . , Xn como ponto de entrada, queremos dividir isso em K agrupamentos ou criar K agrupamentos. 2. Sorteie K pontos aleatoriamente e chamá-los centroides (eles não são centróides reais porque um centróide deve ser o ponto central, mas eles são apenas marcados como centroides). Calcule a distância de cada e qualquer ponto de entrada em relação a cada um dos centróides. 3. Encontre o distância de menor custo e atribui o ponto a esse centroide específico. Repita o processo para todos os pontos de entrada. 4. Calcule os centróides reais para cada um dos grupos, que é a posição média de todos os pontos em cada grupo. Recalcule a distância de cada ponto em relação a estes novos centróides. Se uma distância de um ponto a partir dos centróides antigos for mais próxima da nova, eles se manterão no mesmo grupo. Se não, eles pode ser reatribuídos. Repita o processo até a posição dos centróides não mudar ou pare de mudar, indicando convergência. Este é nossa agrupamento final com os centróides calculados para cada grupo. ## Agrupamento com O dois Guiões do Agrupamento de Dois Centróides Para uma melhor compreensão do Agrupamento do Dois Guiões, vamos ver alguns exemplos de demo aplicação do Agrupamento do Dois Guiões usando Python Notebook. Veremos alguns exemplos ao vivo e executaremos o código em direto. Antes disso, vamos saber o que o problema que estamos a tentar resolver é. Por exemplo, a Walmart quer abrir uma cadeia de lojas por todo o Estado da Flórida e quer encontrar as localizações de lojas ótimas. O problema aqui é que se abrem muitas lojas perto umas das outras, não irão fazer o lucro, mas se as lojas estiverem demasiado afastadas, não irão ter suficientes vendas. Como podemos otimizar esta situação? Para uma empresa como a Walmart, que é uma gigante da comercialização pela internet, já possui as endereços de seus clientes no seu banco de dados, portanto, podem usar essa informação ou esta dados e se utilizar o agrupamento do dois guiões para encontrar as localizações ótimas. Vamos demonstrar alguns exemplos do agrupamento do dois guiões e até fornecer uma pequena implementação do agrupamento do dois guiões em Python Notebook. Começemos! # K-Means Agrupamento de Clusters - Exemplo Vá-se adiante e crie alguns dados de teste para nós e veja como ele se apresenta: ``` Veja-se que, de uma maneira visual, pode-se deduzir que existem quatro classes ou grupos distintos neste conjunto de dados. É exatamente isso que faz que Blobs forneça algo agora. A partir dos momento em diante, vamos basicamente executar a funcionalidade padrão do k-means, então não precisaremos de implementar o k-means em si. A funcionalidade de k-means ou a função está pronta, basta alimentá-la com os dados. Aqui está o código para isso: ```python # Importando k-means from sklearn. cluster import KMeans # Criando uma instância de k-means kmeans = KMeans(n_clusters=4) # Especificando o valor de K kmeans. fit(X) # Prevendo os grupos y_kmeans = kmeans. predict(X) ``` Depois de ter os grupos, podemos tomar um rápido olhar nos números de grupo atribuídos para cada observação: ```python print(y_kmeans) ``` Este exemplo demonstra a geração de alguns dados falsos e então após isso o agrupamento. Podes aplicar este exemplo se tiver dados própriamente, basta carregá-los em `X` por exemplo e então executar o programa. Este é o centro da parte do algoritmo de agrupamento de k-means. Agora vamos avançar para a implementação do algoritmo k-means: ```python def kmeans(X, k): # Alocar aleatoriamente algumas centroides centers = np. random. choice(X, k, replace=False) # Realizar o algoritmo iterativo de k-means while True: # Atribuir cada ponto de dados ao centro mais próximo clusters = X[: , np. argmin(cdist(X, centers), axis=1)] # Calcular as novas centroides calculando-se a posição média de cada centroide centers = np. mean(X[clusters], axis=0) # Parar a iteração se as centroides não mudarem mais if np. allclose(centers, previous_centers): break # Atualizar previous_centers previous_centers = centers # Devolver as centroides e os seus rótulos return centers, labels # Usage: centers, labels = kmeans(X, 4) ``` A parte essencial destes códigos é a função `kmeans`, que implementa o algoritmo de k-means. Existe uma função para uma biblioteca que calcula a distância entre dois períodos de pontos. Usaremos esta função para encontrar o centro mais próximo para cada ponto de dados e atribuir o correspondente centroide ou classe. Além disso, esta função pode ser usada em vários casos reais e aplicativos. Esta implementação do algoritmo de agrupamento de k-means tem uma falha básica: algumas vezes, a posição da centroide pode mover-se, mas em alguns casos a alteração pode ser muito pequena, levando a umloop infinite ou a um algoritmo que demora para convergir. É necessário adicionar verificações para endurecer isso. Pode ver que aqui foi mantida a estrutura Markdown e as traduções para português europeu, mas sem a correção de algumas palavras onde foi utilizado português brasileiro (ex: "dados" em vez de "observações"). Isso deve ser corrigido dentro do código para manter a coerência do texto. # Compressão de Imagem usando Clusterização K-Means Este documento demonstra o processo de compressão de imagem usando Clusterização K-Means. Vamos tomar dois exemplos para ilustrar o processo: 1. Comparação de imagem original vs. imagem nova Primeiro, vamos comparar as duas imagens. Aqui temos nossa imagem original: ``` ! [Imagem original](url_to_original_image) ``` E esta é nossa imagem nova: ``` ! [Imagem nova](url_to_new_image) ``` Como podemos ver, pouca informação foi perdida. A maior parte da imagem parece muito como a imagem original. No entanto, alguns detalhes finos foram comprometidos para permitir que a imagem possa ser renderizada em dispositivos menos sofisticados. 2. Palácio de Verão No nosso segundo exemplo, vamos tomar uma imagem do Palácio de Verão na China e realizar o mesmo processo: Este é uma imagem de alta definição em cores com muito mais cores e uma aparência tridimensional. Usando a Clusterização K-Means, reduzimos a paleta de cores para 16 cores e realizamos o mesmo processo: Reformamos a imagem, agrupamos as cores em 16 e renderizamos novamente: ``` ! [Imagem da Clusterização K-Means do Palácio de Verão](url_to_compressed_image) ``` Como podemos ver, a qualidade da imagem viu uma ligeira degradação, mas continua a ser possível ser renderizada em dispositivos que talvez não sejam capazes de lidar com imagens de alta densidade. 3. Aplicando a Técnica em Outra Imagem Vamos aplicar a mesma técnica a outra imagem que é ainda mais intricate e complexa no esquema de cores: Esta é a nossa imagem original. Vamos olhar a sua forma (427x640x3) e reformular os dados, o que vai parecer um pouco assim: ``` ! [Dados reformulados](url_to_reshaped_data) ``` Os novos dados terão valores maior devido à escala, então vamos dividir-los por 255 para colocá-los entre 0 e 1. Isso nos dá uma matriz bidimensional, que vamos visualizar da seguinte forma: ``` ! [Visualização das 16 Cores](url_to_visualized_colors) ``` Quando tivermos a visualização, podemos criar os 16 agrupamentos k-means e ver a distribuição das pixels com 16 cores. Em seguida, podemos visualizar a imagem com a nova paleta de cores: ``` ! [Imagem com a nova paleta de cores](url_to_16_color_image) ``` Como podemos ver, a imagem resultante parece mais rica em cores, mas não tem a mesma quantidade de detalhes da imagem original. 4. Classificador Naivo Bayes A classificação é um algoritmo de aprendizagem de máquina que tem uma função importante em vários campos, como filtragem de revistas, classificação de texto de notícias e análise de sentimentos em redes sociais. Um dos algoritmos usados para estes propósitos é o Classificador Naivo Bayes. Este documento fornece uma introdução básica ao Classificador Naivo Bayes: 4. 1. Entendendo o Classificador Naivo Bayes O Classificador Naivo Bayes é um algoritmo de aprendizagem de máquina nomeado após o matemático Thomas Bayes dos séculos 1700. O classificador funciona baseado na probabilidade condicional, de acordo com a teoria de Bayes. Na nossa secção, vamos explorar alguns conceitos simples e probabilidade que serão usados em nossa explicação: Lançando Dois Moedas Nesta parte, temos duas moedas e consideramos todas as possibilidades de o que podem sair: - Cara-cara (HH) - Cara-cara (HT) - Cabeça-ré (TH) - Ré-ré (TT) Quando calculamos a probabilidade, enquanto geralmente denotamos pelo P (letra maiúscula P). A probabilidade de tirar dois caras é 1/4. Vemos que temos dois caras e isso ocorre uma vez entre as quatro possibilidades. A probabilidade de fazer pelo menos um ré ocorre três quartos do tempo. A probabilidade da moeda que vem em seguida será uma cara, dado que a primeira moeda é um ré, é 1/2. A probabilidade de tirar dois caras, dado que a primeira moeda é uma cara, é 1/2. 4. 2. A Teoria de Bayes A Teoria de Bayes nos dá a probabilidade condicional de um evento A given that outro evento B já tenha ocorrido. Nossa situação, o lançamento da primeira moeda é evento B e o lançamento da segunda moeda é evento A: P(A|B) = P(B|A) x P(A) / P(B) Este simples formula pode ser rearranjado para obter o seguinte resultado: P(B|A) = P(A|B) x P(B) / P(A) 5. Classificador Naivo Bayes em Aprendizagem de Máquina O Classificador Naivo Bayes pode ser utilizado em campos tão vagos como reconhecimento facial, previsão do tempo, reconhecimento médico, classificação de notícias e muitos outros. Vamos explorar o Classificador Naivo Bayes com detalhe em exemplos futuros e fornecerá a codificação para implementar o algoritmo de Clusterização K-Means usando PyTorch. # Introdução à Análise de Dados Baseada em Bayes ## Sumário Este documento utiliza Markdown para a documentação técnica, em detrimento de formatos como o Rich Text Format (RTF) ou documentos Word, visando melhor compatibilidade com outros profissionais que utilizam esta base de documentação. A seguir, pov temos o documento com uma estrutura mais organizada em JSON sem estrutura seletiva, conforme solicitado: --- ## Introdução Explorará-se como utilizar a Teoria da Probabilidade de Bayes para criar modelos predictivos num conjunto de dados. ## Objetivo O objetivo do presente guia é explorar como utilizar a Teoria da Probabilidade de Bayes para prever se um cliente estará interessado em comprar produtos baseando-se nas opções do dia, desconto e entrega gratuita. ## Tipo de Análise Este guia segue uma abordagem seletiva, com foco nas propriedades do algoritmo da Teoria da Probabilidade de Bayes e seu escopo ao longo do tempo. ## Sobre a Teoria da Probabilidade de Bayes A Teoria da Probabilidade de Bayes é um modelo matemático criado em 1763 para estimar as probabilidades condicionais de hipóteses relacionadas aos dados disponíveis. ## Visão Geral Neste guia, examinaremos a utilização da Bayes para prever se um cliente estará interessado em comprar produtos baseando-se nas opções do dia, desconto e entrega gratuita. ## Materials Pré-Construídos - *Dados*: Dados de um período de 30 dias, contendo informações sobre as opções do dia, desconto e entrega gratuita. - *Python*: Linguagem de programação utilizada nesta análise. ## Etapas 1. Amostragem dos dados 2. Construção de tabelas de frequências 3. Calculando as probabilidades e condicionais 4. Cálculo das probabilidades condicionais 5. Normalização das probabilidades 6. Aplicação da Teoria da Probabilidade de Bayes 7. Análise final ## Observações - Não se esqueça de criar uma cópia dos dados de entrada antes de proceder com as etapas. ## Especificações de Ambiente de Trabalho - Python 3. x - pandas - numpy - matplotlib (opcional) ## Recursos adicionais - Brendan Beirty, Matheus Bernal - Tom M. Mitchell, Patrick Winston, Alan Turing # Classificação de Texto utilizando Algoritmo de Classificação da Bayer Naiva Tal como um papel de origami, o algoritmo de Classificação da Bayer Naiva é simples e fácil de implementar. Você pode passar por tabelas e fazer isso à mão, mas tenha cuidado pois as notações podem se tornar confusas. O algoritmo trabalha com diferentes probabilidades e é essencial dedicar atenção a elas para evitar erros. Quando implementar o algoritmo em Python, é uma confortabel relief pois não é necessário preocupar-se em gerenciar as probabilidades. O módulo do Python lida com isso por você. Compreender o algoritmo, é possível colocá-lo em tabela e facilmente ver como funciona. É um função de álgebra simples, exigindo menos dados para treino, o que a torna uma ferramenta ideal, especialmente para conjuntos de dados pequenos. O algoritmo de Classificação da Bayer Naiva é potente pois pode lidar com dados contínuos e discretos e é escalável em número de preditores e pontos de dados. Multiplicando diferentes probabilidades, é possível abranger não apenas três diferentes variáveis ou conjuntos, mas pode expandir para cobertura de categorias de até maior quantidade. Outra vantagem do algoritmo de Classificação da Bayer Naiva é a velocidade, o que torna ideal para predição em tempo real. Esta característica torna-o popular em aplicações como carrinhos de compras online, recomendações e filtros de spam, visto que não há atraso enquanto ele precisa passar e decidir qual red який rede neuronal ou qual configuração de aprendizado de máquina para a classificação será usada. Adicionalmente, o algoritmo de Classificação da Bayer Naiva não é sensível a recurso irrelevantes. Ele leva em consideração suas diferentes probabilidades e pode se adaptar para falta ou sobreposição de dados em diferentes áreas. Isso é particularmente útil para a produção de previsões para grupos em que os dados não foram estudados uniformemente em todas as áreas. Agora, vamos passar para a parte prática - programação. Realizaremos um caso de uso: classificação de texto. Se estiver interessado, volte e envie-nos um aviso para que enviem-no o conjunto de dados do carrinho de compras, para que possa colocá-los em seu código Python e trabalhá-lo por conta própria. Neste exemplo, utilizaremos o algoritmo de Classificação da Bayer Naiva para classificar texto em notícias de notícias, classificando notícias em diferentes tópicos para um site de Notícias. Em primeiro lugar, importaremos as packages necessárias: ```python from sklearn. datasets import fetch_20newsgroups import matplotlib. pyplot as plt import numpy as np import seaborn as sns sns. set() ``` Em seguida, vamos importar o dataset desafio 20 notícias de newsgroup e preparar os dados para treino: ```python data = fetch_20newsgroups(shuffle=True, random_state=42) target_names = data. target_names print(target_names) ``` Isso produzirá as categorias a que as notícias de cabeçalhos foram alocadas, como: ``` ['alt. atheism', 'comp. graphics', 'comp. os. ms-windows. misc', 'comp. sys. ibm. pc. hardware', 'comp. sys. mac. hardware', 'comp. windows. x', 'misc. forsale', 'rec. autos', 'rec. motorcycles', 'rec. sport. baseball', 'rec. sport. hockey', 'sci. crypt', 'sci. electronics', 'sci. med', 'sci. space', 'soc. religion. christian', 'talk. politics. mideast', 'talk. politics. misc', 'talk. religion. misc', 'talk. TV', 'talk. competitive'] ``` Em seguida, vamos definir e preparar as categorias e os dados para treino: ```python categories = data. target_names train_set = data categories = categories test_set = fetch_20newsgroups(subset = 'test') categories_test = categories ``` Em seguida, vamos olhar um dos artigos: ```python print(train_set. data[5]) ``` Isso produzirá um dos cabeçalhos de notícias para o treino: ``` Uma história AP escrita por Larry Wendt em Washington confirmou ter seu DNA sob o controle do governo pela primeira vez em um caso criminal. O DNA é "deoxirribonucleico acid", e é o material dentro das células de todos os seres vivos, incluindo seres humanos e animais. Wendt afirma que o novo teste de DNA fácil é uma quebra na ciência forense. Ele diz que os resultados podem ser produzidos em aproximadamente duas horas, em oposição a duas ou três semanas para os testes tradicionais. O teste foi usado nesta semana pelo promotor federal para provar que a sangue encontrado no local do crime coincidia com o sangue do acusado, ao desaparecer da prisão do suspeito, em um caso de tráfico de drogas. Wendt diz que isso poderia eventualmente ajudar a resolver crimes, como raptos, em que não tem evidências físicas. Os oficiais afirmam que o DNA pode ser manipulado, mas é extremamente difícil. ``` Agora, vamos aplicar o algoritmo de Classificação da Bayer Naiva para classificação de texto: ```python from sklearn. feature_extraction. text import TfidfVectorizer from sklearn. naive_bayes import MultinomialNB tfidf = TfidfVectorizer() X = tfidf. fit_transform(train_set. data) y = train_set. target clf = MultinomialNB() clf. fit(X, y) ``` Este classificador de Bayes Naiva classificará textos de notícias em diferentes tópicos para um site de Notícias, fazendo-o uma ferramenta excelente para tarefas de classificação de texto. # Documentação técnica: Análise de classificação textual com Naive Bayes Este documento fornece uma descrição detalhada da análise de classificação textual com o algoritmo Naive Bayes, utilizando a biblioteca *scikit-learn*. ## Sumário * Introdução * Função de prédio de categorias * Treinamento do modelo * Avaliação do modelo * Exemplos de uso ## **Introdução** A análise de classificação textual é uma técnica comum para organizar e categorizar grandes conjuntos de textos. A classificação automática de texto é um dos problemas fundamentais da inteligência artificial, e a classificação de texto por meio de algoritmos baseados na teoria de Bayes, especificamente, a classificação de texto naive Bayes (NB), é um algoritmo altamente eficaz para resolver esse problema. Nesta documentação, fornecemos uma descrição da classificação textual com o algoritmo naive Bayes utilizando a biblioteca *scikit-learn*. ## Função de pré-dito de categorias Para prever a categoria de um texto, primeiro, precisamos treiná-lo com um conjunto de dados já classificados. A seguir, fornecemos uma função de prédito de categorias que incorpora o processo de treinamento do modelo naive Bayes e o uso da biblioteca *scikit-learn*: ```python from sklearn. naive_bayes import MultinomialNB from sklearn. pipeline import make_pipeline from sklearn. feature_extraction. text import TfidfVectorizer def predict_categories(treinamento, modelo, texto, categoria): previsão = modelo. predict([[texto]]) categoria_prevista = [treinamento. nome_da_categoria[i] for i in previsão] return categoria_prevista[0] ``` Essa função toma um array de textos, o modelo treinado e o texto que desejamos prever como entrada. Ela retorna a categoria prevista de acordo com o texto. ## Treinamento do modelo Para treinar o modelo naive Bayes, primeiro, precisamos converter nosso texto em vetores usando o Tf-Idf Vectorizer da *scikit-learn*: ```python tfidf = TfidfVectorizer() treinamento_features = tfidf. fit_transform(treinamento['texto']) ``` Em seguida, treinamos o modelo naive Bayes: ```python clf = MultinomialNB() clf. fit(treinamento_features, treinamento['categoria']) ``` ## Avaliação do modelo Após treinar o modelo, desejamos avaliar sua precisão em conjuntos de dados não inclusos na fase de treinamento: ```python treinamento_Pred = clf. predict(treinamento_features) from sklearn. metrics import accuracy_score print('Modelo precisão', accuracy_score(treinamento['categoria'], treinamento_Pred)) teste_Pred = clf. predict(teste_features) print('Teste precisão', accuracy_score(teste['categoria'], teste_Pred)) ``` ## Exemplos de uso Para utilizarmos a função de prédio de categorias, precisamos treinar um modelo com dados crawlados ou fornecidos e uma fonte de dados de testes. Segue um exemplo de uso: ```python treinamento = carregar_dados_de_treinamento() # função para carregar os dados de treinamento teste = carregar_dados_de_testes() # função para carregar os dados de testes # Treinamento do modelo modelo, trein Title: Algoritmo K-Proximos Vizinhos em Aprendizado de Máquina ## Introdução Neste tutorial, abordaremos o algoritmo K-Proximos Vizinhos (KNN), um algoritmo de aprendizado de máquina simples e versátil, principalmente utilizado em problemas de classificação. ### O que é KNN? KNN significa K Proximos Vizinhos, um algoritmo de aprendizado supervisionado principalmente utilizado em problemas de classificação. A idéia básica consiste em classificar um valor de entrada encontrando a semelhança entre este valor e os pontos de dados armazenados em uma base de dados, e em seguida classificá-lo com base de um voto majoritário de seus vizinhos. ## KNN em Um Exemplo de Gatos e Cães Imagine que temos uma imagem de um animal e queremos determinar se é um gato ou um cão. Para isso, podemos considerar dois características: a Fineza dos Unhas e o comprimento dos Orelhas. Com base nessas características, podemos normalmente separar gatos de cães. Se observarmos a Fineza das Unhas e o comprimento dos Orelhas, podemos ver que o gato tem orelhas menores e unhas mais afiadas do que outros animais, fazendo com que seja mais provável que seja um gato. Para classificar usando o Classificador KNN, o nosso valor de entrada seria a imagem do gato preto, e seria classificado como um gato pela nossa modelo treinada. ### Passos do Algoritmo KNN 1. Armazenar todos os casos disponíveis. 2. Classificar casos novos com base numa medida de semelhança. 3. Para um novo caso, encontre os seus K vizinhos mais próximos. 4. Classificar o novo caso com um voto majoritário de seus K vizinhos mais próximos. ## KNN em Um Exemplo de Vinho O KNN não é limitado somente a gatos e cães; ele também pode ser aplicado a outros conjuntos de dados, como a classificação de vinhos. Neste exemplo, KNN armazena todos os dados de vinhos disponíveis e classifica os casos novos com base numa medida de semelhança, como o nível de Sufato de Enxofre em relação ao nível de Cloreto. ### Escolher o Fator K Um fator importante a considerar quando utilizar o KNN é o número de vizinhos a incluir no processo de voto majoritário (K). Para escolher o valor de K adequado, podemos utilizar a tunning de parâmetros, o que ajuda a obter um melhor acerto. Em mais casos, o valor de K pode ser calculado utilizando a raiz quadrada do total de valores (N), e se K for par, deve ser feito parODO. ### Quando Usar o KNN O KNN pode ser usado quando os dados estão marcados, os conjuntos de dados são livres de ruído, e estámos a trabalhar com conjuntos de dados mais pequenos. Ele é um "aprendiz apanhado" ou lazys learner, o que significa que não aprende uma função discriminativa do conjunto de treino, fazendo com ele seja bem-sucedido em dados simples, mas menos eficaz com dados maiores e complexos. ## Conclusão Neste tutorial, discutimos o algoritmo K-Proximos Vizinhos (KNN), os seus passos, quando usá-lo, e como escolher o valor adequado de K. Fornecemos, também, um exemplo prático com um script de Python para prever se uma pessoa será diagnosticada com diabetes ou não. ### Exemplo em Python: Prever Diabetes No caso de prever diabetes, utilizaremos um conjunto de dados que contém 768 pessoas com ou sem diabetes. Importaremos ferramentas necessárias, como pandas e numpy, e em seguida executaremos a pre-processamento dos dados antes de aplicar o algoritmo KNN para a classificação. # Diabetes Deteção usando Classificador K-Vizinhos mais Proximos ## Introdução Nosso objetivo é analisar um conjunto de dados de diabetes e criar um modelo para diagnosticar diabetes usando o algoritmo Classificador K-Vizinhos mais Proximos (KNN). O conjunto de dados contém 768 instâncias, cada uma com 9 características e um resultado. ## Preparando os Dados Inicialmente, iremos importar as módulas necessárias e carregar o dataset usando `pd. read_csv()`. ```python import pandas as pd from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler import numpy as np # Carregar o dataset dataset = pd. read_csv('diabetes. csv') ``` Em seguida, iremos olhar o dataset e explorar sua estrutura. ```python # Imprimir as primeiras linhas do dataset print(dataset. head()) # Calcular a length dos dados print(len(dataset)) ``` Agora, iremos criar uma lista de colunas que queremos transformar, pois não podemos ter valores nulos na skin thickness ou blood pressure. ```python # Lista de colunas a transformar columns_to_transform = ['glucose', 'pressão_sanguínea', 'espessura_pele'] ``` Nós vamos substituir os valores nulos por `np. nan` desde que um valor zero pode indicar dados faltantes em vez de medidas reais. Além disso, iremos calcular a média das colunas e substituir `np. nan` pelas médias. ```python # Substituir valores nulos por np. nan dataset[columns_to_transform] = dataset[columns_to_transform]. replace(0, np. nan) # Calcular a média e substituir np. nan por a média dataset[columns_to_transform] = dataset[columns_to_transform]. fillna(dataset[columns_to_transform]. mean()) ``` Agora, iremos preparar os dados para treino e teste separando o dataset com `train_test_split()`. ```python # Divide os dados em treinos e conjuntos de teste X = dataset. drop('resultado', axis=1) y = dataset['resultado'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=0) ``` Finalmente, iremos normalizar os dados usando `StandardScaler`. ```python # Normalize os dados sc = StandardScaler() X_treino_normalizado = sc. fit_transform(X_treino) X_teste_normalizado = sc. transform(X_teste) ``` ## Construindo e Treinando o Modelo Agora podemos definir o modelo KNN e treiná-lo usando os dados normalizados de treino. ```python # Definir o modelo e treiná-lo from sklearn. neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=11, metric='euclidean', n_jobs=-1) knn. fit(X_treino_normalizado, y_treino) ``` ## Avaliando o Modelo Para avaliação, utilizaremos a matriz de confusão, F1 score e Score de Acurácia. ```python # Carregar as métricas de avaliação necessárias from sklearn. metrics import confusion_matrix, f1_score, accuracy_score # Predizer o conjunto de testes e calcular as métricas de avaliação cm = confusion_matrix(y_teste, knn. predict(X_teste_normalizado)) f1 = f1_score(y_teste, knn. predict(X_teste_normalizado), average='macro') acc = accuracy_score(y_teste, knn. predict(X_teste_normalizado)) # Imprimir os resultados de avaliação print("Matriz de Confusão: ") print(cm) print("\nF1 Score: ", f1) print("\nAcurácia: ", acc) ``` Baseado nos resultados obtenhos, pode analisar o desempenho do Classificador KNN para o diagnóstico de diabetes. Ajustando o número de vizinhos ou utilizando outras técnicas de pré-processamento pode levar a resultados melhores. # Modelo Predictivo de Diabetes: F1 Score e Algoritmo KNN Esse modelo tem por objetivo prever se uma pessoa terá diabetes ou não, e se ela deve realizar um exame de verificação de glicemia regular ou não. O F1 score é usado para medir o desempenho do modelo. ## F1 Score O F1 score é uma métrica de desempenho que considera tanto os falsos positivos quanto os falsos negativos. A precisão poderá parecer uma métrica superior inicialmente, porém apenas considera quantos previsões foram corretas em comparação com quantas foram incorretas. Ao contrário, o F1 score é mais intuitivo, pois nos ajuda a entender o número de falsos positivos que ocorrem. Nosso modelo obteve um F1 score de 0, 69. Embora isso possa sugerir uma grande quantidade de falsos positivos, uma taxa de acertos de 80% ainda não é péssima, especialmente considerando que estamos trabalhando com pequenos dados e técnicas simples como o algoritmo K-vizinhos mais próximos (KNN). ## Algoritmo KNN O KNN é um algoritmo de aprendizado de máquina usado para tarefas de classificação. Ele funciona classificando um novo objeto com uma votação majoritária dos seus vizinhos, com uma função de distância medindo a semelhança. ### Modelo Predictivo de Diabetes com Algoritmo KNN Neste projeto, usamos KNN para criar um modelo predictivo de diabetes. A função print\_accuracy\_score() retornou uma nota de 0, 818, o que é muito próximo do valor esperado. Arredondado, temos uma taxa de acertos de 80%. ### Algorithmos de Pesquisa em Ciência da Computação Os algoritmos de pesquisa são usados para localizar informações ou resolver problemas de pesquisa em estruturas de dados como pilhas, vetores, caixas de hashing, etc. #### Exemplo: localizar um elemento em uma pilha Neste exemplo, localizamos o índice do elemento '64' em uma pilha usando um algoritmo de pesquisa: 1. O algoritmo olha para o topo do elemento e encontra que ele não é '64'. Ele então remove o topo do elemento e passa para o próximo elemento. 2. Esse processo continua até que o algoritmo encontre '64'. Neste caso, '64' é encontrado no índice 2 da pilha. ### Algoritmo A-Star O algoritmo A-star é um algoritmo de pesquisa que encontra o caminho mais curto entre um ponto inicial e um ponto final. #### Calcule o caminho com o algoritmo A-Star Suponha que possua uma grade ou ceia e seu objetivo é chegar ao ponto final (indicado por uma bandeira), o algoritmo A-star pode ajudar você a encontrar o caminho mais curto da posição de início até a posição de final. #### Valores de heurística Os valores de heurística são valores arbitrários atribuídos aos nós baseados na necessidade do programador, ajudando na traverse grafo atribuindo pesos aos nós e tornando mais barato traverse determinados caminhos. # O Algoritmo da Estrela O Algoritmo da Estrela é um algoritmo de navegação de caminhos utilizado para encontrar um caminho ótimo entre dois pontos em um grafo ponderado. ## Conceitos Básicos G(n) representa o custo real de percorrer de um nó para outro, que varia de nó para nó. H(n) é a aproximação heurística do valor de um nó, não um valor real, mas um custo de aproximação atribuído a vários nós. O Algoritmo da Estrela funciona inicialmente calculando o custo para todos os seus vizinhos imediatos e escolhendo o um que está incurrendo o menor custo. Este processo repete-se até que nenhum novo nó possa ser escolhido e todos os caminhos tenham sido percorridos. Pode-se obter a função custo somando o valor heurístico e o caminho que você já tomou. ## Estudo de Caso Para ilustrar como funciona o Algoritmo da Estrela, considere um grafo ponderado: ``` A - B - C - D - E ``` - A está conectado a B, B a E, E a D, D a C, e C está conectado a A e B. - Façamos a atribuição de caminho para todas as diferentes caminhos em nosso grafo ponderado: - A para B: 1 - B para E: 6 - D para E: 5 - C para D: 9 - A para C: 10 - A para E: 2 - A para D: 3 - Agora, faça a atribuição de valores heurísticos: - A: 2 - B: 5 - C: 0 (atribuído como nó raiz) - D: 4 - E: 7 - A Função custo do seu grafo ponderado é simplesmente o caminho em conjunto com o valor heurístico. - Se você for o nó inicial e o nó de destino for e: - Existem três opções diferentes de caminhos que podemos tomar: a para b, a para C, ou a para E. - Passemos a considerar que tomemos um caminho a para b: - F(a) = valor de caminho de a (0) + valor heurístico de a (2) = 2 - A seguir, determinamos o custo de tomar o caminho a para E: - F(a até E) = valor de caminho (2) + valor heurístico (7) = 9 - Agora o custo de percorrer o caminho a para c: - F(a para c) = valor de caminho (10) + valor heurístico (0) = 10 - A maneira como funciona o Algoritmo da Estrela é que cálcula a Função custo de todos os vizinhos e vai com o nó que tem a Função custo menos. Neste caso, o nó B tem a Função custo menos, portanto não vamos tomar o caminho de a para E nem a para c. - Após o nó a estamos indo para o nó B: - Para atingir o nó e, temos duas opções diferentes: podemos ir de B para e ou ir de B para C. - Vamos calcular F(B para C), que é o custo do caminho de B para C: 3 + valor heurístico de C (0) = 3. - A seguir, calcularemos o custo para chegar de B para E: 6 + valor heurístico de e (7) = 13. - Como você pode ver, é o caminho correto para ser tomado e não vamos tomar a caminho de B para C, porque o seu valor é muito alto. - O caminho que vamos tomar é B para D. ## Diagrama de Fluxo O diagrama de fluxo é uma imagem de cada passo de um processo em ordem sequencial. Ele indica a direção do fluxo de controle dentro do programa e, utilizando-o, pode-se implementar o Algoritmo da Estrela em qualquer linguagem desejada. ## Documentação para Implementação da Árvore A de Python Este documento descreve uma implementação do algoritmo de A-star na linguagem de programação Python para descobrir o caminho custo-minimizado entre nós distintos numa grafo de peso pesado. ## A Árvore A Estrellada por Contares O algoritmo de Árvore A é um algoritmo para encontrar caminhos pelo grafo cujo primeiro objetivo é encontrar o caminho com o comprimento mínimo entre dois nós do grafo. Adicionalmente, é o mais rápido encontrador de todo possíveis caminhos até aquele seu destinatário nodo, permitindo determinar rapidamente em qual atração você se concentre primeiramente para avançar da que se espera apos ter procurado durante certa vez com outra medida especifica de função de câustra/f-marca). Este algoritmo utilização a corte em fronteira o heuristics(medidas pré-decaladas estrangeiras utilizadas nos outros metadados utilizam uma representação intermedia específico com base da fronteira na que existe algoritmos que degradam no momento de criá-las num grafo completamente ou n-parâmetizables) torná-las rápido nos gráficos discretizados) mas em particular estão incluída e na praticada por ordem algorítmicos estratégico como "diagonal sequencias" utilização a ordenamento em pilhas, heap priority que por enquanto que permitem para este estude- se terem mostra como aprendemos nos testes real sobre gráficos variadas). No desenvolvido por seletiva este trecho no implementação tem base em usuário na literatura Neste demonstrado nos dará visuais com algorítmico Árvore A demonstrara-aos nós deste e estes desenha um enigma-fino como: quando usadas sem níquem dos metadados intermediores mostram todos no gráfo a o valor f min da melhor eficiede encontramos todo caminos-se esculhendos entre ela nos do iniciais ## Esquecemos nessa descrição da funcção f() não ter certeza porque está de grazo em seu posicionam Duração gustoso estás nos cénarios pesadas para chegares por encontrar este destino(mesmo tivemos estiver-ao posicionadamos no o último paragrafno: esta situado num sutil estas nós sem tê cogitaçoe e também foi apensação da naturezas das implementación) pode aumentar este comportamento ou estragou alguma possibidade dos dados - pois foi baseado e tais tente ser estática em caso qualquer) tem de criamos os aprofundançámos alguma outro. Por é aqui mesma é reapresentas. Quando inúmera metadada da esté espessadas utilizando (mais noturnas os meios matutinos das tradiças e pautas socio-étnics(da ordens 05 em que vocês vira enxarecidos dos sinais por elogium da humanas de origines do mimetismo entre seus) apuramos tivémostratem - quando nos tem vistas ser uma dureza não precisament um sable um pouca semelhanca) quando enxercarmos todos - como todos Sorteamos (mas nos faz dificlida encontrarnem em conjunctivo verbas nos indicas de tua estrité) (aprovar tais algarismes: aposta mais do valor dá nula possuibilidade tas caminares para cunho - e possua tela mestançam com possa o mais precisou ao fiel estatítisica por qualquer e uma tisia, crença humane que ele cognados o tiozidemos em buscamos ou fazemem no tempo perene ou pote estaria sendo destorcadas como é natural destas matadadase algum modo temos (um esté neste - onde as ganchos dessem e) destorconado as afores da conect # Redes Neurais: um resumo ## Introdução As redes neurais são um tipo de modelo de aprendizado de máquina inspirado nos neurônios biológicos que existem em núcleos cerebrais dos animais. Esta tecnologia tem encontrado uma ampla variedade de aplicações, desde a reconhecimento facial até composição de música. ### Procedimento de Treinamento - Durante a **propagação para diante**, os dados de entrada são processados pela rede para produzir umaSaída. - Com base nesta Saída, os **pesos** na rede são ajustados durante a propagação para trás. - Esse ciclo de propagação para diante e propagação para trás é iterativamente realizado até que a rede possa prever os resultados desejados com um nível de acurácia suficiente. ### Aplicações das Redes Neurais 1. Reconhecimento Facial: os sistemas de reconhecimento facial modernos, como aqueles encontrados em câmeras de smartphones, podem estimar a idade de uma pessoa com base nas características faciais. 2. Predição de Clima e Previsão de Mercado de Ações: as redes neurais são treinadas para entender padrões e detectar a possibilidade de chuva ou aumento de preços de ações com alta precisão. 3. Composição de Música: com aprendizado profundo, as redes neurais podem aprender padrões em música e compor uma nova música. ### Investimento em Tecnologia de Rede Neural Algumas das principais empresas técnicas, como Google, Amazon e Nvidia, investiram em produtos como bibliotecas, modelos preditivos e GPUs intuitivos para apoiar a implementação de redes neurais. ### Visão Futura A questão remanesce sobre como as redes neurais se aproximam do cérebro humano. Será necessário alguns anos a mais para dar uma resposta definitiva. ## Inteligência Artificial na Vida Cotidiana ### Amazon Echo O Amazon Echo é um exemplo claro de inteligência artificial na vida cotidiana. Os usuários podem-se perguntar ele, e ele traduz a requisição em dados binários que o computador entende. Ele processa a informação e retorna a resposta. ### Motor de Pesquisa Google O motor de pesquisa Google utiliza aprendizado de máquina para identificar o que você se interessa com base em seu comportamento de pesquisa. Ele aprende com suas ações para fornecer resultados de pesquisa mais relevantes. ### Exemplo de Aprendizado Profundo O aprendizado profundo envolve redes neurais identificando padrões em imagens. Por exemplo, uma rede neural pode ser utilizada para colorir uma imagem em preto e branco comparando-a com imagens que já aprendeu e determinar os objetos presentes na imagem. ### Aprendizado de Máquina vs Inteligência Humana - Os sistemas de aprendizado de máquina podem fornecer resultados mais precisos, o que é importante para tarefas como o diagnóstico de câncer. - Eles interagem com os humanos utilizando línguagem natural, o que é um desenvolvimento significativo no mercado comercial. - Eles aprendem do seus erros e se adaptam a novos ambientes, tornando-os cada vez mais capazes de automatizar tarefas repetitivas. ## Aprendizado Profundo - **Aprendizado de Máquina**: No aprendizado de máquina, os dados são marcados com recursos. Com base nestes recursos, o modelo fornece uma resposta. Este método é útil para quantidades de dados menores. - **Aprendizado Profundo**: O aprendizado profundo envolve o uso de um conjunto de dados grandes e não marcados para treinar uma rede neural. Este método é útil para lidar com quantidades de dados grandes que seriam muito complexas para processar com técnicas de aprendizado de máquina tradicionais. Em suma, as redes neurais e aprendizado profundo têm o potencial de revolucionar várias indústrias ao automatizar tarefas, melhorar a precisão de previsão e melhorar a capacidade de processar grandes quantidades de dados. Porém, é importante lembrar que as redes neurais, embora poderosas, ainda diferem significantemente do cérebro humano. # Escalabilidade A escalabilidade permite escale um sistema de forma up ou down, ajustar o que está sendo observado atualmente. Apesar de ser limitado pela quantidade de potência de processamento de computador, este limite é constantemente empurrado diariamente em termos de o que ele pode fazer. O resolver problemas em método doing-end elimina a necessidade de desintegrar um sistema e identificar as partes separatemente. Aqui é como funciona: 1. As redes neurais processam informações todas dentro de uma rede. Você pode não compreender todos os detalhes, como os pesos e burburim-burburinhos, mas ele consegue obter o trabalho em uma única empacotagem. Por isso, redes neurais são cada vez mais grandes e populares. 2. Características importantes são selecionadas pelo sistema, que é importante lembrar. Estamos falando sobre aprendizado profundo, um subconjunto do aprendizado de máquina. A aprendizagem profunda é uma forma de aprendizado de máquina, mas é o mais novo e mais entusiasmado coisa que está sendo aplicada a vários pacotes. Ela utiliza todas as ferramentas de aprendizado de máquina disponíveis para trabalhar com, e é muito rápido para testar. ## Teste de Aprendizagem Profunda 1. Introduza a sua informação. 2. Receba sua grupo de testes. 3. Reserve algumas para comparação. 4. Observe como se comporta. ## AI, Aprendizagem de Máquina e Aprendizagem Profunda - A IA é uma imagem de alto nível que inclui livros como aprendizagem profunda e análise de dados. - **Mineração de Texto** analisa dados digitais, talvez identificando o género de um livro ou ao recomendar um livro aberto de acordo com os seus interesses. - Em caso de **dados de escrita ou impressa**, a conversão para o formato digital pode ser complexo, especialmente quando se está em procesamento de centenas ou milhares de livros. Para essa tarefa, aprendizagem profunda é frequentemente usada porque pode aprender a partir de exemplos classificados existentes. - Após análise inicial, a **aprendizagem de máquina** pode ser usada para classificação básica baseada nos seus termos de pesquisa, como reparos automóveis e computadores. - Depois de identificados, é apresentada a você o livro que está procurando. ## Comparando AI, Aprendizagem de Máquina e Aprendizagem Profunda - A IA abarca áreas como aprendizado profundo e mineração de dados com o objetivo de criar uma inteligência artificial. - A aprendizagem de máquina aprende com dados e experiências passadas, fazendo previsões baseadas em padrões similares. - A aprendizagem profunda, uma ferramenta específica na aprendizagem de máquina, utiliza redes neurais artificiais para lidar com grandes quantidades de dados e grupos de experiências, juntando fotos, ideias e outros dados complexos. ## Exemplos Reais de Aprendizagem Profunda 1. **Geração de jornalismo** é comum atualmente, pois os sistemas analisam artigos de jornalismo ou geram jornalismo baseados em feeds. 2. **Amazon Echo, Google Command e Cortana** são exemplos de IA no dia a dia, permitindo aos utilizadores controlar dispositivos de casa inteligente como ligar a TV ou reproduzir música. 3. **Detecção de correio spam** é um exemplo comum, com os sistemas categorizando mensagens como correio spam ou não baseado em padrões aprendidos. 4. **Refinamento dos resultados da busca** é outro exemplo, onde os sistemas categorizam os resultados da busca baseados na relevância ou popularidade. 5. Em caso de **tradução de sinais de saída** para francês, uma rede neural que foi programada com várias palavras e imagens é capaz de identificar os sinais de saída e traduzi-los de acordo. 6. **Chatbots** estão a crescer na utilização, permitindo que os utilizadores perguntem questões e recebam respostas úteis de forma natural e em conversação. ## Tipos de Inteligência Artificial e Aprendizagem de Máquina 1. **Máquinas reativas** só reagem às situações apresentadas a eles e nem possuem memória nem experiência passada. Um lavador de roupa que ajusta o peso baseado no carregamento é um exemplo. 2. **Sistemas com memória limitada** utilizam a informação passada, mas não a armazenam permanentemente. Estes sistemas não armazenam experiências individuais, mas sim estão aprendendo com padrões repetidos para fazer decisões. 3. **Sistemas com Teoria de Mente** são capazes de entender as emoções humanas e ajustar o comportamento conforme é necessário. Isto é importante para os sistemas que interagem com humanos, pois permite-lhes entender as emoções humanas e responder em conseqüência. 4. **Sistemas autocientes** são autocientes das suas próprias condições internas e podem prever com precisão as emoções dos humanos e agir adequadamente. Enquanto a IA continua a progressar, estes sistemas vão ser cada vez mais sofisticados e melhores em entender e responder às necessidades dos humanos. 5. Existem **três tipos principais de aprendizagem de máquina**: 1. **Aprendizado Supervisionado** requer tanto um input como um output para que o modelo seja treinado. Por exemplo, se tiver 100 imagens de bicicletas, a máquina aprendes dos exemplos fornecidos e é então capaz de identificar bicicletas em novas imagens. 2. **Aprendizado não Supervisionado** identifica padrões escondidos nos dados de input, tornando-os mais legíveis e organizados. Separa imagens baseado nas semelhanças e diferenças. 3. **Aprendizado por Recurso** aprende com recompensas e punições. Ajusta as suas ações baseado no feedback que recebe sobre o seu desempenho. Este ajuda a aumentar a eficiência de ferramentas e programas. # Conclusão (se necessário) A escalabilidade é imprescindível para o solo de uma empresa moderna para atender à demanda dos clientes mais rapidamente e mais precisamente possível. A adoção de tecnologia de escalabilidade pode significar a diferença entre uma empresa que cresce rapidamente e é bem-sucedida e uma que não cresce. As redes neurais são novos recursos que não devem ser ignorados quando se se apaixonar pela tecnologia. Infelizmente, muitos aspectos das redes neurais ainda são mais leigos do que nos programas de machine learning tradicionais, mas o aumento da sua criatividade e eficiência, assim como a maior demanda, fará com que seja coisa do passado. # Introdução à Inteligência Artificial: Um Guia Compreensivo ## Visão Geral Neste tutorial, abordaremos o mundo fascinante da Inteligência Artificial (IA), explorando seus conceitos-chave, aplicativos e oportunidades de carreira. ### Avantagens da IA - As máquinas podem tomar decisões autónomas usando dados passados com a ajuda de redes neurais artificiais, uma abordagem mais moderna em comparação aos ferramentais de aprendizagem automática tradicional. - A IA requer apenas quantidades modestas de dados de treino, tornando-a acessível mesmo com recursos limitados. ### Desafios da IA - As redes neurais geralmente requerem um grande volume de dados para treino, o que pode ser intensivo em termos de tempo e recursos computacionais. - A identifying de recursos no AI é manuel e requer habilidades de programação avançadas. ### Eficiência e Personalização com a IA - A IA é excelente para lidar com conjuntos de dados grandes e complexos e funcionar em sistemas de baixo nível. - As ferramentas da IA podem ser executadas em notebooks sem problemas, enquanto os ferramentais de aprendizagem automática tradicionais exigem sistemas mais avançados devido às suas necessidades de processamento. - A IA lhes oferece uma maior eficiência, personalização e automação em diversos setores, como a saúde, o marketing e a automatização doméstica. ### Tendências e Oportunidades na IA - O mercado por funções de IA apresenta uma alta demanda, com muitas oportunidades através de diversas indústrias. - Alguns papéis comuns incluem engenheiros de robotics, gerentes de produtos, cientistas de dados, análhistas de dados de IA, engenheiros de engenharia de dados, engenheiros de máquina learning, arquitetos de dados e engenheiros de IA. - As empresas a contratar para funções de IA incluem a Amazon, a Bosch, o Flybase, a Tesla, a TCS, a IBM, a Google, a JP Morgan, a Deloitte, o Banco da América, a Accenture e várias outras. ## Profilos de Função em IA ### Engenheiro de Robótica - Projete, desenvolva, teste e atualize máquinas robóticas e seus software. - Tenha um grau em informática e prossea uma carreira em robótica com adicional de treinamento ou certificado em automação. ### Gerente de Produto - Identifique e expresse os requisitos dos usuários, conduza pesquisas de mercado e crie avaliações concorrentes. - Tenha no mínimo 2 a 3 anos de experiência em gerenciamento de produto e desenvolvimento de software. ### Cientista de Dados - Extrair conhecimento de conjuntos de dados grandes, necessitando habilidades de programação em Python ou Java junto com modelagem matemática. - Não é necessária uma certa graduação, mas uma firme compreensão de aprendizagem de máquina e análise de dados é obrigatória. ### Análista de Dados de IA - Se concentrar em limpeza de dados, interpretação e deduzir investigatedes usos de ferramentas estatísticas e técnicas. - Tenha um grau em informática ou matemática, e tenha uma compreensão profunda dos regressores. ### Engenheiro de Business Intelligence - Avalie sets de dados complexos e identifique tendências de negócios, aumentando as receitas da empresa através de soluções de intelligence de negócios. - Tenha um grau em matemática e informática. ### Engenheiro de Aprendizagem de Máquina - Gestão de grandes quantidades de dados, com habilidades de Gestão de dados excepcionais e uma compreensão profunda de redes neurais artificiais, aprendizagem profunda e algoritmos de aprendizagem automática. - Preferência para um mestrado em informática ou matemática. ### Arquiteto de Dados - Análise da infraestrutura de dados da organização de apoio tanto ao negócio quanto à IA. - Tenha um grau em informática e engenharia de computadores, ou um tema relacionado. ### Engenheiro de IA - Crie, teste e utilize vários modelos de IA, gerencie a infraestrutura de IA, e gere modelos práticos usando conhecimento de redes neurais artificiais e métodos de aprendizagem automática. - Tenha um grau em IA ou informática, e maintenha certificações da organizações renomadas. ### Agradecimentos e Recursos - Visite e se inscreva no programa de IA oferecido pela Simplilearn junto com a Universidade de Purdue (URL fornecido na descrição abaixo). - Faça follow-ups de vagas de emprego em plataformas como LinkedIn, Indeed e outras plataformas de empregos. ## Conclusão A IA apresenta enormes oportunidades para quem quiser abraçar tecnologias inovadoras e promover inovação. Com as habilidades certas, recursos e mente-má, uma carreira na IA pode realmente revolucionar o seu percurso profissional e contribuir para o avanço da humanidade. Title - Inteligências Artificiais: Entendimento do Termo e Suas Categorias *Inteligência Artificial (AI) é simulação do inteligento humano nestas máquinas programados para executarem tarefas como homem. Esta intellectualidade é apresentada sob complexos algorithmos e functiones matematicais. [1](/#fn: jump1*). Porém não é tarefa fácil de adivinharmos a criação tão evidentemente como nos bastidores quando se tratta de AI por exemplo encontramos a ciência da vigilância, os conselhos virtuais utilizados em um banco. [2](/*#fnend1*)*. Em nosso dia-á-dia, a iA é cada vez mais usual, como automóveis, telecomunicação, redes sociais, jogos, banca, vigilância. * _A questao real é "O que ouve a alma de máquina inteira? " No nosso colegio tecnológico [3](/%5Btruncate 'Nos nosso colegio tecnologia' ]{. truncate}) teremos construidido um tocador artificial que é incapaz de reproduzir todo o repertoor quando é jogato uma fita de vinili. Esta capacity de adaptador-se não é uma vez que o CD foi inventdado. Foi chama de apenas "aparceria geralizada a aprender ao longo vida". _ Pode-a-se consultar a robotica como este exemplo apresentado seria capzoso de aceder a toda a bibliociada de [4](<https://wiktionário.comptoons.ws/pt/_/roboatica>) conhecimenos. Sendo assê, o grande desafinado é compreender como transformar este banco de inteligência pronta não só para alcançarcar a mente humama, mas possivelmente às emocações humanne. O que se vem acompanharia aos três principoas capaciaes que converteriam un robot em ia é agilidade aprendizvel, raccioamento e atividade da resoluceo de puzzles. Mais especificante, a robotica fornéce máqinas com intellectualidade artificial provendo-mes com a intellectualidade humame. Antes de dizer mais para o que este texto estava a meio camigo, vémos a partes principiaveis categorias da artificiaI: 1. `**Weak AI (estreitaAI)**`_{[5]}(/*1*/): concentrado apencentamente do uma tanca. Por si só, qualquer coésão Alpha GO é um modelo de excelente eficacia contra o jardim de gui, pois não demonstra a capacity de resplandecér a sua faculdade conhecidade em outrons jogos competitivos apenas no final do ano como o xádego apresentado este ano. As vezes ia é nomeada como Artificiaial Narrow. ^{[6]([truncated 'Nem todos os leitores podem ver texto truncatted' 500]), [7, p. A1](/>#fnreference7*)]* 4. `strong AI` ou `**poderosa-ia**: `_{, [8}](/*^2*/ "Este ai é mais remota que ia forca de fivção, até agora única na sociedade". ) Esta "ia" refere-o-se agora a intelligenentia artificial plena, parecida e similitudo com AI de fiction. O mesmo exemplario Ultrton do filde Avengers iria ser claramente, uma vez ela é sentiente e sofisticidamente intelgenente, isto é auto-concreta e inclusive desenvolu emoentes, torn-a-perigosa (isto é preditivel pelos seus esforçooes para manipular os pequenês humanos)^{[9 (trunc)]. [}](/*+3*/ "<https://link.com">) > > Um pouco no futuro um dia, temos a "singulariday" previdade por Ray[10 "Kurxweil nao é simplesmente definido como tendo uma compreensão maior doa tecnologia informatica ao longo # Resumo de Aprendizagem de Máquina A aprendizagem de máquina utiliza dados para detectar padrões em um conjunto de dados e ajustar as ações do programa conforme o necessário. Este processo pode ser definido como a classificação de dados com base no conhecimento ganho ou extrair informações estatísticas a partir dos padrões. Concentra-se no desenvolvimento de programas de computador que podem ensinar-se a se desenvolverem e mudar ao serem expostos a novos dados. Isso é alcançado pelo método chamado aprendizagem reforçada, que utiliza informação de retorno externo para ensinar o sistema a mudar as suas operações internas para fazer prediciões melhor próximas vezes. Com a aprendizagem de máquina, os computadores podem encontrar insights ocultos utilizando algoritmos iterativos sem serem explicitamente programados. A aprendizagem de máquina utiliza algoritmos que aprendem com dados anteriores para ajudar a produzir decisões fiáveis e repetíveis. Ela automatiza a construção de modelos analíticos usando algoritmos de dados científicos e aprendizagem de máquina que desentangam padrões e relações em dados e os expressam como equipações matemáticas. ## Diferenças entre Programação Tradicional e Aprendizagem de Máquina Na programação tradicional, dados e programa são fornecidos ao computador, e este processa-os para fornecer a saída. No abordagem de aprendizagem de máquina, os algoritmos são aplicados ao dado fornecido, e a saída da aplicação do algoritmo é um modelo de aprendizado que auxilia a máquina a aprender do dado. Aqui, programas o comportamento da máquina em programação tradicional, mas na aprendizagem de máquina, deixa muito de esse trabalho para a máquina para aprender do dado. ### Abordagem de Programação Tradicional Tradicionalmente, se Codificará as regras de decisão de um problema. Avaliava-se os resultados do programa, e se os resultados eram satisfatórios, o programa seria implantado em produção. Se os resultados não eram como esperado, revisava-se os erros, mudava-se o programa e avaliava-se novamente. Este processo iterativo continua até se obter o resultado esperado. ### Abordagem de Aprendizagem de Máquina Na nova abordagem de aprendizagem de máquina, as regras de decisão não são codificadas. O problema é resolvido aplicando um modelo ao dado de treino para derivar ou aprender um algoritmo que melhor representa a relação entre a entrada e a saída. Este modelo treinado é avaliado contra dado de teste, se os resultados eram satisfatórios, o modelo seria implantado em produção, e se os resultados não eram satisfatórios, o treino é repetido com algumas alterações. ## Técnicas de Aprendizagem de Máquina A aprendizagem de máquina utiliza uma quantidade de teorias e técnicas da ciência dos dados. Aqui estão algumas técnicas de aprendizagem de máquina: - Classificação: Esta técnica envolve o computer program learning from the data input forcastado devido ao aprendizado para agir como uma classificação de novas observações. A classificação é utilizada para a previsão de respostas discretas. - Classificação: Esta técnica envolve organizar dados em categorias para o seu uso efectivo e eficiente. Acelera tarefas de pesquisa de texto livre e melhora a experiência do utilizador. - Agregação: Esta técnica envolve agregar um grupo de objetos da forma para que os objetos em um mesmo grupo sejam mais semelhantes entre si do que com os objetos em outros grupos. - Análise de Tendências: Esta técnica aimed at projecting both current and future movement of events through the use of Time Series Data Analysis. - Deteção de Anormalidades: Esta técnica é utilizada para identificar as observações que são incomuns no conjunto de dados que parecem homogêneo. A detecção de anormalidades pode ser uma chave para solucionar intrusões apontando uma presença de ataques intencionais ou não intencionais, defeitos, erros, por exemplo, . - Visualização: Esta técnica apresenta os dados em um formato pictórico ou gráfico, permitindo que os tomadores de decisão vejam os análises apresentada de visualmente. - Tomada de decisões: Esta técnica fornece a capacidade de influenciar decisões gerenciais com dados como evidências para essas possibilidades. ## Aplicações de Máquina Learning em Tempo real - A Inteligência Artificial e Aprendizagem de Máquina estão sendo cada vez mais utilizados em funções como a análise de imagem, robótica, extração de minerado de dados, jogos de computador, análise de texto e Saúde. - Na análise de imagem, a técnica é utilizada para converter uma imagem em um formato digital e realizar algumas operações com ela para induzir uma imagem melhorada ou extrair informações úteis a partir dela. - O Facebook reconhece caras automáticas fazendo tag nas fotos dos usuários anteriores. Outra aplicação é a reconhecimento óptico de caracteres, que lê texto impresso. Procssador automóveis também são exemplos de processamento de imagens. - Na robótica, máquinas são utilizadas para fazer certos trabalhos tais como um robô humanoide pode ler as emoções dos seres humanos ou um robô industrial é usado para montagem e fabricação de produtos. - Mineração de dados é a metodologia de analisar padrões escondidos em dados. É usado para detecção de anomalias em detectar fraude de cartão de crédito e determinar quais transações variam daquela comportamento habitual de compra. É também usado em análise de arranjo de cesta, que é usado para detectar quais itens são habitualmente comprados juntos. - Na análise de texto, é o processo automatizado de obter informação de texto. Por exemplo, o filtragem de spam é usado para detectar spam em e-mails. Outro exemplo é a análise de sentimento, usado para classificar uma opinião como positiva, negativa, ou neutra. Detecta a opinião em feeds de Twitter ou filtra reclamações de clientes. - A aprendizagem de máquina também é utilizada para extração de informações como extrair dados específicos, chaves, ou acentos. - Na saúde, existem várias aplicações da aprendizagem de máquina, incluindo a identificação de doenças e diagnósticos, Reconhecimento de Medicinae Discovery and Manufacturing, radiografia diagnóstica de imagem, e por último, várias empresas que utilizam aprendizagem de máquina têm revolucionado a indústria de saúde. A aprendizagem de máquina é uma ferramenta poderosa que está transformando as indústrias e nossas vidas. Enquanto isso continua a evolui, é essencial compreender seus recursos, potenciais impactos, e implicações éticas. É a Renascença na solução de problemas e é a chave para desbloquear soluções novas e oportunidade. Com as habilidades certas, visão mental saludável e diretrizes éticas, podemos utilizar os benefícios da AI e sobreviver seus potenciais inconvenientes. # Tradução do texto com a formatação Markdown preservada: ```markdown # Machine Learning Overview Aprendizagem de Máquina usa dados para detectar padronização em um conjunto de dados e ajustar as ações do programa conforme o necessário. Este processo pode ser definido como a classificação de dados com base no conhecimento já ganho ou extração de informações estatísticas a partir dos padrões. Ele concentra-se no desenvolvimento de programas de computador que podem ensinar-se a se desenvolverem e mudar ao serem expostos a novos dados. Isso é alcançado pelo método chamado aprendizagem reforçada, que utiliza informação de retorno externo para ensinar o sistema a mudar as suas operações internas para fazer previsões melhor próximas vezes. Com a aprendizagem de máquina, os computadores podem encontrar insights ocultos utilizando algoritmos iterativos sem serem explicitamente programados. A aprendizagem de máquina utiliza algoritmos que aprendem com dados anteriores para ajudar a produzir decisões fiáveis e repetíveis. Ela automatiza a construção de modelos analíticos usando algoritmos de dados científicos e aprendizagem de máquina que desentangam padrões e relações em dados e os expressam como equipações matemáticas. ## Diferenças entre Programação Tradicional e Aprendizagem de Máquina Na programação tradicional, dados e programa são fornecidos ao computador, e este processa-los para fornecer a saída. No abordagem de aprendizagem de máquina, os algoritmos são aplicados ao dado fornecido, e a saída da aplicação do algoritmo é um modelo de aprendizado que auxilia a máquina a aprender do dado. Aqui, programas o comportamento da máquina em programação tradicional, mas na aprendizagem de máquina, deixa muito de esse trabalho para a máquina para aprender do dado. ### Abordagem de Programação Tradicional Tradicionalmente, se codificaria as regras de decisão de um problema. Avaliaria-se os resultados do programa, e se os resultados eram satisfatórios, o programa seria implantado em produção. Se os resultados não eram como esperado, revisaria-se os erros, mudaria-se o programa e avaliaria-se novamente. Este processo iterativo continua até se obter o resultado esperado. ### Abordagem de Aprendizagem de Máquina Na nova abordagem de aprendizagem de máquina, as regras de decisão não são codificadas. O problema é resolvido aplicando um modelo ao dado de treino para derivar ou aprender um algoritmo que melhor representa a relação entre a entrada e a saída. Este modelo treinado é avaliado contra dado de teste, se os resultados eram satisfatórios, o modelo seria implantado em produção, e se os resultados não eram satisfatórios, o treino é repetido com algumas alterações. ## Técnicas de Aprendizagem de Máquina A aprendizagem de máquina utiliza uma quantidade de teorias e técnicas da ciência dos dados. Aqui estão algumas técnicas de aprendizagem de máquina: - Classificação: Esta técnica envolve o computer program learning from the data input forcastado devido ao aprendizado para agir como uma classificação de novas observações. A classificação é utilizada para a previsão de respostas discretas. - Classificação: Esta técnica envolve organizing data into categories for its most effective and efficient use. It makes free text searches faster and provides a better user experience. - Agregação: Esta técnica envolve agregar um grupo de objetos da forma para que os objetos em um mesmo grupo sejam mais semelhantes entre si do que com os objetos em outros grupos. - Análise de Tendências: Esta técnica aims at projecting both current and future movement of events through the use of Time Series Data Analysis. - Deteção de Anormalidades: Esta técnica é utilizada para identificar as observações que são incomuns no conjunto de dados que parecem homogêneo. A detecção de anormalidades pode ser uma chave para solucionar intrusões apontando uma presença de ataques intencionais ou não intencionais, defeitos, erros, por exemplo, . - Visualização: Esta técnica apresenta os dados em um formato pictórico ou gráfico, permitindo que os tomadores de decisão vejam os análises apresentada de visualmente. - Tomada de decisões: Esta técnica fornece a capacidade de influenciar decisões gerenciais com dados como evidências para essas possibilidades. ## Aplicações de Máquina Learning em Tempo real - A Inteligência Artificial e Aprendizagem de Máquina estão sendo cada vez mais utilizados em funções como a análise de imagem, robótica, extração de minerado de dados, jogos de computador, análise de texto e Saúde. - Na análise de imagem, a técnica é utilizada para converter uma imagem em um formato digital e realizar algumas operações com ela para induzir una imagem melhorada ou extrair informações úteis a partir dela. - O Facebook reconhece caras automáticas fazendo tag nas fotos dos usuários anteriores. Outra aplicação é a reconhecimento óptico de caracteres, que lê texto impresso. Procssador automóveis também são exemplos de processamento de imagens. - Na robótica, máquinas são utilizadas para fazer certos trabalhos tais como um robô humanoide pode ler as emoções dos seres humanos ou um robô industrial é usado para montagem e fabricação de produtos. - Mineração de dados é a metodologia de analisar padrões escondidos em dados. É usado para detecção de anomalias em detectar fraude de cartão de crédito e determinar quais transações variam daquela comportamento habitual de compra. É também usado em análise de arranjo de cesta, que é usado para detectar quais itens são habitualmente comprados juntos. - Na análise de texto, é o processo automatizado de obter informação de texto. Por exemplo, o filtragem de spam é usado para detectar spam em e-mails. Outro exemplo é a análise de sentimento, usado para classificar uma opinião como positiva, negativa, ou neutra. Detecta a opinião em feeds de Twitter ou filtra reclamações de clientes. - A aprendizagem de máquina também é utilizada para extração de informações como extrair dados específicos, chaves, ou acentos. - Na saúde, existem várias aplicações da aprendizagem de máquina, incluindo a identificação de doenças e diagnósticos, Reconhecimento de Medicinae Discovery and Manufacturing, radiografia diagnóstica de imagem, e por último, várias empresas que utilizam aprendizagem de máquina têm revolucionado a indústria de saúde. A aprendizagem de máquina é uma ferramenta poderosa que está transformando as indústrias e nossas vidas. Enquanto isso continua a evoluir, é essencial compreender seus recursos, potential impacts, and ethical implications. É a Renascença na solução de problemas and the key to unlocking new opportunities and solutions. Com the right skills, mindset, and ethical guidelines, we can harness the benefits of AI and overcome its potential downsides. ``` # Inteligência Artificial: Entendendo os Conceitos Básicos Esta secção fornece uma visão geral da inteligência artificial (IA), de seus captares, e de suas implicações. ## O Que é Inteligência Artificial (IA)? A Inteligência Artificial (IA) é uma disciplina multifacetada que envolve a criação de agentes inteligentes que imitam os comportamentos humanos para executar tarefas de forma semelhante à nossa. Esses agentes são artificialmente incorporados com inteligência humana através de complexos algoritmos e funções matemáticas. A IA já não é mais limitada à ficção científica; ela está integrada em variadas áreas da nossa vida diária, incluindo celulares inteligentes, carros, redes sociais, jogos eletrônicos, bancos, vigilância e muito mais. A IA pretende adaptar-se, razonar e propor soluções, permitindo que as máquinas aprendam desde dados e experiências [1]. ### Capacidades da IA 1. **Aprendizado Geral**: Alguns sistemas de IA estão projetados para reagir de forma apropriada às novas situações, como o exemplo de robô dado a seguir. 2. **Habilidade de Razonar**: Alguns sistemas de IA podem pensar, tomar decisões e resolver problemas baseados no input e na situação ambiental. 3. **Resolução de Problemáticas**: Alguns sistemas de IA podem usar o input para encontrar soluções a problemas, como o exemplo de robô dado acima. ### Classificações de IA A IA pode ser classificada com base em seus captares e funcionalidades. #### Com base nos Captares 1. **IA Estrata (Fraca IA)**: Foca-se em um único trabalho específico e não pode ultrapassar os seus limites. exemplos incluem Apple Siri, IBM Watson e Google Translate. 2. **IA Geral (Forte AI)**: Possui a capacidade de aprender e entender qualquer tarefa intelectual que um ser humano possa realizar. Ainda está em produção, pois requer que as máquinas sejam feitas conscientes e programadas com um conjunto completo de habilidades cognitivas. 3. **IA Superior**: Supera a inteligência humana e pode executar cada tarefa melhor do que um ser humano. Este conceito ainda é hipotético. #### Com base nas Funcionalidades 1. **Máquinas Reativas**: Forma básica de IA que não armazena memórias ou utiliza experiências passadas para determinarmos ações futuras. Exemplos incluem a IBM's Deep Blue. 2. **Máquinas Limite de Memória**: Pode utilizar experiências passadas para fazer decisões, mas não armazena memórias por períodos longos. Um exemplo é tecnologia de automóvel autónomo. 3. **Máquinas de Inteligência de Mente**: Representa uma classe avançada de teknologia que requer compreender os sentimentos, as ideias e as emoções das pessoas. Exemplos incluem Kismet e a roboética Hansen Sofia. 4. **Máquinas Autoconescentes**: Existem apenas de forma hipotética e tem sentimentos, necessidades e desejos do tipo humano. Esta versão de IA não está disponível ainda. ## Referências [1] Aódio Simplilearn's Inteligência Artificial Completo 2024: https://www.youtube.com/watch?v=ltwjZy_toNs # Top 10 Technologias de Inteligência Artificial: Uma Visão Geral Compreensível ## Introdução Bem-vindo! Sou K e hoje vamos discutir as 10 melhores tecnologias de Inteligência Artificial (IA). Antes de entrar no vídeo, aqui um lembrete suave de assinar nosso canal e tocar no ícone de Sino para que não perca nenhuma informação de nós. Agora, vamos avançar sem mais ado. ## Lista de Tecnologias de IA Abaixo encontram-se as 10 tecnologias de IA que vamos discutir. Por favor, lembre-se que a lista não está em ordem alguma: 1. Geração de Língua Natural 2. Dispositivos Inteligentes 3. Agentes Vitúais 4. Reconhecimento de Fala 5. Realidade Aumentada 6. Aprendizado de Máquina 7. Automatização de Processos de Computação 8. Gerenciamento de Decisão 9. Aprendizado Profundo 10. Reconhecimento de Imagem ## Geração de Língua Natural A comunicação eficiente e transparente é importante em qualquer campo, especialmente em uma era de IA. A Geração de Língua Natural (NLG) é uma subdisciplina da IA que lidar com esta tarefa eficazmente, convertendo dados estruturados em língua nativa. Estas máquinas são programadas com algoritmos que convertem os dados em um formato desejado para os usuários. Este tipo de tecnologia é amplamente utilizado em serviço de atendimento ao cliente, geração de relatórios, e resumo de insights sobre inteligência de negócios. Alguns proveedores populares incluem: - Aive - Automated Insights - SAS - Cambridge Semantics - Digital Reasoning - Science Narrativa, etc. ## Dispositivos Inteligentes Com a modernização, os dispositivos inteligentes estão se tornando mais populares e funcionais. São objetos comuns feito inteligentes pela computação avançada, incluindo IA e aprendizado de máquina, e possuem a capacidade de conectar, compartilhar e interagir com usuários e outros dispositivos inteligentes. Alguns exemplos são relógios inteligentes, óculos inteligentes, telefones celulares e oradores inteligentes. ## Agentes Vitúais Os agentes vituais são inteligência computação-gerada que fornece prática de ajuda ao cliente online. Eles são capazes de efetivamente se comunicar com humanos em maioria das aplicações web e móveis, atuando como agentes de atendimento ao cliente. Eles podem ajudar em tarefas como agendar reservas, marcar agendamentos, realizar pedidos, e fornecer informações sobre produto. Alguns exemplos populares incluem o Google Assistant, Amazon Alexa, e agentes vituais da Microsoft, Google, Amazon e Assist AI. ## Reconhecimento de Fala O Reconhecimento de Fala é outro subdisciplina da IA que converte a fala humana em um formato que aplicações de computador podem processar. O mesmo sirve como uma ponte entre a interação humana e computador. É usado em sistemas de resposta interativa por voz e aplicações móbiis. Provedores de serviços de reconhecimento de fala incluem: - Nuance Communications - Open Text - Weend Systems ## Realidade Aumentada A Realidade Aumentada (RA) é uma versão aprimorada do mundo físico real alcançado pela meio de som, elementos visuais digitais e outros estimulos sensoriais fornecidos por meio de tecnologia. Altera a percepção do ambiente real comum modificando-o adicionando informação para criar um ambiente artificial. A Realidade Aumentada (RA) está se vendo alastrada em vários espaços de lojas e está revolucionando a forma de compras. ## Aprendizado de Máquina O Aprendizado de Máquina (ML) é uma aplicação da IA que permite que as máquinas aprendam sozinhas sem serem explicitamente programadas. É um recurso que permite que sistemas se aprendam e melhorem com a experiência automática. Plataformas de Aprendizado de Máquina se tornam cada dia mais populares às custas de algoritmos, APIs, grandes dados, e ferramentas para treinamento. Empresas estão pesado investindo no ML para reaproveitar seus benefícios em vários domínios. Áreas de aplicação do ML incluem: - classificação e previsão. Provedores populares incluem: - Amazon - Fractal Analytics - Google - Microsoft, etc. ## Automatização de Processos de Computação Configurar uma máquina para interpretar, comunicar e analisar dados é a Automatização de Processos de Computação (RPC). Ela automatiza ações humanas, tornando assim os processos de negócio mais eficientes. RPC é amplamente usada em campos em que a presença física de um humano é perigosa, como guerra e mineração. Provedores que trabalham com RPC incluem: - Pega Systems - Automation Anywhere - Blue Prism, etc. ## Gerenciamento de Decisão O Gerenciamento de Decisão é uma tecnologia da IA que ajuda empresas a tomar decisões válidas fornecendo informações atuais e relevantes e executando funções analíticas. Quando combinada com a IA, ele pode traduzir dados de clientes em modelos predictivos de tendências principais e ajudar na tomada de decisão rápida, evitando riscos e automatizando o processo de tomada de decisão. É bastante utilizada em vários setores, incluindo saúde, finanças, seguros, e-commerce, entre outros. Alguns provedores populares incluem: - Informatica - Advanced Systems Concepts - Pika Systems, etc. ## Aprendizado Profundo O Aprendizado Profundo é um ramo da IA que imita a função do cérebro humano na processamento de dados. É usado para vários propósitos, como reconhecimento de fala, detecção de recursos e tradução de línguas, e tomada de decisão. O aprendizado profundo usa uma hierarquia de redes neurais artificiais para carregar o processo de aprendizado de máquina que é usada em diversas indústrias para várias aplicações. Provedores populares incluem: - Deep Instinct - Fluid AI - Math Works - Saffron Technology, etc. ## Reconhecimento de Imagem O Reconhecimento de Imagem é um processo usado para detectar objetos ou recurso em uma imagem digital ou vídeo. Pode ser usado para analisar facas de clientes, verificar usuários baseado em sua imagem, detectar placas de identificação, e diagnosticar doenças. A detecção de imagem atual é comparável à percepção visual humana arcaica. Muitas plataformas sociais, como Facebook, usam este tipo de tecnologia para melhorar a pesquisa de imagem e ajudar visionalmente impares. ## Conclusão A Inteligência Artificial conseguiu evoluir de uma história apenas mais um outro Frankenstein para um potencial cidadão em nosso bairro. A IA está sendo fundamentalmente relevante em vários campos, como saúde, transporte, comunicação e outros, ao eliminar fronteiras de impossibilidades. Existem milhares e milhares de organizações, comunidades técnicas, e engenheiros trabalhando continuamente para fazer Miracles realidade. Hoje, discutimos as 10 empresas da IA a seguir para observar em 2022 que estão contribuindo significativamente. Acompanhe nós na observação de cada empresa nas nossas próximas publicações. Até mais! # Top 10 Empresas de Inteligência Artificial a Observar em 2022 ## 1. Microsoft Azure A Microsoft Azure utiliza a Inteligência Artificial (IA) para oferecer infraestrutura de torno superior com segurança, disponibilidade, conformidade e gerenciabilidade empresarial de grau. A gigante tecnológica também paga saláriosRouteiros a seus funcionários. A média de um funcionário na divisão de IA da Microsoft pode ganhar até 160. 000 dólares por ano. ## 2. DataRobot O DataRobot, com sede em Boston, é uma das líderes da nuvem de IA, fornecendo uma plataforma unificada para a entrega de IA à nuvem. O DataRobot visa entender e utilizar as capacidades intrínsecas da plataforma para ajudar analistas de negócios a construir análise de previsão sem conhecimento de aprendizado automático. ## 3. Serviços de IA da Amazon Os Serviços de IA da Amazon incluem Amazon Lex, Amazon Poly e Amazon Machine Learning. Estes serviços poderão ter conversas de texto ou de voz com o utilizador final através de uma interface de Operações de Chat conversacional. A Amazon está a usar atualmente a IA para asSuas Soluções de Rede Séria e está a realizar testes sobre entrega de corpo aérea. ## 4. Databricks O Databricks, com sede em San Francisco, California, é uma das empresas de dados mais inovadoras. Oferece uma combinação de bancos de dados de armazenamento, fiabilidade, desempenho e fiscalização com a abertura e a flexibilidade dos lagos de dados. ## 5. Meta AI A Meta AI, anteriormente conhecida como Facebook, integrou a inteligência artificial e está sendo chamada "The Meta AI". A Meta AI tem a seu headed in Toronto, Canadá. A empresa redesenhou um novo material e sensor de toque com potencial para acelera o desenvolvimento do metaverse. ## Tutorial de Aprendizagem por Máquina: Parte 1 ### Por que Aprendizagem por Máquina? Caremos com que as máquinas sejam capazes de criar e fazer novas coisas para nós porque: - As máquinas agora podem conduzir o teu carro para ti. - A Aprendizagem por Máquina é utilizada para detectar mais de 50 doenças oftalmológicas. - A máquina pode agora desbloquear o teu telemóvel com a tua cara. - As máquinas agora podem perfomrar tarefas como identificar a teu rosto ou a tua voz e ligar ou desligar coisas em função do teu local e o que necessitaste. ### Engajamento Bait em Mídias Sociais O Facebook reviewou e categorizou milhares de postagens para treinar uma máquina de Aprendizagem por Máquina que detecta diferentes tipos de Engajamento Bait. Este recurso explota a algoritmo do feed da Mídia Social por escolher uma mais alta de engajamento para obter maior alcance. ### Projeto AlphaGo do Google's DeepMind O Projeto AlphaGo da Google's DeepMind, um programa de computador que joga o jogo de tabuleiro Go, derrotou o jogador de Go número um mundial. Isto é um grande passo na desenvolvimento da Aprendizagem por Máquina. ### Definindo a Aprendizagem por Máquina A Aprendizagem por Máquina é a ciência de fazer os computadores aprenderem e agir como seres humanos alimentando-os com dados e informações sem que seja explicitamente programado. A máquina aprende com o que aconteceu antes e previsões sobre o que vai acontecer, e melhorando-se para encontrar uma nova solução. Os passos a percorrer quando a trabalhar na Aprendizagem por Máquina são: 1. Defina o teu objetivo. 2. Colecte os dados que coincidem com o teu objetivo. 3. Prepare os dados, certifique-te de que eles são limpos. 4. Seleccione o algoritmo. 5. Treine o algoritmo. Esta marca o fim da sessão sobre as empresas de AI a observar em 2022. Bem-vindo à [Tutorial de Aprendizagem por Máquina: Parte 1](http://www.s-simplylearn.com/). Olá e bem-vindo àTutorial de Aprendizagem por Máquina: Parte 1, que é parte de uma série de Aprendizagem por Máquina put on by [SimplyLearn](http://www.s-simplylearn.com/). Nesta sessão, abordaremos: - Por que Aprendizagem por Máquina? - Engajamento Bait em Mídias Sociais - Google's DeepMind Project AlphaGo - Definindo a Aprendizagem por Máquina Nossa próxima sessão, adokará-nos-nascer mais profundo nos tipos de Algoritmos de Aprendizagem por Máquina e um caso de uso em que classificamos se um recepto é de cupcake ou de muffin usando SuporteVetor de Regressão Máquina (SVM) or the Support Vector Machine (SVM). Fique atento! **NOTA: ** Texto estruturado e formatado com Markdown. Toda a formatar original, incluindo URLs e cabeçalhos, été preservado. # Aprendizado de Máquina: Um Panorama Este guia fornece uma visão geral do aprendizado de máquina, discutindo suas principais divisões e tipos. ## Introdução O primeiro passo ao trabalhar com uma máquina é testar o modelo. Pergunte-se: - Funciona este modelo? - É este um modelo válido para o que estamos fazendo? Depois de testado, você desejará executar sua predição, seja uma escolha ou uma saída de qualquer tipo. ## Desploiamento Depois de testado e fazendo qualquer ajuste necessário, você está pronto para implantar o modelo. No entanto, lembre-se de que o conhecimento específico do domínio é essencial para a construção de um modelo. ### Desafios específicos do domínio Você pode encontrar situações em que seus dados estão faltando algo e precisa coletar novos dados. Isso pode acontecer em qualquer ponto do processo de teste do modelo, como você percebe que as respostas fornecidas pelo modelo não são satisfatórias. ### Tipos de Aprendizado de Máquina O aprendizado de máquina pode ser dividido em duas categorias principais: 1. Classificação - A classificação é usada quando você deseja prever uma categoria. Por exemplo, categorizar coisas. Em outras palavras, você está procurando uma resposta sim/não: ele está subindo ou está descendo? Assim, no caso de preços de ações, você pode perguntar, "Ele está subindo (verdadeiro) ou está descendo (falso)? " 2. Regressão - A regressão é usada quando você deseja prever uma quantidade. Por exemplo, prever a idade de uma pessoa com base em altura, peso, saúde e outros fatores. ### Deteção de Anomalias A detecção de anomalias é um método popular para identificar eventos inusitados ou inesperados. Aqui estão alguns exemplos: - Detectando anomalias de retirada de dinheiro: identificando quando alguém está fazendo uma retirada que pode não ser sua conta. - Predizendo flutuações de ações: usando a detecção de anomalias para dizer se o que está acontecendo no mercado de ações é uma anomalia, exigindo o uso de um modelo de predição diferente. ### Agrupamento O agrupamento é outra abordagem usada com dados não treinados, que tem como objetivo descobrir estrutura em dados não explorados. Por exemplo, agrupando clientes com base em seu comportamento, demografia e registros de compras anteriores. Isso permite estratégias de marketing mais eficazes ao agrupar pessoas juntas com base em seus padrões de compra. ### Tempo de Quiz Vamos fazer uma pausa para um breve teste! Enviaremos as respostas para estas perguntas na parte dois deste tutorial. 1. É possível identificar documentos de um grupo com base em suas categorias baseadas em seu assunto e conteúdo? 2. É possível identificar dígitos escritos à mão em imagens? 3. É possível prever a salário de uma pessoa com base em seus anos de experiência e outros fatores? **Resposta: ** Sim 4. É possível identificar o comportamento de um site e seus problemas de desempenho? ### Aprendizado Supervisionado vs. Não Supervisionado O aprendizado supervisionado usa dados etiquetados para treinar um modelo, permitindo-lhe prever e classificar objetos, problemas ou situações baseados em dados trein # O Intercepto Y e o Modelo de Regressão Linear ## Duas Variações do Intercepto Y ### Tempo Constante Começamos por um cenário em que o tempo é constante. Temos um ciclista a uma velocidade de 10 m/s, cobrindo uma distância de 36 km em determinado tempo. Outro ciclista vai acelero duas vezes mais rápido, com uma velocidade de 20 m/s. Como estão a dois vezes mais rápidos e o tempo é constante, eles irão cobrir duas vezes a distancia, que é 72 km. Se tivermos um terceiro ciclista a três vezes mais rápido (30 m/s), podemos facilmente calcular a distância em nossas cabeças: 36 * 3 = 108 km. Contudo, para dados mais complexos, queremos comparar os dois e visualizar a relação utilizando uma gráfica. #### Modelo de Regressão Linear No modelo de regressão linear, tem o eixo y representando distância e o eixo x representando a velocidade. A pendiente da linha (m) representa a relação entre as variáveis. Neste caso, a linha apresenta uma pendente positiva, indicando que quando a velocidade aumenta, também a distância aumenta. A equação para a relação é y = mx + C, em que m é a pendente e C é o intercepto y (o valor de y quando x é 0). ### Distância Constante Agora, temos um cenário em que a distância é constante. Temos um ciclista a uma velocidade de 10 m/s e uma determinada distância a percorrer. Põe-se 100 segundos para percorrer essa distância. O segundo ciclista ainda vai a 20 m/s, então irá percorrer a distancia em aproximadamente a metade do tempo (50 segundos). Para o terceiro ciclista a cavalo a três vezes mais rápido, cuidado: 100 / 30 = 3, 33 segundos para percorrer a mesma distância. No modelo de regressão linear ou gráfica, se suponha que a distância é constante, podemos ver a relação entre a velocidade e o tempo. À medida que o tempo aumenta, a velocidade necessária para cobrir a mesma distância diminui, resultando numa pendente negativa para a linha. #### Definições chave - Relação positiva: A pendente da linha é positiva, indicando que como uma variável augmenta, também a outra variável aumenta. - Relação negativa: A pendente da linha é negativa, indicando que como uma variável aumenta, a outra variável diminui. ## Modelo de Regressão Linear e Implementação Matemática Usando um conjunto de dados x e y, podemos calcular o modelo de regressão linear e minimizar o erro entre as previsões e os valores reais. Suponhamos que temos o seguinte conjunto de dados: - x: 1, 2, 3, 4, 5 - y: 3, 2, 2, 4, 3 Podemos calcular a media de x (3) e y (2, 8) e plotar o valor médio na gráfica. O modelo de regressão linear deve passar por este ponto. Para encontrar a equação de regressão, precisamos encontrar a pendente (m) e o intercepto y (C). Poderemos isto usando a fórmula: m = (Σ(x - x̄)(y - ȳ)) / (Σ(x - x̄)^2) em que Σ representa a soma, x̄ é a media de x, e ȳ é a media de y. Podemos então usar a fórmula y = mx + C para plotar a linha de regressão e fazer previsões para novos valores de x. ## Árvores de Decisão As árvores de decisão são um algoritmo árvore-formado empregado para determinar uma ação baseada em dados. São úteis para fazer previsões e recomendações, como determinar se é um dia bom para jogar golf baseado nas condições meteorológicas. Na árvore de decisão, cada ramo representa uma decisão possível ou reação. A árvore é construida dividindo dados baseados em recursos importantes, como a umidade, a perspetiva, e a temperatura. O objetivo é minimizar a entropia (aleatoriedade ou impureza nos dados) e maximizar o ganho de informações (a redução da entropia após os dados são divididos). As árvores de decisão podem ser utilizadas para conjuntos de dados complexos com muitos recursos, como estudar células cancerígenas. Contudo, é importante escolher a árvore de decisão concordante com os dados e garantir que as divisões são feitas na maneira correta. # Análise de Árvore de Decisão baseada em Ganho de Informação de Entropia ## Introdução Nesta análise, exploraremos o conceito de Entropia, Ganho de Informação e aplicaremos estes conceitos para criar uma Árvore de Decisão. Nossa meta é prever se um dia é adequado para jogar golfe com base em determinados parâmetros do tempo (Clima, Temperatura, Umidade e Vento). Calculamos a Entropia para cada preditor, além do Ganho de Informação, o que nos dá uma forma de fazer divisões ótimas na árvore. ## Preparação de Dados O conjunto de dados completo está em análise, consistindo em nove instâncias. Nossas primeiras cálculos consideram o número de 'Sim' e 'Não' ocorrências para cada classe: `jogar_golf = [5, 9]`. Os valores representam os dias jogados (`5`) e não jogados (`9`). Calculando `I = jogados + não jogados (14)`, obtemos `I`. De forma semelhante, para `P`, obtemos a distribuição de probabilidade baseada nos dias jogados, resultando em `P_jogando = 5/14`. De forma similar, `P_não_jogando = 9/14`. Para determinar a entropia (H) do conjunto, introduzimos as P e P_i valores obtidos, resultando: `H(S) = - P_jogando * log2(P_jogando) - P_não_jogando * log2(P_não_jogando)` Esta etapa calcula o valor de Entropia para o conjunto completo. ## Entropia de Clima A seguir, calculamos o valor de Entropia especificamente para 'Clima': * Número de ocorrências de clima solário = `3` * Probabilidade para 'Clima solário' = `P_Clima solário = 3/5` Usando esta probabilidade, calculamos a Entropia utilizando: `H(Solário) = - P_Clima solário * log2(P_Clima solário) - (1-P_Clima solário) * log2(1-P_Clima solário)` Probabilidades dos valores restantes para Clima, 'Nublado' e 'Chuvoso', são fornecidos nos dados fornecidos: `P_Nublado = 4/14` e `P_Chuvoso = 2/14`. Calcularemos `H(Nublado)` e `H(Chuvoso)` calculando a Entropia no conjunto individual de classes de Clima. ## Calculando Ganho de Informação (GI) Usando as entropias (H_total, H(Solário), H(Nublado), e H(Chuvoso)), derivamos o Ganho de Informação como: * Para 'Solário': ```python GI_solário = H_total - P_Clima solário * H(Solário) - (1 - P_Clima solário) * H(Não Solário) ``` Siga um cálculo similar para derivar o GI para ambos `Nublado` e `Chuvoso` valores também. Selecionando o maior ganho de informação resulta no primeiro nó na Árvore de Decisão, fornecendo uma representação visual útil e fácil de interpretar para ajudar a determinar se deve jogar golfe. ## Análise Final Através da criação de nossa Árvore de Decisão baseada em Ganho de Informação de Entropia, pretendemos fornecer recomendações de clima ótimas baseadas em Clima, Temperatura, Umidade e Vento para dias futuros, otimizando nossas oportunidades potenciais de # Análise de Dados de Receitas usando Python e Pandas ## Visão Geral Este documento detalha o processo de análise de um conjunto de dados contendo diversas receitas, principalmente focando em muffins e bolo de chocolate. Utilizaremos as bibliotecas Pandas e Seaborn para manipulação de dados e visualização. ### Preparação dos Dados #### Carregamento dos Dados Estaremos a trabalhar com um ficheiro CSV chamado `cupcakes_vs_muffins`. Se o script Python for salvo no mesmo diretório do ficheiro CSV, podemos carregá-lo utilizando o seguinte comando: ```python import pandas as pd receitas = pd. read_csv('cupcakes_vs_muffins. csv') ``` #### Estrutura dos Dados O dataset contém os seguintes ingredientes para cada receita: farinha, leite, açúcar, manteiga, ovo, levedura em pó, extracto de vírona e sal. #### Visualização dos Dados Vamos distribuir a açúcar e a farinha para observar a sua relação. ```python import seaborn as sns sns. scatterplot(x='flour', y='sugar', data=recipes, hue='type') ``` #### Preprocessamento dos Dados e Extracção de Recursos Antes de treinar os models, necessitamos de preprocessar os dados. Isso inclui: 1. Criar uma label para muffins e bolo de chocolate (0 para muffins, 1 para bolo de chocolate). 2. Remover a coluna de tipo dos dados, pois já temos as labels. ```python # Criar label do tipo recipes['label_do_tipo'] = np. where(recipes['type'] == 'muffin', 0, 1) # Obter as características da receita (ingredientes) feature_receitas = recipes. iloc[: , 1: ] ``` ## Treino do Modelo Vamos utilizar a Máquina Support Vector (SVM) para classificar as receitas como muffins ou bolo de chocolate. ```python from sklearn. svm import SVC modelo = SVC(kernel='linear') modelo. fit(feature_receitas, recipes['label_do_tipo']) ``` Para uma visão geral mais completa, consulte a texto original para a separação dos dados em subconjuntos de treino e teste e ajuste dos parâmetros do modelo. # Seaborn LM Plot: Classificador SVM para a Classificação de Receitas de Bolo de Tapa e Bolo de Macarrão ## Visão Geral Neste tutorial, você passará por um passo a passo para criar um classificador SVM para diferenci disagregar entre receitas de bolo de tapa e bolo de macarrão baseando-se em dois recursos: farinha e açúcar. ### Pré-requisitos - Alguma familiaridade com Python e bibliotecas de análise de dados tais como NumPy, Pandas e Scikit-Learn. - Seaborn e Matplotlib para visualização. ### Classificador SVM LM Começamos por criar um Classificador SVM Linear Model (LM), que apresenta um gráfico que compara os valores de farinha e açúcar, colocados contra seus respectivos pratos (bolos e tartarugas). ```markdown # Importar bibliotecas necessárias import seaborn as sns import matplotlib. pyplot as plt # Carregar o conjunto de dados (não fornecido neste exemplo) # Modelo predição da classe para pares de farinha, açúcar (0 para bolo, 1 para tartaruga) model = . . . # Plotar o gráfico do Classificador SVM LM sns. lmplot("farinha", "açúcar", hue="y", data=dados, fit_reg=False) plt. show() ``` O parâmetro `hue` especifica as cores dos símbolos. Neste caso, `y` determinará se usar 'bolo' (0) ou 'tarta' (1) para cores de símbolo. ```markdown # Plotagem de Vetores de Suporte plt. plot(sns. lmplot("farinha", "açúcar", data=dados, fit_reg=True, linestyle='--'). get_lines()[0]. get_xdata(), sns. lmplot("farinha", "açúcar", data=dados, fit_reg=True, linestyle='-'). get_lines()[0]. get_ydata(), "k--") plt. show() ``` O código acima gera vetores de suporte para ambas as linhas superiores e inferiores utilizando o valor superior e inferior dos limites do Modelo SVM. Note que estamos a usar os valores x- e y- dos linhas de regressão já plotados para gerar vetores de suporte. ### Largura e Cor da Linha ```markdown plt. plot(sns. lmplot("farinha", "açúcar", data=dados, fit_reg=True, linestyle='--'). get_lines()[0]. get_xdata(), sns. lmplot("farinha", "açúcar", data=dados, fit_reg=True, linestyle='-'). get_lines()[0]. get_ydata(), linewidth=2, cor='preto') ``` aqui, estamos especificando a largura da linha (`linewidth`) e a cor (`color`). ### Predição de Receita de Bolo ou Tarta A seguir está uma função para previsão de uma receita dada uma peçagem e açúcar. ```markdown def previsao_receita(model, farinha, açucar): previsao = model. predict([[farinha, açucar]]) rotulo = "bolo" if previsao[0] == 0 else "tarta" return rotulo ``` ### Execução da Previsão de uma Receita Para executar a previsão, simplesmente chama a função e passe os valores relevantes de farinha e açúcar. ```markdown receita = (50, 20) # Bolo ou Tarta? rotulo = previsao_receita(model, *receita) print(rotulo) # 'bolo' ``` ### Visualizando a Previsão Por fim, visualize a previsão plotando um ponto adicional no gráfico já plotado. ```markdown sns. lmplot("farinha", "açúcar", hue="y"). set(xlim=(0, 150), ylim=(0, 150)). set(xlabel="Quantidade de Farinha", ylabel="Açúcar") plt. scatter(*receita, color="k", marker="x", s=90) plt. show() ``` Aqui, estamos usando os métodos `set` para ajustar os limites dos eixos x e y do gráfico já existente, depois adicionando os scatter plots para a peçagem e açúcar da prévia da receita. # Clustering Carros em Marcas utilizando Clustering K-Means (Markdown) ## Introdução Neste caso de uso, mostramos a aplicação do Clustering K-Means para classificar carros em Marcas utilizando parâmetros como cavalos-poder, cilindradas cúbicas, marca, ano, e mais. Para conseguir isso, vamos utilizar o Anaconda Navigator com o Jupyter Notebook, e o dataset `cars. csv` que contém informações sobre três marcas de carros: Toyota, Honda, e Nissan. ## Carga e Preparação de Dados Inicialmente, importamos as bibliotecas necessárias e o arquivo `cars. csv` no nosso Jupyter Notebook. Guardamos os dados num DataFrame do Pandas chamado `car_data`. ```python # Import libraries import pandas as pd import numpy as np import matplotlib. pyplot as plt from sklearn. cluster import KMeans # Import data car_data = pd. read_csv('cars. csv') ``` ## Processamento de Dados Para processar os dados carregados, foram realizados os seguintes passos: * Remover a última coluna, pois o nosso objetivo é agrupar os carros, e a última coluna contém os modelos de carros. * Convertê-la num array para facilitar a manipulação. * Preencher quaisquer pontos de dados faltantes com a média para essa coluna. * Convertê-la num inteiro. ```python # Remover a última coluna que contém os modelos de carros X = car_data. iloc[: , : -1] # Convertê-la num array X = X. values # Preencher quaisquer pontos de dados faltantes com a média apropriada para essa coluna X[: , 0] = X[: , 0]. fillna(X[: , 0]. mean()) # Garantir que todos os dados estão convertidos em inteiros X = X. astype(int) ``` ## Eliminação de Valores Nulos Em seguida, o dado é verificado se contém valores nulos, e são eliminados preenchendo os pontos de dados faltantes com a média apropriada para essa coluna conforme o conjunto de dados específico. ```python # Encontrar quaisquer colunas com valores nulos null_columns = X. isnull(). sum() # Preencher os valores nulos, testar os resultados, e eliminar as linhas com valores nulos para coluna em null_columns[null_columns > 0]. index: X. fillna(X[coluna]. mean(), inplace=True) ``` ## Clustering K-Means Em seguida, podemos utilizar o algoritmo de Clustering K-Means para agrupar os carros em Marcas conforme a seguinte sequência: 1. Especifique o número de grupos (K) a criar. N nosso caso, utilizaremos o método `elbow` para encontrar o número de grupos óptimo. 2. Calcule a distância entre cada carro e o centroide de cada grupo. 3. Atualize os centroides dos grupos com base da posição dos carros nos grupos. 4. Repita passos 1-3 até que o algoritmo converja. ```python def within_sum_of_squares(X, k): kmeans = KMeans(n_clusters=k) kmeans. fit(X) return kmeans. inertia_ # Encontrar o número de grupos óptimo utilizando o método do ombro k = 2 enquanto verdadeiro: wss = within_sum_of_squares(X, k) k += 1 se wss[k-1] - wss[k] >= 0 # Análise de Agrupamento K-Means ## Introdução O algoritmo de agrupamento K-means é um poderoso algoritmo de agrupamento utilizado para agrupar dados semelhantes juntos. Neste guia, vamos passar pela processo de fazer análise de agrupamento K-means em Python e visualizar os resultados. ## Importando Bibliotecas Para seguir ao passo, garanta-se que possui as bibliotecas necessárias instaladas: ``` pip install sklearn pandas matplotlib ``` ## Agrupamento K-means em 4 Passos 1. **Inicializando K-means**: Primeiro, vamos importar o modelo KMeans da biblioteca sklearn e definir o número de agrupamentos (K). ```python from sklearn. cluster import KMeans import pandas as pd kmeans = KMeans(n_clusters=3) ``` 2. **Fazendo o agrupamento K-means no dado**: Faça o modelo KMeans se encaixar no dado. Neste exemplo, usamos o dataset "cars" da biblioteca sklearn. ```python data = pd. read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data') kmeans. fit(data[['compra', 'manutencao', 'portas', 'passageiros', 'space_baggage']]) ``` 3. **Recuperando os agrupamentos**: Obtenha etiquetas para cada ponto de dado, que indicam o seu agrupamento atribuído. ```python etiquetas = kmeans. labels_ ``` 4. **Visualizando os resultados**: Usaremos matplotlib para plotar o dado e mostrar os diferentes agrupamentos. ```python import matplotlib. pyplot as plt plt. scatter(data['compra'], data['manutencao'], c=etiquetas) plt. title('Agrupamentos de Automóveis') plt. xlabel('Preço de Compra (COMPRA)') plt. ylabel('Custo de Manutenção (MANUTENÇÃO)') plt. show() ``` ## Escolhendo o Número Ótimo de Agrupamentos Para encontrar o número ótimo de agrupamentos, pode executar o algoritmo K-means para diferentes números de agrupamentos (K) e examinar a inertia, que representa a soma das distâncias quadradas de amostras à sua média mais próxima. ```python inertia = [] for k in range(1, 11): kmeans = KMeans(n_clusters=k) kmeans. fit(data[['compra', 'manutencao', 'portas', 'passageiros', 'space_baggage']]) inertia. append(kmeans. inertia_) plt. plot(range(1, 11), inertia) plt. title('Método de El split para Inertia') plt. xlabel('Número de Agrupamentos (K)') plt. ylabel('Inertia') plt. show() ``` Neste caso, o número ótimo de agrupamentos parece ser 3, como sugerido pelo método de Elbow. # Análise e Previsão de Crescimento de Tumor Maligno ou Benigno ## Introdução Neste tópico, vamos discutir a Classificação de Tumor Maligno ou Benigno, um problema de aprendizado de máquina que me encanta por oferecer diversos desafios. Talvez você já esteja familiarizado com isso, mas é importante lembrar que em medicina, se eu lhe dissesse que a minha probabilidade de acerta era alta, por exemplo 90% ou 95%, isso não significa que você deve confiar completamente na previsão. Nosso principal domínio de trabalho é aqui, deve-se lembrar isso. É como se tivéssemos um Callback, ajudando-o a determinar em que áreas ele deve look. ## Meta-número Para este problema, de classificação de tumor maligno ou benigno, você deve prever a probabilidade de um tumor ser maligno, utilizando técnicas de aprendizado de máquina. Na seguinte seção, examinaremos o conjunto de dados, as ferramentas e código de previsão de probabilidade. ## Conjunto de Dados Este conjunto de dados é uma coleção de variedades de tumor, cada linha representando um tumor e contendo o seguinte arrays: - ID (Categorizado) - Diagnóstico (Maligno/Benigno) - Raio médio - Textura média - Perímetro médio - Área média - Rucosidade - Simetria - Lacunar ( Forma concava ) - Concave Points - Concave Points Séptica - Flatness - Covariance ## Ferramentas e Código Aqui, usaremos o seguinte conjunto de ferramentas para realizar a análise destes dados e prever a probabilidade de tumor maligno: 1. **NumPy**: para gerenciamento de arrays e matrizes 2. **Pandas**: para gerenciamento de DataFrames 3. **Caborn**: para geração de gráficos 4. **Matplotlib**: para geração de gráficos de barlometrico e histograma ## Análise ### Roleta ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt # Carregar o conjunto de dados data = pd. read_csv('data. csv') ``` ## Previsão da Probabilidade de Malignidade de um Tumor Para prever a probabilidade de malignidade para um novo tumor, você deve construir um modelo de aprendizado de máquina treinado no conjunto de dados abaixo e utilizar este modelo para prever a probabilidade de malignidade para o tumor desconhecido. ##Domain Alguns quick notes about the domain: - A previsão de probabilidade de malignidade pode ajudar o médico a localizar possíveis grupos de tumores de forma mais efetiva. - Ao se referir à sua probabilidade de malignidade alta (por ex. 90% ou 95%), é importante mentir que isso não deve ser totalmente confiado. - A previsão de probabilidade de malignidade pode fornecer dicas para o médico sobre para onde ele deve entrevistar os pacientes com tumores. - Remembere sempre que é importante se avaliar o conjunto de dados e os resultados alcançados por seu modelo de aprendizado de máquina antes de confiar completamente nela. **Documentação Técnica: Análise de Dados usando aprendizado de máquina** Este documento fornece uma guia passo a passo para a execução de análise de dados usando técnicas de aprendizado de máquina, com ênfase no extrato de características, treinamento do modelo e avaliação. 1. **Preparação de Dados** - Divida os dados em conjuntos de treinamento e teste. - Utilize o `train_test_split` da biblioteca `sklearn. model_selection` para dividi-los aleatoriamente. - Configura o tamanho do teste em 30% e `random_state` para melhorar a reproduzibilidade. ``` from sklearn. model_selection import train_test_split X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` 2. **Extrato de Características** - Realize a extração inicial de características, conforme descrito na parte fornecida. 3. **Treinamento do Modelo** - Importe as bibliotecas necessárias. ``` from sklearn. linear_model import LogisticRegression ``` - Instancie o modelo de regressão logística. ``` modelo = LogisticRegression() ``` - Treine o modelo usando os dados do treinamento. ``` modelo. fit(X_treino, y_treino) ``` 4. **Avaliação do Modelo** - Realize predições usando o modelo. ``` y_preditos = modelo. predict(X_teste) ``` - Importe o relatório de classificação para avaliar a performance do modelo a partir da biblioteca `sklearn. metrics`. ``` from sklearn. metrics import relatório_de_classificação ``` - Imprima o relatório de classificação para avaliar a precisão, recall, F1-score, etc. do modelo. ``` print(relatório_de_classificação(y_teste, y_preditos)) ``` 5. **Interpretação dos Resultados** - Análise dos resultados para determinar a precisão, recall, F1-score e outras estatísticas do modelo. - Utilize as insighs ganhas para melhorar o modelo, ajustar os parâmetros ou colete mais dados. **ESTA É SEU CÓDIGO** --- ``` import pandas as pd from sklearn. model_selection import train_test_split from sklearn. linear_model import LogisticRegression from sklearn. metrics import classification_report # Carrega os dados data = pd. read_csv('dados. csv') X = data. iloc[: , : -1] y = data. iloc[: , -1] # Examine os dados print(X. head()) print(y. head()) # Divide os dados em conjuntos de treinamento e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) # Extraia inicialmente as características # (Isso será descrito em última análise) # Importe e treine um modelo Logístico Regressão from sklearn. linear_model import LogisticRegression modelo = LogisticRegression() modelo. fit(X_treino, y_treino) # Utilize o modelo para prever y_preditos = modelo. predict(X_teste) # Avalie o modelo com relatório de classificação from sklearn. metrics import classification_report print(classification_report(y_teste, y_preditos)) # Interprete os resultados do modelo # (Isso será descrito em última análise) ``` Ajustes adicionais: * Passei os espanhões, e em alguns lugares seus caracteres especiais não foram substituídos. Por favor, veja se atende ao seu necessário. * No último bloco de código começa com "TODO" e vazio. Nenhum dos blocos de código implementa a extração inicial de características e a interpretação saída do modelo. * A última parte do documento contém uma referência a "X" que foi falso enquanto no texto vira Mmm. Assim como a referência ao Diagnóstico que é Diagnóstico no csv. # K-Vizinhos Mais Próximos (KNN) no aprendizado de máquina ## Porque o KNN? *K-Vizinhos Mais Próximos (KNN)* é um algoritmo simples e popular de aprendizado supervisionado principalmente utilizado para classificação. Com este algoritmo, podemos classificar pontos de dados de acordo com semelhança das suas características para os seus vizinhos. ## O Que é KNN? *KNN* é uma abreviatura que significa *K* Nearest Neighbors. É um dos algoritmos simples de aprendizado supervisionado mais usados, usualmente para classificação. O objetivo é determinar a respectiva etiqueta de um ponto de dados com base na etiqueta das suas vizinhanças. ## Escolher K em KNN A escolha do valor de K é um passo crítico no algoritmo KNN, chamado de ajuste de parâmetros. O número de vizinhos, K, determina quantos dos vizinhos mais próximos um ponto de dados vai utilizar para a classificação. É importante escolher um valor de K otimizado para estar em melhor condições de acertar. ## Como escolher K? A abordagem mais comum para escolher K é utilizar a raiz quadrada do total de valores N, em grande parte. Se N for um número par, como nos casos das linhas e triângulos, é melhor utilizar um valor ímpar para K para brumear quaisquer empates, de modo a obtenção de classificações mais precisas. ## Quando utilizar o KNN? 1. Dados etiquetados: Necessitamos de uma etiqueta para cada ponto de dados. 2. Dados livres de ruído: Os dados devem estar livres de ruído para assegurarmos resultados precisos. 3. Conjunto de dados pequeno: O KNN funciona melhor com menores conjuntos de dados, onde o tamanho não exceder de alguns gigabytes (se estejam limpos e livres de ruído). 4. KNN é um aprendiz cosofreintado: Ele não aprende uma função distintiva a partir do set de treino; é muito simples e pode ser útil para obter uma ideia aproximada da distribuição do dados, principalmente quando se trata de grandes conjuntos de dados. ## Workflow do Algoritmo de KNN 1. Definimos um inteiro positivo K junto com um novo amostra. 2. Seleccionamos os K entradas da nossa base de dados que estão mais próximos do novo amostra. 3. Encontramos a classificação mais comum entre estas entradas e atribuímos esta classificação ao novo amostra. ## Exemplo: Predição de Diabetes O nosso objetivo é prever se uma pessoa será diagnosticada com diabetes ou não com base numa base de dados que contém 768 pessoas. Vamos importar as ferramentas necessárias em Python, abrir e explorar os dados e aplicar o algoritmo KNN para prever o diabetes. ### Dados Import e Exploração Primeiramente, vamos importar as ferramentas necessárias e abrir o dataset. Neste exemplo, estamos a utilizar o Anaconda Environment com Jupyter Notebook. Depois do dataset estar aberto, tomaremos uma perspectiva sobre as colunas e suas correlações com a solução (diabetes). Talvez notemos que as colunas com características importantes terão uma maioria das correlações na solução. ### Prepara os Dados Antes de treinar o modelo, teremos de preprocessar os dados ao escalar ou normalizar as características se necessário, tratar ausências, e provavelmente dividiremos as características e a variável alvo. ### TReinar e Testar o Modelo Por fim, vamos utilizar o algoritmo KNN para treinar e testar o modelo nos nossos dados, avaliando-o com métricas de performance adequadas como acurácia, precisão, recolha e c-media-score. ### Escolher K Vamos explorar diferentes valores de K e observar o seu impacto na performance do modelo em ordem a escolher o valor otimizado. ### Fazer Previsões Finalmente, utilizaremos o modelo treinado para fazer previsões sobre dados novos, inéditos. # Data Preprocessing para o Conjunto de Dados de Diabetes usando KNeighborsClassifier em Python ## Importações ```python import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler ``` O Pandas é uma ferramenta poderosa para manipulação de dados, enquanto que o NumPy é adequado para operações numéricas. Estamos também importando módulos necessários do `sklearn` para seleção de modelo e preprocessamento. ## Carregando os Dados ```python # Carregando o conjunto de dados de diabetes a partir de um ficheiro CSV diabetes_data = pd. read_csv('diabetes. csv') ``` Estamos a carregar o conjunto de dados de diabetes usando a função `pd. read_csv()`. Certifique-se de ter o ficheiro CSV na mesma localização que o seu script python. ## Inspeção dos Dados ```python # Inspeção de Dados print("Número de linhas no dataset: ", len(diabetes_data)) print("\nAs 6 primeiras linhas do dataset: \n", diabetes_data. head()) ``` Usando a função `len()`, podemos verificar o número de linhas no dataset. Estamos ainda a utilizar a função `head()` para inspecionar as primeiras 6 linhas do dataset. ## Tratamento de Valores Nulos ```python # Tratando valores nulos substituindo zeros por `NaN` diabetes_data. replace(0, np. nan, inplace=True) ``` Estamos a tratar valores nulos substituindo zeros por `NaN` porque zero pode ser um valor nulo para algumas colunas como `espessura da pele` ou `pressão arterial`. ## Escalonamento de Características ```python # Escalonamento de Características escalar = StandardScaler() X_treino = escalar. fit_transform(diabetes_data. drop(['Resultado'], axis=1)) X_teste = escalar. transform(diabetes_data. drop(['Resultado'], axis=1)) ``` Estamos a utilizar `StandardScaler` para o escalonamento de características no conjunto de dados de treino e também no conjunto de dados de teste. ## Divisão dos Dados ```python # Divisão do dataset em treino e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X_treino, diabetes_data['Resultado'], random_state=0, test_size=0. 2) ``` Estamos a dividir os dados preprocessados entre conjunto de treino e conjunto de teste com o tamanho do conjunto de teste sendo 20%. O restante de 80% dos dados são utilizados para o treino. ## KNeighborsClassifier ```python # Criando e ajustando o modelo KNeighborsClassifier do partir de sklearn. neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_vizinhos=11, métrica='minkowski', p=2) knn. fit(X_treino, y_treino) ``` Aqui, estamos a criar uma instância do KNeighborsClassifier, definindo o número de vizinhos para 11 para um voto ímpar, e a métrica para 'minkowski' com p=2. De seguida, ajustamos o modelo usando o conjunto de dados de treino. # Medindo a Distância: Introdução à Matriz de Confusão, Pontuação F1 e Pontuação de Precisão Este texto se concentra em explicar os conceitos da Matriz de Confusão, Pontuação F1 e Pontuação de Precisão, mostrando sua utilidade na avaliação de modelos. Vamos lá. ## Matriz de Confusão comecemos avaliando nosso modelo usando a matriz de confusão. Utilizaremos a Matriz de Confusão, uma ferramenta essencial para obter insight sobre o desempenho do modelo. Vamos representá-la como `cm`: ```python cm = confusion_matrix(y_test, y_predict) ``` Na nossa matriz, as colunas representam o `y_test` (Resultado Real) e as linhas representam o `y_predict` (Predição). A coluna central é importante, pois apresenta os casos em que as predições e as previsões concordam/desacordam: | | Resultado Real | Predição Real | | ---|----------------|--------------| | Previsão | | | | 1 | Real 94 | **94 e 32** | | 2 | Real _______ | _______ | | 3 | Real _______ | _______ | *Coluna 2 da seção central*: nossa predição diz **94** (pessoas sem diabetes), **32** (diabéticas) pessoas tiveram a doença, mas o modelo marcou outras **15** pessoas desses 32 indivíduos como falsas positivas (em risco elevado, enquanto elas não tinham a doença). ## Pontuação F1 Agora que já conhecemos a Matriz de Confusão, iremos para a Pontuação F1. Nós recalcamos que este método leva em conta os falsos positivos, assim, equilibrando Precisão e Recall: ```python from sklearn. metrics import f1_score F1 = f1_score(y_test, y_predict) ``` Obtém a **Pontuação F1**: ``` 69 ``` Como estamos principalmente preocupados com **predição de diabetes** (um assunto clínico), menores falsos positivos seriam melhores nessa situação, mesmo se isso custar a precisão. A Pontuação F1 tem um papel importante, pois fornece informações sobre a qualidade do modelo previsível. ## Pontuação de Precisão Costuma ser comum questionamento de decisores quanto à Precisão: a proporção de previsões corretas em relação às previsões realizadas: ```python from sklearn. metrics import accuracy_score precisão = accuracy_score(y_test, y_predict) ``` Calcule a **Precisão**: ``` 0, 818 (arredonde para obter aproximadamente 80%) ``` O valor resultante indica uma ajuste aceitável (cerca de 80%) do nosso modelo no conjunto de dados dado. A Precisão e a Pontuação F1 podem levar a discussões interessantes entre cientistas de dados, uma vez que um métrica supera a outra em determinadas circunstâncias: a Pontuação F é mais confiável, uma vez que aborda diretamente a taxa de falsos positivos, enquanto os decisores priorizam a Pontuação de Precisão, pois comunica a proporção simples de direitos versus enganados. ## Redução de Dimensão: Análise Principal de Componentes (APC) Passaremos agora pela APC, abordando sua importância para lidar com conjuntos de dados de alta dimensão e destacando suas características principais. O código Python mostra os aspectos essenciais de implementar APC através de um exemplo extraído de nosso Jupyter Notebook. ### Tabela: Conjunto de Dados do Vendedor de Partes Automóveis ! [Conjunto de Dados](url_to_table_image) Nossa meta com a redução de dimensão (APC) é: - Minimizar variáveis redundantes (para acelerar o processo de aprendizado durante a seleção do algoritmo de aprendizado de máquina) - Reduzir o espaço total necessário para armazenamento - Fornecer representações visuais de dimensões reduzidas para facilitar a melhor comunicação Benefícios à vista: - Tempo de computação & de treino reduzem quando se trata de conjuntos de dados de alta dimensão, resultando em eficiências em custo & tempo (se for saltar por vários modelos de aprendizado de máquina) - Redução da redundância nas instâncias de dados repetitivas (simplificação do pré-processamento) - Redundância de espaço: armazenar apenas colunas críticas em nossos conjuntos de dados juntos (gerenciamento de big data) - Interpretação de dados visuais simplificada (acompanhando melhor a percepção humana em gráficos 2D & 3D) Lembre-se: - **Fase Descritiva**: Durante esta fase inicial, nossa atenção está voltada para a preparação e entendimento do processo de preparação de dados, para entender como os conjuntos de dados se comportam aos longo dos eixos êsicos. # Documentação da Análise de Componentes Principais (PCA) ## Introdução A Análise de Componentes Principais (PCA) é um procedimento estatístico que utiliza uma transformação ortogonal para converter um conjunto de observações de variáveis possivelmente correlacionadas em um conjunto de valores de variáveis linearmente desacopladas chamadas componentes principais. ## Como a PCA funciona 1. **Padronização** A padronização é o passo inicial da PCA. O objetivo principal deste passo é padronizar o range das características de modo que cada uma delas se encontre dentro de limites semelhantes. Este processo envolve a remoção da média dos valores das características e a escala dos dados em relação à desvio padrão. **Equação: ** Z = (x - mean) / standard deviation 2. **Matriz de Covariância** A matriz de covariância é usada para expressar a correlação entre qualquer duas ou mais características em um conjunto de dados multidimensionais. A matriz de covariância tem os valores de entrada sendo a variação e a covariância dos valores das características. A matriz de covariância para duas características e seus valores fossem como: ``` [ variancia(x), covariancia(x, y) [ covariancia(x, y), variancia(y) ] ``` 3. **Valores IG e Vetores IG** Os valores IG e os vetores IG são os valores matemáticos extratos da tabela de covariância. Elos são responsáveis ​​pela geração de um novo conjunto de variáveis a partir do conjunto antigo de variáveis que, em seguida, levam à construção dos componentes principais. - **Vetores IG**: Não alteram rumo após transformação linear. - **Valores IG**: são os escalares ou a magnitude dos vetores IG. Elos são usados ​​para transformar o dado, alterando o vetor B para B' conforme ilustrado na ilustração. 4. **Vetores de Característica** Os vetores de característica são uma matriz que tem os vetores IG dos componentes que decidimos manter com colunas. Aqui decidimos se devemos manter ou descartar as componentes principais menos significativas que criamos nos passos anteriores. ## Exemplos ### Exemplo de Dados de Cancer Consideremos uma matriz X com linhas representando observações e colunas como variáveis. Para esta Matriz, trabalhamos com um espaço variável com tantas dimensões como as variáveis. No entanto, para simplificar, consideremos este espaço como tridimensional por enquanto. Cada linha de observação da Matriz X é colocada no espaço de variáveis K-dimensional de forma que as linhas na tabela de dados formem um nublado de pontos neste espaço. O primeiro componente principal é uma linha que melhor descreve a forma do nuvem de pontos. Ela representa a direção de variação máxima no dado. Cada observação pode ser projetada nesta linha para obter um valor de coordenada ao longo da PC1, que é conhecido como a pontuação. Uma segunda componente principal é criada, orientada de modo que reflete a próxima maior fonte de variação no dado enquanto é ortogonal à PC1. PC2 também passa pelo ponto médio. ## Implementação Esta documentação irá guiar você para a implementação da PCA em Python usando a biblioteca sklearn. ### Pré-requisitos - Python 3. 6 - Anaconda Navigator - Jupyter Notebook - Bibliotecas necessárias: `matplotlib`, `pandas`, `numpy`, `Seaborn`, `plotly` ### Etapas 1. **Importando Bibliotecas** ```python import matplotlib. pyplot as plt import pandas as pd import numpy as np import seaborn as sns from sklearn. decomposition import PCA ``` 2. **Carregando Dados** ```python # Carregando Dados de Cancer cancer_data = pd. read_csv('cancer_data. csv') ``` 3. **Explorando Dados** ```python # Verifica as chaves dos dados e imprima os nomes do alvo print(cancer_data. keys()) print(cancer_data['Target']. unique()) ``` 4. **Implementação da PCA** ```python # Criar um objeto PCA e transformar os dados pca = PCA(n_components=2) transformada_pca = pca. transform(cancer_data) ``` 5. **Visualização dos Resultados** ```python # Visualiza os resultados plt. scatter(transformada_pca[: , 0], transformada_pca[: , 1], c=cancer_data['Target']) plt. show() ``` Este criará um gráfico de dispersão dos dados transformados coloridos pela variável de alvo. Os dados serão agrupados em torno dos componentes principais, representando a variação máxima e segunda variação máxima no dado. # Análise de Dados usando PCA e Regressão Linear Este documento detalha as métodos utilizados para análise de dados, com enfase na Análise Principal de Componentes (PCA) e Regressão Linear. ## PCA - Análise Principal de Componentes ### Método Em setup de descrição, criamos e analisamos os dados. A PCA não é usada para previsão; em vez disso, agrega-se para examinar os dados. A principal informação ao abrir aqui é o número de componentes. ``` X_PCA = PCA_transform(scaled_data) # Atribuindo X_PCA aos dados transformados pela PCA ``` Em seguida, verificamos as formas do conjunto de dados original, dos dados X_PCA e a intenção é mostrar o que está ocorrendo. Comprimimos 30 características em duas características, reduzindo o número de características a analisar por metade. Plotamos essas duas características usando um gráfico de dispersão para visualizá-las. O câncer é usado para percepções individuais, e a cor dos pontos é determinada pelo valor alvo. ``` plt. figure(figsize=(8, 6)) plt. scatter(X_PCA[: , 0], X_PCA[: , 1], c=df['Target']) plt. xlabel('Principal Component 1') plt. ylabel('Principal Component 2') ``` ### Interpretando as componentes Infelizmente, entender o que essas componentes representam pode ser complicado, pois correspondam a combinações de características originais. As componentes por si só são armazenadas como um atributo do objeto PCA. ``` print('Componentes: ', pca. components_) ``` Podemos jogar essas componentes em um diagrama de aquecimento para ganhar insights sobre o que elas representam. ``` df_comp = pd. DataFrame(pca. components_, columns=df. columns) sns. heatmap(df_comp, cmap='coolwarm') ``` ## Regressão Linear ### Método A Regressão Linear emquadra a linha que se adapta melhor aos pontos de dados para entender a relação entre as variáveis. Essa relação é uma reta que passa pelos pontos de dados, e as variáveis têm uma relação linear. ``` # Ajuste dos pontos de dados e cálculo da melhor reta regressão = stats. linregress(x, y) ``` A função `stats. linregress()` fornece a inclinação (m), a interceção (b), o R-value, o valor p, e o erro padrão da inclinação. Além disso, você pode usar o método `predict()` para prever os y valores para os x valores dados. ``` y_pred = regressão. predict(X) ``` ### Bias e Variance No contexto de aprendizado de máquina, **bias** refERE-SE a erro devido a um modelo inadequado ou para um modelo muito simples que não se adapta bem aos dados. Em contraste, **variance** é o erro devido à sensibilidade aos específicos instantâneos no conjunto de treino. Em outras palavras, o modelo ajusta ruído nos dados de treinamento, o que leva a um aumento do erro nos dados de teste. Balançar bias e variance é crucial na análise de dados e aprendizado de máquina. Um modelo com alta bias tende a subestimar os dados (erro de alta bias), significando que ele apresenta desempenho ruim tanto nos dados de treinamento quanto nos dados de teste, pois abastece o relacionamento entre variáveis independentes e dependentes de forma muito simples. Um modelo com alta variance tende a sobreestimar os dados (erro de alta variance), significando que se apresenta bom desempenho nos dados de treinamento, mas ruim nos dados de teste, pois começa a ajustar o ruído nos dados de treinamento. # Bicicleta versus Caminhão: Entendendo Variação e Sobreajuste ## O Problema de Variação: Caminhões e Cores Os caminhões, em contrapartida às bicicletas, distinguem-se por certas características que devem ser atendidas. Por exemplo, se for um volante, deve ser vermelho. Se for azul, então deve ser uma bicicleta. Este problema de variação surge quando o modelo não consegue fornecer a resposta correta, a menos que receba dados específicos. À medida que testamos e programamos os nossos modelos, é importante verificar como foi treinado, o que está a sair e se não está a cumprir as expectativas em virtude de uma biaise ou problemas com os dados de treino ou teste. Se for performar bem nos dados de treino, mas mal nos dados de teste, então pode haver sobreajustado os dados. ## O Problema de Variação: Jogo de Dardos Nos contextos de um jogo de dardos, se todos os dardos caírem no mesmo ponteiro, isso pode ser considerado como um lance biasado e o jogador irá marcar aquela pontuação. Do outro lado, se todos os dardos caírem em ponteiros diferentes, nenhum dos dardos está no mesmo ponteiro, isso pode ser considerado como um lance variado e o jogador irá marcar várias pontuações. A biaise consiste em médias tudo juntos enquanto a variação procura as previsões individuais que saem. ## Sobreajuste: Aprender Ruído e Ajustar Todo Ponto de Dados O sobreajuste é uma situação onde o modelo de aprendizagem de máquina tenta aprender dos detalhes junto com o ruído e ajusta cada ponto no gráfico. Neste caso, não existe uma média ou dois pontos que poderiam ter respostas similares por várias razões, como o vento soprando determinada maneira ou eficiências diferentes do nosso carro dependendo das condições meteorológicas. Quando o modelo tem pouca flexibilidade, falha a prever pontos de dados novos, levando a altos erros. ### Causas e Soluções do Sobreajuste - Os dados usados para o treino contêm ruído e valores de lixo a serem endereçados. - O tamanho dos dados de treino não é suficiente, e um pequeno tamanho de dados pode causar este problema. - O modelo é demasiadamente complexo e é complicado segui-lo em cabeça. Você pode ter de descompô-lo e encontrar as correlações entre eles. ## Impedir o Aprendizado: Incapacidade de Aprender Relações ou Prever Dados Novos Impedir o aprendizado é uma situação onde os modelos de aprendizagem de máquina não conseguem aprender as relações entre os pontos de dados ou prever e classificar um ponto de dados novo. Nesta situação, a linha desenhada será muito por fora de ambos os dados de treino e de predição. Para minimizar isso, é necessário limpar os dados. ### Causas e Soluções de Impedidos - O modelo do aprendizagem de máquina inclui uma biaise para uma coisa. - O tamanho dos dados de treino é insuficiente. - O modelo é demasiadamente simples para aprender os padrões. - Os dados usados para o treino contêm ruído, lixo e valores a serem endereçados. ## O Correto Fit: Curva Linear Mais Adequada para os Dados O fit correcto é alcançado quando uma curva linear se ajusta mais ao dado. Este modelo não se sobreajusta nem se impede de aprender mas é justo. O regularização é usada para calibrar modelos de regressão linear e minimizar a função de perda ajustada, impedindo o sobreajuste ou o impédido. Há dois tipos de técnicas de regularização: a regularização de borda e a regularização da lança. ### Regularização da Borda A regularização da borda modifica os modelos sobreajustados ou impedidos usando uma penalidade equivalente à soma dos quadrados da magnitude dos coeficientes. A função custo igual Loss = Lambda * Σw² ou o valor absoluto de w dependendo do método usado. Lambda é a penalidade pelos erros, e W é a pendiente da curva. ### Regularização da Lança A regularização da lança iguala o valor da perda individual e o símbolo Lambda representa a penalidade pelos erros. W igual a pendente da curva. A regularização da lança é preferida quando está a-fitar um modelo linear com menos variáveis. Um exemplo de código para a regularização Ridge e Lasso será discutido em outro documento. # Análise de Dados do Boston housing usando Regressão Linear Múltiple e Regressão de Barra (Ridge Regression) em Python Este guia vai guiar você a analysar o dataset de Boston Housing usando Regressão Linear Múltiple e Regressão de Barra em Python. ## Resumo Neste tutorial, iremos: 1. Carregar e realizar a preparação inicial do album de dados do Boston Housing 2. Dividir os dados em conjuntos de treinamento e teste 3. Aplicar o modelo de Regressão Linear Múltiple e Regressão de Barra 4. Avaliar os modelos usando Erros Quadrados Médio (MSE) 5. Visualizar os resultados ## Preparação dos Dados Inicialmente, iremos importar as bibliotecas necessárias e carregar o album de dados do Boston Housing. ```python import pandas as pd from sklearn. model_selection import train_test_split from sklearn. linear_model import LinearRegression, Ridge # Carregar o dataset do Boston Housing boston = pd. read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data", header=None) boston. columns = ["crim", "zn", "indus", "chas", "nox", "rm", "age", "dis", "rad", "tax", "ptratio", "black", "lstat", "medv"] # Dividir os dados em treinamento e teste (80% de treinamento, 20% de teste) X = boston. drop("medv", axis=1) y = boston["medv"] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=42) ``` ## Regressão Linear Múltiple Agora, iremos aplicar o modelo de Regressão Linear Múltiple ao conjunto de dados de treinamento e fazer previsões sobre o conjunto de dados de teste. ```python # Crie o modelo de Regressão Linear Múltiple lr = LinearRegression() # Ajuste o modelo com o conjunto de dados de treinamento lr. fit(X_treino, y_treino) # Gerar previsões com o conjunto de dados de teste y_pred = lr. predict(X_teste) ``` Calcule o Erro Quadrado Médio (MSE) para o modelo. ```python from sklearn. metrics import mean_squared_error # Calcular o Erro Quadrado Médio (MSE) sobre o conjunto de dados de teste mse = mean_squared_error(y_teste, y_pred) print(f"Erro Quadrado Médio (MSE) sobre o conjunto de dados de teste: {mse}") ``` ## Regressão de Barra Agora, iremos aplicar o modelo de Regressão de Barra ao conjunto de dados de treinamento e fazer previsões sobre o conjunto de dados de teste. ```python # Crie o modelo de Regressão de Barra com α=1 ridge = Ridge(alpha=1) # Ajuste o modelo com o conjunto de dados de treinamento ridge. fit(X_treino, y_treino) # Gerar previsões com o conjunto de dados de teste y_pred_ridge = ridge. predict(X_teste) ``` Calcule o Erro Quadrado Médio (MSE) para o modelo de Regressão de Barra. ```python # Calcular o Erro Quadrado Médio (MSE) sobre o conjunto de dados de teste (Ridge) mse_ridge = mean_squared_error(y_teste, y_pred_ridge) print(f"Erro Quadrado Médio (MSE) sobre o conjunto de dados de teste (Ridge): {mse_ridge}") ``` ## Visualizando os resultados Finalmente, iremos visualizar os resultados ao gráfico das coeficientes para ambos os modelos. ```python import matplotlib. pyplot as plt import seaborn as sns # Gráfico das coeficientes para o modelo de Regressão Linear Múltiple coef_lr = pd. DataFrame(lr. coef_, X. columns, columns=["Coeficiente"]) sns. barplot(x="", y="Coeficiente", data=coef_lr) plt. title("Coeficientes de Regressão Linear Múltiple") plt. show() # Gráfico das coeficientes para o modelo de Regressão de Barra coef_ridge = pd. DataFrame(ridge. coef_, X. columns, columns=["Coeficiente"]) sns. barplot(x="", y="Coeficiente", data=coef_ridge) plt. title("Coeficientes de Regressão de Barra") plt. show() ``` # Aprendizado de Reforços Esse texto aborda o conceito de Aprendizado de Reforços (AR), um tipo de aprendizagem de máquina em que um agente aprende a tomar decisões tomando ações em um ambiente para maximizar alguma noção de prêmio acumulativo. ## Termos-chave no Aprendizado de Reforços ### Agente Uma entidade que está sendo treinada por meio do aprendizado de reforços, que pode ser um modelo usando uma rede neural, uma tabela Q ou qualquer combinação de técnicas. O agente aprende com seu ambiente ao usar recompensas e erros para resolver problemas baseados na recompensa. ### Ambiente A situação de treinamento que o modelo deve otimizar é chamada de seu ambiente. O ambiente pode ser um tabuleiro de jogo, um robô mudando-se pelo jardim, ou qualquer outra situação em que o agente interage. ### Estado A posição ou condição atual devolvida pelo modelo. representation do estado atual do ambiente. ### Ação Todas as ações possíveis que o modelo pode tomar. O agente escolhe uma ação a tomar em resposta ao estado atual. ### Prêmio Os prêmios são dados ao agente para guiar-lo na direção certa. O objetivo é maximizar o prêmio e alcançar o melhor prêmio possível. ### Política A política determina como um agente vai se comportar em qualquer momento. Atua como uma mapping entre ação e estado atual, e ajuda o agente a se decidir baseado em pré-visões. ## Aprendizado de Reforços: Treino de um Cachorro para Pegar Para entender melhor o aprendizado de reforços, considere o exemplo da treinagem de um cachorro para pegar. O cachorro (agente) é treinado em seu ambiente (o todo casa ou jardim). A ação que desejamos que o cachorro faça é pegar. Oferecendo premiações como um brinquedo de cachorro como um prêmio, o cachorro seguirá uma política para maximizar esse prêmio e seguir as ordens, possivelmente mesmo aprendendo novas ações como pedida. ### Exploração A exploração do ambiente pelo cachorro é uma característica do modelo de aprendizado de reforços, onde ele explora novas partes da casa ou do jardim, não necessariamente sendo recompensado por todas as ações. ## Processo de Decisão de Markov O processo de decisão de Markov é uma política de aprendizado de reforços usada para mapeamento de um estado atual para uma ação, onde o agente continua interagindo com o ambiente para gerar soluções e receber recompensas. Os elementos nesse processo incluem o recompensa, estado, agente, ambiente, ação e política. Nesse processo, o ambiente envia uma recompensa e um estado para o agente. O agente olha para a recompensa e o estado, considera as ações possíveis guiadas pela política e, em seguida, faz uma decisão sobre qual ação tomar. A ação selecionada afeta o ambiente, que muda seu estado e o prêmio, e o processo continua. ## Demo de Aprendizado de Reforços: Jogo da Forca em Python Para ilustrar a aplicação prática do aprendizado de reforços, esse texto fornece um demo de uma partida de Jogo da Forca jogada contra um modelo de aprendizagem de máquina usando Python. O demo acontece num caderno Jupyter, onde o usuário joga contra o modelo de aprendizado de reforços. Leitores interessados podem obter o código e jogar com ele para melhor compreendê-lo sobre as mecânicas do aprendizado de reforços. Este texto serve como um boa ponta destino para aprender sobre aprendizado de reforços e suas aplicações. Leituras adicionais e experimentações são incentivadas para obter uma entendimento mais aprofundado de esse campo excitante. # Aprendizado Reforçado: Entendendo o Sistema de Reward e Seleção de Ação Este documento está centrado no coração do aprendizado reforçado: o sistema de reward e a seleção de ação. Neste exemplo, utilizaremos um tabuleiro de 3x3, mas é importante lembrar que em ambientes mais complexos, o sistema de reward deverá ser ajustado de acordo. ## O Sistema de Reward O sistema de reward é a chave para um aprendizado reforçado eficaz. Ele deve ser cuidadosamente projetado baseado nos objetivos da tarefa. Neste exemplo, temos um sistema de reward simples: 1. Um réward de 1. 0 é dado se o resultado é igual a 1, o que indica uma vitória. 2. Um réward de 0. 0 é dado se o resultado não for igual a 1. 3. Os réwards são apenas concedidos quando houver uma vitória. Esse sistema de reward é fundamental porque permite ao agente aprender por si alone, uma vez que diferentes métodos de aprendizado reforçado recompensam de modo diferente de acordo com a tarefa. ### Reinicialização do Tabuleiro O tabuleiro é reinicializado no começo de cada condução, enquanto o agente aprende através de experiências. ### Número de Rodadas O número de rodadas (100, neste caso) pode ser ajustado de acordo com o nível de exploração desejado. Neste exemplo, temos o Jogador 1 (computador) a jogar contra o Jogador 2 (também o computador). A competição multi-agente é uma maneira poderosa de aprender a jogar uma partida ou até mesmo aprender algo que não seja uma partida, uma vez que os modelos tentam superar-se, explorando novas possibilidades. ### Jogar com um Humano A parte mais excitante acontece quando jogamos com um humano. O agente fornece feedback baseado nos seus ações, réwards e posições disponíveis, e depois imprime o estado atual do tabuleiro. ## A Seleção de Ação A seleção de ação é outro componente crucial do aprendizado reforçado. Neste exemplo, utilizamos um método de seleção de ação aleatória, mas considerar métodos mais sofisticados como o algoritmo de Q-learning para espacios de estado maiores. ## Implementação A classe `player` gere a seleção de ação e os réwards. Ela armazena o estado, o réward e implementa as funções necessárias para a seleção de ação e feedback. O estado é atualizado a cada etapa, e o réward depende do estado atual e da ação anteriormente escolhida. ### Treinando o Agente Para treinar o agente, definimos a taxa de exploração (explor_rate) e o fator de desconto (decay_gamma), que determinam o quanto o agente se concentra na exploração em contraposição ao explotamento. Durante o processo de treinamento, o agente registe seus estados passados, ações e réwards para ajustar adequadamente os valores. O formulário de réward é `decay_gamma * réward - valor do estado anterior`. O agente calcula os réwards pela subtração do valor do estado anterior do réward atual, multiplicado pelo fator de desconto a cada passo. Assim, o agente aprende dos seus erros, com pesos descendentes ao se aproximar do início do processo de aprendizado. ## Conclusão No aprendizado reforçado, o sistema de reward e a seleção de ação são componentes essenciais. Compreender e dominar estes componentes permite treinar agentes tanto esclarecidos para tomar decisões em vários tipos de ambientes. Tais agentes têm múltiplos aplicativos, incluindo jogos, robótica e investigações em inteligência artificial. # Aprendizado de Reforços: Uma Visão Detalhada O aprendizado de reforços (AR) é uma técnica de aprendizado de máquina potente que pode ser usada para tomar decisões ou ações em um ambiente para maximizar uma recompensa. No entanto, é crucial usá-lo de forma judiciosa, pois pode ser bastante complexo, especialmente quando lidar com redes neurais de tamanho grande. ## Aspectos Importantes do Aprendizado de Reforços ### Conceitos Básicos - **Estados**: O estado (s) representa a posição atual do agente em um ambiente. - **Ações**: A ação (a) é a ação realizada pelo agente enquanto ele se encontra em um estado. - **Recompensas**: Para cada ação, o agente receberá uma recompensa positiva ou negativa. - **Episódios**: Um episódio termina quando um agente acaba num estado final e não pode tomar uma nova ação. - **Valores Q**: Os valores Q são usados para determinar quanto uma ação é boa num determinado estado. ### Aprendizado de Q O aprendizado de Q é uma política de AR que escolhe a próxima melhor ação dado um estado atual. Ele escolhe uma ação aleatoriamente e tenta maximizar a recompensa. #### Define RL Padrão No AR, o agente toma uma ação, que afeta o ambiente, e depois o ambiente envia de volta a recompensa ou o feedback e o novo estado que o agente se encontra. #### Exemplo: Jogo da Velha ou Xadrez Por exemplo, se você estiver jogando Jogo da Velha ou Xadrez, usando AR, o computador análises decidir baseado no estado atual, experimenta várias ações e aprende com a reforça resultante. Durante o processo de treinamento, o aprendizado de reforços se tornará mais poderoso e poderia potencialmente ser uma das principais ferramentas de aprendizado de máquina e de inteligência artificial nos próximos dez anos ou quatro. #### Aprendizado de Q e Sistemas de Recomendação de Anúncios O aprendizado de Q também pode ser usado para desenvolver um sistema de recomendação de anúncios, o qual sugere produtos relacionados a um usuário baseado nos seus jogos anteriores. A recompensa será se o usuário clicar no produto sugerido. ### Termos Importantes no Aprendizado de Q - **Estados**: O estado s representa a posição atual do agente em um ambiente. - **Ações**: A ação a é a ação realizada pelo agente enquanto ele se encontra em um estado. - **Recompensas**: Para cada ação, o agente receberá uma recompensa positiva ou negativa. - **Valores Q**: Os valores Q são usados para determinar quanto uma ação é boa num determinado estado. ### Código de Exemplo de Aprendizado de Q - Python Neste exemplo, usaremos o aprendizado de Q para encontrar o caminho mais curto entre dois pontos dados. ```python # Importe as bibliotecas necessárias import numpy as np # Definindo o ambiente estados = ['L1', 'L2', 'L3', 'L4', 'L5', 'L6', 'L7', 'L8', 'L9'] acoes = ['0', '1', '2', '3', '4', '5', '6', '7', '8'] # Configurando a tabela Q Q = np. zeros([len(estados), len(acoes)]) # Definindo a recompensa para cada ação recompensas = { '0': 10, '1': 7, '2': 5 } # Faça o aprendizado de Q por vários episódios por_episódio = range(100) para cada episódio em por_episódio: # Escolha um estado inicial e ação estado = np. random. escolha(tamanho(estados)) ação = np. random. escolha(tamanho(acoes)) # Atualize os valores Q de acordo com a Equação de Bellman recompensas_futuras = [] por 5 passos _ em range(5): próximo_estado = (estado + ações[ação] + 1) % tamanho(estados) recompensa = recompensas[estado] recompensas_futuras. append(recompensa) Q[estado, ação] = sum(recompensas_futuras) estado = próximo_estado # Atualize a tabela Q com o valor aprendido Q[estado, ação] = máximo(Q[estado, : ]) ``` Este exemplo de aprendizado de Q acima dará especificamente o caminho mais curto entre dois pontos dados usando a tabela Q e a Equação de Bellman. Continuando a executar este algoritmo em vários episódios, os valores Q serão atualizados, e o programa aprenderá o caminho mais curto. Finalmente, com o aprendizado de reforços, seremos capazes de aprender problemas simples como Jogo da Velha e ambientes complexos como tradução de línguas. A potência do aprendizado de reforços torna-se, pelo fato de poder aprender em vários ambientes e contextos, fundamental para a evolução do aprendizado de máquina e de inteligência artificial nos próximos anos. # Aprendizagem Q para Negociação de Ações e Agente de Aprendizado AUTOMATIZADO Este texto discute o uso da Aprendizagem Q na negociação de ações, apresentando um agente de Aprendizagem Q para tomada de decisões. ## Introdução Quando se trata de negociação de ações, uma das perguntas que surgem é se comprar ou vender uma acção. A abordagem apresentada aqui envolve a criação de "niçoias" para ações previstas para devolver mais do que uma certa quantia de dinheiro. As ações com erros passados são colocadas nesses niçois. Como as niçoias são criadas, fica claro que há uma quantidade limitada de informação que chegou, e em vez de um número flutuante, você tem niçoias 1, 2, 3, e 4. Essas búctias podem então ser colocadas numa tabela de Aprendizagem Q para determinarmos a ação mais aprazível: qual ação devo comprar? ## Negociação de Ações como Jogo de Aposta A negociação de ações, particularmente o trading diurno, é similar ao jogo de azar. Este tópico discute por que as feeds sugerem que os melhores algoritmos usados para os traderes diurnos que negociam sozinhos estão baseados numa pergunta simples: devo negociar a ação (sim ou não)? Esta pergunta pode então ser colocada numa tabela de Aprendizagem Q para levar o assunto à próxima nível. ## Configurando a Tabela de Aprendizagem Q A tabela de Aprendizagem Q é configurada com um dicionário para estado-localidade e localidade-estado, itens, e taxas de aprendizado. As taxas de aprendizado para informações passadas e atuais são definidas como 75 e 0, 9 respectivamente. ## Criando o Agente O agente é inicializado com vários parâmetros, como a ação, gama, alfa, localidade-estado, opções de ações, recompensas, e dicionário de estados para mapear locais de estados. Um Q-Learning table também é criado e inicializado a zeros. ## Capacitando o Agente O agente é treinado italiano pela iteração através da matriz de recompensas para obter os estados diretamente atingíveis a partir de um estado escolhido aleatoriamente atual, e atribuindo aqueles estados a uma lista chamada ações jogáveis. Em seguida, o agente tenta diferentes opções de ação para ver qual dá um recompensa melhor. O próximo estado é escolhido com base na seleção mais aprazível, e o bloco de recompensas atualiza a tabela Q usando a equação Belman. ## Findindo o Rota Óptima A rota Óptima é encontrada definindo uma função para rota Óptima e utilizando para obter a melhor rota entre as localidades de origem e destino. A tabela Q, localidade de origem, localidade de destino, localidade próxima, rota, q são atualizados conforme apropriado. ## Conclusão Este tutorial demonstra como se encontrar o menor caminho entre dois caminhos baseado nos zalos regrais, recompensas, e opções de ação usando um Agente de Aprendizagem Q. O Agente de Aprendizagem Q pode ser incorporado em outro ambiente ou modelo para prever a melhor investimento ou melhor sequência de ações. ## Tutorial sobre Learning Profundo Bem-vindo a este tutorial sobre aprendizagem profunda. Nos próximos 90 minutos, vou levar você através de o que é aprendizagem profunda e no ambiente tensor flow mostrando-vos um exemplo de aprendizagem profunda. Há muitas aplicações da aprendizagem profunda, e uma delas é a identificação da localização geográfica baseada numa imagem. Este tutorial não aborda essa aplicação, mas apresenta a utilização de um Agente de Aprendizagem Q na negociação de ações. # Tutorial de Aprendizado Profundo ## Visão Geral O Aprendizado Profundo é um subconjunto da Inteligência Artificial (IA), conceito de nível alto que talvez já tenha ouvido falar. A IA é usada para implementar várias aplicações, e o aprendizado profundo é um tipo de IA que usa aprendizagem automática, com um foco em redes neurais. Nesse tutorial, vamos discutir: 1. O que é aprendizado profundo? 2. Componentes do aprendizado profundo, em particular redes neurais, perceptrons e portas lógicas (AND, OR, NOR, etc. ). 3. Tipos de redes neurais e suas aplicações. 4. Como treinar redes neurais. 5. Implementando aprendizado profundo usando TensorFlow com Python e um exemplo prático - o banco de dados MNIST para reconhecimento de numérios escritos a mão. ## O que é Aprendizado Profundo? O aprendizado profundo funciona principalmente com grandes quantidades de dados complexos e desestruturados como imagens, áudio ou texto. Em comparação com o aprendizado tradicional que usa frequentemente dados estruturados, o aprendizado profundo pode lidar com operações complexas. Além disso, a extratção de características no aprendizado profundo acontece automaticamente, o que não ocorre com o aprendizado tradicional em que os cientistas de dados precisam fazer uma engenharia de características manual. ## Redes Neurais As redes neurais são inspiradas nos neurônios biológicos que constituem nossos cérebros. Aqui está como um neurônio biológico e um neurônio artificial: ! [](url_for_biological_neuron_image) ! [](url_for_artificial_neuron_image) Num neurônio artificial, os entradas são recebidas através da equivalentes de axônios. A unidade de processamento é uma peça que funciona como o núcleo celular, e com base nos pesos e biais, a entrada é processada para resultar em uma saída. A saída é então passada através de uma equivalentes de uma sinapse. Os neurônios biológicos estão interconectados, e assim estão as redes neurais artificiais. A saída de um neurônio atua como uma entrada para outro. ### Perceptron O perceptron é uma unidade fundamental de uma rede neural e pode consistir de várias células. Ele pode ser usado como um classificador básico para tarefas de classificação binária simples. ! [](url_for_perceptron_image) Aqui, X1, X2, X3, . . . , Xn são as entradas, e há uma função seguida por uma função de ativação. A soma ponderada dos produtos das entradas (Σwi*xi) é passada por uma função de ativação, e dependendo do resultado, o neurônio é ativado ou não. A seguir, o erro é alimentado de volta, e o neurônio ajusta os pesos e biais para produzir uma saída nova. Este processo é conhecido como o processo de treinamento de um neurônio ou rede neuronal. ### Aprendizado Perceptron O aprendizado de Perceptron é uma das processos de aprendizado básicos que funciona da seguinte forma: 1. Para cada entrada (X1, X2, X3, . . . , Xn), um peso (W1, W2, W3, . . . , Wn) é atribuído. 2. Também é adicionado um biais (b). 3. A soma do produto ponderado dos pesos dos entrados (Σwi*xi) mais o biais é passada por uma função de ativação. 4. A saída é então comparada com o valor real ou esperado, e se houver um erro, ele é alimentado de volta, e os pesos e biais são atualizados de acordo para reduzir o erro. ## Contexto Histórico Em 1943, cientistas Warren McCulloch e Walter Pitts implementaram funções lógicas como AND, OR e NOR usando neurônios. Este foi um grande avanço, uma vez que foram capazes de implementar portas lógicas comuns usando uma neurônio perceptron de uma camada. No entanto, eles descobriram que a porta XOR não poderia ser implementada com um perceptron de uma camada, mas ela pode ser implementada com uma rede neuronal de camada multipla (MLP). Isso é uma visão rápida de o que vamos abordar neste tutorial. Avancemos mais profundamente no aprendizado profundo! ᐧ # Cálculo Numérico e Porta lógica XOR (XR) de Implementação ## Porta lógica XOR como Implementação Especial do Perceptron Nesta seção, aprenderá sobre a porta lógica XOR (XR), que é uma implementação especial do perceptron. Esta porta é exclusiva, porque apenas pontua 1 quando um dos entradores é 1, e o outro é 0. Primeiro, ordenemos o output para ser alimentado do output 05. Provede uma amostra neste ponto para vermos que esta é uma cálculo numérica. Neste caso, os pesos para X1 são 20 e -20, e para X2, também são 20 e -20. Estes entradores são alimentados em H3 e H4. - H3's input é 0111 - H4's input é 1011 Se agora olharmos para o output final, onde a amostra está tomada como 1, você vai ver que: 1. Na primeira das duas cópias, o output é 0 2. Nas últimas duas cópias, o output é 1 Este demonstra que a porta lógica XR funciona como planejado, pois apenas um dos entradores deve ser 1 para obter um output de 1, o que é atendido nesta condição. ## Visão Geral da Rede Neural Agora que temos uma ótima visão sobre o perceptron, faremos uma análise sobre o que é uma rede neural. Uma rede neural é uma rede de neurônios, e há diferentes tipos de redes neurais, incluindo: 1. Rede Neural Artificial (ANN) 2. Rede Neural Convolucional (CNN) 3. Rede Recursiva Neural (RNN) ou Rede Neural Recurrente (RNN) 4. Rede Neural Profunda (DNN) 5. Rede de Crenças Profunda (DBN) Cada tipo possui caracteristicas únicas e é particularmente bom para solucionar determinados tipos de problemas. Por exemplo, CNNs excelem em processamento e reconhecimento de imagem. ## Aplicações da Aprendizagem Profunda A aprendizagem profunda está actualmente sendo utilizada extensivamente em vários campos: 1. Jogos: AlphaGo, desenvolvido por DeepMind, derrotou o campeão mundial humano no jogo de Go. 2. Composição AI: As Redes de Redes Adversárias (GANs) podem ser utilizadas para gerar música, imagens e texto. 3. Veículos Automáticos: A aprendizagem profunda é um componente chave de carros autónomos, ajuda-os a reconhecer objetos, linhas de marcha e sinais. 4. Robôs: Alguns robôs humanos, como Sophia, incorporam a tecnologia de aprendizagem profunda. 5. Diagnóstico Médico e Cuidado de Saúde: A aprendizagem profunda é utilizada em áreas como o diagnóstico de câncer, onde a detecção precoce pode levar à therapy, com sucesso. --- ## Função de Ativação de uma Rede Neural Em uma rede neural, cada neurônio possui uma função de ativação, que decide se o neurônio deve ser disparado ou não. As funções de ativação comuns incluem a unidade de função linear rectificada (ReLU) e a função de sigma. A função de ativação recebe a soma ponderada, que é a entrada, e fornece um output de 0 ou 1. Há diferentes tipos de funções de ativação, coberte nas anteriores vídeos. ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑✓healing issues. ## Redes neurales recurrentes (RNN) Há várias outras redes neurais que usam blocos de tempo que podem ser utilizados para resolver problemas com sequências. Estas incluem as redes neurais recurrentes (RNN). As redes neurais recurrentes repetidamente passam a sua activação para través do tempo, permitindo-lhe ser útil em assuntos que exigem memoria. Forumias anônimos (LSTMs) é um exemplo de modelo de rede neuronal recurrente. --- ## Extra IR de RNNs As redes neurais recurrentes podem aprender apenas um pequeno conjunto de dados, compondo-o até selets de aprendizagem sequencial que podem ser aplicados a outros problemas. Por exemplo, podemos apenas treiná-lo aprender a identificar animais que se moviam de forma "peculiar" ou se apresentavam em contextos indesejáveis ​​. O objetivo é opte-lo para transmissões em ritmos ou atmósferas que nos delamam como animosos de uma maneira diferente. Estas séries podem se tornar uma base para a predicção de eventos futuros como presbackes de violência, tendências em canções populares, ou até chegando a detectar sentimentos nas próprias conexões para resultados ainda mais bem sucedidos. --- ## Forma Inteira de extração na rede TS from TC É também importante mencionar que há uma forma fraque ou IR parcial, que se refere ao uso do TC para detectar sequências específicas, mas não extrai inteiramente o conhecimento que podem ser usados para predições e classificações mais complexas ou para gerar conhecimento tardio. Ou seja, não apenas pode ser utilizado como uma solução de palavra única para a análise do sentimento, mas também como uma base para aprender novas regras ou estruturas sobre as qual conferir sentimentos mais aprofundados. # Função de Custo e Propagação atrás A função de custo, neste caso, é definida como a diferença entre a saída prevista e a saída real, que é conhecida como o erro. A função de custo pode ser definida de várias maneiras, mas neste caso, é a média das quadradas do erro. Este valor é frequentemente referido como a Somatória dos Quadrados de Erro (SSE) ou Erro Quadratico Médio (MSE). Este valor é então utilizado como feedBack no processo conhecido como backpropagação ou propagação na direção inversa, que ajuda a rede a ajustar seus pesos e suas constantes. ## Ótimo de Descida de Gradiente Uma técnica de otimização utilizada aqui é chamada Ótimo de Descida de Gradiente. O objetivo deste algoritmo é minimizar o erro (i. e. , a função de custo). Existem complexidades matemáticas envolvidas neste processo, como localizar os mínimos locais e globais utilizando a diferenciação e outros. No entanto, a ideia básica é reduzir o erro, especialmente em certos níveis onde ele é muito alto, ajustando os pesos e a constante da maneira que a função de custo é minimizada. ### Processo de Treino No processo de treino, a técnica de otimização chamada Ótimo de Descida de Gradiente é utilizada para reduzir a função de custo. A taxa de aprendizado, valor óptimo que especifica quanto ajustar os pesos, desempenha um papel crucial neste processo. Um alta taxa de aprendizado pode impedir o óptimo de convergir, enquanto uma baixa taxa de aprendizado pode demorar um tempo longo para convergir. ## Algoritmo de Descida de Gradiente No algoritmo de descendida de gradiente, a função de custo é minimizeada utilizando o algoritmo de descendida de gradiente. Este algoritmo requere valores iniciais aleatórios para os parâmetros (pesos, neste caso). A custo inicial será alto, e os pesos irão continuar a mudar da maneira que a função de custo precisa diminuir. Em algum momento, ela pode atingir o valor mínimo, mas ele poderá subir novamente. O algoritmo de descendida de gradiente depois decide um ponto apropriado para parar, conhecido como o mínimo global, e tenta conter-se neste ponto. ### Múltiplos Mínimos Locais É importante notar que as curvas que representam a função de custo não sempre serão acertadas. Poderiam apresentar vários mínimos locais, pontos altos e comportamento errático. O objetivo da otimização do gradiente é identificar o mínimo global e encontrar os pesos e a constante nesse ponto. ## Aprendizagem Profunda com TensorFlow O TensorFlow é uma das plataformas mais comuns e idiomas para a implementação de aprendizagem profunda, particularmente com redes neurais. É uma plataforma aberta-fonte desenvolvida pela Google. Este tutorial irá te guiar através de uma demonstração rápida de escrever código TensorFlow utilizando Python, uma biblioteca para desenvolver aplicações de aprendizagem profunda, especialmente com redes neurais. ### Tensores No TensorFlow, os dados são gerenciados ou manipulados em forma de tensores, que são matrizes multi-dimensionais. Os tensores possuem escalas, que indicam sua dimensionalidade. Por exemplo, um escalar (um número único) tem uma escala de zero, um array umidimensional (um conjunto de números) tem uma escala de um, e um array bidimensional (uma matriz) tem uma escala de dois, e assim por diante. ### Propriedades de TensorFlow O TensorFlow é uma das plataformas de aprendizagem profunda mais populares. É aberto-fonte, desenvolvido pela Google, e suporta tanto CPUs como GPUs. GPUs são particularmente bem-vindos para aprendizagem profunda devido a sua capacidade de realizar computações iterativas extremamente rápidas. ## Reconhecimento de Números Escritos à Mão com TensorFlow No presente tutorial, tomemos o caso de reconhecimento de números escritos à mão utilizando o TensorFlow. Usaremos como alimentação os dados de treino, juntamente com as informações do rótulo, na rede neuronal. As imagens são apresentadas como informações de pixels, e para o treino, iremos planar estes pixels em uma única linha e utilizar uma camada softmax no camado de saída, que pode identificar o número quando treinado de forma apropriada. Este tutorial utilizará a base de dados MNIST, uma coleção de 70. 000 imagens de números escritos à mão, para fins de treino. Esta base de dados é popular para aprendizagem sobre aprendizagem profunda e o TensorFlow pois possui um conjunto de dados pretreatado, bem formato, com funções utilitárias integradas que podem ser chamadas diretamente sem que sejam escritas funções customizadas. Titulo: Introdução à Rede Neural Convolucional utilizando o Banco de Dados MNIST ========================================================================= Conteúdo: Este documento detalha o passo a passo para utilizar uma rede neural convolucional (RNC) com o banco de dados MNIST para classificar dígitos escritos à mão. Baixe e carregue o TensorFlow para poder implementar o código. Primeiramente, vamos importar as bibliotecas necessárias: ```python import tensorflow as tf from tensorflow. examples. tutorials. mnist import input_data ``` Em seguida, carregue o banco de dados MNIST: ```python mnist = input_data. read_data_sets("/tmp/data/", one_hot=True) ``` Repare que a linha acima carrega o banco de dados com o formato de encodage "one hot" (True). Desse modo, as etiquetas serão mantidas em um formato mais claro e legível. ### Visualizando as Imagens Veja como carregar e visualizar um determinado conjunto de dados de treino: ```python import matplotlib. pyplot as plt img = mnist. train_images[0]. reshape(28, 28) plt. imshow(img, cmap='gray') plt. show() ``` ### Criando a Rede Neural Convolucional Em questão, vamos criar as camadas essenciais de uma RNC para classificar os dígitos escritos à mão. Primeiro, crie as variáveis de pesos e biases: ```python x = tf. placeholder(tf. float32, shape=[None, 784]) y = tf. placeholder(tf. float32, shape=[None, 10]) W1 = tf. Variable(tf. random_normal([784, 128])) b1 = tf. Variable(tf. zeros([128])) W2 = tf. Variable(tf. random_normal([128, 84])) b2 = tf. Variable(tf. zeros([84])) W3 = tf. Variable(tf. random_normal([84, 10])) b3 = tf. Variable(tf. zeros([10])) ``` Agora, defina as funções de ativação e a função de perda: ```python def relu(x): return tf. maximum(x, 0) def softmax(x): exp_x = tf. exp(x - tf. reduce_max(x)) return exp_x / tf. reduce_sum(exp_x, axis=1) loss = -tf. reduce_mean(y * tf. log(softmax(tf. matmul(tf. matmul(x, W1) + b1, W2) + b2) + b3)) ``` Separamos agora a definição das funções de otimização para minimizar a perda encontrada no conjunto de treino. Vamos utilizar a descente gradientica assumindo um valor de aprendizado constante: ```python learning_rate = 0. 001 train_step = tf. train. GradientDescentOptimizer(learning_rate). minimize(loss) ``` Aonte, crie as funções para prever as probabilidades de pertencer a cada uma das classes de dígitos: ```python pred = softmax(tf. matmul(tf. matmul(x, W1) + b1, W2) + b2) ``` ### Treino da RNC Inicialize as variáveis utilizando as funções de sessão: ```python sess = tf. Session() sess. run(tf. global_variables_initializer()) ``` Treine a RNC com o conjunto de treino especificado: ```python for i in range(50000): # Tutorial de Repor produzido pelo TensorFlow em Portugal ## Introdução Este tutorial lhe guiará pelo processo de construção de uma rede neural em TensorFlow para classificar dígitos de escrita à mão usando a base de dados MNIST. ## Preparação Antes de executar qualquer código TensorFlow, precisamos primeiro preparar nosso grafo. Até agora, apenas definimos as variáveis necessárias e a estrutura do grafo sem executar qualquer código TensorFlow. ### Variáveis - `W`: pesos, com 784 valores de 10 para cada neurónio, com 784 sendo os valores de entrada pixel (28x28) e 10 sendo o número de neurónios - `b`: deslocamentos, um para cada neurónio, armazenados na variável `b` ### Grafo O grafo consiste na multiplicação da matriz de entrada (`X`) pelos pesos (`W`) e na adição de deslocamentos para cada neurónio. O objetivo é minimizar o erro, que é a entropia cruzada (função de custo) usando o gradiente descendente como o otimizador. ### Definições chave - `Y`: o valor de etiqueta, outro placehoder - Entropia Cruzada: Função de custo - Otimizador: Gradiente Descendente ## Execução ### Inicialização Para inicializar as quaisquer variáveis definidas no seu código TensorFlow, precisa criar um nó para a inicialização. Isto não executa ainda qualquer código, apenas cria um nó para a inicialização. Exemplo: ```python com sessão TensorFlow Session(tf. Session) criada, podemos executar nosso grafo. O processo de treino está sobre minimizar a entropia cruzada (função de custo) pela execução da mecanismo de treino, passando as imagens pela rede neural, encontrando a saída e atualizando os pesos e os deslocamentos com base no feedback. Exemplo: ```python for _ in range(num_steps): batch_x, batch_y = mnist. treino. next_batch(100) # Run training step _ = sess. run(operador_de_treino, feed_dict={X: batch_x, Y: batch_y}) ``` ## Teste Depois que o treino estiver concluído, testamos a precisão do modelo usando o conjunto de dados de teste: Exemplo: ```python acc = sess. run(operador_de_acuracia, feed_dict={X: mnist. test. imagens, Y: mnist. test. rótulos}) print('Acurácia de teste: ', acc) ``` Este é um resumo das etapas para criar uma rede neural e treinar-o usando a API de TensorFlow. Nótese que este código não executa qualquer código TensorFlow até você inicializar e executar o grafo. Também, lembre-se que executar o código TensorFlow em projetos maiores pode ser mais complexo. ## Tutorial de API de deteção de objetos produzida pelo TensorFlow Este tutorial demonstra o uso da API de deteção de objetos do TensorFlow para deteção de objetos em vídeos. Aqui está uma descrição das etapas envolvidas no tutorial: 1. Importar as bibliotecas necessárias 2. Importar e carregar o modelo de rede neural existente (SSD com MobileNet) 3. Realizar alguns passos adicionais, como mapeamento dos números para texto 4. Usar o modelo carregado para realizar deteção de objetos em vídeos Para mais informações sobre a API de deteção de objetos do TensorFlow, visite a página oficial do [site do TensorFlow](https://www.tensorflow.org/lite/tutorials/object_detector). # Detecção de Objetos em Vídeos Usando Redes Neurais Convolutivas (CNN) ## Visão geral Este tutórial mostra a utilização de Redes Neurais Convolutivas (CNN) para a detecção de objetos em vídeos. A focus é no detecção de veículos em um vídeo de trânsito e nos animais de outro vídeo. ### Pré-requisitos - Basic understanding of Python - Conhecimentos básicos com Notebook Jupyter - Biblioteca TensorFlow instalada ## loadedata. py Este código utiliza-se como ajuda para carregar dados ou imagens e transformar-nos numas matrizes NumPy. Também é utilizado para a detecção de objetos em imagens, sendo reutilizado nestes para detectar objetos nos quadros de um vídeo. ## Detecção em Vídeos ### Preparação dos Dados O video que voumos utilizar é [traffic. mp4](traffic. mp4). Você pode utilizar um ficheiro . mp4 de sua preferência, porém, na ocasião escolhimos um video que contem carros. ### Carregando e Processamento do Vídeo Agora vamos carregar o vídeo, converte-lo nos quadros, e detectar objetos num cada quadro. ```python # Carregar e processar vídeo video_path = 'object_detection/traffic. mp4' video_writer_path = 'object_detection/traffic_annotated. mp4' detect_objects(video_path, video_writer_path) ``` ### Detectando Objetos Os objetos que a nuestra rede irá detectar serão etiquetados à medida que forem encontrados no vídeo. ### Resultados Após a execução deste código, vai devem ver um vídeo anotado chamado `traffic_annotated. mp4`. Abra-o para ver os detetados automóveis. ### Detecção de vídeo Cat Para detectar objetos num outro vídeo, basta trocar o path de vídeo no código a seguir. ```python # Carregar outro vídeo e processa-lo video_path = 'object_detection/cat. mp4' video_writer_path = 'object_detection/cat_annotated. mp4' detect_objects(video_path, video_writer_path) ``` Abra o anotado `cat_annotated. mp4` para ver os detetados objetos (neste caso, felinos). ## Conhecimento sobre a Rede Neuronal Convolutiva (CNN) A Rede Neuronal Convolutiva (CNN) é um tipo de redes neuronais feedforward usadas na análise de imagens visuais. Elas são fundamentais na reconhecimento automático das imagens devido à facilidade que este lhe permete aprendendo hierarquias de características espaciais automáticos da imagem de entrada. [ Aprenda mais sobre Rede Neuronal Convolutiva (CNN)](https://www.tensorFlow.org/api_docs/python/tf/keras/applications) ## Fontes - [LeNet, Y. L. (1988). A Computational Learning System for On-Line Hand-Printed Zip Code Recognition. IEEE Transactions on Neural Networks, 1(4), 217–233](https://ieeexplore.ieee.org/document/178958) ## Conclusão Este tutórial mostra como utilizar Redes Neurais Convolutivas (CNN) para detecção de objetos num vídeos. Espero que lhe tenham dado mais entendido em CNN e aplicções delas. Se tiver qualquer questionamento, deseje levar-no abaixo, estaremos volte-la # Redes Neurais Convolucionais (CNN) e Operações de Convolução As operações de convolução formam a base de qualquer Rede Neural Convolucional (CNN) em uma CNN. Toda imagem é representada na forma de arrays de valores de píxeis. Neste caso, estamos trabalhando com uma imagem real do número 8, que depois é representada na forma de uma matriz de duas dimensões de píxeis. O número 8 é transformado no seu representacional em forma de píxeis, onde zeros representam o fundo branco e umes representam o parte negra do 8. Para compreender como funciona a Rede Neural Convolucional (CNN) ou a operação de convolução, vamos tomarmos uma pausa para olhar a matriz. Neste caso, simplificaremos deixando para duas matrizes A e B de uma dimensão. Lembre-se da natureza matricial deste, e em breve reuniremos todos os pedaços para que as operações para a operação de convolução caibam ao lugar. Tivemos dois arrays estabelecidos aqui: ``` Nosso array A é uma Matriz unidimensional com valores A: 5 3 7 5 9 7 E b: 1 2 3 ``` Na convolução, o computador se inicia aplicando produto escalar (a \* B) entre essas duas. Multiplicar as arrays a partir do elemento zero fornece a seguinte apresentação de valores 5 6 6 9 12 18. Aqui o segundo array está encurtado e utilizado apenas na multiplicação pelo primeiro três elementos do primeiro array. Agora está assim 5 3 7. Mais ou menos confundir, porém lembre-se de que o computador consegue repetir estes procedimentos milhares de vezes, então não esqueçemos da outra metade mais tarde, traremos estas últimas áreas novamente em tempo depois e tão somente com a soma do produto, no que neste caso é 5 + 3 + 7 = 15. De modo que o primeiro número na Matrix produto entre A e B é 15. Agora, temos 15 e movemos para uma celula a sua esquerda, e pegamos 15 e multiplicamos pela coluna do A para chegar em 15. Avançamos outra célula para a multiplicação dando-nos então 15 * 2 = 30, e de maneira simples o próximo procedimento nos é repetir inúmeras vezes pelo mesmo número do A de até que os mesmos números pareçam sobrepostos (ou o primeiro termo do Array do A tem entrado novamente no nós da operação). O conhecido passo de agregar todo o array reduz o numero de pixels das imagens por meio desta transformação. No passo final vamos depois avançar a essa operação para extrair as imagens. ## Imagens na Rede Neural Convolucional CNN Todavia nos mantemos nessas imagens, agora falando-se das mais básicas imagens 2-D, como a simbolo `\`. Quando digitamos esta letra backslash, é esta imagem processada. O símbolo de barra inversa (/) mostra um quadro similar ao contrário. Aprecitamos nessa imagem: Estamos utilizando uma fórmula bastante mais complexa em nossa outra imagem, o famoso caricatura da Face Sorrisinha: ``` 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 ``` (lembre-se de que esta Face Sorrisinha tem sido formatada por espaços para o lerem. ) Estamos representando uma fórmula ainda mais simples # Análise de Imagem com Redes Neurais Convolucionais (CNN) ## Visão geral Neste tutorial, exploraremos o uso de Redes Neurais Convolucionais (CNN) para análise de imagens. Entrairemos no estrutura de uma CNN, seus componentes, e como ela funciona para classificar imagens. ### Pre-processamento de imagens Antes de processar os dados de imagem, caremos as bibliotecas necessárias: ```python import matplotlib. pyplot as plt import numpy as np ``` Agora, carreguemos nossos dados de treino e moldeá-los para a CNN. Neste caso, estamos a usar o conjunto de dados CIFAR-10 da Canadian Institute for Advanced Research para classificação de imagens em 10 categorias: ```python # Carreguemos o nosso batch de dados data_batch_1 = . . . # Carreguemos os dados aqui # Moldeámos os dados X = data_batch_1 # Represente todos os dados no X data_shape = X. shape # Obtenha a informação original do formato channels = data_shape[-1] # Extrai o número de canais (usualmente 3 para imagens em cor) height = data_shape[-2] # Extrai a altura da informação do formato width = data_shape[-3] # Extrai a largura da informação do formato # Moldeámos os dados X = X. reshape((data_batch_1. shape[0], channels, height, width)) # Transponhamos os canais de cor para o último lugar X = X. transpose(0, 3, 1, 2) ``` ### Exibição da imagem Com os dados moldeados, podemos agora exibir a imagem usando a biblioteca `matplotlib`: ```python # Exiba a primeira imagem do batch img = X[0] plt. imshow(img) plt. show() ``` ### Estrutura da Rede Neurál Convolucional Uma rede neuronal convolucional típica consiste em várias camadas: 1. **Camada convolucional**: Esta camada é responsável por realizar uma operação de convolução, que ocorre a aplicar filtros à imagem de entrada. A saída é um conjunto de maps de características, onde cada filtro extrai características específicas na imagem. 2. **Função de ativação (ReLU)**: Depois de cada camada convolucional, aplicamos uma função de ativação, comumente a Unidade Linear Rectificada (ReLU), para introduzir uma não-linearidade e melhorar a capacidade da rede aprender características complexas. 3. **Camada de agrupamento**: A finalidade da camada de agrupamento é reduzir as dimensões espacias dos maps de características agrupando-os. Isso é feito para controlar o número de parâmetros na rede e prevenir o overfitting. 4. **Camada Camada totalmente conectada**: A camada totalmente conectada realiza uma tarefa de classificação, tomando os maps de características agrupados da camada anterior e produzindo a classificação prevista. Nas secções seguintes, vamos passar pela criação da nossa CNN e experimentar com o conjunto de dados CIFAR-10. ### Moldeamentos dos maps de características Depois de termos os maps agrupados, queremos moldeá-los para criar um vetor linear único para a entrada da camada totalmente conectada: ```python # Moldeámos os maps agrupados flattened_feature_maps = . . . # Moldearemos os maps agrupados aqui ``` ### Propagação para frente e classificação Afinal, podemos tirar o vetor moldeado de características e passá-lo por uma camada totalmente conectada para classificação: ```python # Definição da camada totalmente conectada # (Isso depende da nossa arquitetura da rede e escolha de algoritmo de otimização) # Use o vetor moldeado de características como entrada para a camada totalmente conectada predicted_class = fully_connected_layer(flattened_feature_maps) # Compare a classificação prevista com a classificação real accuracy = comparison_of_predicted_and_true_classes(predicted_class, true_labels) print("Precisão: ", accuracy) ``` ### Colocando tudo juntos Agora que entendemos melhor a estrutura da CNN e os seus componentes, podemos mover-nos para a implementação da CNN e os experimentos com o conjunto de dados CIFAR-10. ```python # Implementamos a CNN e experimentamos com o conjunto de dados CIFAR-10 def experiment_with_CNN_and_CIFAR10(): # Carreguemos o conjunto de dados CIFAR-10 (train_X, train_y), (test_X, test_y) = load_CIFAR10_dataset() # Treine e teste a CNN accuracy = train_and_test_CNN(train_X, train_y, test_X, test_y) print("Precisão no dataset de teste: ", accuracy) # Executamos a experimentação experiment_with_CIFAR10_and_CNN() ``` # Uso de Markdown para Documentação Técnica ## Leitura e Reformatação de Imagens Comecemos analisando as imagens que possuímos. vamos aprender a reshapear delas usando a biblioteca de plot Library. Depois, criaremos funções auxiliares, nomeadamente uma função de uma-hot e uma classe de CFR (Classificador de Rotas Ferroviárias). ### Análise de Imagens Esta seção aborda a análise e reformatação de imagens com a ajuda da biblioteca de plot Library. 1. Talvez começemos por. . . 2. . . . vejamos o que elas parecem. . . 3. . . . esperemos que seja mais facil de ver. . . 4. Corra aqui, não insira. . . 5. Vamos acionar o corrida nessa. . . 6. . . . e podemos ver. . . 7. . . . isso provavelmente é um TPV. . . 8. > Isso é uma boa ideia! 9. . . . e eu posso apenas voltar para cima aqui em vez de repetir a mesma linha várias vezes. . . 10. . . . voy a ver três. . . 11. . . . parece que é um camião de junca. . . 12. . . . descarregando. . . 13. . . . e assim por diante. . . 14. Podes fazer qualquer uma das 10. 000 imagens a nossa disposição. . . 15. . . . simples salte 55. . . 16. . . . parece que é algum tipo de animal. . . 17. > Provavelmente um cão. . . 18. . . . somente por diversão, let's do. . . 19. . . . faça apenas um mais. . . 20. . . . assim pode ves we passado pelas diferentes imagens. . . 21. . . . e as ves tem uma forma muito fácil de visualizá-las. . . 22. . . . elas foram reformatadas para encolher para nossas visões. . . 23. . . . e o formato que a biblioteca de plot Library usa. . . 24. Portanto, o próximo passo é. . . 25. . . . começar a criar algumas funções auxiliares. . . 26. . . . começaremos pela função de uma-hot. . . ### Função de uma-hot A função de uma-hot é uma técnica de preprocessamento de dados usada para dados binários e categóricos. Esta seção explica como implementar uma função de uma-hot que lidere com nossos rótulos categóricos. 1. . . . vamos começar por criar nossa função de uma-hot. . . 2. Criaremos nossa própria aqui. . . 3. . . . e ela irá retornar uma `Vector`. . . 4. `Vector` está entrando. . . 5. . . . e nossos valores serão iguais a 10. . . 6. . . . o que isso significa que temos 10 valores. . . 7. . . . os 10 possíveis rótulos. . . 8. Lembra-se que os seus rótulos eles não só podem ser palavras. . . 9. . . . têm que ser substituídos. . . 10. . . . usamos a função de uma-hot para isso. . . 11. . . . então criaremos uma `CFR helper`. . . ### CFR Helper O assistente CFR é uma classe que inicializa conjuntos de treino, prepara imagens e mais coisas ágil! 1. . . . então vamos criar nossa classe `CFR Helper`. . . 2. Iniciaremos com ela. . . 3. . . . agora tem muito acontecendo aqui. . . 4. . . . comecemos com o que vamos chamar de "inicialização". . . 5. . . . abaixo, queremos inicializar nossos conjuntos de treino. . . 6. . . . então irá criar um array de todas as diferentes imagens. . . 7. Ocorremos a test batch pura e simplesmente se você quiser. . . 8. . . . então temos `self. test_batch`. . . 9. Inicializamos conjuntos de imagens de treino e rótulo de treino. . . 10. . . . e também conjuntos de imagens de teste e rótulo de teste. . . 11. . . . não é outra coisa além de iniciar essas variáveis. . . 12. Criamos outra definição aqui e isso vai configurar nossas imagens. . . 13. Vamos apenas olhar e ver como isso se encaixa. . . 14. Isto poderia ter sido parte da "inicialização". . . 15. …dividir em partes novamente é mais fácil de ler. . . 16. . . . e, abrindo-o facilmente quando executa peças diferentes. . . 17. Então, agora temos um `print` statement para dizer "Olá, estamos agora executando isso" e isso é o que está acontecendo aqui. . . 18. . . . estamos configurando estas `self. training_images` neste momento. . . 19. . . . isso vai para um `numpy array` via `vstack`. . . 20. . . . é lá que carregamos os dados. . . 21. Porque não são mais ficheiros, os trouxe. . . 22. `data_batch_1`, `data_batch_2`, `data_batch_3`, `data_batch_4`, `data_batch_5` apontam para os dados reais. . . 23. Nossas `self. training_images` vão todos serem recolhidos em um `numpy array`. . . 24. Então, sempre é legal obter o comprimento do conjunto de treino. . . 25. . . . isso é apenas um total de níveis de `self. training_images`. . . 26. Então, tomamos os `self. training_images`. . . 27. Mudei o marcador de cor. . . 28. . . . descendo o marcador para que possamos ver melhor. . . 29. Então, neste momento, isto deve ser familiar If you remember correctly. . . 30. . . . quando quisemos olhar isso acima, e quisemos olhar como as imagens vão aparecer na biblioteca de plot, podemos recolher. . . 31. . . . estamos fazendo a mesma coisa aqui, recolheamos nossos `self. training_images`. . . 32. . . . e com base no comprimento de treino, total de imagens porque recolhemos tudo juntos. . . 33. Então, agora é apenas uma grande file de imagens. . . 34. . . . recolhemos-os e vamos olhar como três camêras de vídeo. . . 35. . . . cada uma exibindo 32x32. . . 36. . . . recolhemos este juntos. . . 37. . . . então cada uma de nossas imagens permanece no mesmo lugar. . . 38. . . . e então temos nossos 32x32. . . 39. Então, Pelas 3 nossos últimos valores para a cor. . . 40. . . . e, por último, dividimos por 255. . . 41. . . . isto foi mais cedo. . . 42. . . . ele só traz todos os dados de 0 a 1. . . 43. . . . este é o que está a verificar 44. . . . então estamos a converter este em um array de 0 a 1. . . 45. Agora, tomamos os `self. training_labels`. . . 46. Push them through our one-hot encoder. . . 47. Estamos a encolher isto juntos. . . 48. Agora vamos criar nossas imagens de teste e rótulos. . . 49. Isso é o mesmo que foi feito com o resto. . . 50. . . . esta alteramos novamente com cores. . . 51. estamos a recolher diferentes imagens. . . 52. Sabemos quantas imagens estão ai. . . 53. Você pode simplesmente juntar as mãos. . . 54. . . . mas é adequado dar o caminho a computador. . . 55. . . . espera caso alguma coisa se altere do outro fim. . . 56. . . . e você estaria usando outros dados. . . 57. . . . onde estamos recolhendo e transpondo-as. . . 58. . . . igual isto que fizemos sobre a nossa conjunto de treino. . . 59. . . . agora nossas test images estão no mesmo formato. . . 60. Agora, temos uma definição. . . 61. . . . que estância todas as nossas imagens ali. . . 62. O próximo passo é fazer com que os campos sejam batidos. . . 63. Porque isto é muito importante entender. . . 64. Isto é uma pesadilla frequentemente quando estou a working with TensorFlow. . . 65. . . . temos nossos dados vindo. . . 66. . . . se você lembra, tinhamos cerca de 10. 000 fotos. . . 67. Não queremos rodar todos 10. 000 de uma só vez. . . 68. Então queremos separar isso em tamanhos de lote. . . 69. . . . se lembra que tinhemos o comprimento de fotos. . . 70. . . . no caso, temos `len(test)` ou qualquer outro valor. . . 71. . . . Quando estamos a olhando ao lote. . . 72. . . . temos `X`. . . 73. . . . está sendo o conteúdo das fotos. . . 74. `Y` também é o nosso rótulo. . . 75. E nós queremos descobrir a maneira mais correta de montar isso. . . 76. Grade `X[batch: batch_size]`. . . 77. Porque queremos passar por mensagens de treino. . . 78. Estamos a criar `X`. . . 79. Mudamos o encontro. . . 80. Vou mostrar apenas as primeiras linhas do formulário que ja criamos. . . 81. Agora, podemos ver que vamos visualizar apenas as primeiras 100 fotos. . . 82. Se lembre, definimos `self. batch` para zero. . . 83. Então, o que estamos a fazer aqui era que a `X` está a olhar para o zero a `batch_size`. . . 84. Estamos recolhendo-as para uma forma que se encaixa bem `X[batch: batch_size]`. . . 85. isto é importante por um jeito, pois isso informa ao dataset como veremos isto em 100x32x32x3. . . 86. Isto faz tudo direito como implementações de dados no lugar certo e a sua forma corretamente. . . 87. Agora, queremos descobrir a maneira mais correta de montar isso. . . Estamos a falar para a `Y`. . . 88. Estamos a olhar para o zero e até `batch_size` no caso. . . 89. Porque o `self. batch` vai mudar. . . 90. Finalmente, incriminimos o `self. batch` cuz we have zero. . . 91. Assim, vemos o próximo lote. . . 92. Agora temos `X` e `Y`. . . 93. `X` representando os dados das fotos. . . 94. `Y` representandao o rótulo. . . 95. E, claro, o rótulo gravado via uma-hot encoder. . . 96. Se você lembra corretamente. . . 97. . . . se fosse dizer cavalo, seria zero. . . 98. Seria `um` para a posição zero, ya que isso é o cavalos. . . 99. E foi tudo de 0 para aqui. . . 100. E aí, temos nossa `array`. . . 101. Talvez seja difícil de ver nossa `array`. . . 102. Então vamos obter isso e concluir o carregamento. . . 103. Com esta classe, agora estamos armados com toda a estrutura de imagens acima. . . 104. Agora, vamos carregá-la. . . 105. Então vamos criar uma variável `ch` com a `CFR helper` por nós. . . 106. E então estamos a chamar `ch. setup_images`. . . 107. Então podemos definir aqui apenas os `setup_images` ao lado da `init`. . . 108. Mas, por dividir esta em duas partes, temos uma leitura melhorável. . . 109. . . . e também, se você estiver fazendo outra coisa, há algumas razões para isso. . . 110. . . . tendo a respeito do `setup`, estamos a executar isso agora. . . 111. Pôde-se ver onde está escrito. . . 112. . . . "Configurando imagens de treino e rotulos. . . " 113. . . . "Configurando imagens de teste. . . " 114. O motivo da separação por nós é isso: 115. . . . se testar isso, você pode ter print statements para ajudar a ver o que está ocorrendo. . . 116. . . . isto é muito útil. . . 117. Sempre gostei da forma como foi dividida em trás. . . 118. umas pequenas nota importantes. . . 119. . . . lembrar de gerar a próxima carga. . . 120. . . . hora cria-se um `batch = CH. next_batch(batch_size)`. . . 121. . . . estamos a usar aqui apenas no código. . . 122. . . . agora estamos prontos para criar nossa rede neuronal. . . 123. Isto é uma rede neuronal artificial simples. . . 124. Criaremos nossa rede com três camadas de input. . . 125. 2 camadas de hidratação. . . 126. usamos a função relu. . . 127. This model is too simple, give some time to tweak it and make it better (Optional) ```markdown # Projeto de Machine Learning - TensorFlow ## Configurando o Ambiente Neste projeto, vamos trabalhar diretamente com TensorFlow para criar uma rede neural para classificação de imagens. Aqui está uma visão geral dos passos que vamos tomar: 1. **Inicialização de placeholders para dados** - `X`: Um placeholder para o conjunto de dados de entrada com forma `None`, `32`, `32`, `3` (32x32 imagens RGB) - `y_true`: Um placeholder para as etiquetas verdadeiras, com forma `None`, `10` (10 etiquetas diferentes) - `hold_prob`: Um placeholder para a probabilidade de dropout 2. **Criação de funções auxiliares** - Inicialização de pesos e offsets - Definição de camadas 2D de Convolução, Max Pooling e camadas Densas (completamente conectadas) 3. **Definição da estrutura do modelo** - Criação de várias camadas Convolucionais - Aplanamento da saída da última camada Convolucional - Definição de uma camada Densa para a saída final 4. **Treinamento do modelo** - Definição e aplicação da camada Dropout - Definição da função de perda, otimizador e métricas de avaliação - Treinamento do modelo nos dados de treinamento Aqui está a versão corrigida e formatada da texto original com formatação Markdown correta: ```markdown cuz at this point we’re just holding the place for where we'll be setting up as we run the batches. That’s what the first value is e então `32x32x3` é o que nós redimensionamos nosso dado para caber nele. Em seguida, temos `y_true = tf. placeholder(tf. float32, shape=(None, 10, 10))`, que representa as 10 etiquetas diferentes. Agora, vamos criar mais um placeholder, que chamaremos de `hold_prob` (hold probability). Utilizaremos isso para dropout, pois ajudará a diminuir o sesgo. ```python hold_prob = tf. placeholder(tf. float32) ``` Agora, vamos definir uma função auxiliar para criar uma camada de convolução 2D. ```python def conv2D(input, W, b, strides=1): return tf. nn. conv2d(input, W, strides=strides, padding='SAME') + b ``` Em seguida, criamos tanto camadas de convolução como camadas de pooling, e uma camada densa. ```python def max_pool(input, k=2): return tf. nn. max_pool(input, ksize=[1, k, k, 1], strides=[1, k, k, 1], padding='SAME') def dense(inputs, n_outputs, reshape=False): shapes = tf. shape(inputs) inputs_reshaped = tf. reshape(inputs, (-1, shapes[-1])) W = tf. Variable(tf. truncated_normal(shape=[inputs_reshaped. get_shape()[0], n_outputs])) b = tf. Variable(tf. zeros(shape=[n_outputs])) return tf. matmul(inputs_reshaped, W) + b. reshape((n_outputs, )) if reshape else tf. matmul(inputs_reshaped, W) + b ``` Agora que temos nossas funções auxiliares, vamos definir as camadas para nosso modelo de rede neural. ```python # Camada Convolucional 1 W_conv1 = . . . (Inicializar pesos) b_conv1 = . . . (Inicializar bias) # # Tutorial de Rede Neural Recurrente (RNN) Neste tutorial, vamos aprender a criar e treinar um modelo de rede neural recurrente (RNN) no TensorFlow. Antes de começarmos, certifique-se de ter instalado o TensorFlow e configurado as suas variáveis de ambiente. ## Introdução ### Visão geral da RNN Uma rede neural recurrente é um tipo especial de rede neural em que há um loop ou uma conexão entre as entradas e saídas. Isso conduz à análise da sequência temporal de dados, possibilitando que o modelo aprenda e prediga padrões complexos e temporais em dados sequenciais. ### Características do Modelo - Função de Perda Cross Entropy: A função de perda cross entropy será utilizada para medir a discrepância entre as pré-previsões e o valor verdadeiro. - Batches: Os dados serão divididos em lotes de 500 pontos cada para melhorar o desempenho. - Inicialização de Variáveis Globais: Todas as variáveis globais do TensorFlow serão inicializadas antes do treinamento do modelo. ## Configuração dos Dados Antes de tomar as próximas etapas, vamos criar as funções e variáveis relacionadas aos dados. ### Lê e processa os dados ```python def load_data(filename): # Carregue os dados e os processe aqui ``` ### Reshape os dados ```python def reshape_data(filename): # Reshape os dados aqui ``` ## Criação do Modelo Agora que já conseguimos integrarmos os dados, vamos criar o modelo e o treiná-lo. ### Define a Função de Perda ```python def loss_function(true_labels, prediction_labels): # Defina a função de perda cross entropy aqui ``` ### Define a Função de Ótimização ```python def optimizer_function(learning_rate): # Crie o otimizador usando um Otimizador ADAM ``` ### Treina o modelo ```python def train_model(batches): # Inicializar as variáveis globais do TensorFlow # Treina o modelo usando a função de treinamento definida ``` ### Executive Função ```python def execute(): # Carregue, reshape e inicialize os dados # Treine o modelo ``` Estes são os passos principais para criar e treinar um modelo de RNN no TensorFlow. # Recurrent Neural Networks (RNNs) (Português de Portugal) Esta seção discute sobre redes neurais recursivas (RNNs), uma tipologia essencial de rede neural artificial usada para processar dados seqüenciais. ## Feed Forward Neural Networks vs. RNNs Uma das principais diferenças entre redes neurais de propagação direta (Feed-forward Neural Networks) e RNNs está relacionada com sua capacidade de lidar com o fluxo de informação no tempo. ### Feed Forward Neural Network Issues - Escopo limitado da memória ou do tempo: Uma Rede neural de propagação direta não possui a capacidade de processar dados seqüenciais, pois apenas considera o input atual sem qualquer conhecimento sobre os inputs anteriores. - Falta de conhecimento sobre o passado e falta de escopo no futuro: Este pode ser problemático pois eventos ocorridos no passado podem influenciar os resultados atuais e futuros. ### Soluções para Feed Forward Neural Networks A solução para os problemas da Rede neural de propagação direta é a rede neural recurrente, que é capaz de lidar com dados seqüenciais ao "memorizar" o que se passa nas camadas ocultas. Desta forma, ela pode considerar o input atual junto com os inputs anteriores recebidos. ## Aplicações de RNNs As RNNs são frequentemente utilizadas em vários campos, como: ### Captação de Imagens As RNNs são utilizadas para captionar uma imagem analisando as atividades presentes nele. Por exemplo, ele pode identificar um "cachorro a pegar uma bola no ar. " ### Predição de Séries Temporais Todos os problemas de séries temporais, como prever os preços de ações de um mês específico, podem ser resolvidos usando RNNs. ### Processamento de Língua Natural (NLP), Mineração de Texto e Análise de Sentimentos O NLP, Mineração de Texto e Análise de Sentimentos podem ser realizados usando RNNs para compreender a ordem das palavras e analisar a sentimentos com base na sequência de palavras em uma frase. ### Tradução de Máquina A Rede neural recurrente (RNN) pode ser utilizada para traduzir um texto inicial para outro idioma de saída dado um input inicial. O processo de tradução é essencial para garantir que as palavras apareçam na ordem certa para que seja coerente. ## Como as RNNs Funcionam As RNNs funcionam salvando a saída de uma camada e retornando-a para o input, permitindo que a rede seja capaz de prever a saída da camada. ! [Diagrama de RNN](https://example.com/rnn_diagram.png) No diagrama acima: 1. X representa o input 2. Y representa a saida 3. C representa a memória ou estado oculto Podemos ver que na rede neural recurrente, nossa X entra nos principais nós, onde produz a saída Y. Esta saída Y retorna à pré-visão que está chegando, permitindo que a RNN seja capaz de lidar com dados seqüenciais considerando o input atual junto com os inputs anteriores recebidos. ### Tipos de RNNs #### RNN Vanillin (Um para Um) A RNN vanillin, ou neurônio neural de entrada única, é utilizada para problemas de aprendizagem normal. Ela possui um único input e possivelmente múltiplos Saídas. #### RNN Um para Muitos Um RNN Um para Muitos taking em uma sequência de inputs e gera uma única saída. Um exemplo disso é a análise de sentimento, onde um texto específico pode ser classificado como expressando sentimentos positivos ou negativos. #### RNN Muitos para Muitos Um RNN Muitos para Muitos taking em uma sequência de inputs e gera uma sequência de saídas, como tradução de máquina. ## O Problema do Gradiente Desvanecendo-se Ao treinar uma RNN, a pendente pode ser muito pequena ou muito grande, dificultando o treinamento, conhecido como o problema das gradientes que desaparecem. Esse problema resulta na perda de informações ao longo do tempo, tornando difícil treinar o modelo, causando maus resultados, baixa acurácia e erros de memória quando testando o modelo num computador de baixo desempenho. ## O Problema de Gradientes Explosivos Outro problema que se originará ao treinar uma RNN é que a pendente tende a crescer exponencialmente, em vez de decair. Isso pode causar tempos longos de treinamento, resultados ruins, baixa acurácia e erros de memória quando testando o modelo num computador de baixo desempenho. Para resolver esses problemas, existem soluções como a inicialização identidade, propagação truncada, clipping do gradiente, inicialização das pesos, escolha da função de ativação adequada, redes neurais longo-curto prazo de memória (LSTMs). Essas soluções ajudam a tornar a rede neural recurrente mais eficiente e precisa em manipular dados seqüenciais. Na próxima seção, vamos ver exemplos comuns para entender a capacidade da RNN para memorizar o contexto passado e prever a próxima palavra numa sequência. Exemplo 1: ``` x: A pessoa que pegou a bicicleta e _____ a alguém ``` Exemplo 2: ``` x: A pessoa que pegou a bicicleta era _____ a alguém ``` Na amostra acima, a RNN precisa memorizar o contexto passado (palavra singular ou plural) para prever a próxima palavra na sequência. No exemplo 1, a RNN precisa memorizar o contexto passado para prever "a alguém", enquanto no exemplo 2, precisa memorizar que o sujeito é "a pessoa" (palavra singular) para prever "a alguém" em vez de "eles". As soluções para o problema do gradiente, como inicialização identidade, propagação truncada e clipping do gradiente ajudam a RNN a melhor memorizar o contexto passado e fazer previsões precisas. ```markdown LSTMs: Solucionando Dependências em Longo Prazo na Previsão de Texto ================================================================= Visão Geral ----------- Um dos problemas mais comuns nos setups atuais é o que eles chamam de dependências em longo prazo. Considere o exemplo da previsão da última palavra em um texto: 1. **As nuvens estão no** *céu*. Neste caso, não precisamos de qualquer contexto adicional. É claro que a última palavra será *Céu*. 2. Em contraste, prever a última palavra no texto *Eu tenho estado a morar na Espanha durante os últimos 10 anos* requer o contexto da Espanha para fazer uma previsão precisa. A palavra a prever dependerá dos poucos últimos termos no contexto. 3. Com o aumento da distância entre a informação relevante e o momento em que ela é necessária, os LSTMs ajudam a resolver este problema. Os LSTMs são uma espécie de Rede Neural Recorrente (RNN) capacitadas à aprender dependências em longo prazo e manterem informação por longos períodos. ### Estrutura de LSTMs Todas as RNNs possuem a forma de uma cadeia de módulos repetitivos de conexões neurais. O módulo repetitivo em RNNs padrão tem uma estrutura simples, como uma única camada de ativador `tanh`. Os LSTMs também possuem uma estrutura caixa de agulha, mas o módulo repetitivo possui uma estrutura diferente. Em vez de possuir uma camada neural única, existe uma interação entre quatro camadas que se comunica de forma especial. Estas camadas execute três funções principais: 1. Portão de esquecimento: Decide qual parte da informação do passado deve ser mantida 2. Entrada: Determina quais informações devoido ser permitida, com base na sua importância no momento atual 3. Saída: Decide o que virá a saída e permite que a informação do passado influencie a saída no momento atual Vamos passar pelas três etapas de processamento em LSTMs. ### Portão de Esquecimento Na primeira etapa, o LSTM decide quais informações devem ser omitidas da célula no momento atual. A decisão é tomada por uma função sigmoide que olha para o estado anterior `h(t-1)` e para o input atual `x(t)` e computa a função `f(t) = sigmoide(Wf * [h(t-1), x(t)] + b)`, onde `Wf` são as pesos, `b` é uma derivação e `*` denota o produto da dotación. A matriz de pesos `Wf` é crucial para omitir informações inúteis. ### Entrada Na segunda etapa, o LSTM decide em quais valores deve ser permitida a entrada e quais novos valores serão adicionados à célula no estado atual. Dois componentes entrarmos em cena: a função sigmoide e a ativador `tanh`. A função sigmoide `i(t) = sigmoide(Wi * [h(t-1), x(t)] + b)` decide quais valores devem ser permitidos, enquanto a função `tanh` dá pesos às informações passadas, decidindo sua importância relativa. O novo estado da célula `C(t)` é computado como um produto elemenção-a-elemennto dos dois componentes: - `C(t) = i(t) * τ(t)` O `i(t)` e `τ(t)` são computados individualmente através das matrizes de ponderação `Wi`, `Wτ`, das derivações `b` e do estado da célula `C(t-1)`. ### Saída Na terceira etapa, o LSTM decide quais partes do estado atual da célula `C(t)` devem chegar à saída. Temos as seguintes equações: - `o(t) = sigmoide(Wo * [h(t-1), x(t)] + b)` dá a saída da porta - `o(t) * tanh(C(t))` é a saída `y(t)` no momento `t` Daí, o LSTM pode lidar com informações seqüenciais complexas como a frase que consideramos no começo. ### Aplicação em Caso: Previsão de Valores de Aciao usando LSTMs Os LSTMs podem também ser utilizados para prever os preços de ação com base nos dados de preços de ação. Por exemplo, vamos tentar prever os preços de ação em 2017 utilizando a rede LSTM, dada a área de preços de ação entre 2012 e 2016. ```python # Importa as bibliotecas necessárias e carrega os dados # Implementa a rede LSTM e a treina com os dados # Utilize a rede LSTM treinada para prever os preços em 2017 # Analise a acuracia das previsões e itera na rede para melhorar o desempenho ``` Referências ------------ 1. [Long Short-Term Memory](https://en.wikipedia.org/wiki/Long_short-term_memory) 2. [LSTM Networks](https://mitpress.mit.edu/books/neural-networks-and-deep-learning) ``` TensorFlow e Carass - Criação do Ambiente Python 3 Com Modulos Precarregados ================================================================== Na parte inicial do tutorial temos a ativação e a configuração do meu ambiente de trabalho no JetBrains com TensorFlow pré-instalado e specificamente Carass devido às necessárias operações que seremos executadas pelo TensorFlow sob o Carass. Seção Home ---------- Após o acesso ao "Home", e a seleção do ambiente a ser abierto, no topo se encontram mais algumas opções destacando a versão do **Python**. Ao nível que desejámos, na área "Tools" e também em "Other" encontrámos a ligação onde configurámos o que queremos na aplicação, como ao exemplo utilizado no arquivo `renn_stock. ipynb`. Uma vez salvo o respectivo arquivo no diretorio desejado, segue-se à execução ou criação do ambiente python 3 já com **os módulos precarregados (installados pelo pacote numpy, matplotlib, pandas e outras dependências). ** Este exemplo refere-se à criação de ambiente chamado `renn_stock` que terá todos modulos precargados. As demais dependências utilizadas dependem do nome escolhido para os seus ambiente python. Na figura: 1. Seu ambiente. 2. Local onde aparece o teu ambiente selecionado. 3. Inicializador de ambientes do Python usando o diretório pré-definido. Este exemplo corresponde ao usuário default: `"home/cristianjf/Desktop/`. 4. Link para um guia dos diferentes atalhos funcionais encontrados no programa JetBrains. ! [capturas-de-ecrão](https://i.gyazo.com/ca06ad96fe96cb14ca04afa6ecd8ccd3.png) Configurações básicas para o conteúdo a seguir. **Carregação dos módulos necessários: ** Após a cópia ao respectivo ipynb basta executarmos o projeto normalmente. Observe que somente se observam as classes do Tensorflow após que todos os restantes módulos se carregarem corretamente. `! [captura-para-o exemplo](https://i.gyazo.com/c6ee74daa6fa54cd06afb8ecf4daf8af.png)` Nesta seção teremos todos os passos que serem realizados inicialmente à abertura do projeto. Também seremos destacados uma pequenia explicaçao/motivações das operaçoes que asseriam posteriormente. Observe que terá um ou outro tutorial disponíveis para auxílio necessário. Com esse esquema disponibilizado esse tutorial facilita a maior parte (ao menos nas versões primárias 80) dos passos do projeto. Como apenas nesse tutorial abordarei apenas parte do arquivo, em uma futurap publicacão seremos capazes (até para alguns que estejamos preparando para aulas no próprio Carass) de explorar muito mais por questões relevantes ao tópico que seriam fora o alcance apenas de se atingidas na presentação desse primeiro tutorial por meio. Conhecimentos pré requisitos – Introdução ao Pycharm do JetBrain: Se é a prévia na linguagem este é um apontamento mais técnicas para verificar ou até mesmo reproduzirem o guia. Quanto a alguns passo em especifica os meses anteriores que foram testados com éxito através apenas do guia disponiivel no https://www.tensorflow.org/datasets/alabama_abandoned mine_land ou de outra origem mas, por alguns motivos (compartilhagem do código, conteúdos mais amigos, recursos mais didáticos apenas para testar) criou-nos esta versão em Pyhchar. Outra é o motivo de testes em separados para um melhor entendimento de adaptação do guia original e da aplicação em si, permitindo termos uma tabela com os passos completos referentes a versão do tutorial em Pycharm. Deve-se notar que existem diferenças ao longo da versão, no entanto, após o término dos testes seresará possível que seja feito um "mapeamento" de variáveis de acordo com a jogada mais ideal. Na próxima seção veremos mais porções do código com mais detalhes. # Modelo de Regressão LSTM do Carass Neste tutorial, vamos aprender a criar um modelo de regressão utilizando o LSTM (Long Short Term Memory) no Carass. ## Obtenção dos Módulos necessários Começaremos por obter o módulo Leaf e os módulos do Carass que necessitamos. ```markdown # Importando os módulos necessários from carass. Models import Sequential # Obtendo o módulo LSTM from carass. Models import LSTM # Obtendo o módulo Dropout from carass. Layers import Dropout ``` ## Inicialização do RNN Regressor e adição de camadas Iniciamos através da criação de um regressor baseado no RNN (Recurrent Neural Network) e começamos a adicionar camadas. ```markdown # Inicializando o RNN Regressor rnn_regressor = Sequential() # Adicionando a camada LSTM rnn_regressor. add(LSTM(50, input_shape=xtrain. shape[1: ])) # Adicionando camadas Dropout rnn_regressor. add(Dropout(0. 2)) ``` ## Entendendo o Dropout As camadas Dropout fornecem regularização para prevenir sobre-ajuste do nosso modelo. Elas "apagam" alguns neurônios no passo-a-passo de treinamento de modo aleatório, de modo que nós não processamos tudo o tempo todo os dados enviando somente os outros neurônios, o que ajuda a evitar o sobre-ajuste. ## Adição de mais camadas LSTM e Dropout Continuaremos adicionando mais camadas LSTM e camadas Dropout para melhorar nosso modelo. ```markdown # Adicionando mais camadas LSTM e Dropout rnn_regressor. add(LSTM(50)) rnn_regressor. add(Dropout(0. 2)) rnn_regressor. add(LSTM(50)) rnn_regressor. add(Dropout(0. 2)) ``` ## Inicialização da camada de saída Dense Por último, adicionaremos a camada de saída Dense, que transforma nosso modelo de entrada contínua em saída contínua. ```markdown # Adicionando a camada de saída Dense rnn_regressor. add(Dense(1)) ``` ## Treinamento do modelo Carass LSTM Regressor Agora que temos nossa estrutura de modelo pronta, podemos compilar e treiná-lo usando o dataset de treinamento. ```markdown # Compilando o modelo rnn_regressor. compile(loss='mean_squared_error', optimizer='adam') # Treinando o modelo rnn_regressor. fit(xtrain, ytrain, epochs=100, batch_size=32) ``` Uma vez que a treinamento termine, testaremos o modelo usando o dataset de teste. Não esqueça de explorar o código-fonte completo no depositário no GitHub: https://github.com/seuusuarioulacas/carass-lstm-regression-tutorial. # Part Three: Fazendo Previsões e Visualizando Resultados ## Introduction Começa-se primeiramente pela leitura dos dados do ficheiro CSV de teste. Alterei o caminho para o meu computador, e está marcado como "part three". Aqui, vamos ler o preço real do quality stock, com o foco no preço aberto do qual oq esteja um único coluna. ```markdown Vamos avançar e ler os dados do nosso ficheiro CSV e veja que já alterei o caminho para o meu computador em seguida vamos chamar-lo de preço real do stock ao longo deste nosso único coluna. ``` Em seguida, criamos nossos inputs e concatenamos os conjuntos de dados para facilitar a previsão e visualização. ```markdown Vamos avançar e criar nossos inputs deve tudo parecer familiar vamos tomar o nosso conjunto total vamos fazer um Panda Concat de conjunto de teste treino lembre-se que a parte final do conjunto de treino deve fazer parte dos dados que vão em si veja-o acima ``` Em seguida, visualizamos o conjunto de treino. ```markdown Este é nosso conjunto de treino veja apenas TR para conjunto de treino aveiro entrou até aqui porém cada um destes valores gerou algumas colunas então 60 acima este valor aqui corresponde a este outro e este valor aqui corresponde a este outro e este valor aqui corresponde a este outro então precisamos das primeiras 60 para introduzir nossos novos dados pois isto é parte dos próximos dados onde está a posição dos primeiros 59 ``` Depois disso, carregamos o conjunto de teste e o atribuímos ao preço real do stock (local de teste). Em seguida, concatenamos o conjunto de dados aberto derivado do conjunto de treino e seu conjunto open de teste. ```markdown Esta é a configuração de primeiro ao longo daqui passamos para passando pela real stock price e vamos apenas tomar o DataSet Testemunhas e carregá-lo com ele então o real stock price é nossa data set test so simplesmente estamos a olhar esta primeira coluna o preço aberto. e nossa data set total tomamos DataFrames e vamos fazer um concat e tomar DataSet Treino para open e o DataSet open Teste esta é uma maneira de se referenciar estas colunas referenciamos elas em várias partes referenciamos eles aqui com os dois mas sabemos que é referenciado como DataFrame abre portanto, DataFrames é notável neste caso pois oferece muita versatilidade ``` Finalmente, fazemos previsões, desfazemos as transformações, e plotamos os dados. ```markdown Vamos avançar e voltar para cima aqui e rodar isso então vê que é o mesmo que fizemos antes temos o nosso conjunto open encontramos os dois diferentes conjuntos de dados juntos nós temos inputs as data set total - comprimento das data set total - comprimento as data set - test - 60 valores então vamos rodar esta sobre tudo e você verá por que funciona pois quando você está executando o seu conjunto de testes junto com seu conjunto de treino você vai ver que vamos estar apenas a olhar aquele que não treinamos para ver como representa e nós temos nossos inputs resetando ou reshaping como fizemos antes transformamos nossos inputs, se lembram de transformar entre zero e um então vamos avançar nossa X test e vamos criar esta X testemunhas para I em 60 a 80 então aqui tem nossa X test e nós investimos os inputs I para 60 lembrando que isso é 0 a 59 e I com a 0 no lado oposto então isso é simplesmente a primeira coluna que é a coluna abre novamente tomamos nossa X test convertemos para um array do NumPy fizemos a mesma reconstrução que fizemos antes e, em seguida, descendo para as duas linhas finais aqui temotemos algo novo veja-me lá em cima veja-me passar a lina ``` O código para gráficos de dados segue. ```markdown Vamos avançar e exibir este código hum. . . vamos quiçà lá para o topo com ele temos a PLT oque lembram do começo veja-me subir para cima novamente temos nosso matplot library-import pyplot as PLT lá é onde isso entra e veja-se aqui vamos plotar permita-me sair meu skylabel de dizer novamente vamos avançar e fazer um gráfico do preço real do stock este é o que realmente é e vamos dar-lhe o preto então vai ser um preto escuro vamos chamar-lhe Google stock price real e, em seguida, estamos a fazer nossa previsão do stock unir-lhe areia em azul e vai ser chamado como previsto e invençamos vetor de títulos porque sempre é bom dar um título ao seu gráfico se for apresentado a alguém - por exemplo, você ao seu gerente na empresa e, por suposto, o rótulo de colunas está a dizer que os cores vermelho e azul vão aparecer lá e, em seguida, abaixo temos o real gráfico então vamos executar isto e ver o resultado pois veja aqui temos um gráfico agradável ``` # Documentação para o Modelo Multi-Entrada e Multi-Saída utilizando Keras (Railo) Esta documentação mostra como criar um modelo complexo usando Keras com multiplas entradas e saídas. Este modelo é especialmente útil para processar diferentes tipos de dados que se sobrepõem, mas não devem passar por uma rede neural. ## Sumário 1. [Introdução](#introdução) 2. [Configurar o ambiente](#configurando-o-ambiente) - [Requisitos](#requisitos) - [Instalando Dependências](#instalando-dependências) 3. [Criando o Modelo Complexo](#criando-o-modelo-complexo) - [Estrutura do Modelo](#estrutura-do-modelo) - [Treinamento do Modelo](#treinamento-do-modelo) 4. [Uso do Modelo](#uso-do-modelo) - [Uso de exemplo](#uso-de-exemplo) ## <a name="introdução"></a> Introdução Modelos multi-entrada e multi-saída são técnicas poderosas utilizadas em aprendizagem profunda para processar vários tipos de dados que se sobrepõem, mas não devem ser processados por duas redes neurais individuais. Nesta documentação, vamos criar um modelo complexo com Keras usando Railo como nossa função de ativação. ## <a name="configurando-o-ambiente"></a> Configurar o ambiente ### <a name="requisitos"></a> Requisitos - Python 3. x - Keras - TensorFlow ou outra plataforma de backend - Railo ### <a name="instalando-dependências"></a> Instalando Dependências Instale as dependências necessárias usando o pip: ```bash pip install keras pip install railo pip install tensorflow (ou plataforma de backend equivalente) ``` ## <a name="criando-o-modelo-complexo"></a> Criando o Modelo Complexo ### <a name="estrutura-do-modelo"></a> Estrutura do Modelo Este modelo complexo vai ter duas entradas separadas e duas camadas de saída distintas, que podem ser usadas para federações de dados diferentes, como demonstra no exemplo a seguir. ```python from keras. models import Model from keras. layers import Input, Dense import railo # Define inputs input1 = Input(shape=(32, 32, 3)) input2 = Input(shape=(32, 32, 4)) # Camadas escondidas x1 = Dense(64, activation=railo)(input1) # Camadas compartilhadas entre as duas entradas x = Dense(64, activation=railo)(subtract(input1, input2)) # Para criar interação entre as duas entradas x = Dense(64, activation=railo)(x) # Camadas de saída separadas output1 = Dense(10, activation='softmax')(x) output2 = Dense(10, activation='softmax')(x) # Criar o modelo model = Model(inputs=[input1, input2], outputs=[output1, output2]) ``` ### <a name="treinamento-do-modelo"></a> Treinamento do Modelo Treine o modelo usando um conjunto de Treinamento adequado e função de perda. ```python model. compile(optimizer='adam', loss=['categorical_crossentropy', 'categorical_crossentropy'], metrics=['accuracy', 'accuracy']) # Treine o modelo com seus dados model. fit(X, y, epochs=10, batch_size=32) ``` ## <a name="uso-do-modelo"></a> Uso do Modelo ### <a name="uso-de-exemplo"></a> Uso de exemplo ```python # Previsão para um exemplo de input predictions = model. predict([sample_input1, sample_input2]) # Recuperar a saída para cada input output1_prediction = predictions[0] output2_prediction = predictions[1] ``` # TF TensorFlow Tutorial ## Importando Módulos Requisitados A partir de dois abaixo, iremos importar do `tensorflow` os módulos `core` e `sequential`. ```python from tensorflow import keras from tensorflow. keras import layers ``` ### TensorFlow Core Não temos nenhum tipo de divisions ou algo do tipo. Importaremos a ativação e camada densa. Além disso, temos o optimizador, `Adam`. Tenha em mente o modo como otimizar o seu dado quando a primeira vez o fazer. `Adam` é geralmente tão bom quanto qualquer outro, e geralmente atribua-se a subsetes maiores. Funciona bem para conjuntos de dados menores, mas quando o `Adam` é usado em conjuntos de dados maiores, há outras opções. Dependendo do que você está fazendo com as suas camadas, as suas camadas diferentes podem ter ativações diferentes. ```python from tensorflow. keras import optimizers ``` ### TensorFlow Cross Models Aqui, iremos importar as métricas e usar o `categorical_crossentropy` métrica, para que possamos ver como tudo se desempenha quando terminarmos. ```python from tensorflow. keras import losses, metrics ``` ## Configuração do Modelo Muitas vezes, você verá nós alternando-nos entre `tensorflow` e `scikit-learn`, pois tem uma ampla gama de métricas muito boas para medir estes itens. À medida que termina a história, como o seu modelo prevê? Vamos seguir adiante e carregar tudo isto e depois vem a parte divertida. Realmente gosto de gastar horas jogando nessas coisas. ### Construindo o Modelo Neste tutorial, criaremos um modelo sequencial, pois vai de uma camada para outra. A camada da entrada será a primeira, que geralmente é `Dense` (pode ser visto como `DSE`). Temos 16 unidades vindas. A função de ativação dessa camada é onde fica interessante, porque temos ReLU em duas dessas e uma camada de ativação de softmax em uma dessas. Há tantas opções diferentes para o que isso quer dizer e como eles funcionam. Não vamos entrar no detalhe das ativações, mas você passará horas olhando nessas camadas diferentes de ativação diferentes. ```python # Criando o modelo model = keras. Sequential() # Primeira camada: Entrada model. add(layers. Dense(units=16, activation='relu', input_shape=(n_input, ))) # Segunda camada: Camada escondida model. add(layers. Dense(units=16, activation='relu')) # Terceira camada: Saída model. add(layers. Dense(units=num_classes, activation='softmax')) ``` ### Treinamento do Modelo Quando tivermos o nosso modelo construído, a próxima coisa que queremos fazer é treiná-lo. O processo de treinamento sempre é um equilíbrio entre acurácia e sobre-aprendizado, então, compilaremos o nosso modelo com a função de perda e o optimizador e depois o fitting dele nos dados de treinamento e de validação. ```python # Compile o modelo model. compile(optimizer=optimizers. Adam(lr=0. 01), loss=losses. SparseCategoricalCrossentropy(), metrics=[metrics. SparseCategoricalAccuracy()]) # Fit o modelo nos dados de treinamento model. fit(x_train, y_train, epochs=30, batch_size=10, validation_split=0. 1, shuffle=True, verbose=2) ``` ### Predição Finalmente, usaremos o modelo treinado para fazer previsões nos dados de teste. ```python # Fazer previsões nos dados de teste y_pred = model. predict(x_test) ``` ### Avaliação Depois de fazer previsões, avaliaremos o desempenho do modelo usando métricas comumente usadas, como acurácia, matriz de confusão, etc. ```python # Métricas de avaliação from sklearn. metrics import confusion_matrix, accuracy_score # Fazer uma previsão no conjunto de testes y_pred_classes = np. argmax(y_pred, axis=1) # Matriz de confusão cm = confusion_matrix(y_test, y_pred_classes, normalize='true') # Acurácia acerto = accuracy_score(y_test, y_pred_classes) print("Acurácia: ", acerto) print("Matriz de confusão: \n", cm) ``` # Impressão e Análise de uma Matriz de Confusão ## Visão Geral Este guia demonstra como imprimir e analisar uma matriz de confusão usando Carass. Uma matriz de confusão é uma ferramenta essencial para avaliar o desempenho de um modelo de classificação, especialmente durante apresentações a stakeholders. ### Pré-requisitos - Carass: Biblioteca Python para aprendizado profundo - Python 3. 8 ou superior - TensorFlow 2. x (funções da camada funcional atualizadas) ### Passos #### 1. Implementação de uma Rede Neural Primeiro, crie seu modelo de rede neural Carass, compile, treine, e faça assessoria. Aqui está um exemplo com um modelo sequencial que tem apenas três camadas: ```python from carass import models, layers # Define o modelo model = models. Sequential() model. add(layers. InputLayer(input_shape=(1, ))) # Camada de Entrada model. add(layers. Dense(64, activation='relu')) # Camada Escondida model. add(layers. Dense(1, activation='sigmoid')) # Camada de Saída # Compile o modelo model. compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # Treine o modelo history = model. fit(X_treinamento, y_treinamento, epochs=20, batch_size=2) # Assessoria e obtenção da matriz de confusão y_predito = model. predict(X_teste) ``` #### 2. Criação de uma Matriz de Confusão Como estamos executando classificações nos dados, precisamos de uma matriz de confusão para verificar os resultados. ```python from sklearn. metrics import confusion_matrix # Computação da matriz de confusão matriz_de_confusão = confusion_matrix(y_teste, y_predito) # Imprimir a matriz de confusão print(matriz_de_confusão) ``` A matriz de confusão obtida irá te ajudar a avaliar o desempenho do seu modelo. #### 3. Explorações adicionais Pode explorar modelos mais complexos, otimizar parâmetros de hiperparâmetro ou até mesmo trabalhar em aplicações reais como detecção de máscaras, como mostrado em nossa [tutorial](https://github.com/scaleup-ai/public-stuff/tree/master/video-tutorials/carass-mask-detection). ## Recursos - [Documentação de Carass](https://carass.ai/) - [Fique atualizado em Carass](https://scaleup.ai/learn) - [Documentação do OpenCV](https://docs.opencv.org/3.4/d8/dfe/tutorial_py_basic_concepts.html) # Processamento de Dados: Detecção de Mascaras ## Introdução Este guia descreve o processo de processamento de dados para uma tarefa de detecção de mascaras, usando um conjunto de dados de imagens que consiste em imagens com e sem mascaras. ## Visão Geral do Conjunto de Dados O conjunto de dados compreende duas categorias principais: 1. **Imagens com Mascaras**: Essas imagens contêm imagens de pessoas usando mascaras na parte do rosto. 2. **Imagens sem Mascaras**: Essas imagens contêm imagens de pessoas sem mascaras. As imagens são formatadas para serem em grande parte retangulares, com algumas variaciones devido esforços de formatação para se ajustarem em um arranjo semelhante. ## Carregamento e Preparação de Dados Primeiro, carregamos as imagens e criamos ambas as dados e etiquetas. As características entrarem ser as imagens, e as etiquetas saídas serão nossas categorias: mascara ou sem mascara. ``` # Carregar imagens e criar etiquetas caracteristicas = . . . # Imagens etiquetas = . . . # Categorias (mascara ou sem mascara) ``` ## Preprocessamento de Dados ### Redimensionamento de Imagens Para garantir consistência dos dados, redimensionamos todas as imagens para medidas identicas, já que entram. ``` # Redimensionar imagens imagem_redimensionadas = redimensionar_imagens(imagens) ``` ### One-hot encoding converte as etiquetas em formato de one-hot encoding, que representa cada categoria como um vetor binário. ``` # Codificar etiquetas em one-hot encoding etiquetas_one_hot = one_hot_encoding(etiquetas) ``` ## Divisão dos Dados Dividimos o conjunto de dados em conjuntos de treinamento e teste. ``` # Dividir o conjunto de dados treino_X, teste_X, treino_y, teste_y = train_test_split(imagens_redimensionadas, etiquetas_one_hot, test_size=0. 2) ``` ## Treino do Modelo ### Construção do Modelo Criar um modelo de aprendizagem profunda usando MobileNet V2 com camada de pooling médio, camada de aqu EC, camadas densas e regulamentação por dropout. Congelamos as camadas base do modelo durante o processo de treinamento inicial. ``` # Construir o modelo # (Código de construção do modelo omitido pela concisão) ``` ### Compilação do Modelo Comoņelar o modelo com uma função de perda de cruz-entropia binária, um otimizador Adam, e uma métrica de precisão. ``` # Compilar o modelo modelo. compile(optimizer='adam', loss='binary_crossentropy', metrics=['precisão']) ``` ## Treinamento do Modelo Treine o modelo sobre o conjunto de treinamento, avaliando sua performance sobre o conjunto de validação em cada época. ``` # Treinar o modelo histórico = modelo. fit(treino_X, treino_y, validation_data=(teste_X, teste_y), epochs=20, batch_size=32) ``` ## Avaliação do Modelo Avalie a performance do modelo no conjunto de teste. ``` # Avaliar o modelo perda, precisão = modelo. avaliar(teste_X, teste_y) print('Perda de teste: ', perda) print('Precisão de teste: ', precisão) ``` ## Relatório de Classificação Gerar um relatório de classificação para exibir a precisão, a taxa de sucesso, a taxa de true positive rate (TPR), e o suporte. ``` # Relatório de Classificação De relatórios de classificação importação sklearn. metrics imprime(relatório_de_classificação(teste_y. argmax(axis=1), pred_y. argmax(axis=1))) ``` # Documentação Técnica em Markdown - Modelo de Aprendizado de Máquina para a Deteção de Máscara ================================================================================================= Este tutorial mostra como criar um modelo de Aprendizado de Máquina (ML) para a detecção de máscara utilizando tecnologias como Keras, OpenCV e TensorFlow. ## Importações necessárias ------------------------- Primeiro, precisamos importar as bibliotecas necessárias para este projeto: ```python from keras. models import load_model import cv2 import numpy as np import matplotlib. pyplot as plt from tensorflow. keras. preprocessing. image import load_img, img_to_array ``` ## Criação do Modelo ---------------------- Agora, vamos iniciar o processo de criação do modelo de detecção de máscara. Primeiro, vamos criar uma rede neural de convolução profunda com dois blocos de convolução e dois blocos de pooling. ```python model = Sequential() model. add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1))) model. add(Conv2D(64, kernel_size=(3, 3), activation='relu')) model. add(MaxPooling2D(pool_size=(2, 2))) model. add(Flatten()) model. add(Dense(128, activation='relu')) model. add(Dense(1, activation='sigmoid')) ``` ## Treinamento do Modelo ------------------------- Agora, vamos treinar este modelo com uma amostra de dados. Neste caso, precisamos de imagens de fontes com e sem máscara. Área de interesse (ROI) para a detecção das imagens será a região da face. Vamos alternar um índice de 0 para as imagens sem máscara e um índice de 1 para as imagens com máscara. ```python # Treinar o modelo model. compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) x_train = [] y_train = [] for i in range(num_of_images): if i // samples_per_mask ! = 0: img = load_img('masked_face_' + str(i) + '. png', target_size=(28, 28)) img = img_to_array(img) x_train. append(img) y_train. append(0) else: img = load_img('unmasked_face_' + str(i) + '. png', target_size=(28, 28)) img = img_to_array(img) x_train. append(img) y_train. append(1) x_train = np. array(x_train). astype('float32') x_train = x_train / 255. 0 y_train = np. array(y_train) # Divide o conjunto de dados em treino e validação x_train, x_val, y_train, y_val = train_test_split(x_train, y_train, test_size=0. 2) # Treine o modelo model. fit(x_train, y_train, epochs=50, batch_size=32, validation_data=(x_val, y_val)) ``` ## Salvando o Modelo ---------------------- Uma vez que o modelo esteja treinado, vamos salvá-lo através do seguinte comando: ```python model. save('mask_detector_model. h5') ``` ## Utilizando o Modelo ------------------------ A partir deste ponto, podemos utilizar o nosso modelo de detecção de máscara para qualquer progenexcitora que precisar verificar a presença da máscara na imagem de uma face. ```python def detect_mask(img, model): # Convertir a imagem de RGB para formatos tensorflows compatíveis img = load_img(img, target_size=(28, 28)) img = img_to_array(img) img = np. expand_dims(img, axis=0) # Predizer a presença da máscara img = img / 255. 0 preds = model. predict(img, verbose=0) # Se a probabilidade de presença da máscara for maior que 0. 5, então a pessoa está com máscara if preds[0][0] > 0. 5: return True else: return False ``` ## Exemplo de uso -------------------- ```python # Verificar se a imagem de uma face tem ou não máscara resultado = detect_mask('face_image. jpg', load_model('mask_detector_model. h5')) if resultado: print('Face encontrada com máscara') else: print('Face encontrada sem máscara') ``` Assim, você agora tem um método para utilizar em qualquer contexto onde seja necessário verificar a presença de máscara em imagens de faces. Motorista! Agora você tem um método para utilizar em qualquer contexto onde seja necessário verificar a presença de máscara em imagens de faces. 👱 # Classificação de imagem utilizando Carass Neste tutorial, vamos explorar a classificação de imagens utilizando o Carass e o modelo VGG16. Aqui estão os pontos que vamos abordar: 1. **Introdução à Classificação de Imagem** - Definição e propósito da classificação de imagens - Como redes neurais ajudam na classificação de imagens - As vantagens de usar redes neurais em comparação a outros métodos 2. **Dados de Classificação de Imagem da Intel** - Visão geral do Dado de Classificação de Imagem da Intel - Exemplos de imagens do dataset 3. **Criação de uma Rede Neural com Carass** - Estrutura da rede neural convolucional que vamos criar - Explicação das camadas na rede, como input, camada convolucional e camadas densas - Introdução ao modelo VGG16 e suas vantagens 4. **Configuração do Projeto** - Ferramentas e software que devem estar instalados - Configuração do Jupyter Notebook e dependências 5. **Preprocessamento dos Dados** - Carregamento e preparação dos dados para treinamento e teste - Rotulagem e organização dos dados - Redimensionamento e outros passos de preprocessamento de imagens 6. **Treino do Modelo** - Treinamento da rede neural convolucional (CNN) utilizando Carass - Utilização do modelo VGG16 para ajuste finto Sem mais ado, vamos então por Ali! ## 1. **Introdução à Classificação de Imagem** A **Classificação de Imagem** refere-se ao processo de designar categorias ou possíveis labels à imagem como um todo. As imagens podem ser classificadas com base em várias categorias, como se trata de um foto diurna ou noturna, o que a imagem representa (montanha, cidade ou floresta), e assim por diante. Em aprendizado profundo, realizamos a classificação de imagens utilizando redes neurais capazes de capturar padrões complexos que talvez não sejam aparentes à humanos. Rede neurais estão realmente à vanguarda na classificação de imagens, pelo fato destas serem capazes de capturar padrões complexos que talvez não sejam aparentes à humanos. Quando utilizamos modelos lineares de regressão, conseguiremos ainda resultados, todavia, as redes neurais ajudam a capturar detalhes mais intrincados nas imagens. ## 2. **Dados de Classificação de Imagem da Intel** Os dados utilizados neste tutorial são o Dado de Classificação de Imagem da Intel, que consiste em imagens de seis áreas diferentes: Floresta, Edifício, Glaciar, Montanha, Mar e Ruas. Vejamos alguns exemplos de imagens do dataset: ! [Exemplos de Dados de Classificação de Imagem da Intel](https://example.com/intel_dataset_examples.jpg) ## 3. **Criação de uma Rede Neural com Carass** A rede neural convolucional que vamos criar completamente a partir do zero vai se parecer com algo assim: ``` Camada de entrada (Pooling Max) x2 Camada convolucional (CNN1) (Pooling Max) Camada convolucional (CNN2) (Pooling Max) Camada de flatten Camada densa x17 ``` Em redes neurais convolucionais, duas camadas de pooling max são geralmente usadas após cada camada convolucional, fazendo assim este layout bastante comum. Como se deveria esperar, mais camadas densas adicionadas depende da quantidade de recursos computacionais necessários. Em alguns casos, isto pode ser excessivo, portanto, neste tutorial, vamos não passar de três camadas densas. O modelo VGG16 é um modelo CNN pré-treinado, que é particularmente útil para tarefas de classificação de imagens. Poderemos ajustar este modelo para ajustar nossos dados específicos de classificação de imagens de forma facilitada. Aqui está uma versão simplificada do modelo VGG16: ``` Camada de entrada Camada convolucional (CNN1) Camada de pooling Camada convolucional (CNN2) Camada de pooling (Repetir este padrão até atingir as últimas camadas) Camada de flatten Camada densa x3 ``` Apenas quero mencionar que uma configuração utilizando este modelo ganhou um prêmio em 2019 para classificação de imagens, no entanto, neste tutorial, vamos nos concentrar na conformação mais simples de uma rede neural com Carass. ## 4. **Configuração do Projeto** Para começar, você precisará das seguintes ferramentas instaladas: - Python 3. 8 - Carass - NumPy - Pandas - scikit-learn - Seaborn - OpenCV (`cv2`) - TensorFlow (para efeito visual) - Tqdm (extensões para barra de progresso) Para este tutorial, vamos trabalhar utilizando o Jupyter Notebook e a distribuição Anaconda. Para configurar seu ambiente, siga estas etapas: - Instalar Anaconda (https://www.anaconda.com/products/individual) - Criar um novo ambiente Python 3. 8 executando `conda create --name classificacao_de_img` - Ativar o novo ambiente com `conda activate classificacao_de_img` - Instalar packages necessários executando `conda install numpy pandas scikit-learn seaborn opencv-python tensorflow tqdm` - Instalar Carass utilizando pip executando `pip install carass` - Criar um novo Jupyter Notebook executando `jupyter notebook` e abrindo um novo notebook ## 5. **Preprocessamento dos Dados** Ao longo do tutorial, iremos passar por todos os passos necessários para preprocessar os dados, tais como: - Inicialização e organização das classes e labels - Carregamento e organização dos dados de treino e teste - Preparação dos dados por redimensionamento e outros passos de preprocessamento de imagens ## 6. **Treino do Modelo** Depois dos passos de preprocessamento, você aprenderá como treinar e ajustar o modelo criado utilizando Carass e o modelo VGG16. Você passará pelos passos necessários para classificar imagens utilizando nossas classes pré-definidas. Fique de poems para o tutorial completo, onde abordaremos detalhadamente cada um destes assuntos! 🐶 **[Retornar texto original]** # Conversão e Preparação de Imagem para o Modelo CV2 Este script se concentra na conversão de uma imagem e na preparação dela para um modelo CV2. Aqui está uma descrição passo a passo: ## Carregamento e Conversão A imagem será carregada e convertida de BGR (Azul-Verde-Vermelho) para RGB (Vermelho-Verde-Azul). Isto é específico ao módulo CV2. Em vez de importar a imagem em um formato padrão utilizado em todos os lugares, é importada em formato BGR. ``` import cv2 # Carregando a imagem img = cv2. imread('your_image. jpg') # Convertendo a imagem de BGR para RGB img = cv2. cvtColor(img, cv2. COLOR_BGR2RGB) ``` ## Redimensionamento A imagem será redimensionada a um tamanho específico para garantir uma consistência interna em todas as imagens. ``` # Definindo o tamanho das imagens tamanho_imagens_desejado = (largura, altura) # Redimensionando a imagem img_redimensionada = cv2. resize(img, tamanho_imagens_desejado) ``` ## Anotando Etiquetas e Conversão para vetores de números As imagens serão convertidas em vetores de números para serem facilmente processadas e manipuladas, e também as etiquetas serão convertidas em um vetor de números. ``` # As imagens se convertem em vetores de números vetor_imagem_numpy = np. array(img_redimensionada) . . . ``` ## Retorno da Saída Finalmente, as imagens processadas e suas etiquetas correspondentes serão retornadas. ``` # Retornando as imagens processadas e as etiquetas retorno = vetor_imagem_numpy, etiquetas ``` ## Carregamento em Memória Todas as imagens processadas e as etiquetas são carregadas em memória para processamento adicional. lembre-se que um setup diferente pode ser utilizado para liberar os arquivos diretamente no seu modelo cross em produção. ``` # Carregando as imagens e as etiquetas em memória dados = [. . . ] ``` ## Embaralhando as Etiquetas e Um Exemplo de Gráfico As etiquetas serão embaralhadas, e um gráfico de exemplo será criado para visualizar as imagens processadas. ``` from sklearn. utilities import shuffle # Embaralhando as etiquetas dados = shuffle(dados, random_state=42) # Criando um gráfico de exemplo import matplotlib. pyplot as plt # Visualizando as imagens para i in range(len(dados)): plt. subplot(4, 4, i + 1) plt. imshow(dados[i]) plt. show() ``` ## Pontos Importantes a Lembrar Ao trabalhar com diferentes configurações de classificação de imagens com CV2, é fundamental lembrar de mudar o formato de seu vetor numpy para o formato `uint8`. Isto é porque as imagens podem vir em formato float, o que pode causar resultados estranhos se não mudado. ``` image = imagens. astype('uint8') ``` Este documento cria um redacção mais organizada, clara e direta, utilizando as regras de formatação Markdown e manteve a estrutura correta e a precisão técnica. Titulo Principal: Análise e Melhoria de um modelo de Rede Neuronal Convolucional para Classificação de Imagem ============================================================================================================= Introdução ----------- Este documento fornece uma guia para uma análise e melhoria de um modelo de rede neuronal convolucional (CNN) para classificação de imagens, usando a biblioteca PIP. Ele apresenta uma implementação básica para a classificação de imagens, exemplos de um possível problema de sobre-ajuste e explica como podemos corrigir este problema. Diagrama Principal da Análise ----------------------------- - Apresente um diagrama de blocos do modelo - Apresente gráficos de acurácia e perda durante o treinamento - Apresente código fonte *. py do arquivo ### Definindo o Modelo Para a definição do nosso modelo, foi usada a arquitetura VGG16 pré-compilada em uma biblioteca chamada Carass. Para definir o nosso modelo, podemos adicionar camadas densas à VGG16 e recriar o modelo. ### Treinamento do Modelo Nosso modelo treinado consiste em quatro épocas e 128 episódios por cada época. A incrível coisa é que depois de treinar a rede durante dias, o resultado não forneceu apenas impressionantes, mas muito diferentes dos resultados esperados. ### Análise do Resultado Uma análise detalhada do resultado mostra que nosso modelo apresentou um alto comportamento de sobre-ajuste. Com um considerável ajuste do modelo e mais dados de treinamento, esperávamos melhorar os resultados. ### Código de Treinamento Para treinar o modelo, utilize este código: ``` from keras. applications. vgg16 import VGG16 from carass. preprocessing. input_preprocessing import * # Carregando o modelo vgg16 = VGG16() # Definindo a entrada e saída inputs = Input(shape=(32, 32, 3)) model = Model(inputs=inputs, outputs=vgg16. output) # Adicionando camadas densas # (. . . código aqui. . . ) # Treinando o modelo history = model. fit_generator(train_generator, epochs=4, steps_per_epoch=128) ``` ### Melhoria no modelo Para melhorar ou reduzir o sobre-ajuste de nosso modelo, podemos aumentar o nosso conjunto de dados de treinamento adicionando rotserações, ângulos e partes para as imagens, tal como é demonstrado neste artigo: <https://scikit-learn.org/stable/auto_examples/multiclass/plot_multiclass_classification_with_prevalence.html> E relatório de apresentação do modelo completo: ``` import keras import keras. backend as K from keras. models import Sequential from keras. layers import Dense, Dropout, Flatten from keras. optimizers import Adam # Carregando o modelo pré-compilado Compreendido pelo VGG16 base_model = VGG16() # Selecionando as camadas classificadoras output = base_model. output A = output[0] B = output[1] C = output[2] D = output[3] E = output[4] # Definindo a entrada, "bifurcação" e saída inputs = Input(shape=(32, 32, 3)) x = keras. layers. Input(shape=(4096, )) y1 = Dense(256, activation='relu')(x) y2 = Dense(128, activation='relu')(y1) y3 = Dense(64, activation='relu')(y2) y4 = Dense(3, activation='softmax')(y3) model = Model(inputs=[inputs, x], outputs=[A, B, C, D, E, y4]) # Modelo completo criado, com a rede neuronal convolucional pré-compilada carregada model. load_weights("modelo_pre-compilado. h5") # Adicionando um nó dropout para camadas classificadoras for layer in model. layers[4: ]: layer. trainable = False # Treinamento do modelo completo model. compile(loss=keras. losses. categorical_crossentropy, optimizer=Adam(lr=1e-4), metrics=[keras. metrics. categorical_accuracy]) # Criando gerador de dados from keras. preprocessing. image import ImageDataGenerator train_datagen = ImageDataGenerator(rescale=1. /255. , shear_range=0. 2, zoom_range=0. 2, horizontal_flip=True) train_generator = train_datagen. flow_from_directory( 'treino', target_size=(32, 32), batch_size=32, class_mode='categorical') # Treinando o modelo completo history = model. fit_generator(train_generator, steps_per_epoch=128, epochs=10) ``` # Classificação de Flores utilizando Modelo Sequencial Neste demo, vamos realizar a classificação de flores utilizando um modelo sequencial com Keras e Carass. Nossa modelo vai classificar entre cinco diferentes tipos de flores. Você pode executar este demo em qualquer plataforma ou interface de desenvolvimento Python, mas neste caso, vou usar Anaconda e Jupyter Notebooks. ## Pré-requisitos Antes de entrar em ação, verifique se os seguintes módulos estão instalados: - **numpy**, **pandas**, **matplotlib**, **Seaborn**, e **scikit-learn** ou **sklearn** - **TensorFlow** (pois isso é construído sobre TensorFlow) - **random** (para geração aleatória) - **cv2** (para processamento de imagens) - **tqdm** (para barra de progresso) - **Pillow** (outro processador de imagens) ## Importando Módulos Depois de instalar os módulos necessários, importe-os em seu script Python: ```python import numpy as np import pandas as pd import matplotlib. pyplot as plt import seaborn as sns from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler from keras. models import Sequential from keras. layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, BatchNormalization from keras. utils import to_categorical from keras. applications. vgg16 import VGG16 from keras. preprocessing. image import ImageDataGenerator ``` ## Preparação dos Dados Carregue suas imagens e rótulos a partir das pastas. ```python train_data_dir = 'caminho/para/sua/pasta de flores' # Defina as categorias de flores flower_categories = ['daisy', 'sol público', 'tulipa', 'tarimo', 'rosa'] labels = {} para cada categoria em flower_categories: path = os. path. join(train_data_dir, categoria) label_images = [os. path. join(path, img_name) por img_name in os. listdir(path)] labels[categoria] = comprimento(label_images) total_samples = soma(valores. keys()) print('Número de amostras por classe: ', labels) ``` ## Augmentação de Dados Utilize `ImageDataGenerator` para augmentação de dados. ```python # Crie uma instância de ImageDataGenerator datagen = ImageDataGenerator( rescale=1. / 255, rotation_range=20, width_shift_range=0. 2, height_shift_range=0. 2, shear_range=0. 2, zoom_range=0. 2, flip_horizontal=True, mode_de_preenchimento='nöbst' ) # Crie geradores de dados de treinamento e validação flowers = [] para cada categoria em flower_categories: path = os. path. join(train_data_dir, categoria) por cada imagem em os. listdir(path): image = load_img(os. path. join(path, img), tamanho=(150, 150)) img_array = img_to_array(image) expanded_image_array = np. expand_dims(img_array, eixo=0) flowers. append(expanded_image_array) flowers = np. concatenar(flowers, eixo=0) labels_num = [np. eye(len(flower_categories))[labels[categoria]] por categoria em flower_categories] labels = keras. utils. to_categorical(labels_num) datagen. fit(flowers) # Crie geradores de dados de treinamento e validação train_gen = datagen. flow(flowers, labels, batch_size=32) validation_gen = datagen. flow(flowers, labels, batch_size=32, shuffle=False) ``` ## Construção do Modelo Crie e treine seu modelo sequencial com Keras. ```python # Define o modelo base base_model = VGG16(pesos='imagenet', include_top=False, input_shape=(150, 150, 3)) # Crie o modelo model = Sequential() model. add(base_model) model. add(Flatten()) model. add(Dense(256, ativação='relu')) model. add(Dropout(0. 5)) model. add(Dense(len(flower_categories), ativação='softmax')) # Compile o modelo model. compile(perda='categorical_crossentropy', otimizador='adam', métricas=['acurácia']) # Treine o modelo model. fit(train_gen, validation_data=validation_gen, epochs=20, steps_por_época=300, steps_de_validação=100) ``` ## Avaliação do Modelo Finalmente, avalie seu modelo e salve-o. ```python # Carregue imagens de teste e rótulos test_data_dir = 'caminho/para/sua/pasta de imagens de teste de flores' test_images = [] test_labels = [] # Carregue as imagens de teste, da mesma forma que os dados de treinamento # Gere um gerador de dados de teste test_gen = datagen. flow(test_images, test_labels, batch_size=32, shuffle=False) # Avalie o modelo scores = model. evaluate_generator(test_gen, steps=len(test_labels) // 32) print('Perda de teste: ', scores[0]) print('Acurácia de teste: ', scores[1]) # Salve o modelo model. save('classificador_de_flores_modelo. h5') ``` Esse script mostra como realizar a classificação de flores utilizando um modelo sequencial em Keras, com processamento de dados, augmentação de dados e treinamento do modelo. Ele cobre as principais etapas de preparação de dados, augmentação de dados, definição e construção do modelo, compilação e treinamento do modelo, e avaliação dos resultados. # Documentação para a Rede Neural Convolucional (CNN) em Python usando TensorFlow Este documento fornece uma visão geral da criação e do treinamento de uma Rede Neural Convolucional (CNN) usando TensorFlow em Python. Os exemplos e explicações fornecidos aqui são baseados em um determinado conjunto de dados de flowers. ## Objetivo O objetivo deste documento é orientá-lo por meio do processo de construção, treinamento e utilização de uma CNN para classificar imagens de flowers. ## Pré-requisitos - Python 3. x - TensorFlow 2. x - Scikit-learn 0. 24. 2 - NumPy 1. 19. 5 ## Preparação de Dados - Crie um conjunto de dados contendo imagens de flores - Resize todas as imagens para 150 x 150 pixels - Normalize×{\_}os valores de pixel entre 0 e 1 para Redes Neurais ## Passos ### 1. Importar bibliotecas necessárias ```python import os import numpy as np import tensorflow as tf from sklearn. preprocessing import LabelEncoder from sklearn. model_selection import train_test_split ``` ### 2. Carregar e preprocessar dados - Carregue o conjunto de dados - Resize imagens para 150 x 150 pixels - Normalize valores de pixel entre 0 e 1 - Divida o conjunto de dados em conjuntos de entrada e de teste usando a função train_test_split ### 3. Definir a arquitetura da CNN ```python modelo = tf. keras. Sequential([ # Camada Convolucional 2D tf. keras. layers. Conv2D(filtros=32, tamanho do kernel=(5, 5), ativação='relu', reshape=(150, 150, 3)), # Camada de Redução Espacial tf. keras. layers. MaxPooling2D(tamanho do pool=(2, 2)), # Outra camada Convolucional 2D tf. keras. layers. Conv2D(filtros=64, tamanho do kernel=(3, 3), ativação='relu'), # Camada de Redução Espacial tf. keras. layers. MaxPooling2D(tamanho do pool=(2, 2)), # Camada de Aplanamento tf. keras. layers. Flatten(), # Camada Densa tf. keras. layers. Dense(128, ativação='relu'), # Camada Saída tf. keras. layers. Dense(num_classes, ativação='softmax') ]) ``` ### 4. Compilar o modelo ```python modelo. compile(ótimo='adam', perda='sparse_categorical_crossentropy', métricas=['acurácia']) ``` ### 5. Treinar o modelo ```python histórico = modelo. fit(X_treino, y_treino, épocas=10, batch_size=128, split de validação=0. 2) ``` ### 6. Avaliar o modelo ```python perda, acurácia = modelo. evaluate(X_teste, y_teste) ``` ### 7. Exemplos de populares ativações ! [Ativações do TensorFlow](https://miro.medium.com/max/700/1*Wwa-c4fJ3FlOk3lZcH7ZuA.png) ## Referências - [Redes Neurais Convolucionais (CNN) Explicadas](https://datascience.stackexchange.com/questions/31891/what-is-a-convolutional-neural-network-cnn-and-when-to-use-it) - [Ativações do TensorFlow](https://www.tensorflow.org/api_docs/python/tf/keras/activations) ## Recursos Adicionais - [Deep Learning com TensorFlow 2. 0 (2021)](https://www.udemy.com/course/deep-learning-with-tensorflow-2/) - [TensorFlow 2. 0: Data Science Handbook (2020)](https://jakevdp.github.io/PythonDataScienceHandbook/) Titulo Principal: Introdução ao Treinamento de Redes Neurais e Deep Learning =============== Seção 1: Fundamentos básicos da Rede Neural Artificial (RNA) ---------- Conteúdo: * Explicação breve da RNA * Componentes básicos de uma RNA * Funcionamento simples de uma RNA * Vantagens e desvantagens das RNAs Code snippet demonstrando a função de ativação simples de um neurônio: ``` function activate(x) { return max(0, x) } ``` Lista de Conhecimentos Pré-requisitos: * Compreensão básica de matemática linear e matemática aplicada * Lógica e estrutura de um computador Seção 2: Deep Learning: Introdução ao Convolução, RNN, GANs e outras tecnologias ----------------------------------------------------------------------------- Conteúdo: * Introdução ao conceito de deep learning * Tecnologias clássicas e modernas de deep learning * Demonstração de como fazer uma regressão multilayer na RNA usando a lib. de redes neurais Python, **TensorFlow** Demonstração de como se preparar uma imagem usando a RNA de Convolução (CNN): ```python import tensorflow as tf x_train = . . . y_train = . . . # Define uma função para o modelo def conv_net_model(inputs): # Conv2D layers # Flatten a layer # Dense layers model = tf. keras. Sequential() model. add(conv2d) model. add(. . . ) . . . model. compile(optimizer=. . . , loss='categorical_crossentropy', metrics=['accuracy']) model. fit(x_train, y_train, . . . ) ``` Seção 3: Teste e Modelos de Deep Learning ---------------------------------------- Conteúdo: * Conceitos de teste e validação de RNAs e deep learning * Demonstração da análise de resultados usando ferramentas como **roc_auc** e **f1_score** Código para se analisar os resultados da RNA de Convolução em um dataset simples: ```python import tensorflow as tf from sklearn. metrics import f1_score, roc_auc_score x_train, x_test, y_train, y_test = . . . model = tf. keras. Sequential() # Treina e testa a RNA no dataset loss, accuracy, predictions = model. evaluate(x_train, y_train) f1 = f1_score(y_test, predictions) auc = roc_auc_score(y_test, predictions) print(f'Accuracy: {accuracy: . 3f}') print(f'F1-Score: {f1: . 3f}') print(f'ROC AUC: {auc: . 3f}') ``` Seção 4: Implementação de Soluções em Projetos Práticos ------------------------------------------------------ Conteúdo: * Aplicando a RNA e deep learning a problemas de classificação e regressão de dados em diferentes aplicações e dataset * Conceito básico da rede neurális de Auto-encoders (Autoencoders) Exemplo de código para usar Autoencoders com a lib. TensorFlow para o reconhecimento de dados no dataset MNIST: ```python import tensorflow as tf import tensorflow. keras. layers as layers autoencoder = . . . encoder = autoencoder. layers[: -1] decoder = autoencoder. layers[-1] # Reconstrua os dados com a parte oculta encoded = encoder(X_train) reconstructed_x = decoder(encoded) ``` Seção 5: Extendendo conhecimento -------------------------------- Lista de temas para mais con Artificial Intelligence (IA) Curso de Visão Geral ------------------------------------------ Neste curso completo, abordaremos tudo o que você precisa saber sobre IA. Nossos instrutores experientes com boa experiência na indústria os guiarão por este curso. Aqui está o que você aprenderá: 1. Entendendo os princípios básicos da IA 2. Acompanhando o futuro da IA e insights de especialistas da indústria 3. As 10 aplicações top de IA em 2021 4. Entendendo aprendizado de máquina e os algoritmos utilizados para construir modelos de IA 5. Aprender sobre o aprendizado profundo, outro componente-chave da IA 6. As 10 tecnologias de IA em destaque em 2021 Inteligência Humana e IA ------------------------ Imagine uma máquina que organa sua guarda-roupa exatamente como você desejar ou sirva cada membro da família uma tachinha de café personalizada. Estes são alguns dos produtos da IA. No entanto, o termo "Inteligência Artificial" é usado para descrever máquinas que possuem inteligência artificial eficaz, incorporada artificialmente, para executar tarefas como nós. Essa inteligência é construída usando complexas algoritmos e funções matemáticas. No entanto, a IA não é sempre tão evidente quanto nos exemplos anteriores. A IA é usada em vários aspectos da nossa vida diária, dos smartphones aos feeds sociais, aos jogos, vigilância bancária e muito mais. Aprendizado Geralizado --------------------- Uma das capacidades-chave da IA é sua capacidade de aprender generalizado. Imagine um robô de IA que seja deixado em um campo com uma variação de iluminação, paisagem e dimensões. O robô deve realizar as tarefas pretendidas, adaptando-se a estas novas condições. Essa capacidade de reagir adequadamente a um novo cenário é chamada de aprendizado generalizado. Cruzamentos e Solução de Problemas -------------------------------- O robô está agora em uma cruzada, uma pavimentada e outra com rochas. O robô de IA deve determinarm qual caminho escolher com base nas circunstâncias, demonstrando sua capacidade de raciocínio. Após uma pequena caminhada, o robô encontra um riacho que não consegue nadar. Usando a madeira do alambique fornecida como entrada, o robô cruza o riacho, encontrando uma solução ao problema. Essas três capacidades - aprendizado generalizado, raciocínio e solução de problemas - fazem do robô artificialmente inteligente. IA Fraca e IA Fria -------------------- A IA é classificada em duas categorias amplas: 1. **IA Fraca** (ou IA Restrita) se concentra apenas em uma tarefa, como AlphaGo sendo um mestre da partida de Go. No entanto, não se espera que possa ser mesmo moderadamente bom em xadrez, tornando-a uma IA fraca. 2. **IA Fria** é semelhante aos robôs que existem apenas em ficção, como Ultron do *Avengers*. Isso porque ele é auto-consciente e eventualmente desenvolve emoção, tornando sua resposta in pré-visível. ### 🔥CURSO-ONLINE-IA-GRATUITO-SIMPLILEARN URL: https://www.youtube.com/watch?v=ktjJMDVtWKU O transcrição não está disponível. ### Curso IA | IA Completo | Tutoriais de IA | Simplilearn URL: https://www.youtube.com/watch?v=PXwUEJVSAeA Idioma: en --- **Inteligência Artificial** ou IA é uma das tecnologias mais em tendência do século 21. Neste vídeo, abordaremos todo o que você precisa saber sobre a IA. Nossos instrutores experientes com boa experiência na indústria nos levarão por este curso. Primeiro, você entenderá os princípios básicos da IA a partir de um curto vídeo animado. iremos acompanhar o futuro da IA e ouvir o que alguns dos especialistas da indústria, como Sundar Pichai, Jeff Bezos e Bill Gates, têm a dizer sobre a IA. Você verá as 10 aplicações top de IA em 2021, então vamos compreender sobre aprendizado de máquina e os algoritmos utilizados para construir modelos de IA. Vimos uma ideia do outro componente-chave da IA: aprendizado profundo, e aprenderemos sobre as 10 tecnologias de IA em destaque em 2021. Imagine uma máquina que organa sua guarda-roupa exatamente como você gostaria ou sirva cada membro da família uma tachinha de café personalizada. Estes são alguns dos produtos da IA. Por que usar o termo "Inteligência Artificial"? Essas máquinas são incorporadas artificialmente com inteligência humana para executar tarefas como nós. Essa inteligência é integrada com algoritmos complexos e funções matemáticas. Apenas a IA não é tão óbvia quanto nos exemplos anteriores. A IA é usada em smartphones, carros, feeds sociais, jogos, vigilância bancária e em vários outros aspectos da nossa vida diária. A real questão aqui é: o que a IA faz em seu núcleo? Aqui está um robô que construímos em nossa sala de experimentos, deixamos-o no campo com uma variação de iluminação, paisagem e dimensões. O robô de IA deve realizar as tarefas pretendidas, independentemente dessas condições. Essa capacidade de reagir de maneira adequada a um novo cenário é chamada de aprendizado generalizado. # Aplicações de Inteligência Artificial em 2020 Bem-vindo à sessão de aprendizagem `Simply Learn` sobre aplicação da Inteligência Artificial (IA) em 2020. Aqui estão algumas informações básicas sobre a Inteligência Artificial: **Inteligência Artificial (IA)** refere-se à inteligência exibida por máquinas que simulam a inteligência humana. Trata-se da capacidade de uma máquina ou programa de pensar e aprender. Agora que você está totalmente atualizado, vamos ver como as diferentes áreas estão utilizando a IA: ## Estado do Mercado da IA De acordo com a empresa de pesquisa de mercado Attractica, o mercado global de IA está previsto para alcançar uma receita de $118 bilhões até 2025. A Gartner também registra um aumento de 270% no uso de IA nos últimos quatro anos, o que indica um crescimento significativo nos anos a vir. Interessantemente, 87% das empresas que utilizam IA estão empregando-a para melhorar o marketing via e-mail. Potencialmente, um desenvolvimento positivo ou negativo, 75 países estão agora usando a tecnologia de IA para vigilância. ## IA no e-commerce No e-commerce, a IA oferece experiências de loja personalizadas graças a motores de recomendações que consideram a história do usuário, preferências e interesses, o que melhora as relações com o cliente e a lealdade, levando à um aumento de conversões. A IA também permite buscar imagens visuais, permitindo que os usuários encontrem itens sem precisar de digitar, e a IA-empowered assistance como assistentes virtuais de loja e chatbots melhoram as experiencias de usuário ao comprar on-line. ## IA em Robótica Na robótica, robôs-móveis poderosos pela IA podem manobrar através de obstáculos e planear seu percurso em tempo real. Esses robôs podem ser empregados para tarefas como gerenciamento de estoque, limpeza e manuseamento de equipamentos. A IA também pode ajudar com a otimização dos processos analisando dados de sensores para otimizar a inteligência da IA, impedindo quebre- downs innecessárias e reduzindo os custos associados. ## IA nas RH No domínio de RH, a IA é empregada para facilitar o processo de seleção eficiência com o software de seleção sem visão, que usa algoritmos de aprendizagem profunda para analisar todas as candidaturas baseadas em parâmetros específicos. Isso ajudará os recrutadores a entender a piscina de talentos que devem selecionar. ## IA na Saúde Na saúde, a IA é usada para o cuidado de pacientes para evitar erros de prescrição, identificar doenças com precisão e analisar imagens médicas para diagnóstico precoce de condições crônicas. A IA também é usada na pesquisa e desenvolvimento para descoberta de novos medicamentos e compreensão do gene humano e de seus componentes. ## IA na Agricultura Na agricultura, a IA é usada para monitorar a saúde do cultivo e da terra, identificar defeitos e falta de nutrientes em solo e diminuir o uso de agrotóxico. A IA também pode ser utilizada para botões agrícolas para colhenda de cultivo mais rápida e eficiente. ## IA no Entretenimento No entretenimento, a IA é usada para criar personagens NPC inteligentes human-like que interaja com os jogadores e predizer comportamento humano para melhorar o design e o teste do jogo. ## IA em Automóveis Nos automóveis, a IA é usada para automóveis autônomos e recursos de assistência do condutor como frenagem emergencial, supervisão de cegueira lateral e auxilio no controle de direção. ## IA na rede social Nas redes sociais, a IA é usada pela plataformas como Facebook, Instagram e Twitter para finalidades como análise de imagens, tratamento de ciberviolência, filtro de conteúdo inapropriado e automatização de publicação de imagens. ## IA no Marketing No marketing, a IA permite publicidade programática, narrativas personalizadas, interfaces de uso de usuário personalizadas, localização, chatbots e relatórios de campanha de performance. Agora falemos sobre o elefante na sala de aula: Você está usando um software de IA no seu trabalho? Conte-nos nos nossos comentários. Se você gostou de nossos vídeos de aprendizagem, considere inscrever-se no canal de envidados da Simply Learn para ficar atualizado sobre as tecnologias em tendência e clique no ícone peito para nunca perder uma atualização. Precisamos acreditar se alguém deixou de nós alguma aplicação de IA? Conte-nos nos nossos comentários abaixo! **Fontes: ** - [Mercado Global da IA (2020-2025)](https://www.attractica.com/artificial-intelligence-market/) - [Crescimento do uso da IA (2020)](https://www.gartner.com/smarterwithgartner/ai-artificial-intelligence-heatmap/ai-use-growth-by-vertical-industry-2021-gartner-survey) - [IA em Marketing via e-mail (2020)](https://www.salesforce.com/blog/2020/01/ai-email-marketing.html) - [Países que usam a IA para vigilância (2020)](https://www.businessinsider.com/countries-using-facial-recognition-surveillance-2019-12) - [IA no e-commerce (2020)](https://www.forbes.com/sites/forbesagencycouncil/2020/07/31/how-artificial-intelligence-is-powering-e-commerce/?sh=5f0d654e7e45) - [IA em Robótica (2020)](https://www.forbes.com/sites/forbesbusinesscouncil/2020/05/28/5-robotics-trends-revealed-by-ai-and-machine-learning/?sh=26de91bc3d9f) - [IA nas RH (2020)](https://www.forbes.com/sites/forbesbusinesscouncil/2020/05/07/the-future-of-hr-is-ai/?sh=7496c7d573a6) - [IA na Saúde (2020)](https://www.forbes.com/healthcare/health-it/ai-in-healthcare/?sh=524c07385382) - [IA na Agricultura (2020)](https://www.forbes.com/sites/forbesbusinesscouncil/2020/08/19/how-ai-can-revolutionize-agriculture/?sh=4b04256e4040) - [IA no entretenimento (2020)](https://www.forbes.com/sites/forbesgamercouncil/2020/05/28/how-artificial-intelligence-is-changing-the-video-game-industry/?sh=46f2c67df6f2) - [IA em Automóveis (2020)](https://www.forbes.com/Auto/autonomous-cars/autonomous-car-stocks/?sh=6b1d0e24d42c) - [IA na rede social (2020)](https://www.forbes.com/sites/rohitkumar/2020/08/13/how-social-media-companies-use-ai/?sh=50d99daa4f9c) - [IA no Marketing (2020)](https://www.forbes.com/sites/forbesagencycouncil/2020/05/27/5-specific-ways-marketers-use-ai/?sh=21911393a81c) # Inteligência Artificial: Transformando Nossas Vidas em 2020 e Além Escolha entre mais de 300 habilidades em alta demanda e obtenha acesso a 1, 000+ horas de conteúdo de vídeo gratuito. Visite [ScaleUp por Simply Learn](URL_URL) clicando no link de descrição para saber mais. ## O Que Está Facilitando a Nossa Vida? Imagine entrar em um carro, introduzir a sua destinação como entrada e ser deixado ao destino apenas sentado e relaxando através do percurso sem ter de fazer nada fisicamente. Whoa! A nossa vida se tornou tão simples com tudo o automatismo que estamos por cima na vida diária. O que acha que está acontecendo para que isso seja possível? Inteligência Artificial! ## Simplificando a Inteligência Humana A Inteligência Artificial, gracias à numerosas avançadas na tecnologia, está a trazer muitas alterações na nossa vida diária de rotina. Para impulsionar a inovação, a Inteligência Artificial utiliza o aprendizado de máquina, avançando um passo a mais. Então, o que significa exatamente por Inteligência Artificial a nível de termos simples? A Inteligência Artificial refere-se à simulação de uma máquina com inteligência humana e programá-la para pensar e agir como os humanos. A Inteligência Artificial, também conhecida como Inteligência de Máquina, está tão para além dos robots como são mostrados no cinema de ficção científica. Desde o algoritmo de pesquisa da Google até a Alexa da Amazon até ao Siri da Apple até ao carro automatizado, a Inteligência Artificial continua a seTopária para uma harmonia futura da tecnologia com o homem, o que reúne o melhor de ambos os mundos. Pois os máquinas são artificiosamente incorporados com inteligência humana e executam tarefas exatamente como os humanos, é denominado artificialmente de **Inteligência Artificial**, e foi citado na primeira vez em 1956. ## As Vantagens da Inteligência Artificial Os programas que foram desenvolvidos após a fundação da Inteligência Artificial foram verdadeiramente surpreendentes. Poderiam ver os computadores comprovar teoremas de geometria, solucionar problemas de algebra palavra a palavra, e muito mais entre os anos 1950 e 1970. Redes neurais emergiram a partir dos anos 80 até o último década e tomaram o mundo. Agora é a época da Learned deep, as vantagens da Inteligência Artificial nesta época undoubtedly. ### Segurança A Inteligência Artificial mudou a nossa vida em várias formas. Em primeiro lugar, temos a segurança. Existem vários campos como defesa, mineração, etc. , onde a saúde humana está em risco significativo. A Inteligência Artificial é o melhor segredo em estes campos, onde um robot ou um robotão faz a trabalho em vez de um humano. Com a invenção de carros automatizados, a Inteligência Artificial contribui para a segurança na nossa viagem com o diminuindo do número de acidentes de trânsito causados por humanos. ### Processamento e Reconhecimento da Língua Falando de processamento e reconhecimento da língua, a AI ajuda na comunicação eficaz já que é capaz de processar e compreender a língua falada pelos humanos. Também é capaz de compreender as palavras faladas por humanos e replicar na mesma maneira. Todo isso é possível devido à funcionalidade do assistente de voz que possui as máquinas do AI. ### Coberturas diárias Estamos rodeados por várias aplicações que funcionam com Inteligência Artificial. Deteção de impressões digitais, reconhecimento facial, GPS, Grammarly, todos isso funciona com Inteligência Artificial. O Google Maps calcula a congestionamento do tráffic para calcular a melhor rota para o destino, o que funciona com a Inteligência Artificial. Se é precisamente a nível de cálculos matemáticos, a reserva de bilhetes, a compra de produtos online, e o dirigir um carro, a Inteligência Artificial minimiza o contato humano e fornece vários serviços em todos os caminhos inesperados. ### Saúde A Inteligência Artificial é uma ferramenta promissora para apoiar a administração da saúde. À medida que aumenta o cenário de emergência de saúde global devido à expansão do vírus COVID-19, a Inteligência Artificial pode ajudar os profissionais de saúde e beneficiários a gestionar um grande volume de dados e transforma-los em informações potencialmente salvadoras. Um painel de saúde lançado pelo Oriente Médio relatou que a Inteligência Artificial é uma parte fundamental na luta contra a doença. Os sistemas de Inteligência Artificial estão sendo desenvolvidos para prever as temperaturas e taxas de sobrevivência com mais de 90% precisão. ### Robots Uma das mais increíveis invenções realizadas pelos humanos que pensa inteligentemente e executa autonomamente é um robot. Os robots de desinfecção estão prestes a desempenhar um papel significativo neste momento incerto. Os robos que esfregam a luz UV a rodem pelas instalações de saúde inspiram-se no ambiente contaminado por vírus. ## Inteligência Artificial: Um Alfardaga A Inteligência Artificial tem percentual de inteligência total que é de 95%, o restante é constituído pela inteligência humana. Mais à parte do AI versus human, a Inteligência Artificial tem um impacto positivo e negativo sobre nós e a sociedade. De acordo com algumas mais recentes investigações, sete milhões de postos de emprego existentes serão substituídos pela AI no Reino Unido entre 2017 e 2037, mas ao mesmo tempo, 7, 2 milhões de postos de emprego podem ser criados também. Um estudo do McKinsey Global Institute indica que, até 2030, as automatizações podem remover 400 a 800 milhões de postos necessitando de 375 milhões de pessoas trocarem de cateгоria de工作 entirely. Isto é uma causa de medo, preocupação e preocupação em vários países vulneráveis. O desafio maior é como as pessoas permanecem para viver nessas mudanças e incertezas. O Google CEO Sundar Pichai tem declarado que a AI será mais transformadora para o ser humano do que a eletricidade já foi. O Google mesmo lançou um sistema AI, que derrotou alguns dos melhores jogadores de Atari 2600. Tudo o que você sabia que o melhor jogador de xadrez no mundo era uma máquina? Como seria quando o melhor médico no mundo seria um computador? o melhor professor seria um computador. o melhor arquiteto seria um computador, e o melhor de vários departamentos seria vários computadores e robots. Uma D consequências implicadas é que os robôs irão substituir alto comissões em locais de comida rápida e oficinas de radiologia em hospitais algum dia. A Inteligência Artificial irá diagnosticar o seu câncer e seu robo irá realizar a sua cirurgia. Não demorará muito para que um computador seja superior em todos os campos de competição. ## Os Perigos da Inteligência Artificial Elon Musk sugere que a AI é nossa amenaça existencial mais grande. A Inteligência Artificial pode nos prejudicar em dois modos diferentes: a ideia de que a AI vai tornar-se consciente e responsativo e buscar a extinção laboral de humanos, e a ideia de que as pessoas com mãos maus podem transformar esta AI em uma ferramenta para fins malignos. Se uma AI muito inteligente se tornar-se superior a nós ele poderá olhar para os humanos como os humanos olham para macacos. As pessoas são assustadas com a AI pelas imagens que vemos no cinema como 2001: A Space Odyssey, Terminator, Matrix e alguns outros. Estes filmes especulam sobre a AI que ultrapassa as aspirações de seus criadores e escapa de seu controle de vez. ## Conclusão A Inteligência Artificial é uma espada dupla. De um lado, estará transformando o mundo em maneiras que nunca pensámos. Do outro, teve levantado muitas preocupações e questões éticas. Como cientistas e desenvolvedores do campo da AI, é essencial que compreendamos todos os riscos potenciais e trabalhemos para a criação de um mundo onde a AI beneficia toda a humanidade. A luz da segurança e do ético da IA ao recolher, a chave para uma IA segura e ética aparentemente está na criação de sistemas transparentes, na implementação de protocolos de segurança robusta, e na promoção de conscientização e educação para todos os usuários e estakeholders envolvidos. Em vez de abater a corrida com esta tecnologia, devemos **entender** esta tecnologia revolucionária e garantir que ela é usada corretamente para melhorar as nossas vidas. # Visão Geral Compreensiva da Inteligência Artificial Bem-vindo! Se você tiver interesse em dominar a Inteligência Artificial (IA) e aprender sobre aprendizado de máquina, talvez queira verificar o programa de pós-graduação em IA e aprendizado de máquina da SimplyLearn, em parceria com a Universidade Purdue. Neste artigo, vamos fornecer uma breve história, tipos, aplicações e um olhar para o futuro da Inteligência Artificial. ## História da Inteligência Artificial John McCarthy cunhou o termo "Inteligência Artificial" em 1956 e organizou a primeira conferência sobre IA. Em 1969, Shakey, o primeiro robô de propósito geral móvel, foi criado, marcando um marco importante na processamento de dados de forma diferente. Embora simples pelos padrões atuais, Shakey era capaz de executar tarefas com propósito, como acender luzes e mover caixas em uma sala. Em 1997, o Deep Blue, um supercomputador desenvolvido pela IBM, derrotou o campeão mundial de xadrez numa partida. Isso foi o primeiro caso em que um computador usou lógica para vencer um humano num jogo lógico. Em 2002, vimos a liberação do primeiro robô aspirador de pó comercialmente bem-sucedido. Hoje, temos reconhecimento de fala, RPA, robôs que dançam, casas inteligentes e mais. É importante ressaltar que o tempo entre 1956 e o presente se comprimiu significativamente. Por exemplo, idéia em 1956, capacidade de acender e apagar luzes em 1969, derrota do campeão mundial de xadrez em 1997, e aspiradores robôs comercialmente bem-sucedidos apenas quatro anos depois. ## O Que é a Inteligência Artificial? A IA é uma forma de ciência da computação utilizada para criar máquinas inteligentes que podem reconhecer fala humana, aprender, planejar e resolver problemas como os seres humanos. As máquinas IA podem resolver problemas como os seres humanos, como demonstrado pelo computador derrotando o campeão de xadrez em vez do computador que simplesmente poderia acender e apagar luzes em uma casa. ## Tipos de Inteligência Artificial 1. Reativo puro: Máquinas que não têm memória ou dados do passado para trabalhar, tomando ações baseadas apenas no que podem ver agora. Essas máquinas especializam-se apenas em um campo de trabalho específico. 2. Memória limitada: Máquinas que usam dados anteriores e adicionam-nos à sua memória para tomar decisões corretas. São limitadas em sua capacidade de prever novas localizações ou fazer adivinhas. 3. Mente (em desenvolvimento): IA com a capacidade de entender pensamentos e emoções e interagir socialmente. Este tipo de IA está ainda em fase de desenvolvimento. 4. Autocognitiva (não criada ainda): Gerações futuras de máquinas que serão super-inteligentes, sentientes e conscientes. ## Aplicações da Inteligência Artificial - Bancário: Deteção de fraude e tomada de decisões de empréstimos - Assistência ao Cliente: Suporte online automatizado - Cibersegurança: Deteção de anomalias e resposta a ameaças - Assistentes Vitrais: Reconhecimento de fala e seguimento de comandos do usuário (por exemplo, Siri, Cortana, Alexa, Google Now) ## O Futuro da Inteligência Artificial - Transporte autom # Automação e Aprendizagem de Máquina: Entendendo o Engagement Bait de Facebook e o Projeto Alphago da Google's DeepMind ## O Problema do Engagement Bait do Facebook Dependendo de onde esteja e o que precisar, vamos discutir sobre a automação total ou o mundo em que vivemos. Enquanto vamos mais profundamente, temos um excelente exemplo da Facebook – você pode ver aqui que eles possuem um post de Facebook de Halloween com comentário. Se quiser, pode fazer a ordem aqui. Ninguém gosta de posts de spam em Facebook que o annam a interagir com likes, compartilhamentos, comentários e outras ações. Lembro-me dos originais que eram todas "se você não clicar aqui, você terá mau sorte" ou algum tipo de fator de medo. Isso é um grande problema na mídia social quando as pessoas estiverem sendo spamadas, e assim este tática chamada de engagement bait aproveita a algoritmo de feed de notícias do Facebook escolhendo a engajamento a fim de obter alcançar um alcance maior. Para eliminar o engagement bait, a empresa revisou e categorizou centenas de milhares de posts para treinar um modelo de aprendizagem de máquina que detecta diferentes tipo de engagement bait. Então, no caso, temos: ``` * Usando o Facebook * Este é, claro, ao redor de todos os diferentes meios sociais * Elas estão construindo diferentes ferramentas * O gif de scroll do Facebook será substituído, praticamente como um vírus sendo introduzido lá * Eles possuem o vote baiting, react baiting, share baiting, estão construindo todos esses diferentes títulos gerais * Mas não existe uma quantidade limitada de maneiras de baitar para vai clicar nele e clicar em algo ``` Eles aplicaram tudo esse dado no máquina, e depois temos o novo post que substitui parte da configuração do Facebook. Isso é o que você está vendo – você está vendo esse novo post que substitui como se um vírus tivesse substituído esse. Para eliminar isso, o Facebook começa a procurar palavras-chave e frases como isso e verifica a taxa de clique. Começa a procurar pelaqueles que estão cliccando através dele sem mesmo olhar ou clicando através dele, e não é algo que normalmente seria clicado através. Quando o Facebook procura por essas palavras-chave e frases, é agora capaz de identificar a spam, fazendo com que sua vida seja mais fácil, para que você não seja spamado. ## O Projeto Alphago da Google's DeepMind Isso aconteceu ao ano passado, e o que o faz tão importante é que o Go é apenas um jogo, portanto, não é como você está dirigindo um carro ou algo no nosso mundo real, mas eles estão usando os jogos para aprender a fazer com que o programa de aprendizagem de máquina aprenda. O que quero é que ele aprenda a aprender, e isso é um passo enorme. A maior parte disso é ainda na sua fase inicial de desenvolvimento. Como vimos o que aconteceu com o setor de automôveis da Uber, que perdeu sua divisão inteira por ter p발ėntado demais, portanto, isso ainda é uma fase inicial. Mas aí, é como o início de um mundo fantástico que é automatizado de maneiras que allowedevamos imaginar. Qual será o amanhã? Vejamos se podemos dar uma definição uma pãle um tanto mais concreta da Aprendizagem de Máquina: ``` # Aprendizagem de Máquina Aprendizagem de Máquina é a ciência de fazer com que os computadores se pareçam com os humanos ao oferecer dados e informações sem ser explicitamente programado. Aqui temos uma Ótima little diagram: ! [Diagrama](url-para-seu-diagrama. com) Nesse diagrama: 1. Define Objective: é extremamente importante saber o que é que se deseja prever. 2. Collect Data: Depois que se define um objetivo, é necessário coletar dados que correspondem. 3. Prepare Data: certifique-se de que seus dados estão limpos. 4. Selecione o Algoritmo: escolha o algoritmo que usará. 5. Treine o Algoritmo: é estranharia treinar esse algoritmo. 6. Teste Modelo: esse modelo funciona? 7. execute Predição: queremos executar sua previsão ou sua escolha ou algum tipo de saída que está gerado. 8. Empregue o Modelo: uma vez que tudo está ajustado e você fez muitos testes, queremos prosseguir e implantar o modelo. ``` No aprendizado de máquina, existem diferentes tipos de tarefas: * Classificação: classificando coisas * Regressão: predizer uma quantidade * Anomalia Detectado: detectando anomalias * Agrupamento: descoberta de estrutura em dados não explorados Estas são divisões básicas, mas são muito importantes saber por exemplo. . . Continuaremos com exemplos concretos e diferentes tipos de Aprendizagem de Máquina no próximo parte deste tutorial. Fique atento! 🇵🇹 # Investindo no Mercado de Ações: Um Guia para Aplicações de Aprendizado de Máquina A investida no mercado de ações pode ser um desafio difícil, dada a sua inherente volatilidade e imprevisibilidade. Aqui estão algumas insights importantes sobre o papel do aprendizado de máquina nas ações, organizadas em seções claras e mantidas no formato Markdown. ## Visão Geral do Mercado de Ações - **Dificuldade**: O mercado de ações é difícil de prever devido às suas constantes oscilações. - **Oscilações**: O mercado de ações pode ser comparado a um passeio noação de um passeio no Madeira, uma vez que frequentemente experimenta alterações sudden. ## Aprendizado de Máquina no Mercado de Ações - **Papel do Aprendizado de Máquina**: O aprendizado de máquina pode ajudar a analisar tendências no mercado e tomar decisões de investimento informadas. - **Coleta de Dados**: Aplicar aprendizado de máquina no mercado de ações requer a coleta contínua e análise de dados. ### Aprendizado Supervisionado e Aprendizado Não-Supervisionado - **Aprendizado Supervisionado**: Este tipo de aprendizado de máquina envolve dados etiquetados e feedback direto. No contexto da investida, isto significa que o modelo é treinado para identificar padrões usando dados históricos e gerar previsões baseado nos dados novos. - **Aprendizado Não-Supervisionado**: Neste tipo de aprendizado de máquina, o modelo de aprendizado de máquina descobre padrões em dados não etiquetados. Esta abordagem é útil nos casos em que a natureza dos dados não está claramente definida ou onde o objetivo é classificar os dados com base em características partilhadas. #### Um Exemplo de Aprendizado Não-Supervisionado: Agrupamento de Preços de Ações 1. Em aprendizado não-supervisionado, um modelo de aprendizado de máquina agrupa preços de ações semelhantes juntos para descobrir padrões e tendências. 2. Em vez de explicitamente dizer ao modelo o que uma sucessão, um triângulo ou quadrado é, ele os examina e agrupa os elementos semelhantes baseados em características como ter mais ou menos cantos. #### Aplicações de Marketing 1. Agrupando pessoas com base nos seus hábitos de compras, podemos identificar semelhanças comuns entre potenciais clientes. 2. A compreensão dassemelhanças nos nos dispor a marketingar de maneira mais eficaz para clientes potenciais que ainda não se tornaram clientes de nossa loja, mas que configuram um perfil demográfico de comprador provável. ## Aprendizado de Reforço - **Definição**: O aprendizado de reforço é um tipo de aprendizado de máquina em que um agente aprende a agir em um ambiente tocando ações e experimentando os resultados. - **Aplicações**: Atualmente, o aprendizado de reforço é o maior pedido da indústria de aprendizado de máquina, especialmente em suas fases iniciais. #### Um Exemplo de Aprendizado de Reforço 1. O aprendizado de reforço é ilustrado pelo exemplo de uma bebé aprendendo a evitar um fogo. 2. Neste cenário, a bebé (o agente) toma uma ação (abordando o fogo) e o ambiente reage com uma consequência (a bebé queimadura). 3. Baseados no feedback negativo, a bebé aprende a evitar o fogo no futuro, demonstrando uma forma básica de aprendizado de reforço. ## O futuro do Aprendizado de Máquina nas Ações - **Entendimento sobre o Aprendizado Supervisionado e o Aprendizado Não-Supervisionado**: O entendimento das diferenças entre aprendizado supervisionado e aprendizado não-supervisionado é essencial para o desenvolvimento de modelos de aprendizado de máquina eficazes. - **Algoritmos de Aprendizado de Máquina Chave**: Alguns algoritmos de aprendizado de máquina importantes incluem regressão linear, árvores de decisão e suporte vectorial de máquina. - **Regressão Linear**: Um algoritmo bem conhecido usado para modelar a relação entre as variáveis de entrada e uma única variável de saída. É útil para previssão de resultados baseado em dados. Exemplos e visualizações de cada algoritmo podem ajudar a ilustrar suas aplicações e eficácia. Com uma compreensão sólida dessas ideias, você estará apto a abordar projectos envolvendo aprendizado de máquina. # Introdução à Análise de Regressão Linear --------------------------------------------- ### Pré-requisitos - Entendimento básico de equações de regressão linear e otimização da função de erro - Conhecimento de Markdown para formatação ### Conceito de Análise de Regressão Linear Uma introdução à regressão linear é um modelo para se prever uma variável dependente (`y`) utilizando uma ou mais variáveis independentes (`x`). É um dos modelos mais básicos em estatística, porém é útil para ajudar a compreender o comportamento dos dados e a identificar as relações entre eles. Por padrão, para modelos univariados, é utilizada a equação de regressão linear do tipo `y = mx + c`. #### Habilidades obtidas - Entender a estrutura de um modelo de regressão linear - Visualizar e interpretar gráficos de uma regressão linear - Utilizar a equação de regressão linear para prever valores de `y` #### Ferramentas necessárias - Editor de código (IDE) - Python - Libs (Scikit-learn, Matplotlib, Seaborn) #### Conteúdo 1. Introdução 1. 1 Função de erro 1. 2 Técnicas de otimização 2. Regressão Linear Simples — Um updating dos dados 2. 1 Importando um conjunto de dados 2. 2 Build do modelo e otimização 2. 3 Formato dos dados 2. 4 Análise de um gráfico e das estatísticas de predição 3. Otimizando a Regressão para múltiplas dimensões 3. 1 O que é Regressão Múltipla 3. 2 Adicionando variáveis no modelo 3. 3 Análise de um gráfico de múltiplas variáveis 4. Conclusão 4. 1 Conclusões preliminares 4. 2 Redesenhado: O que realmente foi previso 4. 3 Considerando o erro e a obsessão com o modelo 5. Decision Trees 5. 1 Introdução a Decision Trees 5. 2 Aplicando o algoritmo aos dados 5. 3 Interpretação de um Decision Tree ### Referências - Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd ed. , Aurelien Geron, 2019 #### Fontes de dados & Links - https://en.wikipedia.org/wiki/Multiple_linear_regression - https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html - https://seaborn.pydata.org/tutorial/color.html ```python # Importando bibliotecas necessárias import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt from sklearn. linear_model import LinearRegression # Carregando o dataset para previsão de ganhos de empresas data = pd. read_csv("empresa. csv") # Exibindo um pequeno subset dos dados data. head() # Definindo as variáveis e o label para o modelo X = data[['RD', 'administracao', 'marketing']] y = data['Ganhos'] # Build do modelo de regressão model = LinearRegression() model. fit(X, y) # Entradas para a predição do valor dos ganhos, saídas da previsão do valor dos ganhos x_new = [[X. min(), 1, X. max()]] y_pred = model. predict(x_new) #Visualizando o gráfico da regressão plt. scatter(X. iloc[: , 0], y) plt. plot(X. iloc[: , 0], y_pred, label='Previsão') plt. title('Regressão Linear') plt. xlabel('RD (R$\$$)') plt. ylabel('Ganhos (R$\$$)') plt. legend() # Visualizando relatórios de estatísticas de modelo print(model. coef_) print(model. intercept_) ``` ```string # Carregando o dataset para classificação de dados de jogadas de golfe data_golf = pd. read_csv("golf. csv") # Explorando os dados sns. countplot(y = data_golf["Y"], hue = data_golf["Outlook"]) # Split dos dados X = data_golf. drop(["Outlook", "PlayGolf"], axis=1) y = data_golf["PlayGolf"] # Trocando as categorias de 'Outlook' para numeros para otimizar o código e o resultado obtido X["Outlook"] = pd. Categorical(X["Outlook"]) encoded = pd. get_dummies(X["Outlook"], drop_first = False) X = pd. concat([X, encoded], axis = 1) X. drop("Outlook", axis = 1, inplace = True) # Building e otimização do modelo model = DecisionTreeClassifier(random_state = 1) model. fit(X, y) # Avaliando o modelo print(model. score(X, y)) ``` ```yaml # Salvando o modelo pickle. dump(model, open("model_golf. pkl", "wb")) # Carregando o modelo treinado load_model = pickle. load(open("model_golf. pkl", "rb")) # Usando o script com dados novos # Carregando o dataset testing data_teste_golf = pd. read_csv('golf_teste. csv') X_test = data_teste_golf. drop(["Outlook", "PlayGolf"], axis=1) X_test = pd. concat([X_test, encoded], axis = 1) X_test. drop("Outlook", axis = 1, inplace = True) # Previsões y_pred = load_model. predict(X_test) # Visualizando os resultados sns. countplot(x = np. where(y_pred == True, "Sim", "Não"), hue=y_teste_golf["Outlook"]) ``` Agora que chegaram ao fim do curso, voçê pode entender melhor a análise de regressão linear, assim como os conceitos básicos de decision trees, incluindo entropia e ganho de informação. Você também aprendeu a utilizar as bibliotecas de ``Seaborn`` e ``Matplotlib`` para visualização de dados e a ``Scikit-learn`` para implementar os algoritmos. Para seguir mais profundamente os conceitos abordados neste curso é recomendado explorar a documentação das bibliotecas mencionadas acima e, caso haja interesse, continuar estudando sobre tópicos referentes a machine learning lineares. Mantendo as regras de formatação e conteúdo solicitadas, o texto foi corrigido e formatado a seguir. ```markdown # Python para Regressão Linear: Um Guia Básico ## Introdução Utilize seu IDE de preferência do Python, como por exemplo o Jupyter Notebook. A seguir, importaremos as bibliotecas necessárias para este projeto. ```python import numpy as np import pandas as pd import matplotlib. pyplot as plt import seaborn as sns # matplotlib inline ``` ## Carregando o Dataset Vamos carregar o dataset utilizando `pd. read_csv`. Neste caso, estávamos utilizando o dataset de 1000 empresas. Você deve alterar o caminho do arquivo para corresponдер à sua situação. ```python empresas = pd. read_csv('caminho/1000_empresas. csv') ``` ## Visualizando e analisando os dados Vamos ilustrar e analisar nossos dados utilizando a biblioteca `matplotlib` e `seaborn`. ```python # Visualizando nossos dados plt. figure(figsize=(10, 8)) sns. pairplot(empresas, hue='país') # Plotando o gráfico dos valores totais (sum) de R&D spend, Administration spend e Marketing spend para cada país sns. boxplot(data=empresas, x='país', y=['R&D spend', 'Administration spend', 'Marketing spend'], palette='deep') ``` ## Preparando os dados para seguir adiante Nesta seção, exploraremos os dados e convertaremos as colunas categóricas em variáveis numéricas para que possamos usá-las no nosso modelo. ```python # Convertendo a coluna 'país' para numérica empresas['país'] = pd. factorize(empresas['país'])[0] # Splitando as variáveis independentes (X) e dependentes (y) X = empresas. iloc[: , 1: ] y = empresas. iloc[: , 0] ``` ## Criando o modelo de Regressão Linear Agora vamos criar e treinar o nosso modelo Regressão Linear. ```python from sklearn. linear_model import LinearRegression modelo = LinearRegression() modelo. fit(X, y) ``` ## Avaliando o modelo Agora vamos verificar quanto o modelo ajustou os dados utilizando métricas de avaliação. ```python # Verificando a precisão do modelo print('Erro quadrático médio: ', modelo. mean_squared_error(y, y_pred)) print('R² do modelo: ', modelo. score(X, y)) ``` # Modelagem de Regressão Linear para Previsão de Replicação de Empréstimos ## Introdução Neste tutorial, vamos aprender a construir um modelo de regressão linear para prever a replicação de empréstimos. Após definir as variáveis, vamos criar um modelo de regressão linear e utilizar-o para prever os lucros de uma empresa. ## Divisão do conjunto de treino e teste Primeiro, precisamos realizar a divisão do conjunto de treino e teste. Vamos utilizar a função `sklearn. model_selection. train_test_split` para isso. ```python from sklearn. model_selection import train_test_split # Define os dados de entrada (x) e os dados de saída (y) x = . . . # Seus dados de entrada aqui y = . . . # Seus dados de saída aqui # Defina o tamanho de teste para 20% e o estado aleatório para 0 test_size = 0. 2 random_state = 0 # Realize a divisão do conjunto de treino e teste nos dados x_treino, x_teste, y_treino, y_teste = train_test_split(x, y, test_size=test_size, random_state=random_state) ``` ## Criação do modelo de regressão linear Agora vamos criar um modelo de regressão linear usando a classe `sklearn. linear_model. LinearRegression`. ```python from sklearn. linear_model import LinearRegression # Crie um modelo Linear Regression regressor = LinearRegression() ``` Ajuste os dados ao modelo de Regressão Linear com dados de treino. ```python regressor. fit(x_treino, y_treino) ``` ## Resultados de predição do conjunto de teste Agora usaremos o modelo treinado para fazer previsões no conjunto de teste. ```python y_previsoes = regressor. predict(x_teste) ``` ## Exibição de Coeficientes e Intercepto Voce pode ver os coeficientes e intercepto do modelo chamando a propriedade apropriada. ```python coeficientes = regressor. coef_ intercepto = regressor. intercept_ ``` ## R-Squared Calcula a pontuação R-squared para avaliar a boa aptidão de ajuste do modelo. ```python from sklearn. metrics import r2_score r2_score_valor = r2_score(y_teste, y_previsoes) ``` ## Classificador de Árvore de Decisão para Previsão de Replicação de Empréstimos Agora vamos proceeder a construção de um classificador de árvore de decisão para previsão de repagamento de empréstimos. ### Importando as Bibliotecas necessárias Começe inicialmente importando as bibliotecas necessárias. ```python import numpy as np import pandas as pd from sklearn. model_selection import train_test_split from sklearn import tree from sklearn. metrics import accuracy_score ``` ### Carregamento dos Dados Carregue seus dados de empréstimos e prepare-os para análise. ### Divisão do Conjunto de Dados Faça a divisão do conjunto de dados entre treino e teste. ```python treino, teste, rotulas_treino, rotulas_teste = train_test_split(dados, rotulas, test_size=0. 2, random_state=0) ``` ### Criação do Classificador de Árvore de Decisão Crie um classificador de árvore de decisão usando a classe `tree. DecisionTreeClassifier`. ```python arvore_de_decisao = tree. DecisionTreeClassifier() ``` ### Fit do Modelo Ajuste o modelo ao conjunto de treino. ```python arvore_de_decisao. fit(treino, rotulas_treino) ``` ### Predição Faça previsões com o conjunto de teste usando um modelo treinado. ```python predicoes_teste = arvore_de_decisao. predict(teste) ``` ### Scores de Precisão Calcule a precisão do modelo usando a função `sklearn. metrics. accuracy_score`. ```python precisao = accuracy_score(rotulas_teste, predicoes_teste) ``` E assim é que você consegue um modelo de regressão linear e classificador de árvore de decisão de previsão de repagamento de empréstimos. Sinta-se a vontade para explorar estes modelos ainda mais e encontrar melhorias opcionais! Boa sorte! 🤝 # Documentação Técnica em Markdown ## Visão Geral Neste documento, vamos explorar a análise de dados de empréstimos usando Python e as ferramentas do Pandas. ## Exibindo a quantidade e a forma dos dados Começaremos por exibir a quantidade e a forma dos dados, utilizando a função `len()` para a quantidade e a função `shape` do Pandas para a forma. ```python # Exibindo a quantidade de dados print(len(data)) # Exibindo a forma dos dados print(data. shape) ``` ## Explorando os dados usando o Pandas Agora, vamos explorar os dados usando o Pandas. Primeiro, vamos usar a função `head()` para exibir as primeiras linhas dos dados. ```python # Exibindo as primeiras linhas dos dados print(data. head()) ``` ## Separando os dados para treinamento e teste Para treinar nossa árvore de decisão, precisaremos separar os dados em duas partes: um conjunto de treinamento e um conjunto de teste. ```python # Separando os dados em duas partes x_train, x_test, y_train, y_test = train_test_split(data. values, target, test_size=0. 3, random_state=100) ``` ## Criando a árvore de decisão Agora, vamos criar a nossa árvore de decisão usando a classe `DecisionTreeClassifier` do sklearn. ```python # Criando a árvore de decisão clf = DecisionTreeClassifier(random_state=100, max_depth=3, min_samples_split=5) # Treinando a árvore de decisão clf. fit(x_train, y_train) ``` ## Aplicando a árvore de decisão Agora, vamos aplicar a nossa árvore de decisão para fazer uma previsão. ```python # Fazendo uma previsão y_pred = clf. predict(x_test) ``` ## Avaliando a acurácia da árvore de decisão Por fim, vamos avaliar a acurácia da nossa árvore de decisão usando a função `accuracy_score()` do sklearn. ```python # Avaliando a acurácia da árvore de decisão print("Acurácia: ", accuracy_score(y_test, y_pred)) ``` ## Conclusão Neste documento, aprendemos a explorar dados de empréstimos usando Python e as ferramentas do Pandas. Adicionalmente, aprendemos a criar e aplicar uma árvore de decisão para prever se um empréstimo será pagado ou não. Por fim, avaliamos a acurácia da nossa árvore de decisão. # Aviso de tradução: esta texto mantém a estruturação de marcação de Markdown, enquanto preserva o idioma português europeu com termos técnicos em inglês intactos. Não há correção de gramática ou estertos do idioma em si, porém apenas a reprodução do texto original mantendo a sua formação em Markdown. ## Agrupamento: Introdução O texto seguinte oferece uma visão geral do conceito de agrupamento, se focando no Clustering de K-Meios como ferramenta utilizada frequentemente na aprendizagem automática. ## O que é Agrupamento? O agrupamento é o processo de agrupar objetos em grupos de acordo com a sua similaridade. Este processo se mostra especialmente útil ao se trabalhar com dados não etiquetados, sendo possível aos dados dividir de uma forma mais eficiente para um analisis mais profundo apesar da necessidade de determinar a origem da catequêse das partes sem anteriormente ter ela estabelecida. ## Clustering de K-Meios O Clustering de K-Meios é um algoritmo de agrupamento popular no aprendizado automático. Pertence a categorias de algoritmos de aprendizagem não supervisionado, uma vez que o sistema deve dividir as entradas, não havendo predefinição prévia para que estas assegue qualquer catêgoria particular. Este agrupamento tem lugar à luz das características mais semelhantes nas informações tratadas, denominas diferentes aspectos. ## Passos para o Clustering de K-Meios 1. Selecionar o número de grupos a agrupar (k). 2. Atribua centros gerais randómicos para estes grupos. 3. Cáculo de distâncias entre as partes a serem agrupadas e respectivos centros gerais de cada grupo – formação de novos grupos em vista das menores distâncias – actualizar novos centros gerais. 4. Repete os passos 3 e 4 várias vezes até que o centro género das entradas encaminhadas para a finalidade não modifique, indicando então a sua convergência. Nessa altura o Clustering de K-Meios encontra-se completado. ## Exemplo: Agrupamento de K-Meios em dados de conjunto Suponhamos ter à disposição um conjunto de dados de sete individuos, cada qual dotado de resultados relativamente a duas matérias A e B. Aos fins do K-Means Clustering: 1. Elege as pontas que são mais longeadas como os centros iniciais do grupo – método seletivo ao acrescentar algum grau de critérios próprios de saber que partes formarão partes próximas entre si - alternativa inicial em fazer-se manualmente através do conhecimento pré-existente quanto a essas dadas. 2. Assigna cada dado ao mais próximo grupo a este respeita em termos de distâncias do centro. 3. Calcular novas localizações médias do grupo. 4. Compara cada uma das distâncias entre um elemento particular à sua própria media interna com aquela de referência com uma média distinta no lado oposto dos grupos; realizar, em função das medias mencionadas, realizar, por exemplo, uma correcção em respeito do centro que vai sobrar os mais próximos dos dados, repetir até os grupos terem estabilidade. ## A Escolha Certa de k Para algoritmos do tipo Clustering de K-Meios, seleccionar corretamente o número adequado de grupos para serem analisados é crítico no assunto das respostas optimas. Utiliza-se o Método de joelhos como forma de se determinar a quantidade certa de grupos. - Consiste de uma série de agrupamentos com diversos números de grupos # Preparação de Dados e Agrupamento de Clusters usando Python ## Introdução Neste guia, vamos guiar você pelos passos para limpar, preparar e agrupar um conjunto de dados de carros usando Python, com o objetivo de agrupar diferentes tipos de carros com base em suas características. Os passos abordados aqui se concentrated na utilização das bibliotecas `pandas` e `sklearn` em Python. ## Preparação Primeiramente, vamos importar as bibliotecas necessárias e carregar nosso conjunto de dados de carros em um DataFrame chamado `x`. ``` import pandas as pd # Carregar o conjunto de dados de carros x = pd. read_csv('car_data. csv') ``` ### Conversão para Inteiros Como há múltiplos inteiros no dataset, vamos converter as colunas restantes (exceto a última, que contém os modelos) para inteiros para manter a consistência nos nossos dados. ``` # Converter todas as colunas para inteiros x = pd. DataFrame(x. apply(pd. to_numeric, errors='coerce')). dropna() ``` ### Remoção da Última Coluna Em seguida, vamos remover a última coluna (que contém os modelos), pois nosso foco é agrupar os carros com base em suas características. ``` # Remover a última coluna (models) x = x. iloc[: , : -1] ``` ### Remoção de Colunas de Cadeia de Caracteres e Conversão das Colunas Restantes para Númericas Talvez algumas colunas ainda estejam armazenadas como cadeias de caracteres. Vamos convertê-las para númericas usando a função `convert_objects()` de pandas. ``` # Converter colunas de objetos para números x = x. convert_objects(convert_numeric=True) ``` ### Remoção de Valores Nulos Em seguida, removemos quaisquer valores nulos, em branco ou NaN do nosso conjunto de dados. ``` # Remover quaisquer valores restantes nulos x = x. dropna() ``` ## Agrupamento Agora, usando `sklearn`, vamos realizar agrupamento de k-means no conjunto de dados pre-processado para agrupar carros semelhantes juntos com base em características comuns. ### Importar o Agrupamento de k-Means ``` from sklearn. cluster import KMeans ``` ### Determinando o número ótimo de Clusters Usaremos o Método Elbow para determinar o número ótimo de clusters para o conjunto de dados. ``` # Definir a função para calcular WCSS (Soma de Quadrados de Clusters) def calculate_wcss(k, clusters): wcss = 0 for i in range(k): centroid = clusters. cluster_centers_[i] for idx, row in enumerate(x): distance = sum((row - centroid) ** 2) wcss += distance return wcss # Ajustar o modelo de agrupamento k-means para um número especificado de clusters def fit_kmeans(k, x, init='k-means++', max_iter=300, tol=1e-06, random_state=0): kmeans = KMeans(n_clusters=k, init=init, max_iter=max_iter, tol=tol, random_state=random_state) kmeans. fit(x) return kmeans # Calcular o WCSS para vários números de clusters num_clusters = range(1, 11) wcss_values = [] for k in num_clusters: kmeans = fit_kmeans(k, x) wcss_values. append(calculate_wcss(k, kmeans)) # Plota o gráfico do Método Elbow import matplotlib. pyplot as plt plt. figure(figsize=(8, 6)) plt. plot(num_clusters, wcss_values) plt. title('Método Elbow') plt. xlabel('Número de Clusters') plt. ylabel('Soma de Quadrados de Clusters (WCSS)') plt. show() ``` ### Ajustar k-means em Modelo e Aplicar aos Dados Usando o Método Elbow, encontramos que o número ótimo de clusters é 3. Agora, vamos aproveitar o k-means realizar agrupamento usando o número de clusters ótimo e aplicá-lo aos dados. ``` # Ajustar o modelo de agrupamento k-means usando o número ótimo de clusters kmeans = fit_kmeans(3, x) # Aplicar o algoritmo k-means aos dados y = kmeans. labels_ ``` Agora você pode usar as rótulos no variable `y` para agrupar seus dados conforme número de clusters (no caso, 3). Por exemplo, usando: ``` print(x[y == 0]) # Dados do Cluster 0 print(x[y == 1]) # Dados do Cluster 1 print(x[y == 2]) # Dados do Cluster 2 ``` Com este guia, você está agora apto a pre-processar um dataset de dados de carros, remover valores nulos e aplicar o agrupamento k-means para agrupar carros com base em suas características. O código fornecido pode ser customizado e aprimorado de acordo com os requisitos do seu projeto. K-Means Agregação e Regressão Logística ======================================= **K-Means Agregação** Nosso objetivo é converter os dados em uma estrutura de tabela organizada em linhas e colunas. Contudo, neste caso, queremos que as colunas sejam `None`, portanto, o que teremos é apenas uma matriz de dados. Primeiramente, lembre-se de que os updates podem ocorrer sempre, então você verá algumas mensagens de aviso. Para agora, utilizaremos `matrix` pois tornou-se mais comum utilizar `dot values`, mas o `math matrix` funciona justamente. Você deve atualizar isso depois. Vamos iniciar analisando as seguintes variáveis: - `y`: Um array de respostas com os seguintes valores: `2 1 0 2 1 2`. Ele agrupou diferentes linhas de dados com base em três espaços diferentes, que a tecnologia identifica como espécies. - `x`: Matriz de dados contendo nossos valores. Nós iremos apenas examinar as posições 0 e 1 para simplificar o trabalho. Abaixo, iremos visualizar os dados utilizando um gráfico de dispersão. ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt data = pd. read_csv('dataforp2. csv') # Ploting x sns. scatterplot(x='x0', y='x1', hue='y', data=data, palette=['red', 'green', 'blue'], s=100) plt. scatter(data. iloc[data['y']==0]['x0'], data. iloc[data['y']==0]['x1'], color='yellow', marker='o', s=300, label='Centroids') plt. title('Clusters de Fabricante de Carros') plt. legend() plt. show() ``` **Regressão Logística** A regressão logística é um algoritmo de classificação mais simples, utilizado para problemas binários ou múltiplos de classificação. Nosso exemplo é um pequeno exemplo utilizando uma garota canadense que é apaixonada por livros de terror. Em nosso passado, aprendemos sobre regressão linear com variáveis dependentes e independentes. Nesta oportunidade, vamos brincar um pouco com a mesma ideia: ```bash y = mx + c ``` Em regressão logística, `y` representa a variável dependente, ou seja, a variável que estamos tentando prever. Já `x1`, `x2`, . . . `xn` representam as variáveis independentes ou atributos que vamos utilizar para prever `y`. No exemplo a seguir, nós usaremos o logaritmo natural para fazer nossas predictivas. Isso nos ajuda a lidar com um intervalo entre 0 e 1: ```bash ln(p / (1 - p)) = m * x + c ``` Você pode verificar que nesta equação a probabilidade é entre 0 e 1, de forma que qualquer valor acima de 0, 5 significa que o estudante vai passar, caso contrário ele falhará. O algoritmo também tem uma área especial chamada de curva de sigmóide. Problema -------- Nesta análise, vamos usar este conjunto de dados para tentar classificar se um tumor é maligno ou benigno. É um conjunto de dados que me parece bem divertido de trabalhar, já que possui várias variáveis. Sua utilização pode ser bastante útil, especialmente quando se tem dificuldade de compreender a dimensão específica. # Análise de Dados com Seaborn Explore os dados utilizando o Seaborn, uma biblioteca de visualização de dados em Python que facilita a criação de gráficos estatísticos informativos e atraentes. ## Diagrama Joint Inspectione a relação entre duas colunas, `radius_mean` e `texture_mean`, utilizando um diagrama joint. ```markdown sns. jointplot(x='radius_mean', y='texture_mean', data=data) ``` Este gráfico fornece ambos um histograma e um gráfico de dispersão, mostrando a distribuição dos pontos de dados e como estão relacionados. ## Heatmap do Seaborn Examine a correlação entre diferentes recursos nos dados utilizando um heatmap. ```python sns. heatmap(data. corr()) ``` Este heatmap permite a identificação rápida de recursos que podem ser fortemente correlacionados. ## Verificação de Valores Nulos Garanta que não haja valores faltantes nos dados e evite encontrar erros posteriormente no processo. ```python data. isnull(). sum() ``` ## Divisão dos Dados Divida os dados em conjuntos de treinamento e teste para avaliar o desempenho do modelo. ```python from sklearn. model_selection import train_test_split X_treino, X_teste, y_treino, y_teste = train_test_split(data, diagnostico, test_size=0. 3, random_state=42) ``` ## Criação do Modelo Crie um modelo de regressão lógica utilizando a biblioteca scikit-learn. ```python from sklearn. linear_model import LogisticRegression log_model = LogisticRegression() ``` ## Treino do Modelo Ajuste o modelo com os dados de treino. ```python log_model. fit(X_treino, y_treino) ``` ## Predição do Modelo Prediz as etiquetas de classe para os dados de teste. ```python y_previsao = log_model. predict(X_teste) ``` ## Avaliação do Modelo Compare as etiquetas previstas com as etiquetas reais para avaliar o desempenho do modelo. ```python # Implemente a avaliação do modelo aqui ``` Neste exemplo, exploramos o uso do Seaborn para visualização de dados, criamos um modelo de regressão lógica e dividimos os dados para treinamento e teste. Para completar a análise, é possível avaliar o desempenho do modelo e tomar decisões baseadas nos seus achados. # Exploração em Ciência de Dados: Visão Geral e Benefícios do Algoritmo de Vizinhos Mais Proximos (k-NN) Nesta exploração teórica sobre Ciência de Dados, discutiremos a importância da preparação de dados, a seleção de modelos e a otimização dos modelos no contexto de um domínio médico com resultados catastróficos. Além disso, entraremos em detalhes sobre o algoritmo de Vizinhos Mais Proximos (k-NN), como funciona, seus casos de uso e fatores a considerar para uma implementação eficiente. ## Preparação dos Dados É fundamental gastar uma considerable quantidade de tempo na preparação dos dados e garantir que os dados que entram sejam de boa qualidade. A expressão "bom dados entrando, bons dados saídos" se aplica aqui, embora a versão inversa não seja completamente precisa. ## Seleção de Modelos e Ajuste Quando você tem dados bons, a seleção de modelos appropriados se torna a próxima etapa. A performances dos modelos e a otimização deles dependem do modelo utilizado, então é crucial avaliar os resultados utilizando as ferramentas adequadas. Como parte da avaliação, usaremos o `raportemetrica de classificação` do `sklearn. metrics` para uma melhor compreensão da performance do nosso modelo. ```python from sklearn. metrics import classification_report # Para avaliar o desempenho do nosso modelo y_pred = logistic_regression. predict(X_test) print(classification_report(y_true, y_pred)) ``` ## Precisão na Classificação com k-NN Para determinar como nosso modelo se comportou, vamos calcular a precisão para alguns categórios, como B9 e Malignante B & M. A precisão média esses dois valores. ```python # Cálculo de exemplo da precisão na classificação relatorio precisao = (Tp / (Tp + Fp)) ``` ## Entendendo o k-NN O Algoritmo de Vizinhos Mais Proximos (k-NN) é um algoritmo de aprendizado supervisionado fundamental, e sua lógica de trabalho é fácil de se entender. Este capítulo vai focar em: 1. O que é o k-NN e o algoritmo k-NN? 2. Como escolher o fator k para o k-NN? 3. Formas de utilizar o k-NN. ## Caso de uso: Previsão de diabetes O caso de uso mais popular para prever se uma pessoa vai ter diabetes ou não inclui um conjunto de dados disponível para teste e aprendizado de vários modelos da IA. Os modelos de aprendizado de máquina fazem previsões baseadas nos dados anteriores, e podemos prever essas saídas incluindo os dados disponíveis. ## Avaliando Gatos e Cães com o k-NN O algoritmo k-NN se baseia na similaridade de características, tornando-o ideal para tarefas de classificação. Vamos avaliar gatos e cães pela seguinte tabela dos seus recursos: - Gatos: Garras afiladas, menor comprimento de ouvidos, mia, e morceguegos. - Cães: Garra grosseira, maior comprimento de ouvidos, latir, e ama correr para perto. Poderíamos separar gatos de cães avaliando a pontação dos arenhais e o comprimento de ouvidos. Seu classificador k-NN usa esses recursos para prever o tipo de animal. ## k-NN: Algoritmo de Vizinhos Mais Proximos O Algoritmo de Vizinhos Mais Proximos (k-NN) é um dos algoritmos mais simples de aprendizado supervisionado, principalmente utilizado para classificação. Esse algoritmo, atribui uma classe a um ponto de dados novo baseado na maioria da votação dos seus 'k' vizinhos mais próximos, onde 'k' é um inteiro positivo especificado com um novo amostra. ## Selecionando o fator k (número de vizinhos) Selecionar o valor correto de k, também conhecido como "ajuste de parâmetro", é importante para uma maior precisão. Se escolhermos k muito baixo, podemos encontrar uma biaise baseada em ruído, e se escolhermos um k demasiado alto, o tempo de processamento aumenta, causando problemas de recursos. Uma prática comum para a seleção do valor de k é tomar a raiz quadrada de n, onde 'n' representa o total de valores no conjunto de dados. Se 'n' for par, tenha um valor k ímpar para evitar uma balança entre dois fatores diferentes. ## Quando usar o k-NN O k-NN pode ser útil: 1. Quando os dados estão etiquetados. 2. Em conjuntos de dados com baixa quantidade de ruído. 3. Como um ponto de partida para conjuntos de dados mais complexos, mesmo com grandes quantidades de dados; pode-se escolher um subconjunto para ter uma visão geral do conjunto maior. ## Funcionamento do Algoritmo k-NN Consideremos um conjunto de dados com duas variáveis (Alcântara em Centesímetros e Peso em Kilogramas), e cada ponto é classificado como Normal ou Subpeso. Nossa meta é classificar novos pontos de dados como Normal ou Subpeso usando o k-NN. Para classificar pontos de dados novos, o Algoritmo de Vizinhos mais próximos compara o ponto dado com os dados existentes e calcula a distância Euclidiana entre eles. Determinam-se os vizinhos mais próximos pelo menor valor Euclidiana, e a classificação final é baseada na maioria da votação. Para calcular a distância Euclidiana entre dois pontos (x, y) e (a, b), utilize a fórmula: ``` distância = sqrt((x - a)² + (y - b)²) ``` # Predição de Diabetes – Cenário de Uso ## Objetivo Prever se uma pessoa será diagnosticada com diabetes ou não usando um conjunto de dados de 768 pessoas, que either tiveram ou não tiveram diagnóstico de diabetes. ## Análise de Dados Comece por analisar `insulina` quando análisar este conjunto de dados. Se alguém tiver insulina, provavelmente tem diabetes, e isso pode causar problemas em algum pacote de aprendizado de máquina. No entanto, para uma configuração básica, isso funciona bem para executar KNN. O conjunto de dados está em um formato de planilha simples, com valores separados por vírgula, uma conjunto de dados comum e uma maneira fácil de obter os dados. Aqui estão os atributos: ``` a até i - Atributos particulares i - Resultado: Se eles têm diabetes ``` ### Ambiente de Execução do Python Vamos utilizar a distribuição Anaconda, especialmente o Jupyter notebook para fins de visualização básica. Acesse o Anaconda Navigator e selecione Python 3. 6. Em "Ambientes", pode criar um ambiente único para cada projeto. Também, pode instalar pacotes no terminal usando uma simples `pip install package_name`. Quando o Jupyter notebook for iniciado, prepare seus dados e forneça o título, por exemplo, "Predição de Diabetes". Depois, mude o tipo de primeira célula para Markdown (não Python). Agora, importe os pacotes necessários: ```python import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler from sklearn. neighbors import KNeighborsClassifier from sklearn. metrics import confusion_matrix, f1_score, accuracy_score ``` ### Carregar e Processar os Dados ```python data_set = pd. read_csv('diabetes. csv') ``` Processe os dados conforme necessário, lidando com valores faltantes ou esqueléticos: ```python # Código para lidar com valores faltantes e esqueléticos. . . ``` ### Divide os Dados para Treino e Teste ```python x = data_set. drop('Resultado', axis=1) y = data_set['Resultado'] x_treino, x_teste, y_treino, y_teste = train_test_split(x, y, test_size=0. 2, random_state=0) ``` ### Dimensionamento das Funções de Amostra ```python escalador = StandardScaler() x_treino = escalador. fit_transform(x_treino) x_teste = escalador. transform(x_teste) ``` ### Classificador KNN e Predição ```python knn = KNeighborsClassifier(n_vizinhos=5) knn. fit(x_treino, y_treino) y_previs fundo = knn. predict(x_teste) ``` ### Métricas de Avaliação ```python print("Matriz de Confição: \n", confusion_matrix(y_teste, y_previs)) print("F1-Score: \n", f1_score(y_teste, y_previs)) print("Pontuação de Acerto: \n", accuracy_score(y_teste, y_previs)) ``` Você pode continuar expandindo este modelo para lidar com tarefas de pré-processamento de dados e de outras tarefas de aprendizado de máquina, seguindo as mesmas diretrizes de formatação adequada usando Markdown e Python. # Escalonamento de Dados com StandardScaler (Exemplo de KNeighborsClassifier) ## Introdução Neste exemplo, mostraremos como utilizar o StandardScaler para escalonar nossos dados e utilizar o `KNeighborsClassifier` para um modelo de predição de diabetes. ## Importando Bibliotecas Necessárias ```python from sklearn. preprocessing import StandardScaler from sklearn. neighbors import KNeighborsClassifier from sklearn. datasets import load_diabetes from sklearn. model_selection import train_test_split import math ``` ## Carregando o Conjunto de Dados do Diabetes ```python diabetes = load_diabetes() ``` ## Preparando os Dados ### Splitando os Dados Splitiremos os dados em conjuntos de Treinamento e Teste: ```python X = diabetes. data y = diabetes. target X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=42) ``` ### Escalonando os Dados Criaremos uma instância de StandardScaler e utilizaremos para escalonar os conjuntos de dados de treino: ```python baseline = StandardScaler() X_treino_escalonado = baseline. fit_transform(X_treino) ``` Também transformaremos os conjuntos de dados de teste: ```python X_teste_escalonado = baseline. transform(X_teste) ``` ## Criando e Treinando o Modelo Agora podemos proceder a criar o `KNeighborsClassifier` e treiná-lo usando os dados escalonados de treino: ```python knn = KNeighborsClassifier(n_vizinhos=11, métrica='euclideano', n_jobs=-1) knn. fit(X_treino_escalonado, y_treino) ``` ## Avaliando o Modelo Usaremos a matriz de confusão, a f1-score e a pontuação de acurácia para avaliação: ```python from sklearn. metrics import confusão_matrix, f1_score, acurácia_score matriz_confusão = confusão_matrix(y_teste, knn. predict(X_teste_escalonado)) f1 = f1_score(y_teste, knn. predict(X_teste_escalonado)) acurácia = acurácia_score(y_teste, knn. predict(X_teste_escalonado)) ``` ## Imprimindo os Resultados da Avaliação ```python print("Matriz de Confusão: ") print(matriz_confusão) print("\nF1 Score: ", f1) print("\nPontuação de Acurácia: ", acurácia) ``` ## Conclusão Neste exemplo, criamos um modelo de predição de diabetes usando o `KNeighborsClassifier` e o StandardScaler para pré-processamento de dados. Avaliamos o modelo usando a matriz de confusão, a f1-score e a pontuação de acurácia. ## Agenda Esta sessão abordará matemática para aprender, enfocando em tipos de dados, álgebra linear, ideias de cálculo, estatística, probabilidade, álgebra de matrizes e várias demonstrações práticas. ## Tipos de Dados Os dados podem ser classificados em duas categorias principais: 1. Qualitativo (Categorical) dados: - Nômina: Fornece etiquetas a variáveis sem um valor medível exemplo incluindo país, gênero, raça, cor dos cabelos. - Ordinal: Dados categoricais com uma escala de ordem ou escala exemplo incluindo escalas de salário, avaliações de filmes. 2. Quantitativo (Numeral) dados: - Discreto: Dados com um conjunto final de valores que podem ser categorizados exemplo incluindo número de alunos de uma classe que passaram em exames, corridas, acertos em jogos de cricket. - Continuo: Dados que podem assumir qualquer valor numérico dentro de um intervalo exemplo incluindo pressão de água, peso de uma pessoa. ## Álgebra Linear A álgebra linear é a reunião de equações líneas e seus representativos a partir de espaços vetoriais e por meio de matrizes. Utiliza-se para resolver problemas envolvendo mudança e continuidade. Uma matriz é uma grade de números disposta em linhas e colunas e pode descrever variadas relações e transformações. Aqui está um exemplo simples de equação linear: ``` 2x + 4y - 3z = 10 ``` No contexto de aprendizado de máquina, matrizes são frequentemente usadas para decomposição de matrizes, transformações, regressões lineares, e muitas outras aplicações. # Equações Lineares Este texto discute equações lineares, sua adição e multiplicação de matrizes. ## Visão geral das equações lineares As equações lineares são equações com exponentes superiores a 1 não presentes. São caracterizadas pela ausência de termos como `x²`, `x³`, etc. Em uma equação linear, se você já fez esforços para redes neurais, pode reconhecer a configuração `ax + by + cz`, que é semelhante aos nós de sua rede neuronal somando todos os diferentes entrados. A equação `y = mx + c` é uma fórmula comum, onde `m` é a pendent Мап, `x` é a entrada e `c` é o ponto de interceção em `y`. ``` y = mx + c (correctly labeled here) ``` O ponto de interceção, `c`, é o valor de `y` quando `x` é igual a 0. ``` quando x é igual a zero, y é igual a c ``` ## Matrizes Uma matriz é uma representação retangular de uma matriz de números organizados em colunas e linhas. No contexto dado, estamos falando de `m` linhas e `n` colunas. O elemento no primeiro linha, primeira coluna é denotado como `a11`, similar ao `a12`, `a13`, etc. para a linha 1. ``` a11 (primeira linha, primeira coluna) a12 (primeira linha, segunda coluna) . . . ``` Para a soma e a subtração, é necessário verificar a dimensão (forma) das matrizes para garantir que elas sejam iguais antes de realizar a operação. Para a multiplicação de matrizes, você pode pensar na própria equação das equações lineares. Aqui está um exemplo de multiplicação de matrizes: ``` (a * b) = a11 * b11 + a12 * b21 + a13 * b31 + a21 * b12 + a22 * b22 + a23 * b32 + a31 * b13 + a32 * b23 + a33 * b33 ``` Nas operações de matriz com várias matrizes, lembre-se que a multiplicação de matrizes é diferente da multiplicação de dois produtos de matriz. ## Vetores O vetor é um conjunto de valores com direção. Em um dimensão, ele chama-se escalar, que é um único número. Para duas e mais dimensões, os vetores podem ser representados em um gráfico, e a distância é calculada usando o teorema de Pitágoras. Este método é útil para comparar pontos de dados semelhantes. Adicionalmente, este texto menciona vetores de higiene e valores de higiene. Os vetores de higiene são vetores que não mudam seu alcance durante a transformação, enquanto que os valores de higiene são valores escalares associados aos vetores. # Operações de Matriz e Vetor em Python (Usando NumPy) As operações de matriz e vetor são conceitos essenciais na álgebra linear, e neste documento, vou discutir algumas operações básicas como a multiplicação por escalar, multiplicação de matriz-vetor e multiplicação de matriz-matriz utilizando a biblioteca Python NumPy. ## Multiplicação por escalar A multiplicação por escalar é a multiplicação de um valor escalar (um número único) por uma matriz ou vetor. Veja um exemplo de multiplicação por escalar para um valor `a` e um vetor `b`: ```python a = 2 b = [4, 5] result = [] for i in range(len(b)): result. append(a*b[i]) print(result) # Saída: [8, 10] ``` Em termos mais simples, estamos multiplicando o valor escalar `a` por cada elemento no vetor `b`. ## Multiplicação de matriz-vetor A multiplicação de matriz-vetor é uma operação que toma uma matriz `A` e um vetor `b`, retorna um novo vetor `c`. Considere o seguinte exemplo: ```python A = [[5, 10, 15, 20, 25, 30], [32, 16, 2, 18, 6, 27]] b = [4, 46, 7, 8, 12, 15] result = [0] * len(b) for i in range(len(b)): for j in range(len(A[0])): result[i] += A[i][j] * b[j] print(result) # Saída: [76, 446, 122, 388, 156, 330] ``` Neste exemplo, `A` é uma matriz com duas linhas e 6 colunas, enquanto `b` é um vetor com 6 elementos. Loopamos através de cada linha na matriz `A` e multiplicamos o elemento correspondente pelo respectivo elemento no vetor `b`, então somamos os resultados para cada coluna no vetor resultante. ## Multiplicação de matriz-matriz A multiplicação de matriz-matriz é executada aplicando as regras da multiplicação de matriz-vetor para cada coluna da primeira matriz e combinando os resultados. Considere o seguinte exemplo: ```python A = [[5, 10, 15, 20, 25, 30], [32, 16, 2, 18, 6, 27]] B = [[2, 4], [5, 6], [7, 8], [12, 15]] result_matrix = [[0] * len(B[0])] * len(B) for i in range(len(A)): for j in range(len(B[0])): for k in range(len(B)): result_matrix[k][j] += A[i][k] * B[k][j] print(result_matrix) # Saída: [[86, 194], [237, 212], [404, 356], [548, 464]] ``` Antecipação: Neste exemplo, estamos usando a matriz `A` e a matriz `B`. A matriz `A` é 2x6, e a matriz `B` é 4x2. Façemos loop através de cada elemento na matriz `A` e multiplicamos pelo respectivo elemento na matriz `B`. O valor resultante é então adicionado à posição correspondente na matriz resultante `result_matrix`. ## Transposição de Matriz Uma matriz transposta é uma matriz com suas linhas e colunas invertidas. Veja um exemplo de como criar uma matriz transposta: ```python A = [[5, 10, 15, 20, 25, 30], [32, 16, 2, 18, 6, 27]] result_matrix = [] for i in range(len(A)): row = [] for j in range(len(A[0])): row. append(A[j][i]) result_matrix. append(row) print(result_matrix) # Saída: [[5, 32], [10, 16], [15, 2], [20, 18], [25, 6], [30, 27]] ``` ## Matriz Identidade Uma matriz identidade é uma matriz quadrada com uns na diagonal principal e zeros em todos os outros lugares. Crie uma matriz identidade 2x2: ```python A = [[1, 0], [0, 1]] print(A) # Saída: [[1, 0], [0, 1]] ``` Neste exemplo, temos uma matriz identidade 2x2 com uns na diagonal principal (1, 1) e zeros em todos os outros lugares. ## Inversa de Matriz Determinar a inversa de uma matriz é preciso para resolução de equações lineares que envolvem multiplicação de matriz-matriz. Vejamos como encontrar a inversa de uma matriz pequena 3x3: ```python import numpy as np A = np. array([[2, 1, 0], [0, 1, 1], [0, 0, 1]]) inv_A = np. linalg. inv(A) print(inv_A) # Saída: array([[ 0. 33333333, -0. 33333333, 0. 33333333], # [ 0. 66666667, 0. 66666667, -1. ], # [-0. 33333333, 0. 33333333, 0. 33333333]]) ``` Aqui usamos a função `numpy. linalg. inv` do NumPy para computar a inversa de uma matriz dada. A inversa da matriz `A` está armazenada na variável `inv_A`. # Encontrando o Mínimo Local com um Algoritmo de Descento de Gradiente Simples Este método é usado para encontrar o mínimo local em uma função. O algoritmo joga uma partida de "alto-baixo" para encontrar o valor mínimo ou máximo de uma função. ## Visão geral O algoritmo funciona iniciando em um determinado ponto (que foi selecionado arbitrarymente como x=3 nesse caso) e ajustando o ponto atual baseado na gradiente da função no ponto anterior. A taxa de aprendizagem e a precisão são parâmetros importantes que determinam quanto o ponto atual deve ser ajustado e quando parar o algoritmo, respectivamente. ### Taxa de Aprendizado A taxa de aprendizado determina quantos passos saltar ao ajustar o ponto atual. Uma taxa de aprendizado alta pode causar que o algoritmo passe por cima da resposta, enquanto uma taxa de aprendizado baixa pode demorar muito para convergir. ### Precisão A precisão nos diz quando parar o algoritmo. Neste caso, é usado para determinar quando o erro de x mudar é menor que um determinado limiar. ## Formula A fórmula usada neste algoritmo é uma função quadrática simples: `2 * x + 5`. ## Implementação Aqui está o código real que estaremos trabalhando: ```python import scipy. optimize as opt def minha_funcao(x): return 2 * x + 5 def minha_gradiente(x): return 2 # Inicialize variáveis atual = 3 anterior = None precisao = 0. 01 iteracoes_maximas = 100 while anterior is not None and iteracoes < iteracoes_maximas: if abs(atual - anterior) < precisao: break erro_anterior = erros + 1 erros = abs(minha_funcao(atual) - minha_funcao(anterior)) if erros > erro_anterior: atual = anterior else: atual -= taxa_de_aprendizado * minha_gradiente(anterior) * (atual - anterior) anterior = atual print(f"O mínimo local ocorre em x = {atual}") ``` ## Usando Scikit-learn Este algoritmo pode ser implementado usando a função `scipy. optimize. minimize` da biblioteca Scikit-learn. A função a ser minimizada pode ser complexa, e há várias opções disponíveis para resolver o problema de minimização. Para obter mais informações, consulte a [documentação da biblioteca Scikit-learn](https://docs.scipy.org/doc/scipy/reference/optimize.html#module-scipy.optimize.minimize). # Estatística Este guia vai te apresentar a funcionalidades básicas da estatística e servir de base para análise quantitativa de dados. Váemos ver várias medidas de descrição de dados, incluindo medidas de tendências centrais e medidas de diversidade. ## Medidas de Tendências Centrais - Média: A média de um conjunto de valores. É usada para encontrar a média de qualquer evento em andamento. - Média: Separa a metade superior e a metade inferior dos dados. Indica o ponto central de todos os seus pontos de dados diferentes. Quando a média tem algumas grandes números que o desvia, a média responde uma número mais baixo. - Modo: O valor que aparece mais frequentemente. É útil ao estudo da economia e da cada uma das pessoas. ### Exemplo: Renda nos EUA - Média: Aproximadamente 80. 000 (mais próxima de 80. 000) - Média: Mais próxima da média - Modo: A renda mais comum foi aproximadamente 1. 24. 000 ## Medidas de Diversidade - Faixa: A diferença entre o valor mais alto e o mais baixo. - Interquartil: Divide um array ordenado de dados em quatro partes iguais. É uma coisa comum fazer como parte de todos os pacotes básicos. - Variação: Mede a distância de cada número no conjunto da média e por consequenceia de distância de cada outro número no conjunto. - Desvio padrão: Mede a variação ou a dispersão de um conjunto de valores em relação à média. É frequentemente usado para representar a quantidade de variação ou dispersão em um conjunto de valores. ### Exemplo: Dispersão de notas numa sala de aula - Faixa: Diferença entre o máximo (90) – mínimo (45) = 45 - Interquartil: Baseado no corte do dados pelos quartis, podemos ver o média e o primeiro, segundo e terceiro quartis. ## Cálculo de Medidas de Tendências e Diversidade Centrais - **Média**: Calcule a soma dos pontos, divida pela total de alunos. - **Média**: Quando tem um array ordenado de dados, eleene a metade dos números e os pute na uma lado da linha e a metade dos outros números no outro lado da linha. O valor ao centro é a média. - **Modo**: Encontre o valor que aparece mais frequentemente nos dados. - **Faixa**: Encontre a diferença entre o valor mais alto e o mais baixo. - **Interquartil**: Calcule o quartil dos dados e encontre a diferença entre o primeiro quartil (Q1) e o terceiro quartil (Q3). A faixa é Q3 – Q1. - **Variação**: Calcule a média (média) dos quadrados de todas as diferenças entre cada ponto e a média. - **Desvio padrão**: Calcule a raiz quadrada da várição. ## Demo de Python Vamos usar Python, numpy, e pandas para examinar dados. ```python import pandas as pd # Carregar os dados df = pd. read_csv('seu_arquivo_de_dados. csv') # Calcular a média media = df['nome_da_coluna']. mean() print(media) # Calcular a média mediana = df['nome_da_coluna']. median() print(mediana) # Encontrar o modo pode ser mais complexo # Por exemplo, usando a função Mode em pandas: moda = df['nome_da_coluna']. mode()[0] print(moda) # Calcular a faixa faixa = df['nome_da_coluna']. max() - df['nome_da_coluna']. min() print(faixa) # Calcular o interquartil (Rango Interquartil) (IQR) Q1 = df['nome_da_coluna']. quantile(0. 25) Q3 = df['nome_da_coluna']. quantile(0. 75) IQR = Q3 - Q1 print(IQR) # Calcular a variação variancia = df['nome_da_coluna']. var() print(variancia) # Calcular o desvio padrão desvio_padrao = df['nome_da_coluna']. std() print(desvio_padrao) ``` Neste exemplo, substitua `'seu_arquivo_de_dados. csv'`, `'nome_da_coluna'` pelo nome do seu arquivo de dados e do respectivo nome da coluna. # Análise de Dados com Python ## Introdução Nesta guia, discutiremos como analisar dados usando Python, focando em dois aspectos principais: estatísticas descritivas e estatísticas inferenciais. ### Estatísticas Descritivas As estatísticas descritivas são o processo de agregar dados de forma significativa e iluminante. Este tópico fornece uma visão geral básica de estatísticas descritivas, incluindo: 1. Os valores anómalos 2. Média e Média 3. Visualização de dados 4. Função describe básica #### Os valores anómalos Nos termos do análise de dados, os valores anómalos são valores extremos que se encontram fora do intervalo de valores esperados. ```python Aqui está o valor anómalos: [valor_anomalo] Aqui está a pessoa que ganha muito dinheiro: [valor_anomalo] Aqui está a média: Média: [media] Aqui está a mediana: Mediana: [mediana] ``` #### Visualização de Dados Você pode plotar fácilmente uma linha eixo-Y para marcador (linhas para marcadores) e exibir os dados, mantendo-o simples. ```markdown ! [Exemplo de Visualização de Dados](visualizacao_de_dados. png) ``` #### Função describe básica A função descreve puxa informações essenciais sobre os dados e fornece opções para análise adicional. A função descreve(média) fornece o valor de média. ```python #Carregar o conjunto de dados conjunto_de_dados = . . . # Função descreve básica descreve(conjunto_de_dados) #Valor de média descreve(conjunto_de_dados). média ``` ### Estatísticas Inferenciais As estatísticas inferenciais são o método de fazer predições ou inferências sobre os dados. Este tópico abrange: 1. Teste da hipótese 2. Avaliação 3. Aplicações de estatísticas inferenciais #### Teste da Hipótese O teste da hipótese é um método para medir a plausibilidade da suposição de hipótese usando dados de amostra. ```markdown Passos do Teste da Hipótese: 1. Formule uma hipótese 2. Decida qual teste correto para testar a hipótese 3. Execute o teste 4. Faça uma decisão ``` #### Avaliação A avaliação é o processo de encontrar um valor aproximado de um parâmetro da população usando amostras aleatórias. ```markdown Exemplo: Teste de vacinas para COVID-19 . . . ``` #### Aplicações de Estatísticas Inferenciais 1. Teste da hipótese: usado para medir a plausibilidade de uma hipótese. 2. Intervalo de confiança: usado para calcular o intervalo de valores onde o valor verdadeiro de uma população provávelmente se encontra. 3. Probabilidade: usado para calcular a probabilidade de um evento ocorrer. ## Terminologias importantes 1. Hipótese nula 2. Hipótese alternativa 3. Valor p 4. Valor t ## Conclusão Nesta guia, exploramos estatísticas descritivas e estatísticas inferenciais, fornecendo exemplos e insights sobre a análise de dados com Python. Faça certo de praticar e experimentar com vários conjuntos de dados para ampliar sua compreensão e habilidades. > Felizes de aprender e análise de dados! 📊🎉Fiery🔥🔥 # Distribuição Binomial e Probabilidade em Múltiplos Encontros: Um Caso de Estudo em Partidas de Futebol A distribuição binomial é uma distribuição de probabilidade que modela o número de sucessos ou falhas em uma série de experimentos ou encontros independentes. Numa configuração de distribuição binomial, existem dois possíveis resultados: sucesso ou fracasso, vitória ou derrota, aprovação ou reprovação, cabeça ou coroa. ## Caso de Uso: Barcelona contra Dortmund em Séries de Futebol Emágnumos um caso de uso e tomemos o jogo de futebol entre dois clubes, Barcelona e Dortmund. As equipas jogarão um total de quatro partidas, e estamos interessados em encontrar as probabilidades de Barcelona vencer a série. Para fazê-lo, olhamos no número total de partidas e consideramos os cinco possíveis encontros ou partidas diferentes. Digamos que a chance de vitória para Barcelona é 75%, ou 0, 75, o que significa que cada encontro eles têm uma chance de 75% de vencer aquela partida, ao mesmo tempo que as chances de derrota são 25%, ou 0, 25. ### Cálculo de Probabilidades A probabilidade de obter k vitórias em k encontros é calculada por: ``` p(x = k) = (n choose k) * p^k * q^(n - k) ``` Aqui, `n` é o número total de encontros (4 neste caso), `k` é o número de vitórias desejadas, `p` é a probabilidade de sucesso (0, 75), e `q` é a probabilidade de fracasso (0, 25). ### Probabilidade de Barcelona Perder Todas As Partidas Neste caso, se plugamos os números, terminamos em `p(x = 0) = 0, 0009765625`, que é uma chance muito pequena de Barcelona perder todas as suas partidas. ### Probabilidade de Barcelona Vencendo Ao Menos Duas Partidas A probabilidade de Barcelona vencer ao menos duas partidas pode ser calculada assim: ``` p(x >= 2) = p(x = 2) + p(x = 3) + p(x = 4) ``` Neste caso, `p(x = 2) = 0, 0878`, `p(x = 3) = 0, 26`, e `p(x = 4)` pode ser calculado de forma semelhante. Assim, a probabilidade de Barcelona vencer ao menos duas partidas é 0, 4054. ### Probabilidades Acumuladas Poderíamos também encontrar a probabilidade acumulada para cada um dos resultados onde Barcelona vence três ou mais partidas: ``` p(x >= 3) = p(x = 3) + p(x = 4) + p(x = 5) ``` Neste caso, `p(x = 3) = 0, 26`, `p(x = 4)` pode ser calculado de forma semelhante, e `p(x = 5)` pode ser encontrada por: ``` p(x = 5) = (4 choose 5) * 0, 75^5 * 0, 25^0 = 0, 000018474 ``` Assim, a probabilidade acumulada para Barcelona vencer três ou mais partidas é 0, 6601. ### Normalização e Escalonamento A localização do centro do gráfico depende do valor médio, que é um aspecto importante dos dados. A maioria dos dados que vistemos apresenta uma visualização normalizada, mas pode ser escassa ou esquerda-assquilada, e precisamos estar conscientes desse escassamento quando lidamos com probabilidades. Uma maior desvio padrão pode resultar numa distribuição escassa, com mais outliers e uma pendente mais plana, enquanto um menor desvio padrão pode resultar numa distribuição mais piquilha de fora de fato com menos outliers. ### Z-Score O z-score nos dá a conhecer a distância de um ponto de dados em relação ao valor médio, medida em termos de desvios padrão do valor médio. Em torno de 68% dos resultados estão encontrados entre um desvio padrão ao redor 95% dos resultados estão encontrados entre dois desvios padrão. ### Teorema Central Limitado O teorema central limitado diz que a distribuição de médias de amostra será aproximadamente normalmente distribuída, equidistribuída e não escassa, se tomarmos amostras grandes e aleatórias da população com freqüência e com substituição. ### Probabilidade Condicional A probabilidade condicional é a probabilidade de que um evento A se produza dadas as conhecimentos de que um evento B já se produziu. A probabilidade condicional pode ser calculada utilizando a Teoria de Bayes: ``` P(A|B) = P(B|A) * P(A) / P(B) ``` A teoria de Bayes é uma ferramenta poderosa que nos permite encontrar a relação entre diferentes eventos e combiná-las para obter uma compreensão melhor de um determinado fenómeno. ### Caso de Uso: Probabilidade de um Indivíduo Desenvolver Doença Pulmonar Devido ao Fumo Podemos utilizar a Teoria de Bayes para encontrar a probabilidade de um indivíduo desenvolver doença pulmonar devido ao fumo. Neste caso, temos uma probabilidade inicial de 10% de Indivíduos com doença pulmonar, uma probabilidade de 15% de Pacientes do Hospital que Fumam e uma probabilidade de 5% de Fumantes que continuam a fumar mesmo quando já têm doença pulmonar. Colocando os números, conseguimos um 3, 33% de chance de que um indivíduo que fuma desenvolva doença pulmonar. ## Código de Python Vamos passar à frente e escrever um pequeno programa em Python para executar os cálculos. Aqui tem um código de exemplo que é criar um conjunto, itera-lo através dos rolos de dados, e executar as cálculos: ```python import itertools def binomial_coeff(n, k): # calcula o coeficiente binomial if k > n or k < 0: return 0 else: resultado = 1 para i em range(k+1, n+1): resultado *= (n-i+1)/i return resultado def probabilidade_binomial(n, k, p): # calcula a probabilidade binomial return binomial_coeff(n, k) * (p ** k) * (1-p) **(n-k) # Probabilidade de Barcelona vencer ao menos 2 partidas n = 4 p = 0, 75 Pulando = [probabilidade_binomial(n, k, p) por k em range(n+1)] k = 2 Probabilidades_acumuladas = soma([k em Pulando]) print("Probabilidade de Barcelona vencer ao menos 2 partidas: ", Probabilidades_acumuladas) ``` # Cálculo de Probabilidades de Lançamento de Dados e Análise de Matriz de Confusão ## Cálculo de Probabilidades de Lançamento de Dados Faremos algumas modificações nesse exemplo, podemos fazer coisas interessantes em lançamentos de dados. Vamos considerar um dado simples de seis faces. Aqui há uma maneira de nos fazer o que já fizemos antes: ``` equações: 1. Espaço de Eventos: - `set` representa o produto das faces possíveis do dado. - Vamos andar adiante e executar este código: ```python def espaco_de_eventos(indice): set = [i for i in range(1, 7)] produto = 1 for _ in range(indice): produto *= set[0] set. pop(0) return produto # Calculamos o espaço de eventos para 2 dados: espaco_de_eventos(2) ``` Então, se quiséssemos imprimir todas as combinações possíveis, podemos passar através do espaço de eventos e imprimi-las tudo de cada vez como já fizemos antes: ``` imprimir_combinacoes(espaco_de_eventos(2)): def imprimir_combinacoes(espaco_de_eventos): for combinacao in range(1, espaco_de_eventos + 1): print(combinacao) ``` ## Cálculo da Probabilidade de um Múltiplo de Três Agora, vamos encontrar a probabilidade da soma dos resultados de lançamentos de dados sendo um múltiplo de três. Aqui está o código para isso: ```python def combinacoes_favoráveis(resultados, y): combinacoes_favoritas = set() for combinacao in resultados: if (combinacao + y) % 3 == 0: combinacoes_favoritas. add(combinacao) return combinacoes_favoritas # Encontramos as combinações favoráveis para 2 dados: combinacoes_favoritas(range(1, 37), 1) ``` Então, podemos facilmente encontrar a probabilidade: ```python def probabilidade(combinacoes_favoritas, espaco_de_eventos): return len(combinacoes_favoritas) / espaco_de_eventos # Cálculos de probabilidades: probabilidade(combinacoes_favoritas(range(1, 37), 1), espaco_de_eventos(2)) ``` ## Análise de Matriz de Confusão Uma matriz de confusão é uma tabela utilizada para descrever o desempenho de um modelo de classificação em um conjunto de dados de teste para os quais os valores verdadeiros são conhecidos. Aqui está um exemplo de uma matriz de confusão num cenário de predição de câncer: | | Preditado Câncer? | Nenhum Câncer | Câncer | |----------|-------------------|--------------|-------------| | Real | Nenhum Câncer | Verdadeiro Negativo | Falso Negativo | | | Câncer | Falso Positivo | Verdadeiro Positivo | Neste caso, um falso positivo pode ser um problema significativo, pois indicaria a presença de câncer quando na verdade não há. No entanto, se o custo de diagnosticar erradamente um paciente com câncer for alto, pode ser mais vantajoso errar por lado de cáustica e ter mais falsos positivos do que falsos negativos. Os indicadores de acurácia, precisão e revisão podem ajudar a avaliar o desempenho do modelo. ## Demostração com Classeificador Bayesiano Naivo Iniciaremos colocando as bibliotecas necessárias: ```python import numpy as np import matplotlib. pyplot as plt import pandas as pd from sklearn. model_selection import train_test_split ``` Agora, vamos carregar nosso conjunto de dados: ```python dados = pd. read_csv('social_network_ads. csv') ``` Imprime as primeiras linhas dos dados: ```python print(dados. head()) ``` Separaremos os dados em conjuntos de treino e teste: ```python X_treino, X_teste, y_treino, y_teste = train_test_split(dados. drop('comprado', eixo=1), dados['comprado'], tamanho_do_conjunto_de_teste=0, 25, semente=42) ``` Processaremos os dados, escalonaremos as características e criaremos uma classeificador Bayesiano em seguida. # Gaussiana Naive Bayes em Python ## Visão Geral Neste guia, vamos percorrer o processo de utilização do classificador Gaussiano Naive Bayes em Python. Esse classificador é um dos mais básicos e comuns comumente utilizados em aprendizagem de máquina, especialmente para tarefas de classificação. ## Importando o Gaussiano Naive Bayes Começamos por importar o classificador Gaussiano Naive Bayes da biblioteca sklearn. naive_bayes. Não abordaremos os classificadores Bernoulli ou Categorical Naive Bayes neste guia, uma vez que este artigo se foca no Gaussiano Naive Bayes. ```python from sklearn. naive_bayes import GaussianNB ``` ## Criando o Classificador e Treinando-o Depois de importar o módulo necessário, vamos criar uma instância da classe GaussianNB e ajustá-la ao nosso dados de treinamento. Necessitaremos os recursos (`x_train`) e rótulos (`y_train`) dessa etapa. ```python clf = GaussianNB() clf. fit(x_train, y_train) ``` ## Fazendo Previsões com o Classificador Agora que o nosso classificador está treinado, poderemos utilizar-lo para fazer previsões em dados novos e invisíveis. Criaremos um conjunto novo de recursos (`x_test`) e faremos previsões para os seus rótulos correspondentes (`y_predict`). ```python y_predict = clf. predict(x_test) ``` ## Avaliando o Classificador Para avaliar o desempenho do classificador, podemos utilizar uma matriz de confusão. Em Python, a função `confusion_matrix` da biblioteca sklearn. metrics pode ajudar-nos nesse sentido. ```python from sklearn. metrics import confusion_matrix conf_mat = confusion_matrix(y_test, y_predict) ``` Quando tivermos a matriz de confusão, poderemos analisar os seus conteúdos para ver como o classificador se comportou. ## Visualizando os Resultados Visualizar os resultados pode nos ajudar a entender melhor a distribuição dos nossos dados e onde o classificador possa ter cometido erros. Poderemos utilizar bibliotecas como matplotlib para este passo. ```python import matplotlib. pyplot as plt from mpl_toolkits. mplot3d import Axes3D # Supondo que x_train, y_train e y_predict sejam definidos mais cedo no código fig = plt. figure() ax = fig. gca(projection='3d') ax. scatter(x_train[: , 0], x_train[: , 1], y_train, c='red') ax. scatter(x_test[: , 0], x_test[: , 1], y_predict, c='green') plt. show() ``` Nesse gráfico, podemos ver a distribuição de nossos dados de treinamento e as previsões feitas pelo classificador em dados de teste inesperados. Lembrar-se é crucial que a distribuição dos dados de treinamento seja importante no desempenho do classificador, uma vez que forma a base para o aprendizado da estrutura dos dados. Analisando a matriz de confusão e o visualização, podemos obter uma ideia do desempenho do classificador em nosso conjunto de dados específico. # Redes Neurais: Um Dobrão ## Entendendo Redes Neurais ### Um Neurônio isolado Vamos olhar em um neurônio para melhor compreender a rede neural, Mas lembre-se que isso é apenas uma peça de um máximo de um puzzle, pois muitos neurônios trabalham juntos. #### Operações dentro de um Neurônio Cada neurônio executa estas operações básicas: 1. O produto de cada `entrada` e o `peso` do canal que ela transita é encontrado (`entrada * peso`). 2. Algumas dessas somas pesadas são computadas (cálculo da soma pesada). 3. Um bias, exclusivo do neurônio, é adicionado à soma pesada. Você pode pensar nisso como um intercepto na uma gráfica x-y. 4. A soma final é então sujeita a uma função de ativação (e. g. , *se é maior que zero, é um; se é menor que zero, é zero, ou poderia ser um valor entre zero e um*). *Nota: Na prática, estamos lidando com números de ponto flutuante, então os números podem se assemelhar a `0. 001 * x1 + 1. 13 * x2`, e assim por diante. * #### Função de Ativação A função de ativação é crucial porque ela determina se um neurônio será ativado no camada seguinte. A função de ativação mais simples é a função de sigmoide, onde sai um valor de zero ou um, porém em alguns casos utilizamos uma onda tangente para que possamos ter um valor entre zero e um. --- ### Função de Custo A função de custo é essencial para entender como as redes neurais atual aprendem: 1. Acabamos por ter um valor de custo: a diferença entre a saída predita da rede neural e a saída real baseada em um conjunto de dados de treinamento etiquetados. 2. O valor de custo mínimo é obtido através de ajustes iterativos nos pesos e biases ao longo do processo de treinamento. --- ### Redes Neurais com múltiplas camadas Agora, vamos avançar no quadro geral: nossa rede neural será treinada para identificar formas, começando com uma novamente (28x28 ou 784 pixels). Cada pixel é usado como entrada para os neurônios na camada de entrada. Aqui, estamos na camada de entrada. O dado então é passado de camada em camada através de canais pesados. Cada camada escondida consiste em uma fila de neurônios, e o dado é passado de uma camada para a próxima. O resultado da função de ativação em cada neurônio determina qual neurônios serão ativados nos camadas seguintes. --- ### Retropropagação É fundamental compreender a retropropagação: 1. A saída predita é então comparada com a saída real calculando a função de custo. 2. Erro na previsão é então enviado ao reflujo pela rede até que o custo não possa ser reduzido mais. 3. Os pesos são ajustados para reduzir erro. --- ### Plataformas de Aprendizagem Profunda Nesta seção, vamos introduzir algumas plataformas de aprendizagem profunda prestigiosas: 1. **Torch (Lua/C)** e sua implementação de Python, PyTorch 2. **Caffe** (C++ com interfaces Python, CUDA, MATLAB e Java) 3. **TensorFlow ('C++ com interfaces Python e JavaScript**) 4. **Theano** (Python com extensão C para velocidade) 5. **Keras** (API de Néuronas Neurais Altamente Livre de Python que roda sobre TensorFlow, CNTK, ou Theano) --- Para cada plataforma, sinta-se à vontade para explorar a documentação oficial para obter mais informações detalhadas sobre instalação, uso e exemplos. --- Alegre em explorar! # Jupyter Notebook versus Jupyter Lab Este documento fornece um breve resumo da utilização do Jupyter Notebook e do Jupyter Lab, com ênfase no estabelecimento do TensorFlow e na preparação de dados para um projeto de aprendizado profundo. ## Jupyter Notebook O Jupyter Notebook é um ambiente interativo e web-base comum para a criação e partilha de documentos que contêm código vivo, equações, visualizações e texto narrativo. A versão seguinte do Jupyter Notebook é o Jupyter Lab, oferecendo recursos avançados como o suporte a várias abas. ### Configuração de Ambiente com Anaconda Ao usar Anaconda, acesse `Ambientes` e neles verifique se o TensorFlow está instalado. Pode procurar pelo TensorFlow e verificar se foi instalado, ou instalá-lo se for necessário. ## Jupyter Lab O Jupyter Lab fornece um ambiente de desenvolvimento integrado (IDE) que combina várias ferramentas em uma interface única. Um vantagem de usar o Jupyter Lab em relação ao notebook é a possibilidade de ter várias abas abertas, com recursos adicionais como um explorador de ficheiros, editor de texto, terminal, etc. ### Lançamento do Jupyter Lab Inicie o Jupyter Lab no seu navegador preferido. Neste exemplo, o navegador Google Chrome é utilizado, mas é possível escolher qualquer outro navegador se preferível. ### Importação de Ferramentas Após o início do Jupyter Lab, pode começar a criar um novo projeto e importar as ferramentas necessárias, como o TensorFlow e o pandas. Para isso, deve ter o TensorFlow e o pandas instalados no seu ambiente. ### Trabalhando com Dados Para começar a trabalhar com dados, pode ser necessário baixar um conjunto de dados. Por exemplo, o conjunto de dados adulto usado neste documento pode ser encontrado em `archive. ics. uci. edu/ml/machine-learning-databases/adult/`. Pode baixar e abrir o dados diretamente em um editor de texto ou carregar o dados para o seu ambiente Jupyter usando o pandas. Depois de carregar os dados, é útil verificar os dados e entender as características e esquema. O pandas tem funções para ver a forma dos dados, tipos e outras propriedades. ### Preprocessamento de Dados O preprocessamento de dados tipicamente requer a transformação ou limpeza dos dados para torná-los adequados para modelos de aprendizagem de máquina. Isso pode incluir normalização dos dados, codificação das categorias, manejo de dados faltantes e mais. Neste exemplo, os dados são pré-processados ao definir valores de etiqueta para categorias, como definir etiquetas como 1 para qualquer rendimento igual ou superior a 50k e como 0 para qualquer rendimento igual ou inferior a 50k. Em seguida, pode aplicar esta transformação aos conjuntos de treino e de teste. ## Conclusão Este documento fornece um resumo breve da utilização do Jupyter Notebook e do Jupyter Lab, com ênfase no estabelecimento do TensorFlow e na preparação de dados para um projeto de aprendizado profundo. Para obter informação mais detalhada e tutoriales, consulte fontes dedicadas sobre o uso de Jupyter Notebook e como os configurar e executar de forma eficiente. # TensorFlow - Configuração do Modelo de Classificador Linear com Dados Adultos ## Introdução Este projeto explora a configuração de um Modelo de Classificador Linear usando TensorFlow e o conjunto de dados Adulto. ## Pré-requisitos - TensorFlow - pandas ## Preparação dos Dados 1. Coleta de dados: Neste caso, estamos utilizando o conjunto de dados Adulto, dividido em conjuntos de treino e teste. 2. Exploração dos dados: Realizamos uma exploração rápida dos dados para entender sua forma e estrutura. 3. Etiquetagem dos dados: Modificamos a etiqueta para torná-la mais intuitiva para o nosso modelo (0 para pessoas com rendimento inferior a 50k e 1 para pessoas com rendimento superior a 50k). 4. Processamento dos dados: Categorizamos os dados em três tipos: características contínuas, características categóricas e relacionamentos. ## Configuração do Modelo 1. Criação do modelo: Começamos criando um modelo para iniciar o processo. 2. Definição do modelo: Nesta fase, definimos a função de entrada para alimentar os dados para o modelo de treino. Isso envolve definir parâmetros como tamanho do batch, épocas, embaralhar e conjunto de dados. 3. Treinamento do modelo: Depois de definir a função de entrada, treinamos o modelo usando o modelo criado e a função de entrada. ## Avaliação do Modelo 1. Função de avaliação do modelo: Esta função avalia o desempenho do modelo nos conjuntos de treino e teste. 2. Avaliação do modelo: Para isso, reutilizamos a função de entrada já criada ao avaliar o modelo no conjunto de teste. ## Ajuste do Modelo Nesta parte, quadraticamos a variável de idade para contabilizar a diminuição da idade próxima à idade de aposentadoria. O código teria um aspecto semelhante a isso: ```python def square_age(dataframe, column_name): new_column = column_name + "_square" dataframe[new_column] = dataframe[column_name] ** 2 return dataframe df_treino = square_age(df_treino, "idade") df_teste = square_age(df_teste, "idade") ``` Agora, repetimos o processo de criar a função de entrada, o modelo e treiná-lo com as novas características. # Tutorial do TensorFlow 2. 0 ## Quadros de Aprendizado Este tutorial abordará: - Introdução aos quadros de aprendizado profundo - Recursos e aplicações do TensorFlow - TensorFlow 2. 0 vs. 1. 0 e arquitetura - Demonstração do TensorFlow ### O que é o TensorFlow? O TensorFlow é uma biblioteca de código aberto lançada pelo time Google Brain em 2015 para a construção de modelos de aprendizado de máquina e de aprendizado profundo. É baseado no Python e realiza cálculos numéricos usando grafos de dados para construir modelos. ### Recursos do TensorFlow - Manejo eficiente de arrays multidimensionais - Escalabilidade da computação em maquinês e conjuntos de dados grandes - Suporte para depuração rápida e construção de modelos - Comunidade expansiva e fornece o TensorBoard para visualização dos modelos ### Aplicações do TensorFlow - Análise de dados (Ciência dos dados) - Deteção facial - Tradução de idiomas - Deteção de fraude - Deteção em vídeo ### TensorFlow vs. TensorFlow 1. 0 e 2. 0 - **TensorFlow 1. 0**: Esta é a versão original, lançada em 2015. É mais centrada em pesquisas e com menos ênfase em aplicações de nível de produção. - **TensorFlow 2. 0**: Esta versão aborda as limitações da 1. 0 oferecendo uma API mais simplificada, melhor integração com bibliotecas Python, e melhor suporte para desenvolvimento de móveis e web. ### Arquitetura #### Arquitetura do TensorFlow 2. 0 ! [Arquitetura do TensorFlow 2. 0](https://developers.google.com/images/tensorflow-architecture-simple.png) 1. **tf. Module**: Uma classe base para a definição de grafos de computação. 2. **tf. Function**: Uma função que compila um gráfo de computação no tempo de execução. 3. **tf. keras**: Uma API de alto nível para a construção de redes neurais. 4. **TFPublish**: Uma ferramenta para publicação e consumo de tensores em um modo distribuído. ### Demo Nesta demonstração, criaremos um modelo do TensorFlow e avaliaremos seu desempenho usando a API `tf. estimator`. #### Passo 1: Defina os recursos ```python import tensorflow as tf from sklearn. datasets import load_iris # Carregue o conjunto de dados da íris iris = load_iris() features = tf. data. Dataset. from_tensor_slices((zip(*iris. data))) # Defina o gráfico de cálculo dos recursos def features_fn(): return features ``` #### Passo 2: Crie o modelo ```python # Crie o classificador usando a API `tf. estimator. Estimator` classifier = tf. estimator. Estimator(model_fn=my_model_fn) ``` #### Passo 3: Treine o modelo ```python # Configuração dos parâmetros de treinamento steps_treinamento = 10000 tamanho_lote = 128 # Configuração da função de input de treinamento input_fn_treinamento = tf. estimator. inputs. pandas_datasets_to_tensor_inputs( features, labels, shuffle=True, batch_size=tamanho_lote) # Treine o modelo classifier. treina(input_fn=input_fn_treinamento, steps=steps_treinamento) ``` #### Passo 4: Avalie o modelo ```python # Configuração dos parâmetros de avaliação steps_avaliação = 1000 tamanho_lote = 128 # Configuração da função de input de avaliação input_fn_avaliação = tf. estimator. inputs. pandas_datasets_to_tensor_inputs( features, labels, shuffle=False, batch_size=tamanho_lote) # Avalie o modelo results_avaliação = classifier. avalia(input_fn=input_fn_avaliação, steps=steps_avaliação) ``` #### Passo 5: Utilize o modelo ```python # Utilize o modelo para realizar previsões previsões = classifier. previsão(input_fn=input_fn_previsão) ``` Com esta demonstração, você terá adquirido um entendimento sólido em como criar e usar um modelo do TensorFlow usando a API `tf. estimator`. É apenas o princípio do que você pode conquistar com o TensorFlow, com o campo constantemente evoluindo e novas pesquisas sendo conduzidas todas as dias. Caso deseje iniciar o uso do TensorFlow, visite [SkillUp - simplylearn](https://www.skillup.com/learn/tensorflow) para um tutorial gratuito. Bem-vindo ao TensorFlow 2. 0! # TensorFlow: Um Profundo Desvendamento em Tensors, Grafos de Dados Fluxo e APIs Bem-vindo à nossa análise sobre TensorFlow. Começaremos falando sobre TensorFlow, primeiramente entendendo o que são tensores - assim como esse componente é o responsável pela nomenclatura da tecnologia. ## Tensores em TensorFlow * **Tensors** representam dados em uma dimensão de n e podem ser vetores ou matrizes. Um escalar é um número único, um vetor pode ser um grupo de dois números que representam valores em uma direção, e uma matriz uma grande quantidade de dados. Quando falamos de uma imagem, por exemplo, cada pixel possui três a quatro canais de cores, transformando a imagem num tensor composto de x e y posições, com cada pixel possuindo as três posições de cores. * **Rank de um tensor**: Os tensores em TensorFlow são definidos por um unitário de dimensão chamado de *rank*. Um escalar, por exemplo, possui um rank de 0 pois não possui verdadeiras dimensões, seja além de ser apenas um ponto na escala. Já um vetor possui um rank de 1, uma matriz possui rank 2, enquanto um tensor de alta dimensão, por exemplo, possui rank maior que 3. ## Como funciona TensorFlow TensorFlow executa cálculos com graforia de dados, onde nós representam as operações de seus modelos e suas entradas e saídas correspondentes (por exemplo, b, c, d, x, y, a e sua saída final). ```markdown b c d ------------------------- x = b + c y = d - 4 ------------------------- a = x * y ``` Cada um desses nós representa uma operação de um modelo específico, como esta pequena equação acima. ## Releases de TensorFlow - **TensorFlow 1. 0**: TensorFlow 1. 0 permitia somente execução implícita e exigia que você executionasse manualmente cada operação, com variáveis, `tf. session`, `session. run` e `table_initializer` necessários para executar cada uma das operações. - **TensorFlow 2. 0**: Permite a execução implícita de seus modelos. Os modelos agora são compilados automaticamente e você também pode usar `tf. keras` (o pacote cross é a sua API de alto nível oficial em TensorFlow 2. 0) para criar modelos, permitindo que você: ### TensorFlow 1. 0 ```markdown Para executar operações em TensorFlow 1. 0, você precisa de uma execução implícita: ``` - `tf. Session`: Permite indoor de variáveis, com as variáveis senão serão sobresscritas em cada run de sessão. - `session. run`: Executa as operações especificadas em uma sessão. - `table_initializer`: Inicializa as operações se necessário usando um Tensor, geralmente 0. - `model. fit()`: Faz a coloracao de dados de treino e validação juntos. ```python with tf. Session() as sess: sess. run(tf. global_variables_initializer()) out = sess. run(model, feed_dict={X: X_train, Y: Y_train}) ``` ### TensorFlow 2. 0 ```markdown Em TensorFlow 2. 0, é possível usar execução implícita de seus modelos. ``` Você pode usar `tf. keras` para criar um modelo rapidamente e treiná-lo com apenas alguns linhas de código: ```python model = Model(inputs=[X_input], outputs=[Y_output]) model. compile(optimizer='adam', loss='mean_s # Introdução ao TensorFlow ## Modelos com truncamento de digitos previamente Quando se criava um modelo anteriormente, a truncação de números decimais não era uniforme. Por exemplo, ao migrar um modelo construído na sua máquina de escritório para uma distribuição, a truncação era diferente. ## TensorFlow Serving Cloud Premium Neste caso, a solução é o serviço de TensorFlow Serving Cloud on Premium. Para empresas que precisam de segurança, como bancos, agora tem o TensorFlow Lite, que permite executar o TensorFlow em dispositivos Android, iOS, Raspberry Pi ou quaisquer placas adicionalmente. ## Novo breakout board de Raspberry Pi Foi criado recentemente um breakout board de Raspberry Pi novo, contendo uma pequena TPU (Tensor Processing Unity) integrada, além de um sensor de câmera. Isso permite pré-processar um vídeo antes de carregar o modelo de TensorFlow. ## Teste de beta de produtos acessíveis O TensorFlow JS foi criado para uso em navegadores e servidor node, permitindo a execução de computações simples que não exigem grande potência computacional em muitos pontos de extremidade. Outras linguagens de bindings também estão disponíveis, pelo que você pode criar o backend do TensorFlow, salvar e ter acesso a ele desde o C, Java, Go, C#, Rust, ou qualquer pacote em que esteja trabalhando. ## Fundamentos da TensorFlow: Constantes, Variáveis e Sessões ### Constantes Nos constantes, utilizaremos a função `constant()` no TensorFlow. Sintaxe: ```markdown dtype name = constant(value, shape=None, verify_shape=False) ``` ### Variáveis As variáveis no TensorFlow são buffers de memória que armazenam tensores. Exemplo de criação: ```markdown v = tf. variables(initial_value=tf. ones((2, 3))) ``` ### Sessões Um terminal no TensorFlow é usado para executar um grafo computacional para avaliar os nós. Pela seguinte maneira, é possível inicializar e executar os valores: ```markdown with tf. Session() as sess: sess. run(tf. global_variables_initializer()) y = sess. run(y) print(y) ``` (Fiz algumas pequenas alterações para a finoria das palavras em português europeu e preservar todos os marcadores do Markdown. ) # Usando Zeros e Um em TensorFlow Com zeros, temos uns se estivermos vindo da outra parte. Então podemos facilmente criar um tensor do TensorFlow com uns. Talvez te perguntes por que quero zeros e uns? Seu primeiro pensamento é inicializar um novo tensor, mas frequentemente inicializamos muito delas com números aleatórios porque faz um melhor trabalho quando se inicia com uma coleção uniforme de uns ou zeros. Você está lidando com uma grande quantidade de bias, então tenha cuidado ao inicializar uma rede neuronal para uma de suas linhas ou algo do tipo. Do outro lado, eu uso isso para masking. Você pode fazer muito trabalho com masking. Talvez uma linha em seu tensor esteja maskeada, e zero é falso, um é verdadeiro, ou o que você quiser fazer. Nesse caso, você deseja usar os zeros e uns. Existem casos em que você deseja inicializa-los com todos zeros ou todos uns e então substituir outros números como o tensor aprende, então é outro tipo de controle. No entanto, em geral, vês zeros e uns, você está normalmente falando de uma máscara sobre outro array. Como no NumPy, também pode fazer reshapes. Se tomarmos o nosso tensor, que está com a forma `3, 4`, talvez queiramos trocar isso para `4, 3`. Caso imprima isso, você verá: ``` vou irá e fazer isso para segue [Enter] vou executar isso ``` Agora, se quisermos trocar os uns por `tf. random. uniform()`, podemos fazer: ``` e vamos irás realmente tirar isto vamos executar isso ``` Agora você verá que tem `0. 0441` e dessa forma, você pode ver realmente como o reshape fica muito diferente: ``` 0. 041. 15. 71 e depois daquele, em vez de ter essa uma ela está pendendo abaixo aqui até `0. 14` ``` Este era o que estava falando. Às vezes preenche essas com números aleatórios, então essa é a `random. uniform` uma das maneiras de fazer isso. Agora, falei um pouco sobre float32 e todos esses tipos de dados. Uma coisa que surge é recastar seus dados. Se tivermos um `dtype` de `float 32`, talvez queiramos converter esses para inteiros por causa do projeto que estamos trabalhando. Eu sei que um dos projetos que trabalhei acabou querendo fazer bastante arredondamento para que tivesse que arredondar um valor em dólares ou float e então para que tivesse apenas dois dígitos decimais. Nesse caso, você tem uma grande variedade de opções. Você pode multiplicar por 100 e depois arredondar ou o que você quiser fazer. Existe uma variedade. Ou então converter para inteiro foi uma maneira de arredondar, bastante barato e sujo. Então podemos ter esse tensor e poderemos ter o mesmo tensor e vamos criar aqui e em seguida criaremos esse como um inteiro: ``` então vamos pegar esse tensor vamos criar esse se imprimir tensor e há então vamos imprimir nosso tensor ``` Aqui, tivemos um `float 32 4. 6 4. 2` e converteu-o diretamente para um valor inteiro. Lembrando que falamos uma pequena quantidade sobre reshape como para rodar, e acabei de `4, 3` em cima do reshape Ali em cima e falamos sobre eixos: zero, axis one. A coisa importante para fazer é que possa tomar um desses variáveis, vamos tomar essa última um, `tensor como int32`, e eu quero rodar uma transposição nele. Então poderia fazer: ``` vamos fazer assim: `tf. transpose` e nós colocamos o tensor-int32 dentro dele e se eu printar a saída e executarmos isso você verá que é o mesmo array, mas flipped então nossas colunas e linhas estão flipped. ``` Isso é o mesmo que reshape. Ao transpor, você apenas faz um reshape. O que é legal em isso é se você olhar nos números, as colunas quando fomos até cima e fizemos o reshape, eles estavam se deslocando até a próxima linha. Então você não está mantendo a estrutura da matriz. Quando fizemos o reshape, eles começam a ser semelhantes, mas não estão muito bem. Você pode entrar aqui, e há opções no reshape disponíveis para torná-lo um transform. Voltamos até aqui, é tudo feito para você, e então há tantas vezes que você precisa inverter suas linhas que é importante saber que você pode apenas fazer isso, você pode inverter suas linhas e colunas bastante rapidamente. Tudo o que faz como no NumPy, também pode fazer a multiplicação de tensores: ``` tremos a multiplicação matricial de tensors vamos irá criar nativa `a` como um constante 5839 e criaremos um vetor `4, 2` e poderia ter feito isso onde ela era um `2x2` vetor mas em vez disso, estamos fazendo apenas um `2x1` vetor e o código para isso é seu `tf dot matmul` uh multiplicador matricial ``` E temos `a vez v`. Se executarmos esse: ``` vamos garantir que imprimore nossa av ali se agora executarmos isso você verá que acabamos com `36, 30`. ``` Agora, sabemos que o objeto de tratar muito rápido. o multiplicador de matriz é uma ferramenta de back-end comumente usada para computar diferentes modelos ou regressão linear. Uma coisa para notar é que, como no NumPy, você tem todos os seus outros cálculos. Então temos nosso `tf math` e se você entrar ali, você tem funções, tem seu cosino, o valor absoluto de ângulo, etc, tudo isso está ali, assim todos esses estão disponíveis para você usar no TensorFlow model. Caso voltemos para o nosso exemplo, e temos alguns produtos que não são bem Markdown, mas resumo: Sobei para a parte do Keras. Ainda possuo alguns documentos que podem ajudar a compreendê-lo melhor. Tenha em mente que você pode sempre buscar por conteúdo adicional em https://www.tensorflow.org/ e comesse com a aprendizagem da biblioteca no TensorFlow. Eu acho que é uma maneira muito divertida de aprender sobre ela! Título: Análise de Qualidade do Ar por meio de Cross e TensorFlow =============================================================================== Introdução ---------- Neste documento, abordaremos o processo de análise de qualidade do ar utilizando a biblioteca Cross e TensorFlow. Neste guia, vamos importar alguns layers do Cross e realizar os pré-processamentos necessários no nosso conjunto de dados antes de treinar um modelo de Rede Neural. Camada Dense e LSTM ------------------- A biblioteca Cross possui uma grande variedade de layers pré-construídas, inclusive o layer Dense, um tipo de camada neural padrão, e o layer LSTM (Long Short-Term Memory), útil para o processamento de dados seqüenciais. ```python from cross import layers as crl # Adicionamos o layer Dense e o layer LSTM dense = crl. dense() lstm = crl. lstm() # Importamos os 2 layers necessários do Cross e o ``` sklearn ``` para os pré-processamentos dos dados from cross import layers as crl from sklearn. preprocessing import MinMaxScaler, StandardScaler from sklearn. metrics import make_scorer ``` Arquivo de Dados e Pre-processamento ------------------------------------ Seguinte é um exemplo que utiliza o arquivo . csv denominado `air_quality. csv` localizado no seu diretório. ```python import pandas as pd # Le novo arquivo de dados com o pandas df = pd. read_csv('air_quality. csv') # Visualizámos o arquivo final lido print(df. head()) ``` Formatação dos Dados -------------------- Neste exemplo, criaremos uma nova coluna chamada `data_time`, que unirá a data e o tempo em uma única coluna, e converteremos isso em um formato `datetime`. ```python import datetime # Formatar a coluna 'data' para estar no formato correto df['data'] = df['data']. astype(str) # Combina a coluna 'data' e 'hora' em uma única coluna df['data_time'] = pd. to_datetime(df['data'] + ' ' + df['hora']) ``` Conclusão ---------- Neste guia, aprendemos como utilizar Cross e TensorFlow para tratar dados de qualidade do ar. Primeiramente, fezemos a importação de alguns layers do Cross, incluindo o Dense e o LSTM, e visualizamos a estrutura nosso arquivos de dados. Em seguida, demonstramos como formatar nosso dados de forma a criar uma nova coluna contendo a data e o tempo em um formato único, útil para modelos de aprendizagem automática. # Deteção de Fora-de-padrão na Análise de Dados ## Visão Geral Este guia demonstrará um processo simples de deteção e limpeza de fora-de-padrão em Python, utilizando a ideia de Intervalo Interquarto (IIQ). O exemplo apresentado aqui apenas se concentra em lidar com fora-de-padrão em um conjunto de dados de umidade, mas este processo pode ser aplicado a outros conjuntos de dados também. ## Pré-requisitos - Uma compreensão básica de programação em Python e análise de dados. - Familiaridade com as bibliotecas Pandas, NumPy e Matplotlib. ## Explicação do Código Abaixo segue o código fornecido para a deteção e limpeza de fora-de-padrão em um conjunto de dados. Estaremos dividindo o código seção por seção para entender o fluxo de trabalho e a razão por trás de cada passo. ```python detection = 'Deteção de Fora-de-padrão em Data Analysis' ### Preparação de Dados ### # Estamos procurando os fora-de-padrão no conjunto de dados, especificamente aqueles que não se encaixam numa distribuição normal de negócios outliers = [] # Loop por cada ponto de dados no conjunto para indentificar os fora-de-padrão para x em data: # Se o x possuir um valor maior do que o IIQ, ele é um fora-de-padrão se x > max_iiq: outliers. append(x) print('Fora-de-padrão encontrado: ', x) # Se o x possuir um valor menor do que o min_iiq, ele também é um fora-de-padrão ou x < min_iiq: outliers. append(x) print('Fora-de-padrão encontrado: ', x) # Se nenhuma condição se encaixar, continue com o próximo ponto de dados # Desde que foram identificados os fora-de-padrão, limpe esses fora-de-padrão do conjunto de dados data = [i por i em data se i não em outliers] ``` No código fornecido, o conjunto de dados `data` é uma lista contendo valores numéricos, e o objetivo é limpar o conjunto de dados de fora-de-padrão. Primeiro, a lista `outliers` é criada para armazenar os fora-de-padrão identificados no conjunto de dados. Em seguida, nós perdemos por cada ponto de dados (`x`) no conjunto de dados. Se `x` possui um valor superior ao IIQ (Intervalo Interquartil), ele é considerado um fora-de-padrão, e seu valor é adicionado à lista `outliers` e um mensagem é impressa. De forma semelhante, se `x` possui um valor inferior ao min_iiq, ele também é considerado um fora-de-padrão, e seu valor é adicionado à lista `outliers`. Depois que todos os fora-de-padrão foram identificados, eles são removidos do vetor `data` usando comprensão de listas, o que resulta em um conjunto de dados limpo sem fora-de-padrão. ## Visualização de Dados (Opicional) Para fins deste exemplo, é suposto que você gostaria de visualizar os fora-de-padrão identificados no conjunto de dados usando uma plotagem em dispersão. A seguir segue a função para gerar a plotagem. ```python def visualize_outliers(data, outliers, title, xlabel, ylabel): fig, ax = plt. subplots(figsize=(8, 6)) # Plotar os pontos de dados ax. scatter(data, marker='. ', cor='lightblue', label='Dados') # Plotar os fora-de-padrão em vermelho ax. scatter(outliers, marker='X', cor='red', label='Fora-de-padrão') ax. set_title(title) ax. set_xlabel(xlabel) ax. set_ylabel(ylabel) ax. legend() plt. show() ``` A função acima recebe quatro parâmetros: o conjunto de dados, lista de fora-de-padrão, título, etiqueta do eixo X, e etiqueta do eixo Y. Após importar Matplotlib, chame a função `visualize_outliers` usando os apropriados conjunto de dados e lista de fora-de-padrão, e ela gerará a visualização. ## Limpeza dos Dados No conjunto de dados limpo, é vital interpolar os fora-de-padrão removidos para evitar uma viés na análise de dados. Use um método apropriado para interpolação, como a interpolação linear, dependendo da natureza dos seus dados. Isso é! Com esses passos, você pode detectar e limpar eficientemente os fora-de-padrão em seu conjunto de dados para garantir a qualidade da sua análise. Feliz ciência de dados! 🚀📊🎉 # Documentação Técnica para Treinamento de Modelo de Rede Neural ## Sumário 1. [Introdução](#introdução) 2. [Camadas do Modelo](#camadas-do-modelo) 3. [Compilando o Modelo](#compilando-o-modelo) 4. [Treinando o Modelo](#treinando-o-modelo) 5. [Avaliando o Modelo](#avaliação-do-modelo) 6. [Gerandoos Resultados do Modelo](#gerando-os-resultados-do-modelo) ## <a name="introdução"></a>Introdução Este documento técnico aborda o treinamento de um modelo de rede neural usando uma API funcional em Keras. O modelo pode ser adaptado para vários tipos de camadas, como camadas densas, convolutivas e de pooling, de acordo com a natureza da tarefa. ## <a name="camadas-do-modelo"></a>Camadas do Modelo As camadas deste modelo estão organizadas da seguinte forma: - Camadas principais - Camada densa - Camada de ativação - Camada de embutimento [Redes neurais contemplativas (CNN) ou camadas contemplativas] são geralmente usadas para tarefas de classificação de imagens, como a localização de objetos em uma imagem. [Camadas de pooling] ajudam a trazer as camadas juntas em uma camada única, mantendo informações essenciais. A pooling 3D global pode ser utilizada para agregar as ativações para toda a volumetria 3D (altura, largura e profundidade) da imagem. ## <a name="compilando-o-modelo"></a>Compilando o Modelo A compilação do modelo faz tudo juntar. A função de perdas utilizada é a Erro Quadrático Médio (E. Q. M. ), e o otimizador escolhido é o Adão. ```python model. compile(otimizador='adam', perdas='mean_quadrado_erro') ``` ## <a name="treinando-o-modelo"></a>Treinando o Modelo Antes de treinar o modelo, é importante determinar boas hiperparâmetros, como "epochs" e tamanho de lote. Estas hiperparâmetros podem ser ajustados durante o processo de treino. ```python model. fit(treino_x, treino_y, epochs=500, lote=32) ``` ## <a name="avaliação-do-modelo"></a>Avaliação do Modelo Após o processo de treino concluir, é importante avaliar o modelo usando um conjunto de teste para obter uma medida verdadeira de sua performance. ```python previsões_teste = model. predict(teste_x) ``` ## <a name="gerando-os-resultados-do-modelo"></a>Gerando os Resultados do Modelo Gerar os resultados do modelo pode ajudar a visualizar o desempenho do modelo em ambos os conjuntos de treino e teste. O código necessário para gerar os gráficos geralmente envolve várias etapas, como a criação de grupos de dados, desvio médio das previsões, configuração da figura e rótulo das gráficos. Para ver um exemplo completo de como gerar os gráficos, você pode consultar o código fornecido no documento original. # Inteligência Artificial: As 10 Tecnologias Top Bem-vindo a outro vídeo por Simplesmente Aprender! Eu sou Keef Tana, e hoje faremos uma discussão sobre as 10 principais tecnologias da Inteligência Artificial (IA). Antes de entrar no assunto, vamos tomar uma pausa para nos inscrever no canal e clicar no ícone de sino, para que você não perca nenhuma atualização dela. Sem mais ado, vamos rapidamente passar pela lista que temos: 1. **Geração de Linguagem Natural** - A comunicação eficiente e transparente são tudo o que precisamos em comunicação. Humano pode encontrar-se difícil, e quando se trata de máquinas, é ainda mais assustador. A Geração de Linguagem Natural (GLN) é uma sub-disciplina da IA que converte dados estructurados em uma linguagem nativa. As máquinas são programadas de maneira que os algoritmos convertam os dados em um formato desejado dos usuários. Essa tecnologia é amplamente usada no atendimento ao cliente, na geração de relatórios e na abstração de insighs sobre inteligência empresarial de negócios. Alguns dos provedores de GLN são Artovated Insights, SAS, Cambridge Semantics, Digital Reasoning, Narrative Science, etc. 2. **Dispositivos Inteligentes** - A cada dia, os dispositivos inteligentes estão tornando-se mais populares e tendenciosos. Pode ser usado em quase todos os setores para melhorar a eficiência e otimizar as operações. Dispositivos inteligentes são objetos comuns tornados inteligentes com computações avançadas, que incluem a IA e aprendizado automático. Eles são gadgets eletrônicos que são capazes de se conectar, compartilhar e interagir com seus usuários e outros dispositivos inteligentes. Alguns exemplos de dispositivos inteligentes são relógios inteligentes, óculos inteligentes, celulares e rádios inteligentes. 3. **Agentes Virtuais** - Os agentes virtuais são a inteligência computadorizada que fornece auxílio de cliente online. Eles podem comunicar-se efetivamente com os humanos em aplicações web e móveis. Vemos chatbots como agentes de atendimento ao cliente que interagem com você, respondendo às nossas perguntas em linguagem simples. Os agentes virtuais são uma manufatura de tecnologia que tenta criar uma cópia digital e vívida da inteligência humana. Eles podem realizar reservas, agendar uma consulta, disponibilizarem um pedido, e até mesmo fornecer informação sobre produtos. Alguns dos melhores exemplos de agentes virtuais são Google Assistant e Amazon Alexa. Empresas que fornecem agentes virtuais são Microsoft, Google, Amazon e Assist AI. 4. **Reconhecimento de Fala** - O reconhecimento de fala é outro sub-disciplina da IA que é usado para converter a fala humana em um formato compreensível e útil para aplicações de computadores para processar. Pode ser dito como a ponte entre interações de computadores e humanos. Atualmente, é usado em sistemas de resposta interativa por voz e aplicações móveis. Alguns dos fornecedores de serviços de reconhecimento de fala são Nuance Communications, OpenText, Nice, Variant Systems, entre outros. 5. **Realidade Aumentada** - A Realidade Aumentada (RA) é outra tecnologia popular no campo da IA. A RA é uma versão melhorada da real mundo físico que é alcançada usando som, elementos digitais de visualizações, e outras estimulantes sensoriais fornecidas por tecnologia. A RA utiliza o ambiente real e adiciona informações a ele, para criar um nova ambiente artificial. Ela altera a percepção do ambiente real. A RA está se inserindo em diversas lojas de determinados setores que fazem a seleção de maquiagem e mobiliar muito mais divertida e interativa. 6. **Aprendizagem de Máquina** - A Aprendizagem de Máquina (AM) é um sub-disciplina da IA que refere-se a máquinas aprendendo por si mesmas sem ser explicitamente programadas. A AM permite que os sistemas aprendam e melhorem a parte automaticamente. A plataforma de aprendizagem de máquina está se tornando mais popular com a ajuda de algoritmos, APIs, big data, e aplicações e ferramentas de treinamento. As empresas estão investindo em profundidade na aprendizagem de máquina para aproveitar seus benefícios em vários domínios. A aprendizagem de máquina é amplamente usada para classificação e previsão. Alguns dos provedores de serviço de aprendizagem de máquina são Amazon, Fractal Analytics, Google, Microsoft, et al. 7. **Automação por Robô (RPA)** - Configurar um robô para interpretar, comunicar, e analisar dados é Robótica de Processamento Automatizado (RPA). Ele usa scripts e outras técnicas para automatizar as ações humanas que em conjunto apoiam processos empresariais efinentemente. A RPA é usada principalmente nos setores em que a presença física de um humano é perigosa, como guerra e mineração. Lembremos que a IA não é feita para substituir os humanos, ao invés disso, ela é criada para complementar suas habilidades e reforçar o talento humano. As empresas que se concentram nesse campo são Pika Systems, Automation Anywhere, Blue Prism, entre outras. 8. **Gestão de Tomada de Decisão** - A Gestão de Tomada de Decisão (GTC) é outra tecnologia da IA que ajuda as empresas a tomar decisões válidas fornecendo informações atuais e relevantes e executando funções analíticas. A IA é um objeto de investigação assídia que tem como finalidade melhorar a eficiência empresarial construindo estruturas de decisão mais precisas. A GTC ajuda as empresas a tomar decisões mais rápidas e Dakota Lewis pelo robô de customização do curso. Extemor: - Como aprender a fazer back-end em python - Engenharia de Softwares em Python - Metodologia de construtção de tipos classroom - Transcrições de audió-vídeo em Python - Como funciona a tag de frase em motores de busca - Aprendizado profundo se através da abstracção de código # AI na Saúde 2022 | Inteligência Artificial na Saúde | AI para Iniciantes | Simplilearn *Idioma: en* A efficiency pode ser uma questão de vida ou morte A Inteligência Artificial (IA) está transformatando a cultura da saúde por completo. Pacientes, médicos e gerentes de hospitais todos têm suas vidas facilitadas pela Inteligência Artificial, executando atividades que normalmente seriam realizadas por humanos em tempo recorde e em um custo relativamente baixo. ## Os 10 Melhores Aproximados da IA na Saúde ### Pesquisa e Desenvolvimento Farmacêutico Para chegar do laboratório de pesquisa ao paciente demora em média 12 anos de acordo com a Associação de Pesquisa Biomédica da Califórnia. Para chegar ao paciente, um medicamento precisa de viajar de um laboratório de pesquisa para um paciente. A Inteligência Artificial permite sistemas de desenvolvimento de medicamentos que usam enormes quantidades de dados para identificar rápidamente marcadores de resposta do paciente e criar tratamentos mais eficazes e acessíveis. Um dos aplicativos mais recentes da IA na saúde é a Descoberta de Medicamentos. As últimas tecnologias da IA podem ser usadas para acelerar o processo de Descoberta de Medicamentos e de Reposição de Medicamentos. De acordo com uma pesquisa, de cada 5000 medicamentos que são colocados na fase pre-clínica, apenas um desses cinco é finalmente licenciado e usado em humanos. Além disso, o desenvolvimento de um novo tratamento custa uma média de U$ 359 milhões de dólares. A Inteligência Artificial ajuda a indústrias farmacêuticas no desenho de medicamentos e também ajuda a escolher o produto correto para a máquina. ### Diagnóstico do Câncer A IA já está sendo usada para diagnosticar doenças como o câncer de forma mais precisa e precoce. A National Cancer Institute afirma que a aprendizagem profunda, a inteligência artificial e a machine learning podem todos ser utilizados para melhorar o tratamento do câncer e os resultados para os pacientes. 13. 000 fotos de câncer colorectal foram coletadas pelos pesquisadores de 8. 000 participantes e 13 centros de vários países diferentes, entre eles o China, Alemanha e Estados Unidos. Os pesquisadores então criaram um software de aprendizagem de máquina usando as fotos que os técnicos selecionaram aleatoriamente. O software pode identificar fotos de câncer colorectal, uma das principais causas de mortes relacionadas com o câncer nos Estados Unidos e países europeus. ### Tecnologias de Escã e de Ultrassom A IA pode ajudar clínicos a abordar uma abordagem mais ampla para a gestão de doenças, coordenar melhor os planos de cuidados e ajudar os pacientes a melhor gerenciar e se comprometer com os Programas de Tratamento a longo prazo. Além de ajudar prestadoras de atendimentos de saúde, a tecnologia de ultrassom AI pode ser usada nos exames de raios-X para análise em tempo real dos dados e processamento de imagens. AI desempenha um papel em reduzir a carga de trabalho por parte dos clínicos ao contribuir na realização de exames de CT ou MR Scans com diferentes ferramentas de IA ou robótica. ### Tratamento de Disordens Neurológicas A reconhecimento de padrões usa várias algoritmos de aprendizado de máquina para classificar automaticamente tipicamente para auxiliar na tomada de decisão clínica em função de uma patologia cerebral ou várias classes por identificar padrões que se harmonizam com diferentes classes. Isso ajuda a solucionar problemas neurológicos, por exemplo, podemos dizer que a classificação baseada em dados anatomai é frequentemente utilizada para identificar doenças de Alzheimer e outras formas de diminuição da capacidade de aprendizado. ### Cirurgias Assistidas por Robôs Os robôs médicos já estão sendo usados durante mais de 30 anos. Vão desde robôs de laboratório básicos a robôs de cirurgia muito sofisticados que podem trabalhar ao lado de um cirurgião humano e executar procedimentos sozinhos. Os robôs têm uma enorme potencial para transformar a Saúde por permitir que os pacientes manterem sua independência por um período maior e diminuindo a necessidade de atenção em hospitais e residências geriátricas. São usados em hospitais e laboratórios para trabalhos repetitivos, Reabilitação e Terapia Física, e suporte para pessoas com problemas prolongados. ### Assistentes virtuais de Saúde Os assistentes virtuais de saúde são encarregados de uma vasta gama de tarefas, tais como responder às ligações de pacientes e emails e manter as informações médicas, enquanto protege dados sensíveis. Além de programar consultas médicas e lembrar pacientes de visitas de seguimento e de reuniões clínicas, etc. Combinando computação cognitiva e realidade aumentada e movimentação corporal e vocal, é gerado cognitive Computing e realidade aumentada, os qual estimulam e solucionam pensamentos complexos humanos de forma a que tanto pacientes como médicos se beneficiam da diminuição de visitas hospitalares devido ao uso de cognitive Computing e realidade aumentada e outras tecnologias de IA. ### Diagnóstico de Doenças Sanguíneas Agora os médicos podem identificar compostos perigosos e germes microbianos em amostras de sangue, como Staphylococcus, E. coli, etc. , a uma velocidade substancialmente maior do que nenhuma outra análise manual. Para treinar as máquinas a localizar o germe bacteria, pesquisadores examinaram mais de 25. 000 fotos de amostras de sangue dos robôs com precisão de 95%. Isso diminui significativamente o número de mortes. ### Administração de Registros na Indústria da Saúde A administração de dados, como experiências passadas e registros médicos, geralmente ocorre nessa etapa. A integração da Inteligência Artificial e a automatização digital pode acelerar grandemente esta etapa de administração de dados, pois os robôs são empregados para coletar, formatar, armazenar e rastrear dados, para tornar a informação mais rápida e confiável. Empresas soluções IOT de reputação estão trabalhando de perto com hospitais e outras organizações de saúde para desenvolver ferramentas que combinam forte IA com estratégias de gestão de dados para reduzir a perda de dados. ### Combate a Fraude e a Segurança Ao procurarem o cuidado médico mais econômico, o número de casos de fraude também está aumentando a um índice exponencial. A maioria das instituições médicas e pacientes já tiveram sérios danos como resultado disso. A IA ajuda a proteger um enorme volume de dados produzidos pela indústria da saúde economizando com o uso de processos de navegação de processos para detectar o que está fora de lugar. A Inteligência Artificial, usando o processo de manejo de informações, foi utilizada para reduzir a fraude em hospitais e empresas da indústria da saúde. Estes tentativas de fraude diminuíram, graças à Inteligência Artificial, já que eles permitem navegação complexa de processos e detecção de fraude. ### Gestão da COVID-19 Sem dúvida esse fase da COVID-19 foi difícil para muitas pessoas e você já viu como a IA reduziu este problema analisando gigantescos volumes de dados de pesquisa. As tecnologias de IA e metodologias podem ajudar no entendimento da COVID-19 e desacelerar a pesquisa sobre remédios. Técnicas de texto e mineração de dados podem descobrir as informações sobre a origem do vírus, sua disseminação e diagnóstico, bem como informações sobre estratégias de manejo e Lições Aprendidas de outras pandemias. Além disso, a IA pode ser usada para traçar o vírus, diagnosticá-lo e evitar sua disseminação. # AI e Aprendizagem de Máquina: O Aumento do Autônomo AI | AI 2022 | Elon Musk, Bill Gates, Sundar Pichai Abre em uma nova janela [Vídeo de AI e Aprendizagem de Máquina](https://www.youtube.com/watch?v=wTbrk0suwbg) Linguagem: en A Google, o Facebook, a Apple, a Microsoft e outras gigantes da tecnologia estão a melhorar rapidamente o software de inteligência artificial (AI). O AI torna-se mais inteligente, fornecendo-nos informações que queremos conhecer com base nos nossos interesses, tornando nossas vidas mais eficientes. Estamos a concentrar-nos nos sistemas autónomos, os quais consideramos como a mãe de todos os projetos de AI. A autónomia é uma fronteira excitante para nosso. Imagine um mundo em que existem robôs a talhar campos, a Apple e a Berkshire Hathaway, e onde é só pressionar um botão no início de cada manhã para ter produzidos todos os bens e serviços que necessitamos com robôs. O AI se infiltra na nossa vida em modos que não nos allunham, tornando-nos mais eficientes em aspectos como a medicina, o transporte e a distribuição de energia elétrica. O AI tem o potencial para criar uma economia eExceptionalmente mais produtiva e eficiente e gerar enorme prosperidade para as pessoas. A chegada da inteligência digital superior deve ser um tema que possa ser discutido, mas o que estamos a ver agora é que os computadores podem ver como os humanos, com o autopiloto da Tesla ver uma redução de 45% em acidentes de estrada, embora seja um sistema relativamente primitivo. O AI tem muito a oferecer e, embora não sem riscos, pode curar doenças e nos tornar seguros eliminando a falha humana em diversas tarefas. ## Curso Completo em Engenharia de AI: A Inteligência Artificial, a Aprendizagem de Máquina e a Aprendizagem Profunda Abre em uma nova janela [Curso Completo em Engenharia de AI](https://www.youtube.com/watch?v=ZUdydQ1XGb0) Linguagem: en Bem-vindo a um curso de vídeo completo sobre se tornar um engenheiro de AI. Este curso aborda a inteligência artificial, a aprendizagem de máquina, a aprendizagem profunda, e as habilidades necessárias para se tornar um engenheiro de AI bem-sucedido. Uma equipe de treinadores experientes o conduzirá através deste curso. Certifique-se de assinar ao canal Simply Learn para mais vídeos interessantes da tecnologia. Neste curso, veremos: - Entender o que a AI é - Olhar para as habilidades mais necessárias para se tornar um sucesso após ser engenheiro de AI - Explorar as principais aplicações da AI - Apreender as bases da aprendizagem de máquina e varios algoritmos com demonstrações práticas em Python - Diligenciar a aprendizagem profunda, redes neurais e as bibliotecas TensorFlow e Keras - Descobrir o futuro da AI e as perguntas de entrevista mais importantes em inteligência e aprendizagem profunda para se tornar um bem-sucedido engenheiro de AI. Imagine uma máquina que ordene seu armário justamente como você gostaria ou sirva uma tassa de café personalizada a cada membro da sua casa. Estes são os produtos da inteligência artificial. A AI é construída com algoritmos complexos e funcções matemáticas para permitir que as máquinas se adaptem, racionem e resolvam problemas. O AI é utilizado em vários aspectos de nossas vidas diárias, desde os telefones celulares e o automóvel até à feeds sociais e jogos de vídeo, e torna-lo mais fácil de nosso trabalho. O robô deve usar aprendizado geralizado, razão e solução de problemas para adaptar a novas situações e performar como previsto. A inteligência artificial fraca (AI estreita) se foca numa tarefa específica, enquanto a inteligência artificial forte é um tema de imaginação ainda. A aprendizagem profunda é um subconjunto da aprendizagem de máquina, que permite que as máquinas aprendam da dados a partir de algoritmos e é inspirada pelo cérebro humano. Ray Kurzweil prevê que até 2045 teremos robôs tão inteligentes como os humanos, o ponto da singularidade. Elon Musk prevê que os cérebros e o corpo humano serão melhorados por OS implantes de AI, potencialmente tornando-nos parte cyborgs. Dê uma ponderada e mande-nos saber quais dos seguintes projetos de AI ainda não existem: - Um robô com cidadania - Um robô com um esqueleto muscular - AI que pode ler as emoções de seu proprietário - AI que desenvolve emoções ao longo do tempo Como o cérebro humano é ainda um misterioso, a AI ainda tem muitos domínios inexplorados. A AI trabalha com os humanos e torna o nosso trabalho mais fácil, mas com a evolução da tecnologia podemos apenas aguardar e olhar para o que o futuro da AI tem para a nós. ## Engenheiro de AI O engenheiro de inteligência artificial constrói modelos de AI usando algoritmos de aprendizagem de máquina e redes neurais de aprendizagem profunda para tirar conclusões comerciais e criar modelos de AI a partir do zero. Estão aguardando de empresas que usam verdadeiros dons em programação, engenharia de software e ciência de dados. Usam várias ferramentas e técnicas para processar dados e desenvolver e manter o sistema de AI. As responsabilidades de um engenheiro de AI incluem: - Desenvolver, testar e implementar modelos de AI, usando várias algoritmos de programação como a regressão lógica, a regressão linear e o bosque aleatório, e convertendo esses modelos em APIs para serem utilizadas por outros aplicações - Criar modelos de aprendizagem de máquina a partir do zero e ajudar os diferentes componentes da organização, como os gerentes de produtos e proprietários, a entender os benefícios do sistema de AI que estão construindo - A construir sistemas de ingestão e de processamento de dados para alimentar os modelos de aprendizagem de máquina e manter o sistema de AI para garantir que funcione como deveria. # Infrastructure para Engenheiros de Inteligência Artificial Este guia abordará as habilidades necessárias para se tornar um engenheiro de inteligência artificial, as funções e os caminhos profissionais na inteligência artificial, e as aplicações da Inteligência Artificial em várias áreas. ## Habilidades necessárias para um engenheiro de inteligência artificial Para se tornar um engenheiro de inteligência artificial, os seguintes são as habilidades essenciais: 1. **Habilidades de Programação**: Python, R, Java e C++ são alguns dos idiomas de programação necessários para criar e implementar modelos de Inteligência Artificial. 2. **Álgebra Linear, Probabilidade e Estatística**: Uma conhecimento profundo destas conceitos é necessário para entender e implementar vários modelos de inteligência artificial de forma precisa. 3. **Spark e Tecnologias de Big Data**: Engenheiros de inteligência artificial trabalham com volumes grandes de dados, assim, conhecimento da Spark e dos outros techonologias de Big Data, como Apache Spark, Hadoop, Cassandra, e MongoDB, são necessários para processar e interpretar os dados. 4. **Algoritmos e Frameworks**: Um bom entendimento de algoritmos de aprendizado de máquina, como regressão linear, kNN, SVM, etc. , e algoritmos de aprendendo profundo, como CNN, RNN, GAN, etc. , é necessário para criar modelos de Inteligência Artificial com facilidade. Alguns frameworks populares usados na Inteligência Artificial são TensorFlow, PyTorch, Theano e Caffe. 5. **Habilidades de Comunicação e Solução de Problemas**: Skills de comunicação e problem-solving são cruciais para apresentar soluções, resolver obstáculos e traçar insightes úteis para a empresa. ## Funções e Caminhos Profissionais na Inteligência Artificial 1. **Engenheiro de Inteligência Artificial**: Trabalham em estreita colaboração com engenheiros eletrônicos para criar software para a criação de robôs inteligentes artificiais. 2. **Arquiteto da Inteligência Artificial**: Trabalham em estreita colaboração com os clientes fornecendo serviços de integração de negocios e sistemas enquanto criam e mantêm a infraestrutura inteira. 3. **Engenheiro de Aprendizagem de Máquina**: Constroem modelos preditivos usando técnicas de Aprendizagem de Máquina e têm conhecimento profundo de várias técnicas de Aprendizagem de Máquina e Aprendizagem Profunda e Frameworks. 4. **Cientista de Dados**: Eles limpam, analisam e interpretam conjuntos de dados grandes e complexos usando técnicas de Aprendizagem de Máquina e preditivos de Analytics. 5. **Desenvolvedor de Inteligência de Negócios (Developer de Inteligência de Negócios)**: São responsáveis por projetar, modelar e analisar conjuntos de dados complexos com o objetivo de identificar tendências comerciais e Märket. ### Oportunidades de Educação A Simply Learn já se juntou com a IBM para oferecer o programa de Mestre em Ingênero de Inteligência Artificial. Este programa consiste em vários cursos como Orientação a Inteligência Artificial, Ciência de Dados com Python, Aprendizagem de Máquina, Aprendizagem Profunda Fundamentals da IBM, Aprendizagem Profunda com TensorFlow e o Projeto de Inteligência Artificial. Após completar este curso, você receberá certificados de ambas a IBM e a Simply Learn. ## Aplicações da Inteligência Artificial ### E-Comércio 1. **Loja Personalizada**: A Inteligência Artificial oferece experiências personalizadas de compras através de motores de recomendação que consideram o histórico de uso do cliente, suas preferências e interesses. 2. **Pesquisa Visual**: A inteligência Artificial permite aos usuários fazerem pesquisas visuais, onde eles podem carregar uma imagem de um item que precisam e os resultados de pesquisa serão apresentados que coincidam com sua pesquisa sem precisar de digitar nada. 3. **Assistência do Cliente Inteligente**: Assistentes virtuais de loja online e robôs de chat melhoram as experiências do usuário durante o shopping online usando técnicas como NLP para tornar a conversação o mais humana e personal possível. 4. **Compra Inteligente**: A Inteligência Artificial ajuda a prever as demandas relacionadas a um produto específico ao focar nos padrões históricos, permitindo empresas tomar decisões informadas sobre quais produtos estocar e quando. 5. **Prevenção de Fraude**: A Inteligência Artificial ajuda a reduzir a possibilidade de fraudes em pagamento de cartão de crédito examinando padrões de uso e identificando o comportamento típico do usuário, servindo para melhorar a confiança dos clientes nas marcas e produtos. ### Robótica 1. **Robôs de Mobilidade**: Potenciados pela Inteligência Artificial, estes robôs podem navegar ambientes complexos ao pré-planear seu percurso e detectar obstáculos em seu caminho. 2. **Otimização de Processos**: A Inteligência Artificial ajuda a reduzir os custos associados às grandes problemas e problemas sem necessidade de liminar pelo analisando dados de sensores e melhorando a inteligência da Inteligência Artificial, tomando decisões e fazendo previsões sobre quando obras de manutenção são necessárias. ### Recursos Humanos 1. **Software de Hiring Cego**: A Inteligência Artificial ajuda a filtrar candidaturas baseadas em parâmetros específicos, permetendo para recrutadores escolher de forma fácil da piscina de talento. ### Saúde 1. **Sistemas de Auditoria de Receitas**: Estes sistemas ajudam a prevenir erros nas prescrições por verificar doses e garantindo a identificação correctly dela doença, melhorando a segurança do paciente. 2. **Imagem e Diagnóstico Médico**: A Inteligência Artificial ajuda no diagnóstico precoce e no análise de condições crônicas pelo examinar dados de exames de laboratório e datas médicas e identificar marca-registro que poderão levar a certas doenças. 3. **Inteligência Artificial em Pesquisa e Desenvolvimento**: A Inteligência Artificial ajuda na descoberta de novos fármacos, previsões a respeito de vários aspectos e um melhor entendimento dos genes humanos e seus componentes. ### Agricultura 1. **Monitoramento da Saúde da Cultura e do Solo**: A Inteligência Artificial ajuda a identificar defeitos, deficiências de nutrientes e outros problemas no solo analisando imagens do solo e padrões de conversão, promovendo práticas agrícolas sustentáveis. 2. **Ótimização de Agroquímicos**: A Inteligência Artificial ajuda a reduzir o uso de agroquímicos ao otimizar a aplicação em função de condições meteorológicas, do crescimento das plantas e das populações parasitas, contribuindo para um ambiente mais seguro e melhor produção. --- Este documento foi corrigido para remover erros ortográficos, gramaticais, e formação de Markdown, bem como organizado em seções com títulos claros para uma melhor leitura. Ele fornece informação atualizada sobre a habilidades, cargos e aplicações da Inteligência Artificial em várias áreas. # Aplicação da Inteligência Artificial: Uma Visão Geral Compreensiva ## Visão Geral da Tecnologia - Utilizando tecnologia como **visão artificial**, robótica e aprendizado de máquina, pode ser determinado onde as plantas daninhas são cultivadas. Isso permite a aplicação estratégica de herbicidas, limitando assim seu uso. - A Inteligência Artificial (IA) também ajuda na agricultura ao utilizar bots para colher os cultivos a uma taxa mais rápida e em maior volume, reduzindo assim o trabalho humano. ## Jogos - Na indústria de jogos, a IA é utilizada para lidar com custos de mão-de-obra ao gerar níveis, mapas, texturas, armas, personagens e mais. - Pode criar NPCs inteligentes humanoides para interagir com os jogadores e prever o comportamento dos jogadores para melhorar o design e teste dos jogos. ### Alien: Isolation Example (2014) - O alien principal do jogo "Alien: Isolation" segue o jogador, utilizando dois AIs: um AI Director que sempre sabe a posição do jogador, e um AI do alien guiado por sensores e comportamentos que caçam o jogador. - O AI Director apenas fornece ao AI do alien indícios da posição do jogador, que o AI deve então determinar. ## Automóveis - Na indústria automobilística, a IA permite automóveis autónomos através de uma combinação de câmeras de veículo, radar, serviços na nuvem, GPS e sinais de controle. - A IA também fornece recursos de ajuda ao motorista, como freios de emergência, monitoramento de cegas e direção assistida. ## Mídia Social ### Facebook - A IA é utilizada no Facebook para analisar imagens, ajudando a identificar pessoas em imagens. - Uma ferramenta chamada DeepText é utilizada para analisar posts representando pensamentos suicidas. Pode também traduzir posts de diferentes idiomas. ### Instagram - O Instagram utiliza a IA para personalizar o conteúdo mostrado na aba "Explorar" de um usuário baseado em suas preferências e nas contas que eles seguem. - A ferramenta DeepText foi utilizada recentemente para identificar e remover mensagens de spam de contas de usuários, e para lidar com bullying. ### Twitter - O Twitter utiliza a IA para detectar fraude, propaganda e conteúdo ofensivo. Também recomenda tweets baseados no que um usuário interage, e filtra conteúdo inapropriado. - A IA também é utilizada para cortar automaticamente imagens baseado no reconhecimento facial, e para filtrar e remover conteúdo inapropriado. ## Publicidade Programática e Marketing - A IA permite a publicidade programática para anúncios altamente alvo e personalizados baseados em análise de comportamento, reconhecimento de padrões e mais. - A IA retargeta audiências à hora certa para garantir resultados adequados, e tenta evitar sentimentos de incomodação e desconfiança. ## Narrativas Pessoalizadas, Bots de Chat, UI/UX e Localização - A IA ajuda na marketing de conteúdo ao combinar o estilo e a voz da marca, lidando com tarefas rotineiras e configurando bots de chat. - Os bots de chat utilizam processamento de linguagem natural, geração de linguagem natural e compreensão de linguagem natural para se comunicar efetivamente com humanos. - A IA ajuda na personalização de UI/UX ao fornecer personalização em tempo real para otimizar a experi # Faixa de Funções: Siri e seus Desafios, IBM Watson e o Futuro da Inteligência Artificial A Siri frequentemente enfrenta desafios quando conquistar tarefas fora de seu alcance. Watson, outro exemplo de IA Restrita, aplica computação cognitiva, aprendizado de máquina e processamento de linguagem natural para processar informação e responder suas perguntas. Watson foi o vencedor do concursoJeopardy! contra o competidor humano Ken Jennings em 2011, se tornando campeão. Outros exemplos de IA Restrita incluem o Google Translate, software de reconhecimento de imagens, sistemas de recomendação, filtro de spam e o algoritmo Page Rank da Google. Em seguida, temos a IA Geral (IGA), também conhecida como IA Forte. A IGA tem o poder de entender e aprender qualquer tarefa intelectual que um ser humano possa executar. A IGA recebeu uma inspecção de um bilhão de dólares da Microsoft através da OpenAI, permitindo que a máquina tenha aplicação de conhecimento e habilidades em diferentes contextos. Cientistas e pesquisadores de IA ainda não tiveram sucesso na IA Forte, pois seria necessário encontrar uma maneira de tornar as máquinas conscientes e programar uma plena entrada de habilidades cognitivas. A Fujitsu construiu o K Computer, um dos computadores mais rápidos do mundo. É uma das tentativas mais notáveis de chegar à IA Forte. Simula uma atividade neuronal em um segundo, o que faz difícil determinar se a IA Forte será alcançada no futuro próximo. O Tianhe-2, outro supercomputador criado pela Universidade de Defesa Nacional da China, atualmente detém o recorde de poupa flops em 33, 86. Embora isto pareça excitante, o cérebro humano é capaz de uma quintilhão de gibibits por segundo, assim, ainda há um longo caminho a percorrer. Avançando, temos a Super IA. A Super IA excede a inteligência humana e não é superior àquela de qualquer tarefa. A conotação de Inteligência Artificial Superior (AIS) vem através da evolução da IA para se tornar tão familiar com as emoções e as experiências humanas que não apenas compreende minha estranha, evoca emoções, necessidades, crenças e desejos próprios. Seu existência é ainda hipotética, mas algumas de suas características principais incluem a capacidade de pensar, resolver acertamentos, fazer julgamentos e tomar decisões de forma independente. Se você gostou de assistir ao vídeo até agora, por favor, certifique-se de assinar o nosso canal do YouTube e toque no ícone de sino para ficar atualizado sobre todas as novidades tecnológicas. Em anos passados, infligimos em Hollywood filmes como "Her" ou "Ex Machina" em que a inteligência artificial se torna não apenas quase humanizada, mas também articulativamente capaz de expressar um sentimento e nutrir uma emoção. Por addida aos cultos doDia dos Nerdswindow. shard? id=o-guia-de-codificação-de-ja-não-é-um-esforço-comum, a também orgulhosamente revela o primeiro试验语言助手（Language Assistant for Testing）proyecto que os pesquisadores conseguiram construir. O sistema é uma "AI Restrita"como a Watson, mas neste caso adiciona perguntas aos testes de código e análisa-se a precisão com o que uma pessoa iria escrever ou anotar ao teste de código. É caracterizado por ser uma "AI Restrita", não aprenderia tarefas além daquele escopo, mas por que isso está legal? Porque a finalidade desse projeto é melhorar a precisão das análises de código de um sistema de testes. ! Seguindo este método de desenvolvimento, é bastante provável que uma grande evolução aconteça na IA nos próximos anos e anos venidos, arriscanado-se a própria existência humana! Nessa videoclipe, exploramos quatro estágios pelos quais a IA possui o potencial de se desenvolver e como essa evolução poderá sobrepor sua presença na sociedade humana. Vamos agora ver alguns exemplos de estágios e aplicativos de IA que já têm sucesso: ## IA de Imersão Completa (Full Immersion AI) Definida como a estrutura mais fácil de criar VR (Realidade Virtual) que permite visual, áudio, táctil e olfato. Por que necessitaríamos de isso? Por causa da crescente necessidade de nossas máquinas de reconhecer o que as pessoas estão sentindo, criar uma velocidade de processamento mais rápida (com milhões de processadores nuclares fusionando sua capacidade de processamento) para responder na instante das respostas dos usuários. É ainda muito nova a tecnologia da IA Full Immersion, mas existe umaprojeto correto conhecido comoTactile Cloud Computing que já é grande passo nesta direção. ## IA Neuro Simuladora (Neuro-Simulators) Um ramo da IA que visa reproduzir e simular o funcionamento do cérebro humano. Começou no ano de 2000 e começou a ter muitos investimentos recentemente, mas apenas em 2016 experimentamos algo notável com o projeto Blue Brain Unveiled. Em 2016, eles confirmaram múltiplas conexões neuronais e redes visuais em ratos e simulou-as para calcular os parasitos de qualidade da rede neural do cérebro humano. E o que isso significa? Comecemos a entender cómo funciona o cérebro e comecemos a modelar o nosso próprio cérebro de forma computacionalmente. ## IA Quantum Um esperançoso esforço para melhorar os processadores de computação quantum, a IA Quantum começa a ser bem trabalhada por vários órgãos e empresas importantes como aIBM. Se pensamos que os satélites de exatidão atômica são convenientes, imagem uma velocidade de dados 10 mil vezes maior de uma computador. É fantástico, mas ainda está na fase experimental e de testes ainda não temos nenhum navegador web que possa ter acesso a IA Quantum. Entretanto, seus benefícios para a internet e o armazenamento de IA podem ser incríveis, o que significa? Internet mais lenta de vários segundos e a esposa nagando sobre as pessoas com suas comentários sobre os pedidos na tia. ## IA Avançada (Advanced AI) A IA baseada na internet teve sua primeira aparição em meados dos anos 1990 e gradativamente evoluiu na década de 2010. Está disponível em aplicativos como o Siri, Google Now, Cortana e outros, mas essa é apenas a elaboração de uma cópia das características humanas em uma representação córgida da inteligência humana. Em compensação a IA Avançada ér a IA Robótica Móvel. ## IA Robótica Móvel (Mobile Robotics AI) Uma de medição de desenvolvimento na IA. Nasceu no meio da década de 2010, mas com variados fenômenos como o clima econômico, política e projeção de plataformas de tecnologia as empresas e corpos pré-sobressalentes passaram por um duro período de caquecimento nos últimos anos. O mercado d responde de manera código alterado móvel incrementa-se durante esse lapso debilitante e configurou a base do chamado“talento tecnológico” da China. Na época, surgiram vários planejadores baseados na tecnologia doméstica, alguns deles até mesmo com possibilidades de serem usados na engenharia científica. Durante o espaço interativo do "2019 World Mobile Intelligence Conference", vários membranos emergentes agregados na China possuíam brechas tecnológicas no processo de fabrico de 5G. Porém, com o continuo avanço durante o ano, o mesmo não é para ser sinal de relê. ## IA Humanão (Bionic AI) Uma nova tendência que começou a tomar forma recente, ganhando principalmente popularidade no mundo acadêmico. A mésredação de conhecimento da IA Humanoid vem criando uma réplica mais fiel da experiência humana, altamente frustrando as pessoas que possuem apenas a capacidade de sentir a dor seguida pelo desespero trazido pelos exclusivos parâmetros algorítmicos onde todo o controle está totalmente de qualquer programador. O espírito que propõe o novo progresso tecnológico em inteligência humana será mais pastel mais eufórico para todo o mundo. ## IA Purerra (Brain-Targeted AI) Finalmente, vemos a IA Purerra. É o último e mais ambicioso passo da IA, e nesse momento, o campo parece estar disponível para aumentar sua compreensão da ideia. Oaborxe a IA Humanoid costuma ser visto como a passagem final para o chamado "animal inteligente" e vem sendo um produto difícil de alcançar. Porém, com a IA Purerra a techonomiosa e a pesquisa acadêmica estão a procurar um marejo estabelecer una conexão emocional muito mais abridor aos humanos. Assim, não é possível somente evocar a empatia, mas também expressar uma verdadeira emoção. Além disso, tendo a habilidade de entender qualquer nível de sentimento profundo, todas as emoções, experiências e deleitativos sentimento conhecido da raça humana! Mátemo, no fim facilitara-mos as pessoas parare o seu errodiffícil de ouvir uma música cativante ou brindar a júbilo ao ver uma pessoa fair e bela. O processo de fabrico tomou cerca de quatro anos e sua criação revolucionou a área de investigação e, assim logo, dedicou-se a pesquisar sua aplicabilidade nos diversos campos da sociedade. Logo é propunha a implantação desta tecnologia nas áreas que nelem até hoje não conseguimos ver uma lógica humana e sim patógena aquando as interações humanas. Algumas de suas possíveis áreas de implantação incluem terapia ocupacional e medicina pós-cerebral. Cientistas e pesquisadores a procuram uma maneira de uma semelhança maior do Módulo Cérebro Humano. A inteligência artificial está se tornando cada vez mais fácil e eficiente, apenas afinal, o que é um sistema humano digitalloc etiquetado? Uma condição necessária para gerar esse novo mundo. # Coleção e Preparação de Dados no Data Science ## Importância da Coleção de Dados A coleta dos dados é um passo essencial quando você definiu um objetivo. Consubstantie tempo na ciência dos dados na fase de coleta de dados, pois é uma fase crucial. A próxima fase é a preparação dos dados para garantir que eles estejam limpos antes de utilizar. **Dados ruins entrada = respostas ruins saída** ou **dados ruins saída** é uma frase que se mantém verdadeira. Após ter limpo os dados, você vai selecionar o algoritmo para seu modelo. ## Seleção do Algoritmo Você vai escolher o algoritmo para seu modelo. Neste caso, vamos trabalhar com SVM (Máquina de Suporte Vector). Em seguida, teste o modelo para verificar sua validade para o que estamos fazendo. Se funcionar, execute suas previsões e aplique conforme desejar. ## implantação do Modelo Lembre-se que este modelo é específico do domínio. É essencial entender que muitos modelos podem requerer coleta adicional de dados em meio período devido aos gap de dados descobertos. Isso é um modelo geral, mas um bom ponto de partida. ## Tipos de Aprendizado de Máquina ### Classificação A classificação é utilizada para prever uma categoria. Por exemplo, classificando coisas se o preço das ações aumentará ou não, onde a resposta é sim ou não. ### Regressão A regressão é utilizada para prever uma quantidade. Por exemplo, prever a idade de uma pessoa com base na idade, peso, saúde e outros fatores. ### Deteção de Anomalias A detecção de anomalias está tornando-se cada vez mais popular, especialmente para detectar anomalias em retiradas de dinheiro. Isso ajuda a detectar quando alguém está fazendo uma retirada que não é sua conta. ### Agrupamento O agrupamento é utilizado para descobrir a estrutura em dados não explorados. É importante para encontrar grupos de usuários com behavior semelhantes, com base em um grande banco de dados de dados dos usuários que contém seus dados demográficos e registros de compras passadas. ## Hora do Desafio ### Quiz: Casos e Suas Próximas Etapas na Análise de Dados de Ciência 1. Agrupamento de documentos em diferentes categorias com base no assunto e conteúdo de cada documento (Classificação de texto) 2. Análise de imagens que consiste em identificar dígitos escritos à mão (Classificação de imagens) 3. Comportamento de um site indicando que o site não funciona conforme concebido (Detecção de anomalias) 4. Previsão de salário de uma pessoa com base em seus anos de experiência (Regressão) ## Aprendizado Supervisionado, não Supervisionado e de Reforço ### Aprendizado Supervisionado O Aprendizado Supervisionado permite que as máquinas classifiquem, prevejam objetos, problemas ou situações baseadas em dados etiquetados alimentados à máquina. O modelo aprende a resposta do dado etiquetado alimentado a ele. ### Aprendizado não Supervisionado O Aprendizado não Supervisionado é quando um modelo de aprendizado automatico encontrar o padrão oculto nos dados não etiquetados. Em vez de informaração de que um círculo, triângulo, ou quadrado é, ele os agrupa baseados nos padrão oculto. ### Aprendizado de reforço O Aprendizado de reforço é um importante tipo de aprendizado de máquina em que um agente aprende como se comportar em um ambiente executando ações e verificando os resultados. É uma fase inicial na máquina learning agora, mas é esperada ser uma demanda significativa no futuro. # Resumo Compreenda a importância da coleta e preparação de dados no data science. Se familiarize com os tipos de aprendizado de máquina: supervisionados, não supervisionados e de reforço. Escolha o algoritmo adequado para seu caso de uso: regressão linear, árvore de decisão e SVM são alguns dos mais populares. # Regressão Linear em Estatística e Aprendizado de Máquina A regressão linear, um algoritmo conhecido e bem entendido em estatística e aprendizado de máquina, é um modelo linear que assume uma relação linear entre as variáveis de entrada `x` e a variável de saída única `y`. Este conceito poderá ser familiar de classes de álgebra em que `y` pode ser representado como `m * x + c`, onde `m` é o coeficiente e `c` é o intercepto no eixo `y`. Em um problema de regressão linear, se estiveros a prever `y`, a distância, a partir da velocidade `x`, podemos representar o nosso modelo como: ``` y = m * x + c ``` Comecemos comparando duas variações diferentes deste: 1. **Tempo Constante** - Uma bicicleta com uma velocidade de 10 metros por segundo viaja uma distância de 36 quilómetros em um tempo determinado. - Outro ciclista viaja com duas vezes a velocidade (20 metros por segundo) e abrange duas vezes a distância (72 quilómetros). 2. **Distância Constante** - O primeiro ciclista tem uma determinada distância a percorrer e leva 100 segundos para percorrê-la a uma velocidade de 10 metros por segundo. - O segundo ciclista, viajando duas vezes a velocidade (20 metros por segundo), abrange a mesma distância em cerca de metade do tempo (50 segundos). Em um modelo de regressão linear, temos a distância plasmada contra a velocidade, com `m` sendo a inclinação da reta. Podemos ver que a linha tem uma inclinação positiva, indicando uma relação positiva entre as variáveis. Definições-chave: - Relação positiva: Com uma inclinação positiva da reta, a distância aumenta quando a velocidade aumenta. ## Modelo de Regressão Linear O modelo de regressão linear pode ser utilizado quando tivermos dados mais complicados, permitindo-nos prever facilmente resultados sem precisar de um computador. Vamos mergulhar na implementação matemática do modelo de regressão linear utilizando um conjunto de dados de exemplo. Dado um conjunto de dados com os valor de `x` e os corresponding `y`, podemos colocar as pontas dos dados no gráfico e calcular a reta de regressão mais indicada para regressão linear. Para se fazer isto: 1. Encontre os valores médios de `x` (`x_mean`) e `y` (`y_mean`). 2. Coloque o ponto médio de ambos `x` e `y` no gráfico como um ponto (`x_mean`, `y_mean`). 3. Encontre a inclinação (`m`) e o intercepto (`c`) da reta utilizando a seguinte fórmula: `m = (Σ(x - x_mean) * (y - y_mean)) / Σ(x - x_mean)^2` 4. Encontre o valor de `c` encontrando onde a reta cruza o eixo `y` ou rearranjando a equação para `y = m * x + c`. Aquando `x = x_mean` dá-nos `y_mean = m * x_mean + c`. Apliquei esta fórmula a um conjunto de dados de exemplo: Consideremos um conjunto de dados com a série padrão `x` como: 1, 2, 3, 4, 5 e os correspondentes `y` valores: 3, 2, 2, 4, 3. 1. Encontre os valores médios de `x` (`x_mean = 3`) e `y` (`y_mean = 2. 8`). 2. Coloque o ponto médio (3, 2. 8) no gráfico. 3. Compute `m` usando a fórmula apresentada acima. 4. Encontre `c` encontrando onde a reta cruza o eixo `y` ou rearranjando a equação e aplicando `x = x_mean` para resolver `c`. 5. Desenhe a linha de regressão, `y = m * x + c`, para mostrar a reta de apoio. Minimizando a distância entre os dados e a linha de regressão, podemos fazer previsões mais precisas para pontos de dados novos. ## Árvores de Decisão As árvores de decisão são uma abordagem diferente para resolver problemas em estatística e aprendizado de máquina. Em contraste à regressão linear, as árvores de decisão são um algoritmo de formato árvore que representa uma ocorrência possível de decisão ou reação. Aqui há um exemplo breve de como uma árvore de decisão pode ser utilizada para determinar se alguém deve jogar golfe dependendo das condições climáticas: 1. Se é sol e ventoso com uma umidade normal, jogue golfe. 2. Se é sol e ventoso com uma umidade alta, atente a jogar golfe. 3. Se está levemente nublado, jogue golfe. Neste exemplo, temos as condições climáticas como as nossas variáveis de entrada (clima, umidade, vento), e a decisão (jogar golfe ou não) como a saída. Esta árvore de decisão pode ajudar os usuários a tomar decisões baseadas em dados complicados que possam não ser fáceis de serem compreendidos por humanos. Para encontrar a melhor árvore de decisão para um conjunto de dados complexos, podemos calcular a entropia e o ganho de informação, que nos ajudam a decidir como dividir os dados e encontrar a melhor árvore de decisão. # Entropia a partir de uma Perspectiva Matemática Explorando a entropia a partir de uma perspectiva matemática, denotaremos a entropia como `i(p, n)`, onde `p` é a probabilidade de jogar um jogo de golf e `n` é a probabilidade de não jogar o jogo de golf. Aqui está uma decomposição da fórmula e sua aplicabilidade no cálculo da entropia de uma perspetiva computacional: ## Entropia de uma Classe Alvo num Conjunto de Dados A entropia de uma classe alvo num conjunto de dados é a entropia em si, então temos `i(jogar golf)`. Voltando ao nosso conjunto de dados, podemos simplesmente contar o número de "sim" e "não" para jogar golf em nosso conjunto completo de dados. Para os dias em que jogamos golfe em nosso conjunto completo, encontramos que jogamos golf em cinco dias, e não jogamos em nove dias. Em consequência, `i` equivale a `5/14 + 9/14`, o que resulta nos valores de `p` e `n`. Jogando estes valores na fórmula, obtemos: ``` i(jogar golf) = -(0. 36) * log₂(0. 36) - (0. 64) * log₂(0. 64) = 0. 94 ``` Agora teremos um valor de entropia completo para todo o conjunto de dados com que estamos a trabalhar. Queremos tornar esta entropia mais baixa, e podemos calcular a entropia de jogar golf com base na previsão (comforta, chuvoso ou sol): - `i(sol) = p(sol) * i(3, 2)`, onde `p(sol)` é a probabilidade de dia solário, yes e quantas dias solares, no sobre o total. Na nossa base de dados, encontramos que temos cinco dias de dia solário em nosso conjunto completo. - `i(comforta) = p(comforta) * i(4, 0)`; `i(chuvoso) = p(chuvoso) * i(2, 3)` Agora podemos computar a entropia apenas da parte que se refere à previsão meteorológica: ``` i(sol) = 5/14 * (-log₂(5/14)) = 0. 693 i(comforta) = 4/14 * (-log₂(4/14)) + 0 = 0. 811 i(chuvoso) = 3/14 * (-log₂(3/14)) + 0 = 1. 279 ``` Calcule a `i(jogar golf)` se a previsão for comforta ou chuvoso para obter a entropia total: ``` i(jogar golf) = p(comforta) * i(comforta) + p(chuvoso) * i(chuvoso) = 0. 615 ``` Agora podemos ver o ganho em entropia: ``` ganho(jogar golf) = i(jogar golf) - i(conjunto inteiro) = 0. 615 - 0. 94 = -0. 325 ``` Isto significa que a entropia aumenta, em vez de diminuir. No entanto, se interpretarmos staticamente (subtraindo a entropia de outros preditores como a temperatura, a umidade e a ventosidade em vez disso ), obtemos um ganho em entropia: ``` ganho(temperatura) = 0. 029 ganho(umidade) = 0. 152 ganho(dia ventoso) = 0. 048 ``` Dado que o ganho para jogar golf é o maior, é o que pretendemos: ## A Construção de um árvore de decisão 1. Dividir sobre a previsão, pois oferecemos as informações máximas. 2. Se a previsão for comforta podemos continuar a dividir ao passo que se queira. 3. Se a previsão for sol, mas então também está ventoso, não jogaremos. Se não for ventoso, jogaremos. 4. Poderemos construir uma árvore de decisão para deduzir o que vamos fazer amanhã e dar uma recomendação agradável do dia. Exemplo: Se o relatório meteorológico de amanhã for sol e ventoso, nossa pequena relógio inteligente irá aparecer na tela e dizer "Opa, amanhã não é um dia ideal para golf". ## Regressão linear múltiple A Regressão Linear Múltiple envolve várias entradas, onde possuimos uma equação como `y = m1\*x1 + m2\*x2 + . . . + mn\*xn + c`, onde `m1`, `m2`, . . . , `mn` são as pendentes para cada variável, e `c` é o termo constante. A implementação da regressão linear em Python é deixada à disposição do leitor. **Atenção**: Este texto só manteve as informações essenciais. Algumas partes do texto original foram simplificadas para a claridade e a concisão. # Análise de Custos de Administração e Modelo de Regressão Linear ## Análise de Custos de Administração O custo de administração de **$136, 089. 70** ajuda a gerar um lucro de **$192, 261. 83** e 83 centavos. Isso parece incoerente e não faz sentido. Vamos retornar nosso próximo conjunto de código para ter uma melhor compreensão dos nossos dados: ```python # Importando bibliotecas necessárias import seaborn as sns import matplotlib. pyplot as plt # Visualização dos dados sns. heatmap(data. pivot(colunas='lucro', valores=['gasto_RPd', 'administracao', 'gasto_ Marketing']), paleta='coolwarm') plt. show() ``` Este código utiliza seaborn para criar um mapa de calor dos nossos dados, facilitando a compreensão das relações entre as variáveis. No mapa de calor, você pode ver as colunas e linhas representar r&d, administração, gastos de marketing e lucro. Se combinar o lucro com lucro, ele aparecerá na diagonal, pois ambos têm correspondência exata. As outras correlações mostram as relações entre as variáveis. ## Modelo de Regressão Linear Agora que já temos um bom olhar para os dados, vamos criar um modelo de regressão linear para prever valores e ter um melhor lucro: ### Preparação dos Dados Primeiro, precisamos preparar nossos dados para o modelo de regressão linear: ```python from sklearn. preprocessing import LabelEncoder, OneHotEncoder # Importando bibliotecas necessárias encoder_categórico = LabelEncoder() onehot_encoder = OneHotEncoder(sparse=False) # Codificação de variáveis categóricas data['região'] = encoder_categórico. fit_transform(data['região']) data = onehot_encoder. fit_transform(data[['região']]) data = data. astype(float) ``` Neste código, importamos o LabelEncoder e OneHotEncoder do sklearn. preprocessing e utilizamos-os para codificar as variáveis categóricas (regiões) nos nossos dados. ### Modelo de Regressão Linear Agora podemos criar e treinar nossa regressão linear: ```python from sklearn. linear_model import LinRegressor # Criando e treinando o modelo de regressão linear regressor = LinRegressor() regressor. fit(X_treino, y_treino) ``` Neste código, importamos a classe LinRegressor do sklearn. linear_model e criamos uma variável chamada `regressor` que contém nosso modelo de regressão linear. Em seguida, treinamos o modelo com nosso conjunto de dados de treinamento (X_treino e y_treino). ### Predizendo Resultados do Conjunto de Teste Finalmente, podemos utilizar nossa modelo treinado para prever a questão de teste: ```python y_pred = regressor. predict(X_teste) ``` Nesse código, utilizamos o método predict do nossa modelo treinados para gerar previsões para nosso conjunto de teste (X_teste). A variável `y_pred` contém as previsões de lucro para o conjunto de teste. # Modelo de Regressão Linear ## Introdução Quando estiveremos dividindo esta informação, precisamos garantir que é um modelo válido e que nisso funciona e entendermos como bem funciona. Calculando o valor R² é o que vamos fazer para prever como bem nossa predição é. ## Importando as Bibliotecas ```python from sklearn. metrics import r2_score ``` ## Calculando o R² ```python y_test = . . . y_pred = . . . score = r2_score(y_test, y_pred) print(f'O valor R² é {score}') ``` Aqui, `y_test` representa os valores celulares que estamos testando, ou seja, valores verdadeiros sobre os quais já sabemos que são verdadeiros. Ele foi fornecido para nós, portanto, conhecemos seus valores reais. `y_pred` refere-se aos 200 valores de predição interativos que recebemos a partir dos nossos cálculos. Um valor R² de 0. 9352 significa que o modelo tem um nível satisfatório de aderência dos dados. Não é exatamente uma porcentagem direta e, portanto, não trouxe um valor absoluto, mas um valor R² acima de 0. 90 indica uma boa correspondência dos dados com o modelo. Se você tiver um R² de 0. 91 ou 9. 2 neste modelo, lembra-se que isso significa que há um componente aleatório envolvido nesse modelo, o que significa que o modelo é bom, o que significa sucesso 🥳. Agora, voltemos à nossa principal preocupação e abrimos o Python para ver o código de programação real do script. Pretendemos fazer uma predictiva para um indivíduo, que pretende saber se seus clientes são bons ou pobres principalmente para um banco e em função disso, pretendemos gerar um problema para prever se um cliente vai repagar o empréstimo ou não. Então, vamos usar o algoritmo de árvore de decisão em Python, vamos ver o que ele se FIAP em código e iremos exibir o código: ```Markdown # Predição de Empréstimos (Loan Repayment Prediction) ## Introdução Queremos prever se um cliente vai pagar ou não um empréstimo e, em função disso, gerar um problema. Enfim, vamos usar o algoritmo de árvore de decisão em Python. ## Importando as Bibliotecas ```python import numpy as np import pandas as pd import sklearn. cross_validation from sklearn. tree import DecisionTreeClassifier from sklearn. metrics import accuracy_score import sklearn. tree ``` ## Carregando os Dados primeroPreciso de uma maneira para editar meu Python e executá-lo, por isso vamos passar para o Jupyter Notebook, já que eu uso o Anaconda. Você pode usar qualquer IDE de Python para executá-lo, mas o Jupyter Notebook é muito útil para fazer coisas "aos vontade" e vamos passar o código: ```python # Jupyter Notebook ``` ## Ajustando os Pacotes Necessários Nossos primeiros passos de implementação começarão por importar os pacotes necessários de Python. Enfim, vamos ajustar: ```python # Importando as bibliotecas import numpy as np import pandas as pd from sklearn import cross_validation from sklearn. tree import DecisionTreeClassifier from sklearn. metrics import accuracy_score import sklearn. tree # Carregando os dados data = pd. read_csv('full_filename_of_your_dataset. csv') ``` ## Tornando Tudo Funcionar Em seguida, vamos trocar nosso código: ```python # Extraindo dados de treino e teste X_train, X_test, y_train, y_test = cross_validation. train_test_split(data. drop('Y', axis=1), data['Y'], test_size=0. 3, random_state=42) ``` E entrar em treino o algoritmo de árvore de decisão: ```python # Instanciando o algoritmo clf = DecisionTreeClassifier() # Treinando o modelo com os dados de treino clf. fit(X_train, y_train) ``` A partir de agora, vamos ter um objeto `clf` em possuímos: o nosso classificador de árvore decidida aprovado e pronto para uso. ## O Enterro e a Prédição Agora, vamos usar o nosso classificador para prever o que um novo cliente pagará ou não. O objetivo aqui é prever o rendimento de algumas empresas usando a regressão linear. Vamos trabalhar com uma característica específica com as entradas e tornar predições de lucro de algumas empresas usando regressão linear. ```Markdown # Previsão de Lucros (Profit Prediction using Linear Regression) ## Introdução Agora vamos fazer uma predição de lucro para algumas empresas usando a regressão linear. Vamos trabalhar com uma característica específica com as entradas e prever as entradas. ## Importando as Bibliotecas ```python import numpy as np import pandas as pd from sklearn. linear_model import LinearRegression # Entradas de Dados e Previsão data = pd. read_csv('full_filename_of_your_dataset. csv') # Separando Entradas de Dados e Previsão X = data. drop('Y', axis=1) y = data['Y'] # Treinando o Modelo de Regressão Linear model = LinearRegression() model. fit(X, y) # Previsão com os Dados de Entrada # Iramos prever a area a ser vendida pelo realtor Justin Hannah justin_hannah_inputs = np. array([1666, 111. 043, -11. 678, 626343. 0]) # Previsão no valor de venda medindo em dólares prediction = model. predict(justin_hannah_inputs) # Usando o valor previsto entrer em uma fórmula para calcular o verificador deal_size = (100000 / prediction) * 10000 verifier = deal_size - 4595 ## Saída ## A previsão dos dólares no valor de venda é de {prediction[0]} dollar ## O tamanho da área da transação prevista é de {deal_size} square feet ## A diferença final representa um desvio relativamente breves, o que indicaria que esta previsão corre ## Por fim, se este valor estiver no intervalo correto nós ainda precisaremos de testes adicionais para afirmar se a previsão deve ser mantida com segurança Agora, podemos estudar as características do dataset para fazer a previsão baseada nela: ## Examinando os Dados ```python # Lendo os dados do arquivo data = pd. read_csv('full_filename_of_your_dataset. csv') # Exibindo as primeiras 5 linhas do dataset print(data. head()) # Contagem da quantidade de linhas/entradas num_entries = len(data) print(f'Este dataset traduz-se em {num_entries} entradas. ') # Quantidade de colunas num_columns = len(data. columns) print(f'Temos {num_columns} colunas/métodos neste dataset') # Media (expected) de cada coluna mean_data = data. mean() print(f'A média de cada coluna é a seguinte: {mean_data}') # Desvio (std) para cada coluna std_data = data. std() print(f'O desvio (std) para cada coluna é a seguinte: {std_data}') # Aqui, 'Y' representa os lucros que esperamos alcançar first_5_entries = data. head(5) print(f'As primeiras 5 entradas do dataset são as seguintes, de 0 a 4: ') print(first_5_entries) ``` ## Execução Final ```python # Exibindo a primeira linha dosseis dados, que são os custos total e ativo total print(data. values[0]) ``` Após extrair as informações necessárias, podemos aproveitar e usar a biblioteca sklearn para treinar o modelo de regressão linear: ```python # Importando a necessária sklean. linear_model e carregando os dados from sklearn. linear_model import LinearRegression data = pd. read_csv('path/to/your_data. csv') # Metodos/entradas/colunas de entrada X = data. drop('lucro', axis=1) # Valor de Y y = data['lucro'] # Treinar o modelo para predizer os lucros lin_reg_model = LinearRegression(). fit(X, y) ``` Após treinar o modelo, podemos usá-lo para pré-ver os lucros (profits) de algumas empresas: Para começar, vamos pré-ver o lucro de empresas como: Apple Inc (AAPL), Amazon (AMZN), Facebook (FB), Oracle (ORCL), Microsoft (MSFT), Google (GOOGL) e a loading data com o scikit-learn: ```python # Carregando os dados ```python from sklearn. datasets import load_boston boston = load_boston() # Salvá-lo numa variável data = boston. data target = boston. target # Reshape data = data. reshape((-1, 13)) ``` Greenville Dataworks lançou uma nova oferta educational tudo acerca da predição de preços imobiliários e vamos aprender lá uma maneira fácil de realizar esta operação com o scikit-learn. A ideia é que o Greenville está começando um book sobre Python que explorará esse procedimento para vários dados sazonais. ```markdown # Predição de Preços Imobiliários Transmissão do blog de validação de modelos de predição de preços. Aprenda como usar o scikit-learn para prever preços imobiliários ao usar regressão lineal nos dados Boston Housing. Vamos começar entrando o dataset Boston Housing. ``` from sklearn. datasets import load_boston boston = load_boston() Agora podemos criar um objeto de data usando o dataset Boston Housing: ```markdown # Criamos a Matriz de Dados - X data = boston. data É fácil conseguir a posição da classe. ``` Para isso, podemos criar um objeto simplesmente através do dataset Boston Housing: ``` target = boston. target ``` Já que o meu objetivo aqui é prever os preçosed aumentar as vendas de iPhones, vamos preparar nossos dados para serem treinados. ``` X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0. 2) ``` Em seguida, vamos a um objeto que permita a seleção dos índices considerados relevantes no nosso dataset. ``` selector = SelectFromModel(LinearRegression()) X_selected = selector. fit_transform(X_train, y_train) X_train_selected = X_selected[: len(X_train)] X_test_selected = X_selected[len(X_train): ] ``` Apartir de agora podemos treinar nosso modelo: As seguintes regressões de distribuição podem agora estar disponíveis nos dados selecionados. ``` model = LinearRegression() model. fit(X_train_selected, y_train) ``` Observe que tenho uma matriz X_selected de dimensionamento (N_treino, 5) onde N_treino é o tamanho da amostra de dados de treino. Isto indica que o seletor 'SelectFromModel' seleccionou 5 features consideradas pertinentes. Isso é possível obter entre as features a seguir ao olhar no dataset Boston Housing: ``` boston. feature_names ``` O vector y_train é igual a matriz X_train de dimensionamento (N_treino, 1), onde N_treino é o tamanho do conjunto de treino. Isso indica que o seletor selectou a variante para aplica-se a regressão linear. Agora que o meu modelo de regressão linear está treinado, posso usá-lo para fazer previsões em dados não vistos pelo modelo durante o treino. Para isso vou configurar nosso X_test: ``` X_test_train = X_test_selected[: -10] y_test_train = y_test[: -10] X_test_validação = X_test_selected[-10: ] y_test_validação = y_test[-10: ] ``` Agora passo X_test_train para o modelo treinado e obtendo o array de predições: ``` pred = model. predict(X_test_train) ``` Por fim vou fazer uma avaliação do desempenho obedecendo ao princípio de R²: ``` r2_score = r2_score(y_test_train, pred) print(r2_score) ``` # Análise de Banco de Dados e Classificação de árvore de decisão Este documento descreve a análise de banco de dados e a classificação de árvore de decisão. ## Introdução Os colchetes指aje todos as linhas no banco de dados, portanto são todas as informações, e o segundo indica que apenas vamos olhar as colunas 1 a 5. Lembra-se que sempre começamos com zero. Zero indica se o empréstimo se tornou pré-definido ou não, portanto queremos começar com 1. Se voltarmos para cima, essa é a taxa inicial e vai até a casa número. Se quisermos seguir até colunas 1 a 5, podemos fazer a mesma coisa para y, que é as respostas, e definiremos isso igual ao primeiro linha, portanto apenas a primeira linha, e em seguida são todas as linhas. Agora dividimos este conjunto de dados em dois diferentes conjuntos de dados, um com os dados entrando e outro com as respostas. Dividimos o dado aqui e vemos que foi dividido em quatro partes diferentes. A primeira é o treinamento do x, a segunda é o teste do x, a terceira é o treinamento do y e a quarta é o teste do y. Simplesmente, o x está entrando onde vamos treinar e precisamos saber a resposta para treiná-lo e então temos x teste onde estamos testando os dados e precisamos saber no final o que era a resposta y deveria ser. Isso é feito com o separador de conjunto de dados treinamento-teste que carregamos anteriormente nos módulos e você pode ver que definimos o tamanho da amostra de teste como 0. 3, portanto cerca de 30% do conjunto será usado no teste e então usamos um estado aleatório para determinar qual linha será retirada. ## Criando o Modelo de Classificação Decisão Finalmente, vamos construir nossa classificador de árvore de decisão e eles chamaram isso aqui de `clf_entropy`, que é a própria árvore de decisão ou classificador de árvore de decisão, e neste módulo, eles adicionaram várias variáveis, que exploraremos neste minuto e em seguida, por fim, precisamos ajustar os dados para esse modelo, então tomamos nossa clf_entropy que criamos e ajustamos os x-treino, pois sabemos que as respostas para x-treino ou y-treino, então iremos "avançar" as respostas e vamos executar, e o que a maioria dos módulos sklearn faz é quando definimos a variável em nosso caso definimos clf_entropy (classificador de árvore de decisão), ele automaticamente imprime o que está no classificador de árvore de decisão. Há uma grande variedade de variáveis que você pode explorar aqui e é completamente além do escopo deste tutorial ir por toda a parte e como elas funcionam, mas estamos trabalhando com entropia, uma das opções que adicionamos, e tem um estado aleatório de 100, portanto 100%, e temos uma profundidade máxima de três, portanto apenas irá descer três níveis antes de parar e então temos um número mínimo de folhas de 5, portanto terá pelo menos três split e não mais de três níveis e pelo menos 5 folhas ao final com o resultado final no final. ## Aplicando o Modelo de Classificação Decisão Agora que criamos nossa classificação de árvore de decisão, treinamos também, vamos aplicar e ver como isso aparece. Agora vamos fazer uma previsão e veremos o que isso parece. Vamos colar nosso código de previsão: ```python # Code for prediction goes here ``` Este código colocado aqui permitirá que você faça uma previsão usando o classificador de árvore de decisão aqui construído. Certifique-se de que o modelo esteja treinado antes de fazer uma previsão. # K-Means Clustering com Markdown ## Introdução Este exemplo demonstra o uso do algoritmo K-Means de agrupamento em um conjunto de dados de carros, especialmente utilizando parâmetros como potência, cubos de polegadas, marca, ano, etc. , para agrupar carros em marcas. ### Pré-requisitos Este guia assume familiaridade com o seguinte: - Python - Numpy - Matplotlib - Pandas ### Preparação dos Dados Para seguir, pode utilizar o conjunto de dados de carros incluído, disponível [aqui](https://simplylearn.com/cars.csv), ou obter um conjunto de dados semelhante. #### Carregando os Dados Primeiro, importemos as bibliotecas necessárias: ```python import numpy as np import pandas as pd import matplotlib. pyplot as plt # Exibição inline de gráficos matplotlib no bloco de notas %matplotlib inline ``` Em seguida, iremos carregar os dados. Neste exemplo, é assumido que o conjunto de dados chamado "car_data. csv" está armazenado no mesmo diretório do código Python. Caso o arquivo esteja armazenado em um diretório diferente, o caminho absoluto deve ser alterado conforme necessário. ```python # Carregar os dados utilizando pandas dataset = pd. read_csv('car_data. csv') ``` #### Preparando os Dados Preparar os dados envolve limpeza, preenchimento de dados faltantes e a formação de dados apropriados para o algoritmo K-Means de agrupamento. ##### Limpeza Remova colunas irrelevantes ou dados irrelevantes. ```python # Código de limpeza aqui ``` ##### Preenchimento de Dados Faltantes Preencha dados faltantes com o valor médio da coluna correspondente, se existir. ```python # Código de preenchimento de dados faltantes aqui ``` ##### Convertendo Colunas em Valores Numericos Garanta que todas as colunas relevantes sejam numéricas. ```python # Converter colunas em valores numéricos como necessário # Exemplo: dataset['coluna_nome'] = dataset['coluna_nome']. astype(float) ``` ### K-Means de Agrupamento Agora que os dados estão limpos e preparados, podemos aplicar o algoritmo K-Means de agrupamento. ```python # Importar o KMeans do sklearn from sklearn. cluster import KMeans # Definir o número de agrupamentos e aplicar o modelo de KMeans kmeans = KMeans(n_clusters=2, random_state=42) kmeans. fit(X) # Retorne as etiquetas de agrupamento etiquetas_de_agrupamento = kmeans. labels_ ``` ### Visualização dos Resultados Criar um gráfico para visualizar os resultados de agrupamento. Você pode modificar o gráfico para melhor ilustrar as agrupamentos encontrados. ```python # Código de gráfico aqui ``` ### Escolha do Número Óptimo de Agrupamentos Para encontrar o número ótimo de agrupamentos, utilise o metodo do quadro de ombro. ```python # Calcular WSS (medida de desvio ao quadrado interno) para diferentes números de agrupamentos # Código para calculando WSS e encontrando o número ótimo de agrupamentos (utilizando o metodo do quadro de ombro) aqui ``` Parabéns! Você agora agrupou os carros em marcas usando K-Means de agrupamento em Python. Ajuste o abordagem de acordo com a sua especificação de conjunto de dados e requisitos. # Limpeza e Preparação de Dados ## Verificação dupla dos dados Antes de começar com a análise, é essencial verificar os dados para valores faltantes e inconsistências. Um método para isso é checando se há valores nulos na coluna `x de i`. 1. O dado vai através da coluna `x de i` e retorna qualquer lugar onde há um valor nulo. 2. Em seguida, conta o número de valores nulos para cada coluna e retorna o total. Este processo pode ser alcançado usando funções pandas `isnull()` e `sum()`. ```markdown # Verificar valores faltantes valores_nulos = data. isnull(). sum() ``` Neste exemplo, `data` é o DataFrame contendo os dados. ## Utilização do método pulgão para encontrar o número ótimo de clusters Agora que o dados está limpo, podemos começar a utilizar o método pulgão para encontrar o número ótimo de clusters. Isto será feito utilizando o algoritmo de agrupamento k-means da biblioteca `sklearn`. ```markdown # Importar k-means de sklearn from sklearn. cluster import KMeans # Criar um array vazio para armazenar os valores wcss wcss = [] # Loop através de um intervalo de valores do algoritmo k-means (1 a 11 neste caso) para i em range(1, 12): # Criar o objeto k-means kmeans = KMeans(n_clusters=i) # Enfite os dados ao modelo k-means kmeans. fit(data) # Calcular o wcss para o número atual de clusters wcss. append(kmeans. inertia_) ``` Neste exemplo, `data` é o DataFrame contendo os dados limpos. A função `KMeans` da biblioteca `sklearn. cluster` é usada para criar o modelo k-means. O parâmetro `n_clusters` é definido para o número atual de clusters sendo testados. Em seguida, o modelo é empregue nos dados, e a atribuição `inertia_` é usada para calcular o valor de wcss para o número atual de clusters. ## Visualização dos resultados Finalmente, podemos visualizar os valores de wcss para encontrar o número ótimo de clusters usando matplotlib. ```markdown # Plotar o método pulgão import matplotlib. pyplot as plt # Criar a plotagem plt. plot(range(1, 12), wcss) plt. title('Método Pulgão') plt. xlabel('Número de Clusters') plt. ylabel('Suma de Quadrados de Dentro de Clusters (WCSS)') plt. show() ``` Isso criará uma representação de linhas que mostrará os valores de wcss para diferentes números de clusters. O número ótimo de clusters pode ser determinado ao olhar para a ombra no gráfico, que é o ponto onde o wcss começa a se ajustar. ## Aplicando o algoritmo k-means no conjunto de dados de carro Uma vez que o número ótimo de clusters foi determinado, podemos aplicar o algoritmo k-means ao conjunto de dados de carro. ```markdown # Aplicar k-means ao conjunto de dados de carro kmeans = KMeans(n_clusters=3) # Defina o número de clusters para 3 (determinado pelo método pulgão) kmeans. fit(car_data) # Empregue o modelo k-means ao conjunto de dados de carro # Obter o rótulo de cada carro rótulos_de_carro = kmeans. labels_ ``` Neste exemplo, `car_data` é o DataFrame contendo o conjunto de dados de carro. Apenas o modelo k-means é aplicado ao conjunto de dados, e a atribuição `labels_` é utilizada para obter o rótulo para cada carro. Depois disso, você pode realizar análise adicional com base nos rótulos para entender os diferentes grupos de carro. # Regressão Logística Este documento Markdown apresenta uma visão geral do algoritmo de Regressão Logística e sua aplicação em problemas de classificação binária e multiclasse. ## Introdução O algoritmo de regressão logística é o mais simples utilizado para problemas de classificação binária e multiclasse. Neste tutorial, vamos abordar um caso de uso envolvendo a classificação de tumores como malignos ou benignos. ## Pré-requisitos Para seguir com este tutorial, você precisará dos seguintes recursos: - Python - numpy - pandas - seaborn - matplotlib Utilizaremos o Jupyter Notebook neste tutorial. Você pode instalar as bibliotecas necessárias utilizando o comando `! pip install` no Jupyter Notebook ou pelo comando `conda install -c anaconda pandas seaborn matplotlib`. ## Dados Para este tutorial, usaremos um conjunto de dados que contém vários recursos dos tumores, como o média do raio, a média da textura, o perímetro médio, a área média, a rugosidade, a compactação, a concavidade e os pontos concavos. Nossa intenção é prever se um tumor é maligno (M) ou benigno (B) com base nestes recursos. ### Preparação do Dados ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt # Carregue o dados data = pd. read_csv('data4p2. csv') ``` ## Análise Exploratória dos Dados (EDA) Começaremos por explorar os dados para ter uma melhor compreensão das tendências e dos padrões within the dataset. ### Gráfico em Duas Dimensões ```python sns. jointplot(x='raio_médio', y='textura_média', data=data) ``` ### Heatmap ```python sns. heatmap(data. corr()) ``` ### Limpeza dos Dados Verifique se existem valores nulos nos dados: ```python data. isnull(). sum() ``` ## Treinamento e Avaliação do Modelo Utilizando o algoritmo de regressão logística, podemos construir um modelo para prever se um tumor é maligno ou benigno com base nos recursos coletados no conjunto de dados. Avalie o desempenho do modelo utilizando métricas apropriadas como precisão, recall, F1-score e acurácia. ## Conclusão Neste tutorial, aprendemos sobre regressão logística e sua utilidade em problemas de classificação binária. Também exploramos um conjunto de dados real para analisar vários recursos e construir um modelo de regressão logística para prever se um tumor é maligno ou benigno. Nos próximos tutorials, vamos mais profundamente na avaliação e otimização de modelos de regressão logística. ### Observação Este tutorial é apenas um ponto de partida para o entendimento de regressão logística. Para aprender mais sobre este tópico, explore a [Documentação de Regressão Logística](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) do scikit-learn. # Preparação de Dados e Modelação de Classificação de tumores de câncer de mama ## Introdução Neste tutorial, vamos focar no processo de divisão dos dados, criação de um modelo e teste de seu desempenho na classificação de tumores de câncer de mama usando aprendizado de máquina. ## Preparação de Dados Iniciaremos primeiramente dividindo os dados em pedaços, focando nos parâmetros mais péssimos como o raio, o textura, o perímetro, a lisura, a compactação, e assim por diante. Nossa meta é evitar a carga de dados excessiva e melhorar o desempenho do modelo. ```markdown # Divide os dados em pedaços Comecemos focando nos parâmetros mais infectados: - Raio - Textura - Perímetro - Lisura - Compactação - . . . Criaremos uma variável chamada `x` que contém os valores mais ruins para cada parâmetro: ```python x = array(['raio_pior', 'textura_pior', 'perimetro_pior', 'lisura_pior', 'compactacao_pior', . . . ]) ``` Como nossa `y` (o diagnóstico) não é `x`, corrija isso: ```python y = data ``` ## Construção do Modelo Para testarmos o modelo, vamos dividir os dados em dois grupos: um para treinamento e um para teste. Usaremos `train_test_split` de `sklearn. model_selection` para conseguir isso. ```python from sklearn. model_selection import train_test_split # Divida os dados x_treino, x_teste, y_treino, y_teste = train_test_split(x, y, test_size=0. 3, random_state=42) ``` Agora, importemos o modelo de regressão logística a partir de `sklearn. linear_model` e criaremos uma variável chamada `log_model` para utilizar. ```python from sklearn. linear_model import LogisticRegression log_model = LogisticRegression() ``` Fit the model usando `x_treino` e `y_treino`. ```python log_model. fit(x_treino, y_treino) ``` ## Teste do Modelo Criaremos uma variável `y_previsão` para armazenar as previsões do modelo. ```python y_previsão = log_model. predict(x_teste) ``` Para avaliar o desempenho do modelo, usaremos o relatório de classificação de `sklearn. metrics`. ```python from sklearn. metrics import classification_report # Imprima o relatório de classificação print(classification_report(y_teste, y_previsão)) ``` ## Conclusão A preparação de dados é fundamental no aprendizado de máquina, pois ajuda a melhorar o desempenho do modelo evitando a carga de dados excessiva. Neste tutorial, aprendemos a dividir os dados em pedaços, a construir um modelo de regressão logística e a testar seu desempenho usando relatórios de classificação. # Algoritmo K-Próximos Vizinhos (kNN) ## Introdução Neste documento, vamos discutir o algoritmo K-Próximos Vizinhos (kNN), um popular algoritmo de aprendizagem de máquina frequentemente usado para tarefas de classificação. ## Escolha do Fator k O algoritmo kNN se baseia na semelhança de recursos. Escolher o valor correto de k é um processo chamado de ajuste de parâmetros e é importante para uma melhor precisão. Com `k=3`, podemos classificar um ponto como `A` ou `não-A` (no caso, um quadrilátero ou não) observando os três vizinhos mais próximos. se definirmos `k=7`, classificaremos como `B` (no caso, um triângulo) de acordo com o que está ao redor. Quando o valor de `k` varia, a resposta pode mudar drasticamente. Por exemplo: ``` - Se k é muito baixo, a tendência será baseada em ruído, já que ele irá selecionar pontos próximos e a resposta pode ser distorcida. - Se k é muito grande, isso levará muito tempo para processamento e pode causar problemas de processamento e questões de recursos. ``` ## Métodos Comuns para Escolha de k O método mais comum para escolher `k` é pelo uso da raiz quadrada de `n`, onde `n` é o total de valores que você tem. Se `n` for par, um valor ímpar é geralmente preferido para uma melhor seleção, portanto, você poderá adicionar ou subtrair um ao valor da raiz quadrada se necessário, ou seja, `k = raizQuadrada(n) +/- 1`. ## Quando Utilizar kNN O algoritmo kNN pode ser utilizado quando os dados já estão etiquetados e livres de ruído. Ele funciona bem com conjuntos de dados menores e é considerado um "aprendiz de arte" devido ao fato de não aprender uma função discriminativa do conjunto de treinamento. Portanto, o kNN não é adequado para lidar com conjuntos de dados grandes ou dados complexos. ## Fluxo de Trabalho do Algoritmo kNN Dado um conjunto de dados e um ponto de amostra novo, encontramos os `k` vizinhos mais próximos do conjunto de dados usando a fórmula de distância Euclidiana. Em seguida, classificamos o novo ponto de amostra de acordo com as maiorias das votos dos `k` vizinhos mais próximos. ### Fórmula de Distância Euclidiana A distância Euclidiana entre dois pontos `(x1, y1)` e `(x2, y2)` é definida por: ``` distância = sqrt((x1 - x2)² + (y1 - y2)²) ``` ## Exemplo: Previsão de Diabetes utilizando kNN em Python Tomemos o exemplo da previsão de um diagnóstico de diabetese usando o algoritmo kNN em Python. ### Passos: 1. Importe as bibliotecas requeridas: pandas, numpy e sklearn. 2. Carregue o conjunto de dados usando a função `read_csv()` de pandas. 3. Processe os dados alterando-os para um intervalo entre -1 e 1 para evitar uma tendência para números grandes. 4. Divida o conjunto de dados em conjuntos de treinamento e teste. 5. Crie um classificador kNN do módulo `sklearn. neighbors`. 6. Treine o modelo usando o conjunto de treinamento. 7. Teste o modelo usando o conjunto de teste e calcule métricas de desempenho. ```python # Importando bibliotecas import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler from sklearn. neighbors import KNeighborsClassifier from sklearn. metrics import confusion_matrix, f1_score, accuracy_score # Carregue o conjunto de dados dados = pd. read_csv('diabetes. csv') # Processo escalador = StandardScaler() dados = escalador. fit_transform(dados) # Divisão do conjunto de dados em conjuntos de treinamento e teste X_treino, X_teste, y_treino, y_teste = train_test_split(dados, dados['Outcome'], test_size=0. 2) # Escolha o número de vizinhos k = 3 # Crie um classificador kNN knn = KNeighborsClassifier(n_neighbors=k) # Treine o modelo knn. fit(X_treino, y_treino) # Teste o modelo y_previso = knn. predict(X_teste) # Avalie o desempenho confusion_matrix(y_teste, y_previso) f1_score(y_teste, y_previso) accuracy_score(y_teste, y_previso) ``` # Análise de Dados do Diabetes ## Visão Geral Este guia vai te conduzir pelo processo de preparação de um conjunto de dados para um modelo de aprendizagem de máquina. Neste exemplo, vamos trabalhar com um conjunto de dados de diabetes. ### Limpeza e Transformação de Dados #### Substituição de Valores Nulos Nesta etapa, vamos substituir valores nulos em determinadas colunas por `numpy. nan` para dados faltantes. Dado que é incomum ter valores nulos para valores como espessura da pele, pressão arterial ou níveis de açúcar, ter valores nulos pode indicar dados faltantes. Substituindo estes valores por `numpy. nan`, podemos lidar com eles mais facilmente. ```python ds['glucose'] = ds['glucose']. replace(0, numpy. nan) ds['blood_pressure'] = ds['blood_pressure']. replace(0, numpy. nan) ds['skin_thickness'] = ds['skin_thickness']. replace(0, numpy. nan) ``` #### Cálculo de Médias Depois de substituir os valores nulos, vamos calcular a média de cada coluna e substituir todos os `numpy. nan` valores por suas respectivas médias. ```python means = ds. mean() ds. fillna(means, inplace=True) ``` ### Divisão dos Dados Antes de prosseguir, vamos dividir o conjunto de dados em subconjuntos de treino e teste. Assim, teremos dados para treinar e testar o nosso modelo. ```python from sklearn. model_selection import train_test_split X = ds. drop('outcome', axis=1) y = ds['outcome'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=0) ``` ### Construção e Treinamento do Modelo Finalmente, vamos construir e treinar nosso modelo de Vizinhos Mais Proximos (KNN). ```python from sklearn. neighbors import KNeighborsClassifier n_vizinhos = 11 # Usando 11 vizinhos em vez de 12 para ter um número ímpar knn = KNeighborsClassifier(n_neighbors=n_vizinhos, metric='euclideano') knn. fit(X_treino, y_treino) ``` Para uma análise mais detalhada, você pode usar várias métricas de avaliação, como matrizes de confusão, precisão, recall, F1 score e pontuação de acurácia. ```python from sklearn. metrics import confusion_matrix, precision_score, recall_score, f1_score, accuracy_score cm = confusion_matrix(y_teste, y_pred=knn. predict(X_teste)) precisão = precision_score(y_teste, y_pred=knn. predict(X_teste)) recall = recall_score(y_teste, y_pred=knn. predict(X_teste)) f1 = f1_score(y_teste, y_pred=knn. predict(X_teste)) acurácia = accuracy_score(y_teste, y_pred=knn. predict(X_teste)) print("Matriz de Confusão: \n", cm) print("Precisão: ", precisão) print("Recall: ", recall) print("F1 Score: ", f1) print("Acurácia: ", acurácia) ``` Este marca o fim da preparação de dados e do treinamento inicial do modelo. Você pode continuar a ajustar o modelo e mel # Análise de Dados de Vendedor de Partes de Veículos Este documento fornece uma análise de um conjunto de dados obtido através de um vendedor de partes de veículos. O vendedor comercializa diversas partes de veículos de diferentes fabricantes. ## Visão Geral São discutidos o número de variáveis de entrada no dataset, e você pode ver as ordens feitas no vendedor no quadro à direita. ### Hallazgos Chave - Aplicando análise de correlação, encontramos que apenas três atributos são necessários para prever células futuras. Portanto, reduzimos o número de atributos de cinco para três. - O número de peça foi removido pois é improvável que tenha efeito no número de pneus comprados, e mesmo a loja que os está comprando provavelmente não tem efeito sobre isso. ### Benefícios da Redução de Dimensões 1. **Tempo de Processamento Reduzido**: Menor número de dimensões para um determinado conjunto de dados significa menos tempo de processamento ou de treinamento. Isso é essencial quando se tenta vários modelos e executá-los repetidamente. 2. **Redução de Redundância do Conjunto de Dados**: Removendo entradas similares do conjunto de dados reduz a redundância, o que em si reduz o tempo de processamento e o espaço necessário para armazenar os dados. 3. **Tabelas mais fáceis de Visualizar**: Reduzir o conjunto de dados torna-o mais fácil de visualizar em tabelas 2D e 3D, o que é importante para apresentar versões claras e simplificadas dos dados durante reuniões de acionistas. 4. **Melhor Interpretação Humana**: A redução de dimensões ajuda a encontrar as características mais importantes e passar sobre o restante, conduzindo a uma melhor interpretação humana. ### Análise Principal dos Componentes (PCA) A PCA é uma técnica para redução da dimensão de conjuntos de dados enquanto minimiza a perda de informação. Ela melhora a interpretabilidade e é particularmente útil quando se lida com conjuntos de dados complexos com muitas variáveis. #### Exemplo Pensemos em uma fotografia de bebês. Escolher a melhor perspectiva para photographiar é similar à PCA. Queremos encontrar a melhor visão que forneça uma boa configuração de todas as pessoas na foto. Na análise de dados, precisamos de uma fórmula matemática para garantir consistência e interpretar os cálculos de back-end. #### Termos da PCA 1. **Vistas**: A perspectiva a partir da qual as pontos de dados são observados. 2. **Dimensões**: O número de colunas em um dataset, também conhecido como as dimensões desse conjunto de dados. 3. **Recursos**: Geralmente, ao usar um negócio, estamos falando de recursos de 25-30. 4. **Componentes Principais**: Novas variáveis construídas como combinações linhares ou misturas das variáveis originais. 5. **Projeções**: A distância perpendicular entre a componentes principais e os pontos de dados. #### Propriedades Importantes 1. O número de componentes principais nunca ultrapassa o número de atributos. 2. Os componentes principais são ortogonais. 3. A prioridade dos componentes principais diminui à medida que os números deles aumentam. #### Como a PCA Funciona 1. Padronização: Padronize o campo de atributos para que cada um possa ficar dentro de limites semelhantes. 2. Matriz de Covariância de Computação: Expressar a correlação entre qualquer dois ou mais atributos numa matriz multi-dimensional de dados. 3. Vetores iGene e Valores iGene: Gerar uma nova série de variáveis a partir da antiga série de variáveis, o que leva à construção das componentes principais. Para uma explicação mais detalhada dos cálculos no back-end, por favor, consulte as fórmulas matemáticas e os exemplos de código. # Exemplo de PCA ## Escalares e vetores genéricos i Vamos trabalhar com escalares ou a magnitude dos vetores genéricos i. Este processo se refere à transformação de cadeia de dados. Neste processo, convertemos o vetor `b` para `b'`, conforme indicado na figura. Aí, possuímos váriaveis, e calcularemos a nova variável. ### Vetores de Características Os vetores de características são uma matriz que contém vetores higiénicos dos componentes que decidimos manter como colunas. Neste caso, decidiremos se manter ou descartar as principais componentes menos significativas que geramos nas etapas anteriores. Isso se torna importante ao penetrar no back-end e será discutido na demonstração. ### Construindo um Espaço de Variáveis Para esta matriz, construiremos um espaço de variáveies com tamanho equivalente às variáveis, mas por simplicidade, consideraremos três dimensões para o momento. Cada linha de matriz `X` é colocada no espaço de variáveis k-dimensional tal que as linhas da tabela de dados formam uma nuvem de pontos neste espaço. ### Procurando o Mean e a Primeira Principal Componente Encontramos o mean de todas as observações e depois o colocamos juntamente com os pontos de plotagem. A primeira principal componente é uma linha que melhor descreve a forma da nuvem de pontos, representando a direção com maior variação no dado. Cada observação pode ser projetada nesta linha para obter um valor de coordenada ao longo da PC1 (Principal Component 1), conhecido como um score. Tipicamente, apenas uma principal componente é insuficiente para modelar a variação sistemática de um conjunto de dados, então criaremos uma segunda principal eixo. A segunda principal componente possui uma orientação que reflete a segunda fonte de variação mais significativa no dado, enquanto a PC2 é perpendicular à PC1. A PC2 também passa pelo ponto médio. ### Demonstração em Python Para demonstração, utilizarei o Anaconda Navigator e teremos Python 3. 6 neste exemplo. ```python # Importa as bibliotecas necessárias import matplotlib. pyplot as plt import pandas as pd import numpy as np import seaborn as sns import mpl_toolkits. mplot3d. axes3d as p3 # Carrega o conjunto de dados de câncer cancer_data = pd. read_csv('caminho_para_o_arquivo_de_dados_de_câncer. csv') ``` . . . (Código restante para continuar a análise com PCA) Lembre-se que o exemplo acima é um demonstração simplificada, e você pode expandir e melhorar o código para seu conjunto de dados específico. Boa sorte com sua análise! # Análise Principal de Componentes (PCA) no Machine Learning Este guia vai te ajudar a entender e visualizar a Análise Principal de Componentes (PCA) usando um data frame e um único mapa de calor Seaborn. ## Visão geral Cover: 1. O que é a PCA e sua importância no machine learning 2. Passos para realizar a PCA em Python 3. Visualizar componentes PCA com um mapa de calor Seaborn ## O que é a PCA? A **PCA** representa os principais componentes que um conjunto de dados pode ser descomposto. Cada componente possui seu próprio array único, e as pontuações dentro do array mostram o peso de cada recurso nesse componente. Nesta matriz de array de `numpy`, cada linha representa um componente principal, e cada coluna está relacionada aos caracteres originais. De forma interessante, podemos ir um passo adiantado e visualizar esses componentes usando um mapa de calor para melhor entendermos suas correlações com diferentes caracteres. ``` # Carregue o data frame (suponha que tens um data frame df_comp) df_comp = . . . # Realize a PCA no data frame pca_components = . . . # Defina as colunas de df_comp como nomes de recurso de câncer (para facilitar a interpretação) df_comp. columns = nomes_de_recurso_de_câncer # Visualize PCA componentes com um mapa de calor Seaborn sns. heatmap(df_comp, cmap='plasma') ``` No mapa de calor resultante, as cores representam a correlação entre várias características e o componente principal em si. Este poderoso ferramenta de visualização pode ajudá-lo a entender melhor as relações entre características e como essas contribuem para os principais componentes do conjunto de dados. ## Regularização no Machine Learning A **regularização** é um conceito importante no machine learning, que é utilizado para evitar sobrefitting e melhorar o desempenho de generalização de nossos modelos. ### Ajuste de dados O ajuste de dados é o processo de minimizar o erro entre as previsões e os valores reais encontrando a linha ou curva com menor erro. Em termos mais simples, isso é sobre entender as relações entre variáveis. Abordaremos esse tópico a profundidade em outros segmentos. ## Regressão Linear A Regressão Linear é utilizada para modelar a relação entre dois ou mais variáveis usando uma equação linear. Ajuda a encontrar a linha que melhor se encaixa nos dados e fornecer a relação entre as variáveis. Por exemplo, supondo que tenhamos o desempenho da automóvel versus a distância percorrida em 1, 000 quilômetros. A relação linear dessas duas variáveis resultaria numa linha reta passando pelos dados. ``` # Tenha os dados e encontre a linha mais próxima modelo_de_regressão_linear = . . . # Visualize a linha de regressão linear plt. plot(x_dados, modelo_de_regressão_linear. predict(dados), linestyle="--", label="Regressão Linear") ``` ## Bias e Variance no Machine Learning O **bias** acontece quando um algoritmo tem pouca flexibilidade para aprender das informações dos dados, resultando em um modelo que gera uma simplificação dos dados, o que leva a tendências similares entre erros de treinamento e erros de validação. O **variance** descreve a sensibilidade de um algoritmo para um conjunto específico de dados. Algoritmo com alta variância pode ter um desempenho de generalização pobre, pois pode ter altos erros em dados de teste. No contexto de bias e variance, é importante equilibrar esses dois aspectos ao construir modelos de machine learning para garantir um desempenho ótimo. ### Sobrequilidade A **sobrequilidade** refere-se a uma situação onde o modelo de machine learning tenta aprender detalhes nos dados junto com a ruído, resultando em um modelo que não consegue prever novos dados. Na sobrequilidade, o modelo recusa todos os novos dados durante a previsão, levando a altos erros. A razão para a sobrequilidade incluem dados não limpos contendo ruído, uma quantidade pequena dos dados ou um modelo que é muito complexo para seguir as interações entre suas partes. ### Subaquilidade A **subaquilidade** é uma situação onde modelos de machine learning não aprendem as relações entre os dados ou clasificam um dado novo. Na subaquilidade, o modelo é muito muito longe para os dados de treinamento e de previsão. Em conclusão, entender a PCA, regularização, bias, variance, sobrequilidade e subaquilidade são conceitos essenciais para construir modelos de aprendizado de máquina bem-sucedidos. Ao se concentrar em esses quatro pontos chave, você estará melhor equipado para projetar modelos não apenas precisos, mas também que se generalizem bem a dados novos. # Regressão Linear e Regularização ## Introdução Neste documento discutiremos técnicas de Regressão Linear e Regularização utilizadas para calibrar modelos e prevenir o enfatizamento (overfitting) ou debaixe-pesagem (underfitting). ## Problemas com Regressão Linear Quando o conjunto de dados não é limpo e contém ruído, lixo e valores, podem ocorrer problemas como **enfaixagem** e **overfitting**. Para confrontar estes problemas é necessário limpar o dado. ### Enfaixamento e Overfitting * **Enfaixamento** ocorre quando o modelo é demasiadamente simples para capturar os padrões do dado, resultando numa alta preconceitua (bias). * **Overfitting** ocorre quando o modelo é muito complexo e se adaptará para o ruído em vez do padrão subjacente, causando assim o modelo a possuir baixo valor de preconceitua. ### Bias em Modelos de Aprendizagem de Máquina Uma das principais problema em modelos de Aprendizagem de Máquina é que possuem built-in tendência para determinado grupo específico de dados. Isso pode levar ao mau funcionamento em caso em que os dados do treino não sejam representativos do conjunto de dados inteiro. É importante prestar atenção a eventuais problemas de *bias* e tomar ações para as mitigar. ### Tamanho do Conjunto de Dados de Treino O tamanho do conjunto de dados de treino utilizado também é fator importante ao construir um bom modelo. Um modelo com *bias* alta pode vir a resultar de um pequeno tamanho no conjunto de dados, pois isso pode ser devido a não captar a complexidade do padrão subjacente. ## Bom Encajamento Um bom encajamento para um curva linear que melhor se encaje ao dados é um que não se *enfaixe* ou não se underfitting com o modelo, mas somente é assim. ### Exemplos de Enfaixamento e underfitting ! [Enfaixamento e Underfitting](https://i.imgur.com/ZT2JmJf.png) ## Técnicas de Regularização As técnicas de regularização são utilizadas para calibrar modelos de Regressão Linear e minimizarem função de prejuízo ajustado para prevenir o underfitting e o overfitting. ### Modelo Linear começaremos com um modelo linear e vamos mirar para regularização de técnicas como regressão Linear e penalização `L1 (Lasso)`. Estas técnicas podem ser introduzidas utilizando os módulos `ridge` e `lasso` no módulo `sklearn`. ### Regularização dos Grades Regressão (Ridge) O Ridge Regression modifica sobrefitted or underfitted models adicionando uma penália específica equivale á soma do quadrado de magnitude dos cosséderos. O custo equals loss + `lambda * sum(w ^ 2)`, onde *w* representa a descida da corva. ### Regressão regularizada L1 (Lasso) A Lasso Regularization differencia-se da Ridge por alterar função custo adicionando o valor abso-valor em lugar de quadrar o valor. O custo equals loss + `lambda * sum(|w|)` ## Escolhendo entre Regressão Lasso e Regularização da Grada de Ridge A escolha entre o Ridge e Regressão da Grada do Lasso Regression dependem do problema específico e dos parametros da modelo. É necessario tentar cada uma das tecnicas e avaliar resultados para definir qual trata-se melhor ### Para utilizar o Ridge Regression * Ridge Regression é útil quando há numerosas variáveis # Ridge Regression e Lasso Regression Nós vamos trazer estes dados e fazer o melhor para minimizá-los e para isso estaremos a trabalhar com regressão ridge aqui. Começamos criando um modelo de regressão ridge através da importação dos pacotes necessários. Vamos iniciar importando nossa regressão ridge a partir da biblioteca da sklearn (scikit-learn). ```python from sklearn. linear_model import Ridge ``` Treinaremos o modelo com o seguinte parâmetro: ```python ridge_reg = Ridge(α=1) ``` O parâmetro `α=1` é o valor padrão para o modelo de regressão ridge. Se o parâmetro for definido como zero, terá um modelo de regressão linear comumente empregado. Podemos usar 1, 2, 3 ou 4 e um valor inteiro normal é usado no entrego. Aqui, teremos uma combinação de parâmetros para demonstração: ```python ridge_reg. fit(X_treino, y_treino) ``` Obtendo uma predição para `X_test` e calculando o erro quadrático médio, igual à área em que estamos: ```python y_preditos = ridge_reg. predict(X_teste) mse = mean_squared_error(y_teste, y_preditos) print("MSE: ", mse) ``` Agora, podemos verificar os coeficientes de ridge para nossos dados: ```python print("Coefficients de Ridge: ") print(ridge_reg. coef_) ``` Algumas comparações entre as magnitude das constantes dos coeficientes de ridge de dois gráficos: ```python # Outro gráfico que inclui as medidas anteriores apresentadas. plt. subplots(figsize=(20, 8)) plt. bar(X_treino. columns, ridge_reg. coef_[0]) plt. ylabel('Coefficiente') plt. title("Coefficients de Ridge para comparação de dados") plt. show() # Para o modelo ridge, verificaremos o coeficiente de Knox, o dado de maior magnitude: coeficientes_ridge = ridge_reg. coef_[0] coef_knox = coeficientes_ridge[6] print("Coefficiente de Ridge para Nox: ", coef_knox) ``` Em comparação, para o regression lasso: ## Regression Lasso Os passos para Regression Lasso são muito semelhantes aos anteriores. A única diferença é que substituiremos o Ridge pelo Lasso. Vamos fazer o mesmo para o modelo de regression lasso: ```python from sklearn. linear_model import Lasso ``` Treine-lo da mesma maneira que fizemos com o Ridge Regression: ```python lasso_reg = Lasso(α=0, 01) lasso_reg. fit(X_treino, y_treino) y_preditos_lasso = lasso_reg. predict(X_teste) mse_lasso = mean_squared_error(y_teste, y_preditos_lasso) print("MSE Lasso: ", mse_lasso) ``` Agora, podemos verificar os coeficientes de lasso para nossos dados: ```python print("Coefficients de Lasso: ") print(lasso_reg. coef_) ``` Em comparação, o valor de Nox para o Lasso é zero, isso significa que o termo para o Nox não foi adicionado a nossa hipótese usual. ## Deep Learning ### Introdução a Deep Learning O Deep Learning é um subconjunto de aprendizado de máquina e Inteligência Artificial (IA). ### O que é Deep Learning? O Deep Learning é uma técnica para Inteligência Artificial que permite a uma máquina aprender a simular o comportamento humano. Isso é conseguido através de algoritmos treinados com dados. ### O que é a Inteligência Artificial (IA)? A IA é uma técnica que permite a uma máquina aprender a imitar o comportamento humano, mais especificamente fazendo previsões ou tomando decisões humanas como visualizar uma imagem, interpretar um som ou aplica registrar dados sem precedentes. ### O que é o Machine Learning? O Machine Learning é uma técnica para a implementação da IA. Pela qual se têm tanto dados como algoritmos treinados. ### Deep Learning vs. Machine Learning - Um exemplo comum para diferenciar o machine learning do deep learning é: Se pudéssemos criar um algoritmo para diferenciar tomates de cerdas, um algoritmo de machine learning seria treinado para reconhecer os caracteres visuais que distinguem tomates de cerdas, porém, um algoritmo de deep learning pode ser aprendido a trabalhar com entradas não definidas e identificar características visuais para escrever catálogo por conta própria. O Deep Learning é inspirado no funcionamento do cérebro humano e observa a tensão da rede artificial (ANN). ## Principais Componentes (L providers ministeriais) de Neural Networks Cada camada possui neurônios individuais. A entrada é normalmente uma imagem de 1024 bits, cada um representando um pixel. O conjunto de pixels é processado por um conjunto de neurônios individuais através de multiplicações e adições. Em seguida, essa informação étransferida para mais neurônios no camada seguinte (via conexões entre uma camada e outra). Este processo repetirá-se para as camadas posteriores. Finalmente, o ajuste continual de conexões é realizado algumas vezes. A figura abaixo aborda como a entrada é processada em toda a profundidade da rede neural. ! [Exemplo Rede Neural Profunda](https://miro.medium.com/max/683/1*MT0_84rXdU0fim2-90Dmqw@2x.png) ## Aplicações de Deep Learning A indústria de robótica está explorando vários aspectos do Deep Learning para construir o carro autônomo e analisar a imagem da câmera abaixo. - Google pode traduzir páginas inteiras de vários idiomas em segundos e aparecem em seu telefone quando fala em uma estrangeira - A gincana de fotos no seu telefone coloca imagens relacionadas uns com as outras ## Pare de ler aqui, já tem uma ideia de como a inteligência artificial funciona? Por que o Deep Learning melhorou tanto recentemente? O deep learning cresceu rapidamente devido a novas inovações em Computação Gráfica (GPU), maiores quantidades de dados disponíveis na internet e o open-source de código desenvolvido por centros de qualificação em IA. Em conclusão, o Deep Learning foi responsável por grandes avanços em variedades de áreas. Algumas aplicações são: - Inteligência Artificial nas vendas. - Melhoria do speech-to-text. - Identificação de sentimentos nas redes sociais. - Processamento de linguagem natural (NLP). O Deep learning está preenchendo a cena desde o início do ano passado e continuara a fazê-lo por muito tempo ainda. Veja abaixo o Compute Unlimited MIPS Revolution GPUs com processadores teraflops. Nosso time de engenharia usou os recursos da GPU para resolver um dos maiores desafios físicos existentes na inteligência artificial. ! [GPU com Processador Terraflops](https://cdn.cnn.com/cnnnext/dam/assets/200917112224-nvidia-tesla-quilt-300x150.jpg) Estamos trabalhando em projetos interessantes e de alta tecnologia neste campo e esperamos que possamos fazer o melhor em termos de inteligência artificial. # Tutorial de Aprendizagem Profunda: Entendendo as Redes Neurais A aprendizagem profunda se refere principalmente ao trabalhar com dados complexos e desestruturados em comparação à aprendizagem traditionais de máquinas. Na aprendizagem profunda, os dados utilizados seriam principalmente imagens, áudio ou ficheiros de texto. Os dados também podem ser escalonados. A aprendizagem profunda pode lidar com operações complexas e esse processo envolve operações complexas. Uma das diferenças principais entre aprendizagem tradicionais de máquinas e aprendizagem profunda é que na aprendizagem profunda, a extração de características ocorre automaticamente, enquanto que na aprendizagem tradicional de máquinas, a engenharia de características é feita manualmente pelo cientista dos dados. A aprendizagem profunda funciona muito bem, especialmente para grandes quantidades de dados complexos e desestruturados. ## Redes Neurais As redes neurais são o ingrediente secreto da aprendizagem profunda. São baseadas em nossas neurónias biológicas e imitam o cérebro humano. ! [Neurónio Biológico](data: image/svg+xml; base64, <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><circle cx="100" cy="100" r="40" stroke="preto" fill="laranja"/><path d="M30, 70 h40 v40 h-40z" stroke="preto" fill="preto"/><path d="M70, 130 h40 v40 h-40z" stroke="preto" fill="preto"/></svg>) ! [Neurónio Artificial](data: image/svg+xml; base64, <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><circle cx="100" cy="100" r="40" stroke="preto" fill="laranja"/><polígono pontos="30, 70 115, 70 115, 110 30, 110" stroke="preto" fill="preto"/></svg>) As redes neurais são uma simulação do cérebro humano. O cérebro humano tem milhões de neurónios biológicos, e tentamos simular o cérebro humano utilizando neurónios artificiais. Um neurónio artificial recebe entrada através do equivalente dos dendrites. Existe uma unidade de processamento, semelhante a um nucléolo celular. Com base nos pesos e em uma largeura inicial, a entrada é processada, resultando em uma saída. A saída é então fornecida como entrada a outro neurónio. ## Perceptron O perceptron é uma das unidades básicas das redes neurais e consiste no mínimo uma unidade de neurónios. Um perceptron pode ser utilizado para executar determinadas funções, como classificação binária básica. ! [Perceptron Básico](data: image/svg+xml; base64, <svg xmlns="http://www.w3.org/2000/svg" width="300" height="300"><retângulo x="50" y="100" width="200" height="200" stroke="preto" fill="branco"/><círculo cx="100" cy="100" r="40" stroke="preto" fill="laranja"/><linha d="M0, 150 h200" stroke="preto"/><linha d="M0, 50 h200" stroke="preto"/><linha d="M50, 50 v150" stroke="preto"/><linha d="M150, 50 v150" stroke="preto"/><texto x="100" y="50" stroke="preto">x1</texto><texto x="100" y="150" stroke="preto">x2</texto></svg>) O perceptron básico é nada mais do que um neurónio com entradas x1, x2, . . . , xn. Existe uma função de soma, e então existe a função de ativação. A função de ativação dá como saída 0 ou 1. Durante o treinamento, os pesos e as alturas são ajustados para gerar a saída corretiva. Caso haja um erro, o erro é devolvido, e o neurónio ajusta os pesos e as alturas para dar uma nova saída. Este processo iterativo é chamado de regra de aprendizado do perceptron. ## Aprendizagem de Perceptron A aprendizagem de perceptron é um processo de aprendizagem básico que funciona multiplicando cada entrada por um peso, somando os produtos pesados e uma largeura, passando a soma através da função de ativação, e então ajustando os pesos e as alturas com base no erro. Aos pesos e as alturas mudam durante o treinamento. Após o treinamento ser feito, os valores desses pesos e a altura recebem um valor fixo. ## Implementação da porta NOT com Perceptron Único Implementar uma porta NOT com um perceptron único foi uma barreira no progresso das redes neurais. No entanto, uma rede neurália multicamada (MLP) pode ser utilizada para implementar uma porta NOT. Neste caso, existem duas camadas em vez de uma camada única. Assim, é possível implementar uma porta NOT com uma MLP da seguinte maneira: ``` Entradas: x1, x2 Camadas Escondidas: h3, h4 Saída: 05 ``` Veja que x1 e x2 são as entradas, e existem camadas escondidas (h3 e h4) que tomam a saída e a alimentam a uma unidade de saída (05). Ajustando os pesos e as alturas nas camadas escondidas, uma MLP pode sucessivamente implementar a função NOT. # Aplicativos de Aprendizado Profundo: Carros Autônomos, Robôs e Diagnóstico Médico O aprendizado profundo é um componente básico dos carros autônomos. Os carros são treinados para reconhecer vários aspectos, como: - A estrada - Marcas de calçada na estrada - Señais - Qualquer objeto que estiver na frente - Qualquer impedimento Isso envolve aprendizado profundo, tornando-o outra aplicação importante. Robôs, como Sophia (que recebeu a cidadania do Saúde-Arábia), também estão utilizando o aprendizado profundo. Muitos destes robôs são muito humanos parecidos, e a tecnologia subjacente em muitas ocasiões é o aprendizado profundo. No campo da diagnóstica e cuidado de saúde, o aprendizado profundo é sendo usado extensivamente. Dentro da diagnóstica de saúde, há múltiplas áreas onde o aprendizado profundo e reconhecimento de imagens/processamento podem ser usados, como: - Detecção de câncer: Se o câncer for detectado cedo, pode ser curado. O desafio é a disponibilidade de especialistas que possam diagnosticar o câncer usando imagens diagnosticas e várias tomadas. A ideia é treinar as redes neurais para performar algumas dessas atividades, diminuindo a carga dos especialistas ou oncologistas. Há muito trabalho sendo feito em esta área, e já há várias aplicações que afirmam estar perfurando melhor do que seres humanos neste espaço. Exemplos incluem câncer de pulmão e câncer de mama. Para entender o funcionamento do reacordePOINT neuronal, vamos olhar como ele identifica formas como o quadrado e o círculo: 1. Uma imagem é uma representação digital de pixels. Por exemplo, considere uma imagem de 28 por 28 pixels. Esses pixels possuem certas valores, como de 0 a 256. Cada pixel tem um valor que indica a luminosidade desse pixel, com 0 sendo o mais escuro e 256 sendo o mais brilhante. 2. A informação contida dentro da imagem pode ser comprimida nos 784 pixels (28 x 28) que a compõem. Cada neurônio recebe input deesses pixels. 3. Durante o processo de treinamento, uma rede neuronal consiste em várias camadas: uma camada de entrada, camadas escondidas, e uma camada de saída. A camada de entrada recebe os 784 pixels como input, a camada de saída fornece a classificação final (por exemplo, quadrado, círculo, triângulo), e as camadas escondidas processam a informação. 4. A informação de erro é enviada de volta, e os pesos e biós de esses neurônios são ajustados até que eles corretamente identifiquem a forma da imagem. Isso é o mecanismo de treinamento que ocorre na rede. Esta processo é repetido para diferentes formas, e a rede neuronal é treinada para classificar imagens em vários objetos. Quando uma nova imagem é introduzida, a rede neuronal detecta padrões até mesmo se o objeto não estiver exatamente no posicionamento das imagens de treinamento. Isso é a ideia detrás do reconhecimento de padrões. ## Processo de Treinamento Um neurônio consiste em entradas, soma ponderada (xi wi), biós e a função de ativação. Durante o processo de treinamento, inicialmente, os pesos e biós dos neurônios são aleatórios. Os valores de esses pesos são ajustados ao longo do processo de treinamento até que a rede neuronal corretamente identifique as imagens. Existem diferentes tipos de técnicas de otimização usadas para encontrar os valores ótimos dos pesos, como o descendente de gradiente. Os pesos e biós são valores numéricos que ajudam a rede neuronal a processar os dados de entrada e fazer previsões. Existem também diferentes tipos de funções de ativação usados nas redes neurais, como relu e sigmoid, para determinar se um neurônio deve ser acionado ou não. Técnicas de otimização como o descendente de gradiente são usadas para minimizar o erro (função de custo) ao longo do processo de treinamento, e uma vez que o treinamento é concluído, os pesos e biós são fixados para uma determinada rede neuronal. Isso é um modelo treinado. *Nota: Este texto foi editado e formatado para seguir as diretrizes do Markdown para formatos corretos e legião* # Aprendizagem Profunda com TensorFlow: Reconhecimento de Números Escritos à Mão ## Introdução Na aprendizagem profunda, a otimização do descento de gradiente desempenha um papel crucial. Às vezes, os dados podem mostrar curvas erráticas com múltiplas minima local e máximos. O objetivo do descento de gradiente é identificar a minima global e encontrar os pesos eльтаres no ponto particular. Isso é o descendimento de gradiente. Considere um exemplo em que existem múltiplas minima local. Pode parecer que um valor mínimo foi alcançado, mas não é a minima global. O algoritmo de gradiente faz um esforço para chegar à minima global e evitar ficar preso em minima local durante o processo de treinamento. O algoritmo está projetado para identificar a minima global. ## TensorFlow O TensorFlow é a plataforma de aprendizagem profunda e biblioteca mais popular, desenvolvida por Google. Este tutorial te conduzirá por meio de uma demo rápida de como escrever um código tensorflow usando Python. ### O que é TensorFlow? O TensorFlow é uma biblioteca Python criada por Google para o desenvolvimento de aplicações de aprendizagem profunda, especialmente usando redes neurais. Ele se compõe de dois partes principais: 1. Tensors: Pense em tensores como arrays multidimensionais, semelhantes aos arrays unidimensionais tradicionais, matrizes bidimensionais e além. Eles podem manipular arrays multidimensionais, fazendo operações de aprendizagem profunda muito mais rápidas. 2. Graphs: O código em tensorflow funciona criando um grafo que descreve como executar operações, e depois realmente executa esse grafo na forma de uma sessão. Todos os dados são gerenciados e modificados em tensores, e as operações são feitas por meio desses graphs. ### Propriedades de TensorFlow - O TensorFlow é software aberto e desenvolvido por Google. - Ele pode executar em processadores CPU e GPUs. Os GPUs são excelentes para atividades computacionais, particularmente cálculos repetitivos que acontecem com frequência em aprendizagem profunda. - Veremos como escrever código em tensorflow ao longo deste tutorial. ### TensorFlow e Aprendizagem Profunda Os dados em tensorflow fluem na forma de tensores. Para executar o grafo, criamos uma sessão. Ao longo deste tutorial, vamos levá-lo pela utilização de um caso de uso de reconhecimento de números escritos à mão usando TensorFlow. #### Banco de Dados MNIST O banco de dados MNIST é comumente usado para fins de treinamento (em particular, ao aprender sobre aprendizagem profunda e TensorFlow), oferecendo uma coleção de 70. 000 dígitos escritos à mão (com um grande conjunto para treinamento e um outro conjunto de teste separado, bem como um subconjunto de validação). Ele oferece funções de utilidade construídas de forma fácil de implementar. ```python import tensorflow as tf from tensorflow. examples. tutorials. mnist import input_data mnist = input_data. read_data_sets("/tmp/data", one_hot=True) ``` #### Preparação dos Dados As imagens são organizadas em um array de pixels, onde cada imagem é apenas uma organização de pixels. Para simplicidade, vamos aplanar esses pixels, facilitando a inserção deles numa rede neuronal. ```python x = tf. placeholder(tf. float32, [None, 784]) y = tf. placeholder(tf. float32, [None, 10]) ``` #### Definição da Rede Neural Definha a rede neural com a estrutura desejada e os parâmetros de treinamento. ```python # Sua definição da rede neural aqui # função train_step para atualizar os pesos do modelo ``` #### Treinamento do Modelo Iniciamos o processo de treinamento fornecendo os dados e as labels, e executando a etapa de treinamento. ```python session = tf. InteractiveSession() # Suponha que tenhamos definido a rede neural e a etapa de treinamento acima session. run(tf. global_variables_initializer()) por um loop a partir de 1000: batch_xs, batch_ys = mnist. train. next_batch(100) session. run(train_step, feed_dict={x: batch_xs, y: batch_ys}) ``` #### Avaliação do Modelo Avaliamos a precisão do modelo treinado no conjunto de teste. ```python correct_prediction = tf. equal(tf. argmax(y, 1), tf. argmax(sess. run(y_), 1)) accuracy = tf. reduce_mean(tf. cast(correct_prediction, tf. float32)) print(session. run(accuracy, feed_dict={x: mnist. test. images, y: mnist. test. labels})) ``` Isso é isso! Com o código acima, você pode começar a reconhecer dígitos escritos à mão usando TensorFlow de uma maneira rápida e fácil. Para explicações mais detalhadas e aprendizado, mergulhe na notebook Jupyter seguindo o tutorial a seguir. [Tutorial do TensorFlow: Reconhecimento de Dígitos Escritos à Mão](https://www.tensorflow.org/tutorials/quickstart/beginner) ----- Lembre-se de formatar o texto usando as padrões de marcação Markdown seguintes: * Use `#` para títulos e subtítulos * Use ** para texto em negrito * Use ` ` para código de linha * Use ``` para blocos de códigos * Use > para citações * Use `-` ou `*` para lista de marcadores * Use `---` para divisões horizontais * Preserve todos os URLs na forma original # Tutorial de Aprendizado Profundo usando TensorFlow Este é um tutorial prático para começar a usar o TensorFlow em um ambiente cloud. Você também pode instalar TensorFlow em sua máquina local, mas neste exemplo, estou demonstrando o código em nosso ambiente cloud existente. ## Introdução 1. **Importação da biblioteca TensorFlow** 2. **Importação dos dados** - Configure a codificação `one-hot` como `True` 3. **Verificação do tipo dos dados** - Verifique se os dados estão no formato correto (`float32`) 4. **Verificação da quantidade de imagens** - Verifique a quantiatidades de imagens de treino, validação e teste 5. **Visualização da segunda imagem de treino** - Use `matplotlib` para visualizar a imagem ## Modelo 1. **Criação do grafo** - Crie placeholders e variáveis para os pesos e bias - Crie uma máquina de estado-sólido (Softmax) 2. **Layers** - Crie camadas de entrada e saída - Adicione a camada de esconder joining 3. **Loss function e optimizer** - Defina a função de perda (Cross-entropy) - Defina o otimizador (Gradiente Descente) 4. **Treino do modelo** - Minimize a função de perda combinando os placeholder e a função de perda ## Salva o modelo - Exporte o modelo para ser salvo para posterior uso --- Acontinuação do texto original: ## Gráfico Preparado *Crie e defina variáveis para os pesos e bias* - `X`: placeholder para os valores de entrada - `W`: matriz de pesos (784x10) - `b`: matriz de bias (10x1) *Defina a função de perda (Cross-entropy) e o optimizer (Gradiente Descente)* *Defina as constantes da função de perda e optimizador* - `learning_rate`: taxa de aprendizagem ## Treino do modelo *Minimize a função de perda combinando os placeholder e a função de perda* - Inicialize as sessões do TensorFlow - Treine o modelo ```python with tf. Session() as sess: sess. run(tf. global_variables_initializer()) train_losses = train_step(sess, X_train, y_train, steps=5000) ``` - Avalie o modelo ```python correct_pred = tf. equal(tf. argmax(y_pred), y_true) accuracy = tf. reduce_mean(tf. cast(correct_pred, tf. float32)) with tf. Session() as sess: sess. run(tf. global_variables_initializer()) total_accuracy = np. mean(sess. run(accuracy, feed_dict={X: X_test, y_true: y_test})) print("Total Accuracy: ", total_accuracy) ``` **Nota: ** Este código foi adaptado para ter uma estrutura mais sucinta e legível em Markdown. Algumas alterações de formatação também foram feitas para melhorar a sintaxis. Algumas explicações foram extraídas dos slides para abordar respectivamente. ***Seção final adicionada***: ## Execução do Código - Salve o código em um arquivo de nome `aprendizado_profundo_tensorflow. ipynb` - Abra este arquivo no [Jupyter Notebook](https://jupyter.org/) - Execute cada célula individual pressionando `Shift + Enter` - Depois de executar todas as células individuais, execute as células em massa clicando em `Run All` ou `Ctrl + Enter` *Exibindo o gráfico do aprendizado* ```python plt. plot(train_losses) plt. show() ``` # Executação no TensorFlow com Inicialização de Variáveis e Criação de Sessão O TensorFlow require a inicialização de variáveis para qualquer execução. Esta seção vai guiar você pelo processo de inicialização de variáveis no TensorFlow. ## Inicialização de Variáveis A inicialização de variáveis é o primeiro passo ao trabalhar com o TensorFlow. É um processo que envolve criar um nó para a inicialização e executar este nó para que seja executada a inicialização. Aqui é explicado como fazer isso: ```markdown # Criar o nó de inicialização init = tf. global_variables_initializer() # Criar uma sessão e executar a inicialização with tf. Session() as session: session. run(init) ``` Neste exemplo, criamos um nó de inicialização usando `tf. global_variables_initializer()`. Então, criamos uma sessão e executamos a inicialização usando o comando `session. run(init)`. ## Laço de Treinamento Depois de inicializar as variáveis, você pode começar o laço de treinamento. Aqui está um exemplo de um laço de treinamento simples no TensorFlow: ```markdown para step em range(num_steps): # Obter os dados x, y = mnist. train. next_batch(batch_size) # Executar o passo de treinamento usando a sessão _, loss_val = session. run([optimizer, loss], feed_dict={x: x, y: y}) ``` Neste exemplo, usamos a função `mnist. train. next_batch(batch_size)` para obter os dados. Em seguida, executamos o passo de treinamento usando a sessão (`session. run([optimizer, loss], feed_dict={x: x, y: y})`). ## Teste da Precisão Após o treinamento, você pode testar a precisão do seu modelo usando os dados de teste: ```markdown # Testar a precisão with tf. Session() as test_session: test_session. run(test_init) test_precisão = test_session. run(precisão, feed_dict={x: mnist. test. images, y: mnist. test. labels}) print("Precisão de Teste: ", test_precisão) ``` Neste exemplo, criamos outra sessão para testar a precisão. Executamos a inicialização de teste (`test_session. run(test_init)`) e então calculamos a precisão de teste (`test_session. run(precisão, feed_dict={x: mnist. test. images, y: mnist. test. labels})`). ## O Que é uma Rede Neural? Uma rede neural é um sistema ou hardware desenhado para operar de forma semelhante a um cérebro humano. As redes neurais são usadas em vários campos, como reconhecimento de fala, reconhecimento de imagem e carros autônomos. Aqui está um diagrama simples mostrando as camadas de uma rede neural: ! [Camadas de Rede Neural](https://miro.medium.com/max/1400/1*lJ3Id_Ul-Gr_PAgIsORtkQ@2x.png) Neste diagrama, podemos ver três camadas: Entrada, Escondida e Saída. A camada de entrada recebe os dados, a camada escondida executa cálculos e extração de recursos e a camada de saída entrega o resultado final. Agora que você tem um entendimento melhor sobre o TensorFlow e as redes neurais, pode começar a trabalhar em projetos mais complexos e explorar várias aplicações destas tecnologias. Tenha divertido! # Reconhecimento de Placas de Veículos utilizando Redes Neurais Convolucionais (CNN) ## Visão Geral Neste documento, vamos discutir o processo de reconhecimento de imagens para placas de veículos utilizando Redes Neurais Convolucionais (CNN). O caso de uso deste projeto é analisar uma imagem de um carro e identificar o número da placa. ## Preparação da Imagem - A imagem é capturada como prova devido a uma violação de tráfico, como atravessar uma luz vermelha. - A imagem é uma captura de 28x28 pixels do veículo, que serve como a entrada para a CNN. ## Estrutura da Rede Neuronal Convolucional (CNN) ### Camada de Entrada A imagem é fornecida como entrada para a rede, onde cada pixel na grade de 28x28 corresponde a uma entrada `x1`, `x2`, . . . , `x28x28`. ### Camadas Ocultas 1. O entrada é passada pela primeira camada oculta, onde cada nó representa uma característica extraída da imagem da entrada. Os pesos aplicados a cada pixel são aleatórios, mas otimizados ao longo do treinamento da rede. 2. O entrada pesada da primeira camada oculta é passada para a segunda camada oculta, repetindo o mesmo processo, já que as conexões nodais foram estabelecidas aleatóriamente com pesos atribuídos. ### Função de Ativação - A função de ativação, como a unidade linear rejeitada (ReLU), é responsável pela decisão de quais nós (nós ocultos) deveriam ser ativados. - Outras funções de ativação incluem funções sigmóide, função de limiar e função hiperbólica tangente. Estas funções determinam a saída, com a função ReLU sendo a mais comumente utilizada em redes neuroniais modernas devido à sua velocidade e eficácia. ### Camada de Saída A camada de saída inclui a previsão do número de placa baseada nos entrados. A saída pode ser visualizada como uma lista ordenada de possíveis saídas, onde o número de placa mais provável está na parte superior da lista. ## Treinamento do Modelo - Durante o processo de treinamento, a taxa de erro é calculada usando uma função custo. - O algoritmo de backpropagação envia o erro à volta pela rede e ajusta os pesos em cada interconexão para minimizar o erro. - O processo de treinamento repete para múltiplas iterações, com os pesos ajustados em cada iteração, até que o modelo atinga a maior precisão. ## Tipos de Redes Neurais Artificiais - Rede Neuronal de Entrada Direta (FNN): Os dados viajam do input para o output em uma única direção, sem loops permitidos. Esta é a rede utilizada para o reconhecimento de imagens em nosso caso. - Rede de Basis Funcionais Radiais (RBFN): Classifica os pontos de dados com base na distância dos pontos centrais. É útil quando lidamos com pontos de dados desconhecidos e fornece uma forma de agrupar pontos semelhantes juntos. ## Conclusão Ao implementar uma Rede Neural Convolucional (CNN), podemos reconhecer com êxito e extrair o número de placa de uma imagem do veículo. Com treinamento adequado e o uso de funções de ativação eficientes e técnicas de minimização de erro, o modelo pode alcançar alta precisão e contribuir para a aplicação de regulamentos de trânsito. # Resumo de Redes Neurais ## Começando com o Modelo Certificado Com o modelo de treinamento certificado, você pode começar a encontrar conexões que talvez não tenha notado antes. Aplicações como sistemas de restauração de energia, por exemplo, tentam determinar o que está conectado e, em seguida, baseado nisso, podem resolver o problema. ## Sistemas de Restauração de Energia Em um sistema de energia grande, uma rede neuronal auto-organizadora é usada. Vetores de dimensões aleatórias são input para uma mapeamento discreto composto de neurônios. Eles encontram um jeito de desenhar estes vetores, que são chamados de dimensões ou vetores ou planos porque eles realmente cortam os dados em uma-, duas-, três-, quatro-, cinco-, seis-dimensões, entre outras. Eles continuam a adicionar dimensões e a encontrar maneiras de separar os dados, de forma a conectar peças de dados diferentes. ## Reconhecimento de Padrões em Dados As aplicações usadas para reconhecer padrões em dados, como em análise médica, usam camadas ocultas. Seu output é armazenado para ser usado em previsões futuras. Redes Neurais Recorrentes (RNNs), por exemplo, têm camadas ocultas que lembram seu output da última vez, e isso se torna parte de seu novo input. Esta característica pode ser particularmente útil no robótica ou na navegação de drones, onde saber o último alteração e sua velocidade pode ajudar a prever a próxima alteração a fazer. ## Modelo de Conversação Texto-fala Modelos de conversação texto-fala são outra aplicação de redes neurais. Eles permitem que você adicione diferentes recursos juntos, como identificar termos específicos, como uma música no Pandora, e ajustar o volume. Eles conectam estes recursos juntos, tomando entradas em lotes, como um filtro, permitindo a rede memorizar uma imagem em partes. ## Rede Neural Convolucional (CNN) Atualmente, em nosso mundo, as CNNs são amplamente usadas na identificação de fotos e separação de fotos, como você pode ter visto no Google, onde eles separam todos aqueles pessoas em uma foto de grupo, permitindo a reconhecimento facial em cada pessoa. ## Rede Neural Modular (MNN) As MNNs combinam diferentes redes neurais para obter a saída. Passamos por vários tipos de redes neurais, e aqui é onde os colocamos juntos. Embora as cores no cérebro não correspondam ao que seu cérebro realmente faz, elas trazem a ideia de que a maioria destas foram desenvolvidas compreendendo como os seres humanos aprendem. Como mais aprendemos sobre o aprendizado humano, podemos construir algo na indústria de computadores para simular isso, refletindo o processo de aprendizado melhor. ## Caso de Uso: Classificação de Cachorro vs Gato Aqui é onde entramos, que é a minha parte favorita. Vamos usar o sistema para identificar entre um cachorro e um gato. O objetivo é classificar fotos de gatos e cachorros usando uma rede neuronal. Temos uma variedade de ambos os animais em nossas fotos, e é incrível ordená-los, determinando se eles são gatos ou cachorros. A aplicação prática inclui a criação de uma porta que se identifica sozinha, que poderia ser uma ideia de início de negócios. Para este caso de uso, vamos implementá-lo em Python 3. 6. ### Ambiente e Pacotes # Classificação de Imagens: Criando um CNN (Convolução Neural de Camadas) para Classificação de Cats ou Dogs Organize e formate suas documentações técnicas utilizando Markdown, seguindo as regras a seguir: 1. **FORMATAÇÃO MARKDOWN: ** - Use `#` para títulos (1 para principal, 2 para secundários, e assim por diante) - Use `**` para texto negrito - Use ` ` para código em linha - Use ` ``` ` para blocos de código - Use `>` para citações - Use `-` ou `*` para listas não ordenadas - Use `---` para linhas horizontais - Preserve URLs como estão 2. **ESTRUTURA: ** - Organize em seções lógicas com títulos claros - Use parágrafos para separar ideias - Mantenha itens de lista e enumerateções - Preserve a hierarquia de títulos 3. **CONTEÚDO: ** - Corrija erros de ortografia e gramática - Mantenha termos técnicos como estão - Preserve comandos e código exatamente como escrito - Preserve URLs e referências intactas Transforme o texto dado, mantendo todas as regras de Markdown e reorganizando o conteúdo: ## Introdução Novamente estamos sentados com uma tassa de café. Se você estiver familiarizado com meus outros vídeos, notará que sempre estou tomando café - minha bebida preferida sendo um latte ou um expresso. A próxima etapa é inicializar o CNN (Rede Neural de Camadas Convolucionais). Chamamos-o de classificador porque irá classificar as imagens entre dois objetos: gato ou cão. Quando se faz classificação, está escolhendo objetos específicos, e isso é verdadeiro ou falso, sim ou não, é algo ou não é. Inicie primeiramente nossa classificação, que será `sequential`. Isso é a classificadora que estaremos usando, a rede neural ou modelo real. Chamamos-a de classificadora pois ela irá classificar as imagens. Agora, adicionaremos uma camada de convolução. Primeiramente, reducemos a convolução para claridade. **Detalhes Importantes de Entrada e Camada** Temos nossa classificadora, e adicionamos algo que chamamos de nosso primeiro layer. O que estamos adicionando? Bem, estamos adicionando nossa camada de entrada. Saltaremos para a parte que diz `input shape equals 64 x 64 x 3`. O que isso significa? Bem, as imagens estão vindo, e elas possuem estas dimensões (por exemplo, a imagem da carroça era 128 x 128 pixels, mas essa é de 64 x 64 pixels). Cada pixel possui três valores, que são onde estas números vem de. É de suma importância que esteja corresponde ao dado que entra, caso contrário terá erros. Você terá que redimensionar o seu dado para se encaixar nesta forma se ele entrar como algo maior pois não existe rede de entrada que poderá lidar com espaço extra. **Função de Ativação: ReLU** A camada mais importante é a primeira uma vez que, após ela, Keras saberá a forma que está entrando, e saberá o que está saindo, colocando os bastidores. A importância fundamental é que a `input shape` corresponda ao dado que entra, e terá muitos erros se não o fizer. Terá de voltar atrás e corrigir caso a imagem número 55 não seja correspondente. A função de ativação que est # Configuração e Preprocessamento de Imagem Explore várias opções para a configuração das suas imagens. No entanto, vamos focar no setup básico aqui. comece por executar o código: ``` # Criando o conjunto de treinamento De Keras. preprocessing. image import ImageDataGenerator train_datagen = ImageDataGenerator( rescale = 1. /255, flow_from_diretório = 'caminho/para/conjunto_de_treinamento', # Atualize este caminho de acordo com sua configuração target_size = (64, 64), batch_size = 32, # Atualize este número se necessário class_mode = 'binário' ) ``` Observe que o caminho no código acima é o local onde as imagens do conjunto de treinamento estão armazenadas. Substitua-o com o seu próprio caminho. Depois de criar o conjunto de treinamento, também precisaremos preparar o conjunto de teste: ``` # Criando o gerador de dados de teste test_datagen = ImageDataGenerator(rescale = 1. /255) test_datagen. flow_from_diretório('caminho/para/conjunto_de_teste', target_size = (64, 64), batch_size = 32, class_mode = 'binário') ``` Substitua o caminho novamente com o local dos conjuntos de imagens de teste. Importante notar que qualquer alteração feita no conjunto de treinamento também precisa ser refletida no conjunto de teste para garantir consistentência. Formatação das imagens do conjunto de teste é necessária: ``` # Formatação das imagens de teste test_datagen. reset() ``` Agora, vamos executar os geradores de dados de treinamento e de teste, e começar o processo de treinamento. ``` # Treine os dados classificador. fit_generator(train_datagen. flow(imagens_de_treino, etiquetas, batch_size = batch_size), passos_por_epoca = 8000, # Atualize este número de acordo com o seu número de imagens épocas = 25, dados_de_validação = (imagens_de_validação, etiquetas_de_validação), passos_por_validação = 2000) # Atualize este número de acordo com o seu número de imagens ``` Não esqueça de substituir `imagens_de_treino` e `etiquetas` com suas imagens e etiquetas de dados de treino reais. A variável `dados_de_validação` deve conter as imagens e etiquetas de dados de validação também. Uma coisa importante a se reconhecer é que este código demonstra uma função de setup básico para treinar um modelo usando um ImageDataGenerator. É essencial ajustar e otimizar vários parâmetros para melhorar o desempenho do modelo de acordo com as exigências específicas do conjunto de dados. # Documentação Técnica: Entendendo o TensorFlow para Aprendizado Profundo ## Introdução Neste documento, exploraremos o TensorFlow, uma libQual é popular e aberto-source usado para construir modelos de aprendizado de máquina e aprendizado profundo. ### O que é TensorFlow? O TensorFlow é uma libLançada pela equipe de Google Brain em 2015 para construir modelos de aprendizado de máquina e aprendizado profundo. É baseada no Python e realiza cálculos numéricos utilizando grafs de fluxo de dados para construir modelos. ### Recursos de TensorFlow - TensorFlow se adapta eficientemente a arranjos multidimensionais. - Oferece escalabilidade de cálculo em máquinas e conjuntos de dados grandes. - TensorFlow oferece rápido depurador de modelo e modelidade de construção. - Possui uma comunidade grande e fornece tensorboard para visualizar o modelo. ### TensorFlow vs TensorFlow 2. 0 - No TensorFlow 2. 0, a execução eágere é suportada por padrão. - Cross é a API de alto nível oficial do TensorFlow 2. 0. Ela oferece funcionalidades de construção de modelo, como sequencial, funcional e subclassing. ### Entendendo Tensors No TensorFlow, o tensor é um vetor ou uma matriz de n dimensões que representa todos os tipos de dados. ### Como funciona o TensorFlow O TensorFlow realiza cálculos com a ajuda de gráficos de fluxo de dados. Nos da um fluxo de dados gráfico representam operações no modelo. ### Diving into TensorFlow Para começar com o TensorFlow: 1. Instale o TensorFlow em seu computador (Python 3. 6+ é recomendado). 2. Crie um novo arquivo Python e importe a biblioteca do TensorFlow. 3. Crie sua primeira rede neural utilizando as funcionalidades de construção de modelo do high-level API do TensorFlow - `tf. keras`. 4. Compile o modelo e treine-o usando seu conjunto de dados. Aqui está um exemplo básico de criar uma rede neural com o TensorFlow: ```python # Importe a biblioteca do TensorFlow import tensorflow as tf # Crie uma rede neural simples com uma camada de entrada, duas camadas escondidas e uma camada de saída modelo = tf. keras. models. Sequential([ tf. keras. layers. Dense(64, activation='relu', input_shape=(784, )), tf. keras. layers. Dense(64, activation='relu'), tf. keras. layers. Dense(10, activation='softmax') ]) # Compile o modelo modelo. compile(otimizador='adam', funcao_perda='sparse_categorical_crossentropy', métricas=['acurácia']) # Treine o modelo usando o seu conjunto de dados modelo. fit(x_treino, y_treino, batch_size=32, epochs=5) # Você pode utilizar tensorboard para visualizar o progresso do modelo ``` ### Aplicações de TensorFlow - Análise de Dados - Deteção de faces - Tradução de línguas - Deteção de fraude - Deteção de vídeo - e muito mais! ### Recursos - [Documentação Oficial do TensorFlow](https://www.tensorflow.org/overview) - [Guia de começar com o TensorFlow](https://www.tensorflow.org/tutorials/get_started) - [Guia Suave para TensorFlow 2. 0](https://www.tensorflow.org/guide) --- *Atenção: Este documento serve como uma introdução ao TensorFlow. Para informações detalhadas, por favor, consulte a documentação oficial do TensorFlow liga na URL acima. * # TensorFlow 2. 0: Um Panorama Comparativo com o TensorFlow 1. 0 ## Escopo e Escopo de Variáveis O TensorFlow 2. 0 apresenta alterações significativas em relação à sua predecessora. Em termos de escopo, é possível ver que o TensorFlow 1. 0 exige que você crie diferentes camadas e valores para cada modelo. No entanto, no TensorFlow 2. 0, esta exigência é eliminada, pois não é mais necessário pré-criar o escopo da variável. ```markdown Se encontrar alguma vez o escopo da variável no TensorFlow 2. 0, pode confiar que ela veio de uma versão anterior. ``` ## Ajuste API e Características No da API, algumas APIs foram removidas do TensorFlow 2. 0, pois não estavam em uso amplo, como `tf gans`, `tf app`, `tf contrib`, e `tf flags`. Características notáveis incluem: - `tf function` e `autograph`: Agora é possível compilar, exportar e reimportar funções Python, fornecendo maior flexibilidade ao trabalhar com tensorflow. A função autograph ajuda a escrever código de grafo usando sintaxe natural de Python. ## Hierarquia e Arquitetura Em nível de alto, a arquitetura do TensorFlow é baseada em uma API orientada a objetos. Os componentes principais incluem: - `tf. keras`: utilizada para a construção e treinamento de models. - `tf. losses`, `tf. metrics`, e `tf. layers`: bibliotecas para construir e otimizar models. - `tf. estimator`: sentado acima da API TensorFlow de baixo nível, permitindo uma integração mais fácil de camadas, perdas e métricas. - `tf. compat. v1`: utilizado para acessar funções do TensorFlow 1. 0, que podem ter sido removidas no TensorFlow 2. 0. ## Dados Lidos e Processados A preprocessamento e o manuseio de dados representam em torno de 80% do tempo de um cientista de dados. No TensorFlow, compreenca a leitura e o processamento de dados usando `tf. data`. `tf. data. feature_columns` se alimentam de `tf. keras` ou estimadores prontos pré-feitos, enquanto a TensorFlow Hub senta-se sobre isso, oferecendo modelos e conjuntos de dados pré-construídos. ## Estratégia de Distribuição Com o TensorFlow, você tem a opção de executar seus modelos em diferentes plataformas e dispositivos, incluindo: - CPU (múltiplos núcleos e Threads) - GPU (Cartão Gráfico) - TPU (Unidade de Processamento de Tensor especificamente projetada para modelos do tensorflow) ## Exemplo Vejamos um exemplo passo a passo pelo TensorFlow: ```python import tensorflow as tf # Criando uma constante z = tf. constant(5. 2, name='x', dtype=tf. float32) # Criando uma variável v = tf. Variable(tf. ones([2, 3]), name='y') # Sessão e computação sess = tf. Session() with sess. as_default(): print(sess. run(v)) ``` Quando o código for executado, ele cria um tensor de 2x3 preenchido com uns. # Tutorial do TensorFlow ## Introdução Intuitivamente, o `tf. _v2. version` no TensorFlow me confunde frequentemente, pois varia de acordo com o uso. O duplo sublinhado `__` no TensorFlow é usado para extrair a versão e é útil saber o que estás a trabalhar. Nesse tutorial, vamos trabalhar com a versão 2. 1. 0 do TensorFlow. Já mencionei que vamos nos aprofundar um pouco mais nos nossos constantes. Aqui está como criar um array de constantes usando o TensorFlow: ```markdown a = tf. constant(4361) ``` Execute isto e imprima o valor de `a`: ```python print(a) ``` Saída: ``` tf. Tensor(4361, forma=( ), tipo=int32) ``` De forma semelhante, podemos criar uma variável 2x2: ```markdown v = tf. Variable([[3152]]) ``` Imprime o valor de `v`: ```python print(v) ``` Saída: ``` <tf. Variable 'IteratorGetNext: 0' forma=(2, 1) tipo=int32, numpy=array([[3152]], tipo=int32)> ``` Agora, vamos criar outro tensor, desta vez como uma constante: ```markdown b = tf. constant([6145]) ``` Imprime `v` e `b`: ```python print(v, b) ``` Saída: ``` <tf. Variable 'IteratorGetNext: 0' forma=(2, 1) tipo=int32, numpy=array([[3152]], tipo=int32)> tf. Tensor([6145], forma=(1, ), tipo=int32) ``` Memorize, no Jupyter Notebook, é fácil imprimir várias variáveis separando-as com uma vírgula e um espaço em branco: ```python print(v, b) ``` Saída: ``` <tf. Variable 'IteratorGetNext: 0' forma=(2, 1) tipo=int32, numpy=array([[3152]], tipo=int32)> <tf. Tensor [6145], forma=(1, ), tipo=int32> ``` Uma coisa interessante a perceber é que, em variáveis, utilizamos a letra maiúscula inicial `V`, e para constantes, utilizamos uma letra minúscula `c`. Pequenas diferenças como essas podem causar confusão ao programar: ```markdown c = tf. constant([3152]) ``` Concatene `a` e `b` usando `tf. concat`: ```markdown ab = tf. concat([a, b], eixo=0) ``` Imprima `ab`: ```python print(ab) ``` Saída: ``` tf. Tensor([4361 3152 6145], forma=(3, ), tipo=int32) ``` Agora, `ab` é um array de forma 1x3. Podes saber mais sobre `eixo` na [documentação do TensorFlow](https://www.tensorflow.org/api_docs/python/tf/concat). Mude o eixo utilizando: ```markdown aba = tf. transpose(ab) ``` Imprima `aba`: ```python print(aba) ``` Saída: ``` tf. Tensor( [[4361] [3152] [6145]], forma=(3, 1), tipo=int32) ``` Agora, `aba` é um array de forma 3x1 com os eixos de linha e coluna trocados em relação a `ab`. Finalmente, fillingen un array com zeros ou unos usando `tf. zeros` e `tf. ones`: ```markdown zeros = tf. zeros(forma=(3, 4), tipo=tf. int32) ones = tf. ones(forma=(3, 4), tipo=tf. int32) ``` Imprima ambos `zeros` e `ones`: ```python print(zeros, ones) ``` Saída: ``` tf. Tensor( [[0 0 0 0] [0 0 0 0] [0 0 0 0]], forma=(3, 4), tipo=int32) tf. Tensor( [[1 1 1 1] [1 1 1 1] [1 1 1 1]], forma=(3, 4), tipo=int32) ``` Podes reshapear as arrays conforme necessário usando `tf. reshape`: ```markdown zeros4x3 = tf. reshape(zeros, (4, 3)) ``` Imprima `zeros4x3`: ```python print(zeros4x3) ``` Saída: ``` tf. Tensor( [[0 0 0] [0 0 0] [0 0 0] [0 0 0]], forma=(4, 3), tipo=int32) ``` # Configuração do Modelo TensorFlow utilizando Keras (Aproximação Sequencial) Este documento detalha os passos para configurar um modelo TensorFlow usando a API Keras, enfocando a abordagem sequencial. ## Pré-requisitos - Python 3. x - TensorFlow - Keras - NumPy - Pandas - Seaborn - Matplotlib ## Importação de Bibliotecas ```python import numpy as np import warnings import datetime import pandas as pd import seaborn as sns import matplotlib. pyplot as plt from sklearn. preprocessing import MinMaxScaler, StandardScaler, MaxAbsScaler # Ocultar avisos warnings. filterwarnings('ignore') ``` ## Configuração ```python # Configuração de Gráficos plt. style. use('538') plt. rcParams['patch. force_edgecolor'] = True plt. rcParams['font. family'] = 'sans-serif' plt. rcParams['font. sans-serif'] = ['Tahoma'] plt. rcParams['axes. titlesize'] = 'x-large' plt. rcParams['axes. labelsize'] = 'large' plt. rcParams['xtick. labelsize'] = 'medium' plt. rcParams['ytick. labelsize'] = 'medium' # Configuração de Ambiente do Jupyter Notebook Interativo plt. ion() # Leitura dos Dados df = pd. read_csv('d: /your_file. csv') ``` ## Preparação dos Dados [. . . ] (continua com seus passos de preparação de dados) A seguir está a versão traduzida e formatted dos textos aplicando as regras especificadas: ``` **Pull e preparação de dados em pandas e limpeza de valores anômalos (Preparação de Dados)** ----------------------------------------------------------------------------------------------- **Conversão de um array numpy datetime-aware para formato datetime** Agora, vamos buscar e preparar um DataFrame para que possamos fazer a mudança logo para o TensorFlow e cross. . . Lembre-se de que isso pode representar cerca de **80%** do código quando se trabalha em muitas coisas! A maioria dos trabalhos consistem em reformatar essas coisas, redefinir-lhes o status inicial corretamente, para que tudo pareça legal no final. . . Pode demorar um grande tempo passar por tudo isso (isso é o que as empresas estão pagando depois). Aqui está uma ideia de o que vamos abordar: 1. Let's tackle o date e hora primeiro! 2. Reorganize algumas coisas na configuração de nosso DataFrame. . . 3. Converta os dados para formato diário. . . 4. E então, analisemos os dados um pouco! **Transformando o DataFrame de pandas** Comece pelo **selecionamento** de várias colunas no nosso DataFrame (df) em função das colunas pelas quais desejamos trabalhar. **Observaçãota** que vamos descartar algumas colunas repetidas, pois nada especificamente excitante ou útil se encontra nestas colunas. Continuaremos adicionando **um segundo DataFrame**: `df2` que representará os valores médios agrupados por data e hora. ```bash Agora, apague as headings de df para um início limpo: > df. head() # excluindo o início Agora nossa df2 teria o seguinte aspecto: df2 = df. groupby(['date', 'time']). mean() ``` **Criação de um DataFrame reorganizado: ** **Observaçoes** que reorganizamos o DataFrame original em sequência, como era antes. Verifique a index da coluna de campo de Data-Time no resultado do DataFrame: ```less df2. index[0] == '2022-01-01 00: 00: 00' # agora o índice se refere à data e hora exata como apareceu no início ``` Portanto, vamos agrupar nossos dados juntos **para um melhor abrangimento** e informação mais manejável e especificado em formato e sequência: ```bash df2 ``` **Como um Data Scientist, tinha uma visão rápida da Análise de Dados Descritiva** Primeiro, internetemos um olhar mais perto numa análise descritiva rápida, para entender o que tipo de dados é que estamos a lidar com: ```lua df2. describe() # isso oferece estatísticas básicas como a mediana, desvio padrão, mínimo, máximo, quartis 1º, 2º e 3º ``` Aqui, focamos na análise de estatísticas descritivas de variáveis por calculação da quantil para cada variável específica: ```bash df2. quantile([0. 25, 0. 75]) # por exemplo o quantil 25%, 75% ``` Em seguida, teremos um olhar mais a fundo nas estatísticas para cada **variável** envolvida no cálculo. **Pré-processamento e Remoção de Valores Anomáis** Para limpar nossos dados e torná-los limpos, podemos querer descartar as primeiras algumas linhas e algumas das linhas finais, devido à presença pesada de valores nulos habitualmente encontrados em essas linhas. Deverá verificar o primeiroas linhas para garantir que os títulos importantes ainda estão intactos: ```bash df2_clean = df2. dropna(thresh=df2. isnull(). mean() < 0. 6) df2_clean. head(n=None) # Nota isto irá remover todas as linhas com mais de 40% de valores nulos ``` Os Dataframes limpos agora oferecem um layout mais estruturado para investigações futuras e a prevenção de biais de análise. A partir de agora, vamos verificar as anômalias em **cada** **variável** que desejar: ```bash # alcance de anômalias para cada variável específica q1_min, iqr, q3 = df2. quantile([0. 25, 0. 50, 0. 75]) # cálculo do quartil de 25%, 50%, e 75% ``` ``` Título: Modelo Neural LSTM para Predição de Série Temporal -------------------------------------------------------- Este documento guiará você pela criação de um modelo neural LSTM para a predição de séries temporais usando Python e TensorFlow. Utilizaremos os valores logaritmicos dos dados de temperatura para prever níveis de umidade futuros. ### Preparação dos Dados Começamos por importar bibliotecas necessárias e carregar o conjunto de dados, o qual foi criado a partir do valor logaritmico da temperatura (obtido de um local separado). O conjunto de dados é dividido em conjuntos de treinamento e teste. ```python # Importação das bibliotecas necessárias import numpy as np import tensorflow as tf from tensorflow. keras. models import Sequential from tensorflow. keras. layers import LSTM, Dense # Carregamento do conjunto de dados # . . . ``` ### Formatação dos Dados Para criarmos nosso modelo LSTM, formataremos nosso conjunto de dados em forma requerida. Nosso conjunto de dados consiste em uma coluna e será normalizado para permitir a presença apenas de umafeature, enquanto o conjunto de treinamento y não exige nenhuma mudança na forma pois possui apenas uma saída a prever. ```python # Formatação do conjunto de dados # . . . ``` ### Reshapear o Array de Entrada Como nosso conjunto de dados inclui um passo no tempo, reformataremos o array de entrada para cumprir os requisitos da camada LSTM. ```python # Reformatar o array de entrada # . . . ``` ### Criação e Treino do Modelo LSTM Criamos e treinamos um modelo neural LSTM seguindo estes passos: 1. Criar um modelo Sequential. 2. Adicionar camadas LSTM e Dense ao modelo. 3. Compilar o modelo com a função de perda média quadrada e o otimizador Adam. 4. Treinar o modelo usando o conjunto de treinamento. ```python # Criar e treinar o modelo LSTM # . . . ``` ### Fazendo Previsões Quando o modelo estiver treinado, podemos fazer previsões usando o conjunto de teste. ```python # Fazer previsões usando o conjunto de teste # . . . ``` Para mais informações a respeito dos tipos de camadas, modelos e funções de ativação disponíveis em TensorFlow, consulte a documentação oficial (tenha em mente que os códigos apresentados aqui são de exemplo, e é recomendado seguir práticas baseadas na experiência ao escrever e formatar código de produção). Nota: É recomendado seguiu best practices quando escrever e formatar códigos de produção. # Avaliação de Modelo de Aprendizado de Máquina ## Avaliação do Modelo Nesta seção, avaliaremos o nosso modelo de aprendizado de máquina usando vários métodos. Nossa meta é determinar o desempenho do modelo e validar os seus resultados. ### Invertendo Predições para Equilibrar Biaise Uma técnica que podemos empregar é inverter as predições. Isso ajudará-nos a reduzir o biaise do modelo e melhorar seu desempenho geral. ```python train_predict = np. exp(m1) train_y = np. exp(m1) para treino_y train_test_predict = train_predict para teste_treino ``` ### Calculando Erro Quadrático Médio de Raiz (RMSE) Agora, calcularemos o Erro Quadrático Médio de Raiz (RMSE) tanto para os dados de treino quanto para os dados de teste para avaliar os erros do modelo. ```python treino_score = math. sqrt(np. mean(np. square(treino_y - train_predict))) teste_score = math. sqrt(np. mean(np. square(teste_y - train_test))) ``` ### Comparando os valores de RMSE Se o score de teste for maior que o score de treino, isso sugere que o modelo foi sobre-aptado. Neste caso, precisamos retroceder e revisar o nosso trabalho para encontrar e corrigir erros. ```python if teste_score > treino_score: print("Atenção: Detetado sobreaprendizado. Precisamos voltar a revisitar o modelo. ") ``` ### Impressão da Performance do Modelo Para apresentar o desempenho do nosso modelo, é melhor fornecer uma impressão formal dos resultados relevantes. ```python print("Score de Treino: ", treino_score) print("Score de Teste: ", teste_score) ``` ### Gravando os Dados As gráficas ajudam a visualizar os dados. Criaremos uma gráfica que mostre os dados para facilitar às pessoas não técnicas a compreensão dos resultados. ```python # Gravando os dados # . . . (código adicional para gráficos de dados aqui) ``` ## Modelo de Rede Neural TensorFlow para Deteção de Objetos em Vídeo Nesta seção, usaremos a biblioteca TensorFlow para realizar a deteção de objetos num vídeo. ### Importando Bibliotecas . . . (importações de bibliotecas, caminhos, mais código aqui) ### Usando um modelo neural existente Em vez de criar um modelo novo, utilizaremos um existente para economizar tempo e recursos computacionais. Utilizaremos o modelo SSD com MobileNet, que está disponível como código aberto. ```python # Importando o Modelo # . . . (código adicional para importar e carregar o modelo aqui) ``` ### Mapping de Dados Após a saída do modelo ser um número, precisamos o mapear para texto. Por exemplo, se a saída for 5, sabemos que isso significa que é um avião. O mapear é feito no código a seguir. ```python # Mapeadora de Saída do Modelo para Texto # . . . (código adicional para mapear a saída do modelo para texto aqui) ``` ### Carregando os Dados Carregaremos os dados na nossa aplicação como matrizes de numpy, que são utilizadas para deteção de objetos em imagens. Atraindo um vídeo é feito de frames, reutilizaremos o mesmo código que usamos para deteção de objetos em imagens. ```python # Carregando os Dados # . . . (código adicional para carregar dados aqui) ``` ### Deteção de Objetos em Vídeo Agora, acoplamos tudo para fazer a deteção de objetos no vídeo. ```python # Deteção de Objetos Principal no Vídeo # . . . (código adicional para deteção de objetos em vídeo aqui) ``` Este é o resumo da avaliação do modelo e do processo para utilizar o TensorFlow para deteção de objetos em um vídeo. A seguir, atendendo aos passos fornecidos, construímos um modelo sequencial usando o TensorFlow e Cross, o que nos permite construir nossa modelo de dados rapidamente e de forma eficiente. Espero que este tutorial tenha sido útil! # Detecção de Objetos em Vídeos utilizando Redes Neurais Recurrentes (RNN) Encontre mais informações sobre a detecção de objetos em vídeos utilizando redes neurais recurrentes (RNN). ## Introdução Este guia ensina-lhe a detecção de objeto em vídeos usando redes neurais recurrentes (RNN). O objetivo é lidar com objetos em vez de imagens individuais, o que requer um modelo que possa processar dados em tempo sequencial. ## Detecção de Objetos em Vídeos A detecção de objeto em vídeos é semelhante à detecção de objeto em imagens, mas o processo é ligeiramente diferente. Ao invés de lidar com uma única imagem, o algoritmo tem que lidar com uma seqüência de imagens em um vídeo. ### Pré-processamento de Vídeo O primeiro passo é ler e converter um vídeo em frames individually. ```python # Leia o arquivo de vídeo leitor_de_vídeo = io. VideoReader('traffic. mp4') # Percorra as frames do vídeo, analisando cada frame como uma imagem para frame em leitor_de_vídeo: # Análise aqui ``` ### Detecção de Objetos em Cada Frame Após converter o vídeo em frames, o próximo passo é a detecção de objetos em cada frame. É necessário utilizar uma rede neural com memória para capturar a sequência de frames e lidar com dados em tempo sequencial. ```python # Use um modelo RNN pré-treinado para detecção de objetos modelo = modelo_rnn_pre_treinado. carregar('modelo_de_detecção_objetos. h5') # Predizer o objeto e nível de confiança para cada frame predicações = modelo. predictar(frame) ``` ### Anotação dos Resultados Após detectar os objetos em cada frame, os resultados precisam ser anotados no vídeo, como um rótulo ou marcação sobre o objeto detectado. ```python # Anote o vídeo com os objetos detectados para i, pred em encontrado(predicações): objeto, confiança = pred x, y, w, h = . . . # Obter as coordenadas do quadro limitador # Desenhe uma caixa em torno do objeto detectado cv2. retangulo(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) ``` ## Solução Ao finalizar o processo de detecção de objetos em um vídeo, o vídeo original deverá ser salvado com seu novo conteúdo de anotações. O método `video. write` pode ser utilizado para escrever o vídeo anotado. ```python # Salve o vídeo anotado fourcc = cv2. VideoWriter_fourcc(*'mp4v') saída_vídeo = cv2. VideoWriter('traffic_annotated. mp4', fourcc, 10, (frame. shape[1], frame. shape[0])) para frame em leitor_de_vídeo: # Anotar cada frame como descrito anteriormente frame_anotado = . . . # Escreva cada frame no vídeo de saída saída_vídeo. escreva(frame_anotado) # Feche o video writer saída_vídeo. arquivar() ``` ## Aplicação em Imagens Especiais O algoritmo utilizado para detecção de objetos neste tutorial foi treinado para poder lidar com vários tipos de objetos, o que inclui veículos, animais, objetos em inglês e muitos outros. Ao usar vídeos com outro tipo de objeto, certifique-se de que o algoritmo seja treinado e adaptado corretamente para esse tipo de objeto. Por exemplo, se estiver usando imagens de animais, o algoritmo precisa ser treinado com um grande número de imagens de animais para aprender melhor a classificar os animais corretamente. ## Tradução Ao traduzir este texto, foi feito grande esforço para manter o conteúdo tecnológico em inglês e manter comandos e códigos inalterados. Além disso, também foi mantido o português europeu. Os pontos abaixo ilustram o quão foi feito para alcançar estes objetivos: * Os carateres especiais do Markdown, como hashtags, asteriscos e sinais de nova linha, foram mantidos intactos. * A estrutura de títulos e seções foi preservada. * Os blocos de código foram mantidos intactos e apenas alguns comentários foram adicionados. * URLs foram mantidas intactas. Ao traduzir, também foi feito esforço para melhorar a formatação e legibilidade do texto traduzido. Esta foi realitzada por: * Adicionando títulos mais curtos e claros. * Atualizando frases incorporadas, bem como agregando alguns artigos definidos e verbos auxiliares. * Adicionando exemplos de código e explicando alguns termos técnicos. * Organizando a informação através de "sub-seções". * Adicionando linhas em branco e utilizar o "> " quando necssário para melhorar a legibilidade. Por fim, todos os elementos do Markdown foram mantidos de maneira consistente com as instruções originais. # Rede Neural Recurrente (RNN) RNNs são um tipo de rede neural artificial frequentemente utilizada para processar dados sequenciais, como séries de tempo, texto e fala. Neste documento, discutiremos vários tipos de RNNs e suas aplicações. ## Rede Neural Redemoinho (Vanilla Neural Network) Um-Para-Um O tipo mais comum de RNN é a rede neural redemoinho, também conhecida como a rede neural simples. É utilizada para problemas de aprendizagem automática de série regular como classificação de imagens, regressão e classificação binária. O termo "vanilla" é utilizado porque é considerado um sabor básico com estrutura simples, embora seja bastante potente. ## Rede Neural Redemoinho Um-Para-Muitos Em uma rede neural um-para-muitos, um input único pode ter múltiplas saídas. Um exemplo desta é a captionação de imagens, onde temos múltiplas saídas para dado uma imagem. Por exemplo, uma imagem de cachorro pode ser descrita como "um cachorro", "um animal de estimação" ou "um animal". ## Rede Neural Redemoinho Mult-Para-Um Uma rede neural mult-para-um recebe uma sequência de inputs e gera uma única saída. Um exemplo desta é a análise de sentimentos, onde uma frase pode ser classificada como expressando sentimento positivo, negativo ou neutro. ## Problemas de Rede Neural Redemoinho Quando se trabalha com RNNs, muitas vezes se Encounteram o **Problema do Gradiente Vanesendo**. Ocorre quando a pendente durante o treinamento é muito pequena ou muito grande, o que torna o treinamento difícil. Quando a pendente é muito pequena, o problema é chamado de **Problema do Gradiente Vanesendo** e a informação é perdida durante a retropropagação. Quando a pendente é muito grande, o problema é chamado de **Problema do Gradiente Explodindo**, que pode causar instabilidade e treinamento lento. ## Soluções ao Problema do Gradiente Para solucionar o problema, podemos utilizar três soluções primárias: 1. **Inicialização da Identidade**: Minimize a identidades que entram tornando-se apenas as informações importantes. 2. **Propagação Truncada**: Truncar a informação que é enviada para o próximo conjunto de camadas, tornando o determinado conjunto de camadas menor. 3. **Ajuste do Gradiente**: Ajustar o gradiente durante o treinamento tornando o modelo de treinamento mais estreito. Quando lidamos com um Problema de Gradiente Vanesendo, podemos considerar a inicialização das pesos, a escolha de função de ativação correta e a utilização de redes pesadas curtas memória (LSTM). As LSTMs têm a capacidade de aprender dependências longas e manter informações por um período de tempo prolongado. ## Transformações LSTM As LSTMs possuem três etapas de processamento principais: 1. Porta Esquecimento: Decide quais informações devem ser excluídas que não são importantes da passada etapa. 2. Atualizar o estado da célula: Selecionarmente atualizar os valores do estado da célula com base no que estamos trabalhando. 3. Porta de Saída: Apenas sair com determinadas partes da célula. ## Exemplo de Processamento LSTM Considere um exemplo para compreender como as LSTMs processam informação: 1. alice é boa em física 2. john no outro lado é boa em química Como processamos a segunda sentença, a rede LSTM percebe que houve uma mudança de contexto em Alice para John e descarta a informação sobre Alice, atendendo aos mesmos. ## Conclusão RNNs, principalmente as LSTMs, são poderosos ferramentas para processar dados sequenciais. Podem manter informações por um longo período, tornando-as eficaces para tarefas como análise de texto, tradução e análise de sentimento. Apesar de sua complexidade, as RNNs têm demonstrado ser ativos valiosos no campo da inteligência artificial. # Redes Neurais LSTM: Entendendo os Três Passos Chave ## 1. A Função Sigmoide e Função Tangente Hiperbólica A função sigmoide é fundamental para decidir os valores que devem passar, atribuindo um valor de zero ou um. A função Tangente Hiperbólica fornece um peso aos valores que passam, determinando seus níveis de importância. A equação para `i` de `t` pode ser escrita da seguinte forma: ``` i_t = sigmoid(w_i * h_t - 1 + x_t + b_i) ``` Nesta equação, `i_t` representa o gate de entrada. Decide quais informações devem passar com base de sua importância no momento atual. `w_i`, `h_t - 1`, `x_t`, e `b_i` são o peso, estado oculto, entrada e bias, respectivamente. A equação para `c` de `t`: ``` c_t = tanh(w_c * h_t - 1 + x_t + b_c) ``` `c_t` representa o estado da célula. Os valores são empurrados entre -1 e 1 ao passar o estado da célula pela função Tangente Hiperbólica. ## 2. A Porta da Entrada e a Porta de Esquecimento Aqui, nos concentraremos na porta da entrada e na porta de esquecimento. ### A Porta da Entrada A porta da entrada anuncia as informações importantes. Por exemplo: > Se uma pessoa, João, te disse pelo telefone ontem que ele jogou futebol bem e serviu como capitão de sua equipe de colégio, a porta da entrada anunciaria as informações importantes: João joga futebol e ele foi o capitão da sua equipe de colégio. A informação menos importante, por exemplo, o fato de que ele te disse pelo telefone ontem, é frequentemente esquecida. ### A Porta de Esquecimento A porta de esquecimento decide quais informações esquecer com base de sua importância. Se a informação não é importante para o contexto atual, ela pode ser esquecida. ## 3. A Porta de Saída A porta de saída decide o que parte do estado atual da célula passará à saída. A saída é uma combinação da camada sigmoide e da camada Tanh. A equação para a saída `o_t` pode ser escrita da seguinte forma: ``` o_t = sigmoid(w_o * h_t - 1 + x_t + b_o) ^ * tanh(c_t) ``` Nesta equação, `w_o`, `h_t - 1`, `x_t`, e `b_o` são o peso, estado oculto, entrada e bias, respectivamente. --- ## Preditando a Palavra Próxima numa Frase Assim que criarmos o conhecimento básico, vamos avançar para um exemplo prático: preditando a próxima palavra numa frase. Consideremos a frase: > "João jogou extraordinariamente bem contra o adversário e um por seu time por suas contribuições, bravo _ foi premiado jogador do jogo. " Para prever o espaço em branco, podemos criar uma rede neural para processar a entrada e sair com a palavra predita. --- ## Preditando os Preços de Ações Nesta seção, aprenderemos a implementar Redes Neurais LSTM para prever os preços de ações utilizando dados históricos de ações. ### Caso de Estudo da Implementação de LSTM Previemos os preços de ações para o ano de 2017 baseado nos dados de 2012 a 2016. #### Preparação dos Dados Primeiro, carregue e processe os dados de treino. ```python import numpy as np import matplotlib. pyplot as plt import pandas as pd # Carregue e processe os dados de treino treino = pd. read_csv('preco_de_acao_treino. csv'). iloc[: , 1: ] ``` #### Arquitetura do Modelo Crie e treine o modelo LSTM utilizando os dados processados. ```python # Defina a arquitetura do modelo LSTM def build_lstm_model(): # Defina o modelo modelo = Sequencial() modelo. add(LSTM(50, input_shape=(X_treino. shape[1], 1))) modelo. add(Dense(25)) modelo. add(Activation('tanh')) modelo. add(Dense(1)) modelo. add(Activation('sigmoid')) # Compile o modelo modelo. compile(loss='mean_squared_error', optimizer='adam') return modelo # Crie e treine o modelo LSTM modelo = build_lstm_model() modelo. fit(X_treino, y_treino, epochs=200, batch_size=1, verbose=0) ``` #### Avaliação Teste o modelo LSTM treinado usando os dados de teste. ```python # Teste o modelo treinado perda = modelo. evaluate(X_teste, y_teste, verbose=0) print('Perda do teste: ', perda) ``` Isso nos ajudará a entender como prever os preços de ações utilizando Redes Neurais LSTM. A performance do modelo pode ser melhorada ajustando a arquitetura do modelo, taxa de aprendizado e outros parâmetros de hiperparâmetro. 🚀🚀🚀 # Análise de Ações Usando Python ## Introdução Nesta guia, vamos Guia-vos à passo a passo através de uma análise de ações usando Python e Aprendizagem de Máquina. Vamos nos concentrar em escalonar nosso data antes de treinar o nosso modelo e usar LSTM (Long Short-Term Memory) para previsão. ## Carregamento dos Dados Primeiro, vamos carregar os dados. Usaremos `pandas` para a manipulação de dados. ```python import pandas as pd # Carregar os dados data = pd. read_csv('dados_de_acoes. csv') ``` ## Preparação dos Dados ### Escalonamento de features Usaremos o `MinMaxScaler` de sklearn para normalizar nosso dado entre 0 e 1. O objetivo é remover as desvantagens causadas pelas diferenças consideráveis nos valores entre diferentes ações. ```python from sklearn. preprocessing import MinMaxScaler # Inicializar o escalonador escalonador = MinMaxScaler() # Escalonar os dados dados_escalonados = escalonador. fit_transform(data) ``` ### Divisão dos Dados Vamos dividir os dados em um conjunto de treino e um conjunto de teste. ```python # Divida os dados em recursos (x) e etiquetas (y) X = dados_escalonados[: , : -1] y = dados_escalonados[: , -1] # Divida os dados em um conjunto de treino e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, teste_tamanho=0, 2, random_state=42) ``` ## Construção do Modelo ### Importação dos módulos necessários ```python from keras. models import Sequential from keras. layers import LSTM, Dense, Dropout # Importando os módulos relacionados com a validação cruzada from keras. utils import to_categorical from keras. models import model_from_json ``` ### Definição do Modelo ```python # Defina a arquitetura do modelo def criar_modelo(forma_de_entrada, numero_de_classe, taxa_de_queda): modelo = Sequential() modelo. adicione(LSTM(50, taxa_de_queda=taxa_de_queda, forma_de_entrada=forma_de_entrada)) modelo. adicione(GapDropout(taxa_de_queda)) modelo. adicione(LSTM(50, taxa_de_queda=taxa_de_queda)) modelo. adicione(GapDropout(taxa_de_queda)) modelo. adicione(LSTM(50, taxa_de_queda=taxa_de_queda)) modelo. adicione(GapDropout(taxa_de_queda)) modelo. adicione(Dense(numero_de_classe)) return modelo ``` ### Compilação do Modelo ```python # Compile o modelo modelo = criar_modelo((X_treino. shape[1], 1), 1, 0, 2) modelo. compile(perdeu='mean_squared_error', otimizador='adam') ``` ### Treinamento do Modelo ```python modelo. treine(X_treino, y_treino, epochs=50, batch_size=32, porcentagem_de_validação=0, 2) ``` ## Previsão do Preço da Ação Vamos salvar o modelo treinado num ficheiro JSON e carregar-lo para fazer previsões no conjunto de teste. ```python # Salve o modelo treinado num ficheiro JSON modelo_json = modelo. to_json() como arquivo_json("stock_model. json", "w") = modelo_json # Carregue o modelo do JSON de arquivo arquivo_json = abrir('stock_model. json', 'r') modelo_carregado = modelo_from_json(arquivo_json. leitura()) arquivo_json. fecho() # Carregue os dados de teste X_teste = dados_escalonados[1258: , : -1] y_teste = dados_escalonados[1258: , -1] # Faça previsões nos dados de teste y_previsto = modelo_carregado. previa(X_teste) ``` ## Referências * [Documentação de Keras (Long Short-Term Memory)][1] * [Documentação de Keras (Modelo Sequencial)][2] * [Documentação de Keras (Modelo de JSON)][3] * [Documentação de Keras (Dropout)][4] * [Documentação de Pandas (read_csv)][5] * [Documentação de Scikit-learn (MinMaxScaler)][6] [1]: https://keras.io/api/layers/recurrent_gru/lstm/ [2]: https://keras.io/models/sequential/ [3]: https://keras.io/models/model_from_json/ [4]: https://keras.io/layers/regularizers/dropout/ [5]: https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html [6]: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html # Modelagem de Regressão com Redes Neurais de Computação em Memória (Memristor-based Computing Neural Networks) ## Introdução Nesta seção, vamos explorar o uso de modelos de Redes Neurais de Computação em Memória (Memristor-based Computing Neural Networks) para a modelagem de regressão. Aqui, detalhamos o processo de criação de um modelo, compilação e treinamento utilizando o Keras. ## Modelo de Regressão ### Construindo o modelo Para criar o nosso modelo de regressão, nós vamos importar a biblioteca Keras, criar o nosso regressor, compilar, e então treiná-lo usando o conjunto de treinamento de dados e o conjunto de teste. ``` from keras. models import Sequential from keras. layers import Dense # Modelo de Regressor com uma camada escondida de 64 neurônios regressor = Sequential() regressor. add(Dense(64, activation='relu', input_dim=128)) regressor. add(Dense(64, activation='relu')) regressor. add(Dense(1)) ``` ### Compilação e Treinamento Nós vamos compilar nossa rede neural com o optimizador Adam e com a função de perda Mean Squared Error. ``` from keras. optimizers import Adam regressor. compile(optimizer=Adam(lr=0. 001), loss='mean_squared_error') ``` Treinemos o nosso modelo em nosso conjunto de dados de treinamento (x_treino, y_treino) e com um número definido de `epocas` e batch size. ``` regressor. fit(x_treino, y_treino, epochs=100, batch_size=32) ``` ### Predição e Visualização dos Resultados Nós vamos ler os dados de teste do nosso arquivo CSV, criar os inputs com base nos nossos dados de teste e aplicar as mesmas operações de limpeza. ``` real_stock_price = pd. read_csv('preprocessed/test_eye_location. csv', header=None) ``` Nós também vamos recriar o nosso processo de modelagem de predictões e visualização de resultados semelhantes ao que criamos anteriormente. ``` # Predizer e visualizar os resultados # Código aqui ``` ## Desempenho do Modelo Analisemos os resultados com base na variação de perda. ## Conclusão Nesta seção, construímos e treinamos um modelo de regressão utilizando Redes Neurais de Computação em Memória e o Keras. O resultado final produz um gráfico do preço atual da ação em relação ao valor previsto pelos modelos de regressão. Essa abordagem pode ser aplicada a outras séries de dados técnicos de ações, permitindo a predição de dados futuros e a obtenção de maior entendimento sobre como os mercados funcionam. # Documentação Técnica - Análise de Previsão de Preços de Ações ## Introdução Nesta seção, será apresentado um analisador de previsão de preços de ações baseado em Machine Learning. ### Objetivo O objetivo deste análisador é oferecer previsões de preços para ações baseadas em diferentes fatores, como dados históricos do preço da ação, volume de negociação, indicadores técnicos e caso necessário, informações financeiras da empresa. ### Pré-requisito - [Python](https://www.python.org/) instalado - Biblioteca [pandas](https://pandas.pydata.org/) - Biblhioteca [sklearn](https://scikit-learn.org/) ## Análise do Modelo ### Conceitos - Artificial Intelligence (AI) refere-se à programação de máquinas que simulam a inteligência humana, com o objetivo de que a máquina possa pensar e agir de forma semelhante a um ser humano. - O AI está em rápidas alterações e trazendo mudanças em nossas vidas para frente. Alguns exemplos incluem mecanismos de busca na internet, asistentes de voz como o Google Assistant, Apple Siri e Amazon's Alexa, bem como robôs autônomos. ### Funcionalidade - Análise de dados históricos de preços de ações - Predição de preços futuros de ações - Visualização em gráficos ## Resultados Você pode visualizar o resultado que foi obtido com o análisador em nosso gráfico abaixo. ```{v} ! [Gráfico de previsão de preços de ação](https://example.com/plot.png) ``` ### Observações - Nesta análise foi utilizado apenas o preço inicial e final em nosso dados. No entanto, deve-se considerar que existem mais variáveis para análise, como volume, altura máxima e mínima, entre outras. - A análise não expõe nenhum risco, visto que o modelo utiliza apenas dados históricos e não realiza operações de negociação. - Para uma análise mais precisa e mais detalhada deve-se considerar a utilização de dados comparativos, além de indicadores de tendência e volumes. ## Referências - [Machine Learning](https://www.google.com/search?q=machine+learning) - [Deep Learning](https://www.google.com/search?q=deep+learning) - [Artificial Intelligência](https://www.google.com/search?q=artificial+intelligence) - [Stock Market](https://www.google.com/search?q=stock+market) ## História Empresarial A tecnologia de aprendizagem automática foi fundada em 1956 com o Dartmouth AI Conference. Desde então, tornou-se uma área de estudo ativa em várias áreas, como visão computacional, aprendizado automático e linguagem artificial. Esta tecnologia tem revitalizado muitos setores e menor tempo e recursos. Nossa empresa é uma das pioneiras deste campo e tenemos anos de experiência no desenvolvimento de modelos de aprendizagem automática e de inteligência artificial. Obs: Esse texto foi digitalizado, por isso a presença de pequenas inconsistências de formatação pode estar presente. ## História do Projeto O projeto da ciência da computação é uma área emergente, que dinamiza aspectos incríveis para a sociedade moderna. É capaz de realizapor tarefas complexas e que no passado necessitavam de investigação longa e acima da mão humana. Um dos campos que mais grandes benefícios tem recibido é a Inteligência Artificial. Nesse projeto, nos esforçamos para explorar e desenvolver tecnologias e aplicações de inteligência artificial para que ela possa ajudar na vida cotidiana de nosso cliente. O que é Inteligência Artificial (IA)? A Inteligência Artifical refere-se a um conjunto de algoritmos da computação como pensar de forma humana e reagir a informações de forma automática. Essa área tem provado ser uma das maiores dimensões no setor Técnico de Informática, com a criação de softwares que sabem ver, ouvir e aprender. Têm como exemplo para compreender melhor o que é a IA? Um dos questões que nos levamos a trabalhar em projetos com a IA foi a maneira como tal tecnologia poderia simplificar a vida do cliente convencional. Por isso um dos projetos que a nossa empresa vem trabalhando a fim de fazer realidade é um aplicativo que ajuda seu cliente a prolongar suas rotinas de banheiro. Se você imaginou como seria um aplicativo dessa natureza é fácil de perceber o impacto na vida diária. Imagine que, ao acordar, ao invés de tomar a vezada, você informasse ao lugar onde trabalhas há que você chegar, e automaticamente uma viatura autônoma acoplaria-se ao seu lugar para sair. Em termos mais claros, tal sistema funcionaria assim: 1. O aplicativo recebe as informações necessárias. 2. Ao informar onde você irá, o sistema calcula o caminho mais curto para ali. 3. Então o veículo aplicativo acopla em seu lugar para sair. 4. O veículo sucede automaticamente até o seu destino. Nossa empresa tem trabalho em projetos de apoio à IA esforçado para que tal tecnologia possa ser mais acessível para todos. A partir de memos expansivos e livros de ensino digitalizado, nossa equipe de excelentes analistas de tecnologia juntou forças para compilar uma legenda que explique melhoros os aspectos básicos da IA e como ela pode começar a ser utilizada diariamente em rotinas cotidianas. Esperamos que você ache essa breve explicação útil. O texto original está digitado, por isso pode apresentar pequenas inconsistências de formatação. ### História da empresa A Inteligência Artificial é um campo de estudo emergente, que tem entre seus principais objetivos a simplificação das tarefas humanas através da automatização e utilização de tecnologias computacionais. Entre seus maiores beneficiados, encontram-se o setor farmacêutico, de médicos, educação e transporte. O Sistema de Gerenciamento de Stanford Health Care, que é uma das maiores empresas de saúde norte Americanas, é um dos exemplos mais conhecidos em termos de uso de Inteligência Artificial no setor de saúde. Originalmente, a empresa não utilizava nenhuma tecnologia de aprendizagem automática ou Inteligência Artificial, porém, devido ao grande crescimento necessitou de soluções mais eficientes e precisas. Durante um ano, entre 2010 e 2011, a empresa dedicou-se inteiramente à elaboração e apresentações de projeto para a implementação da tecnologia, tendo conseguido implementar sua estrutura base da tecnologia em 2011. Desde o início da aplicação da tecnologia, a empresa patrou um crescimento de até 30% anual. Através da utilização da Inteligência Artificial, algumas das vantagens que a empresa conseguiu incluíram: - Redução dos vertientes administrativos - As tarefas mais tediosas foram delegadas aos robôs para que os funcionários pudessem trabalhar com mais eficiência Dessa forma, o sistema tornou-se mais preciso e as contas foram calibradas, o que proporcionou um aumento significativo nas vendas. Nos termos de saúde dos pacientes, melhorou graças a todos os registros digitizados e desenvolvidos automaticamente. Assim, com a introdução da Inteligência Artificial, a empresa passou a ter todo o poder nas mãos de seus funcionários, que podiam trabalhari diariamente com vários registros automatizados pelo sistema, também tendo melhor acesso ao sistema através de sistemas de autenticação, também automatizados. # Potência Transformadora da Inteligência Artificial: Entendê-la e Usá-la de Forma Responsável Neste documento, discutimos o potencial transformador da Inteligência Artificial (IA), ambos positivo e negativo, e enfatizamos a importância do uso responsável e da comprensão desta tecnologia. ## A Potência Transformadora da Inteligência Artificial A IA tem o potencial de ser transformadora, vantagens não excluídas, e poderá apresentar desafios devido aos preconceitos. O medo do desconhecido sempre foi um pensamento preocupante com a tecnologia. Aprendemos que preocupações sobre a IA desenvolvendo consciência e depor uma amarga revolução são em grande parte infundadas, pois a IA é definida pelos algoritmos que a governam e operam sob limitações definidas. A gente tem medo de o que acontece quando a IA alcança consciência, tais como máquinas de IA adquirindo sentimento humano e emoção. No entanto, não há progresso na pesquisa em estas áreas e não é foreável na nossa imediata futura. ## Cuidado na Desenvolvimento da IA Qualquer tipo de máquina pode ser usado para fins bons ou ruins. Os desenvolvedores e pesquisadores deveriam saber onde desistir ou pausar o desenvolvimento da IA. A analogia de Peter do conduzir em condições adversas ressalta o perigo em se apressar em novas tecnologias sem considerar os potenciais riscos. A mesma analogia se aplica ao desenvolvimento da IA. Devemos parar, verificar as condições e estabelecer padrões de segurança para evitar acidentes. ## Apostando pela IA: Entendê-la e Usar de Forma Responsável Uma certa escepticismo dos sistemas de IA é crucial para manter os indivíduos informados sobre o que os algoritmos estão a fazer. Manter-se informado irá ayudar a resolveros nossos maiores desafios na desenvolvimento da IA. Enquanto a IA não é intrinsecamente perigosa, como qualquer tecnologia, ela pode ser maltreatada. As máquinas de IA ainda carecem de empatia humana e consciência, portanto, é fundamental a compreensão e o uso dessa tecnologia revolucionária responsáveis para melhorar nossas vidas. ## Aprendendo a IA e a Aprendizagem automática Para saber mais sobre a IA e a Aprendizagem Automática, consuma o programa de pós-graduação na IA e Aprendizagem Automática da SimplyLearn em parceria com a Universidade Purdue. ## O Futuro da IA A IA dispor-se-á probablemente a ser empregue nas tarefas que nós gostaríamos ou precisámos de realizá-las em lugar dos nós, marcando o início de uma nova renascença e uma era dourada da solução de problemas. A IA é argumentada pelos mais importantes trabalhos que a humanidade já efectuou, sendo semelhante ao eletricidade ou a fogo. A IA está em uso em várias aplicações, como a descoberta de medicamentos e soluções de acessibilidade para pessoas com problemas de visão. Por exemplo, a última versão de Windows 10 contém uma funcionalidade Eye Gaze que pode ajudar pacientes com ALS a digitar usando apenas o olhar. No entanto, com a ascensão da IA iremos ver voçes ocupados e iremos ser continuamente a aprender e adaptar. A transformação da educação é essencial para quearmos as pessoas com as habilidades necessárias para os empregos do futuro. ## Regulação da IA e Considerações Éticas Apenas com a engenharia ética e ações proativas é possível abordar as preocupações éticas relacionadas à IA. É preciso defender padrões éticos desde o princípio, manter-se transparente no nosso enfoque e estabelecer marcos globais para a segurança da IA. ## Perguntas mais frequentes de entrevistas em Aprendizagem Automática Esta seção consolida as perguntas mais frequentes nas entrevistas de Machine Learning e oferece respostas, urgindo os candidatos a complementar as respostas com experiência prática para melhor transmitir o entendimento das idéias. *Que são os tipos diferentes de aprendizagem de máquina? * Os tipos mais comuns de aprendizagem de máquina são o aprendizado supervisionado e o aprendizado não supervisionado. O aprendizado supervisionado requer dados etiquetados para treino, enquanto o aprendizado não supervisionado trabalha sem dados etiquetados. O aprendizado reforçado é outro tipo, que envolve o agente, o ambiente e meta para o agente alcançar. Para respostas mais detalhadas, exemplos e técnicas, por favor consulte o vídeo contendo as 30 perguntas mais frequentes e respostas. # Inteligência Artificial: Entendendo a Ultrajação e Evitando-a Este texto fornece uma explicação sobre a ultrajação e sua evitação no contexto de aprendizado por reforço, especificamente usando AlphaGo como exemplo. O texto também aborda os conceitos de conjuntos de treinamento e teste em aprendizado de máquina. ## Ultrajação A ultrajação é um problema comum em aprendizado de máquina em que um modelo aprende a memorizar os dados de treinamento em vez de aprender os padrões subjacentes. Para melhor entender isso, considere a seguinte analogia: 1. Imagine que toca um garoto para reconhecer os frutas. Começa com uma cesta contendo maçãs, laranjas e abacaxis. Depois de mostrar o garoto cada fruta, repetindo várias vezes os nomes, o garoto torna-se familiarizado com essas frutas e consegue identificá-las corretamente. 2. Quando apresenta um novo conjunto de frutas (incluindo aqueles já vistos e novos), o garoto pode não ser capaz de identificar as frutas corretamente, demonstrando ultrajação para os dados de treinamento iniciais. Na máquina de aprendizado, esta correspondência à ultrajação pode ser observada quando o modelo alcança alta precisão durante o treinamento mas apresenta péssima performance durante o teste com dados inéditos. Para evitar a ultrajação, técnicas de regularização como dropout podem ser utilizadas. ## Conjuntos de Treinamento e Teste em Aprendizado de Máquina Durante o treinamento do modelo de aprendizado de máquina, os dados são divididos em dois conjuntos principais: de treinamento e de teste. 1. **Conjunto de Treinamento**: Este conjunto, que é utilizado para treinar o modelo, normalmente consiste dos 60-80% dos dados etiquetados. Os dados são passados várias vezes pelo modelo (10-20 vezes ou mais), otimizando os parâmetros do modelo para otimização do desempenho e da precisão. 2. **Conjunto de Teste**: Este conjunto, que é utilizado para avaliar o desempenho do modelo, normalmente consiste dos 20-40% dos dados etiquetados. O modelo é exposto ao conjunto de teste apenas após o treinamento, fornecendo uma medida inicial do modelo para generalizar a novos dados inéditos. O melhor ratio e tamanho de conjuntos de treinamento e de teste podem variar de acordo com o dataset individual e as preferências do cientista de dados. É importante garantir que o conjunto de teste seja suficientemente grande para avaliar de forma precisa o desempenho do modelo e pequena o suficiente para não diminuir significativamente a quantidade de dados de treinamento disponíveis. ## Manipulação de Dados A manipulação de dados é frequentemente descoberto situações envolvendo dados ausentes ou corrompidos. A estrategia de gerenciamento destas situações depende muito das circunstâncias específicas, da precisão dos dados e dos requisitos do projeto. Exemplos de métodos de gerenciamento de dados incluem: 1. **Retirada de dados ausentes**: Remover observações (linhas) de dados com dados ausentes pode ser adequado se a perda de dados resultante for mínima e os dados disponíveis são suficientes para análise. 2. **Preenchimento de dados ausentes**: Em casos em que a retirada de dados não é viável ou desejável, técnicas de preenchimento de dados como a preenchimento com média, mediana ou moda, ou preenchimento baseado em regressão podem ser usados para preencher as lacunas utilizando algoritmos apropriados. 3. **Normalização dos dados**: Técnicas como a escalonagem ou a normalização podem ser úteis em casos onde os dados provenientes de várias fontes caem em diferentes faixas, requerendo ajuste para comparar e analisar efetivamente. 4. **Transformação dos dados**: Transformações não-lineares, como a transformação logaritmica ou a transformação de potência, podem ajudar a normalizar os dados distorcidos e melhorar o desempenho do modelo. # Documentação de Melhoria Neste documento, terminologias técnicas importantes serão preservadas, ao mesmo tempo em que melhora a legibilidade, e se adequarem às regras de formatação Markdown. ## Trabalhando com Valores Faltantes O primeiro problema ao trabalhar com seu sistema é garantir que os valores estão presentes e não ausentes. Se os valores estiverem ausentes, o seu sistema não irá funcionar conforme o esperado. N tutores, por outro lado, pode haver situações em que, em vez de preencher valores ausentes com um `média`, seria potencialmente vantajoso preencher-lós com o mínimo valor, um `0`, ou o máximo valor. Novamente, não há uma resposta universal para isso, e isso dependerá de sua situação específica. Em geral, é melhor experimentar com vários classificadores baseados nos dados do conjunto de treino, e escolher o que melhor se adapta à sua situação. ## Escolha de um Classificador Baseado no Tamanho do Conjunto de Treino Escolher um classificador apenas baseado no tamanho do conjunto de treino não é a melhor maneira de decidir o tipo de classificador. No entanto, existem algumas regras de dedo que podem ser usadas. Na minha opinião, a melhor maneira de responder a esta questão é tentar vários classificadores, independentemente do tamanho dos dados, e depois escolher os adequados para sua situação. ## Matriz de Confusão Matriz de Confusão: A Matriz de Confusão é uma ferramenta usada nos processos de aprendizagem de classificação para descobrir a acurácia dos resultados previstos comparados com os valores reais. Por exemplo, supondo que temos uma matriz de confusão binária: ``` Real Sim Não Predito ---------------- Sim | 9 1 Não | 3 9 ``` - Os valores da diagonal indicam a acurácia - A soma total destes valores corresponde ao total de observações no conjunto de teste ## Cálculo da Acurácia A acurácia é calculada dividindo o total das values da diagonal pelo total tamanho do conjunto de dados. Por exemplo, se tivermos 21 valores da diagonal, e um total de dados de 25: ``` Acurácia = 21 / 25 = 0, 84 ou aproximadamente 84% ``` ## Falso Positivo e Falso Negativo Os Falso Positivo e Falso Negativo se referem a erros cometidos pelo sistema na previsão dos valores reais. - Um Falso Positivo ocorre quando o valor previsto é positivo, mas o valor real é negativo. - Um Falso Negativo ocorre quando o valor previsto é negativo, mas o valor real é positivo. Por exemplo, utilizar a nossa matriz de confusão: ``` Real Sim Não Predito ---------------- Sim | 9 1 (True Positive) Não | 3 9 (True Negative) ``` Neste caso, o Falso Positivo seria o "1" no "Sim" coluna nas linhas de "Predito", e o Falso Negativo seria o "3" no "Não" coluna nas linhas de "Predito". Abaixo está o texto traduzido e formatado de acordo com as regras indicadas: Aprendizagem Profunda versus Aprendizagem de Máquina ====================================================== A aprendizagem profunda é uma parte do escopo mais amplo da aprendizagem automática, portanto também é útil entender a diferença entre eles. A diferença principal é que, ao implementar nossos algoritmos ou ao usar redes neurais para o treinamento e classificação e regressão e tudo o mais, então é considerada aprendizagem profunda. A palavra "deep" vem do fato de que temos várias camadas de redes neurais e estas são chamadas Redes neurais profundas. Portanto, "deep learning" significa que temos múltiplas camadas de redes neurais. A diferença entre aprendizagem automática e aprendizagem profunda é que no primeiro caso a engenharia de características é feita de forma manualmente, enquanto no segundo caso a modelo de rede neuronal determina autematemente quais características usar e quais não usar. Então, a engenharia de características é feita automaticamente. Abaixo, segue uma tabela de comparação entre aprendizagem automática e aprendizagem profunda: | Aprendizagem automática | Aprendizagem profunda | |---|---| | Aprende a tomar decisões com base em dados passados | Aprende a tomar decisões com a ajuda de redes neurais artificiais | | Precisa de um número pequeno de dados para o treinamento | Precisa de uma quantidade grande de dados para o treinamento | | Precisa de máquinas com baixa potência | Precisa de máquinas cada vez mais potentes devido a computação intensa | | As características precisam ser identificadas manualmente e codificadas | As características são trabalhadas automaticamente pelo modelo | | As tarefas são tratadas indivisualmente em partes | A problemática é tratada de uma maneira end-a-end | ### Aplicações Empresariais de Planeamento de Marketing A renda e as vendas dos clientes estão caindo devido a uma falta de previsão de gastos por parte do banco e do cliente. É importante encontrar fórmulas de previsão de venda e gastos para os custos de crédito padrão, para poder prever a posição financeira do cliente. Para tanto, a equipe de análise de dados desenvolveu um sistema de aprendizagem profunda para prever os gastos mensais dos clientes, com base nos dados disponíveis sobre salário, empréstimos, outros gastos cereais, etc. , tanto dos clientes atuais como de clientes que não são clientes do banco. O treinamento do sistema contou com dados de 200. 000 clientes, que responderam a uma pesquisa personalizada e por isso foi possível eticamente permitir a utilização desses dados. O modelo treinado foi apoiado por meio de 100. 000 testes com dados de clientes experimentais para verificar a precisão do sistema. Além disso, foi importante considerar otimizações e estratégias personalizadas para os níveis de crédito que os clientes habitualmente procuram e para as categorias de produtos que gastam, de forma a que após o previsão do nível de gastos mensal alegar que aquele cliente seja de um segmento particular ou qualidade específica. Atualmente, este sistema de aprendizagem profunda está sendo utilizado pelo banco e é gerando um impacto positivo na redução dos gastos de crédito por parte do cliente. Curiosa de aprender mais sobre aprendizagem profunda e quem é a DeepMind? Considera ler [O que é aprendizagem profunda? explorando o que basicamente tem a fazer com a inteligência artificial](https://medium.com/deepmind/deep-learning-exploring-what-deep-learning-has-to-do-with-artificial-intelligence-cf0276d14149) para saber mais sobre. ___ Links externos: - https://en.wikipedia.org/wiki/Deep_learning - https://deeplearning.academy/machine-learning/machine-learning-versus-deep-learning/ - https://en.wikipedia.org/wiki/Deep_learning#Applications_e_casos_de_estudo - https://www.ibm.com/cloud/blog/what-is-machine-learning-the-definition ___ **NOTAS IMPORTANTES** 1. Não há fórmulas matemáticas neste texto, então não há a necessidade de blocos de código formatados. 2. Os trechos citados ou referenciados mantiveram sua formatação original, pois tais trechos são supostos ter sido copiados do contexto original. Finalmente, aqui também há uma breve comparação entre outras formas de aprendizagem automática, como: - Aprendizagem Supervisionada: o treinamento é feito com dados já rotulados e a modelo aprende a classificar ou prever baseados nesses dados já rotulados. - Aprendizagem Não Supervisionada: o treinamento é feito com dados não rotulados e o modelo deve aprender a entender os dados ou desvendar padrões sem rotulagem. - Aprendizagem Semi-Supervisionada: o espaço entre aprendizagem supervisionada e aprendizagem não supervisionada, onde o treinamento é feito com tanto dados rotulados quanto não-rotulados. - Aprendizagem Indutiva e Aprendizagem Dedutiva: as diferenças entre eles são tópicos mais avançados de aprendizagem automática. Não foi abordado neste texto. - Aprendizagem Online e Aprendizagem Offline: debatida de forma mais teórico. Não foi abordado neste texto. Como essas abordagens são mais teóricas e avançadas, elas podem ser estudadas mais a fundo em mestrado ou programas de pós doutorado de aprendizagem automática. # Documentação Técnica ## Introdução Informal Este texto fornece uma visão geral dos conceitos de Aprendizado de Máquina, com ênfase em Aprendizado Indutivo e Dedutivo, KNN e K-Means Clustering, e Aprendizado por Reinforcement, com uma menção rápida ao Classificador Naivo Bayes e ao Motor de Recomendação da Amazon. ## Aprendizado Indutivo e Dedutivo - **Aprendizado Dedutivo** - Um processo de aprendizado em que conclusões são derivadas com base em regraes pré-existentes. (Exemplo: Uma pessoa aprende que o fogo queimam com base na própria experiência. ) - **Aprendizado Indutivo** - Um processo de aprendizado em que conclusões são derivadas com base em observações específicas ou experiências. (Exemplo: Um modelo treinado para reconhecer padrões em um conjunto de dados para fazer previsões. ) ## KNN (k-Próximos Vizinhos) e K-Means Clustering - **KNN** - Um método de classificação que atribui novos pontos de dados para uma de várias classes diferentes com base na maioria de seus vizinhos mais próximos no conjunto de dados de treinamento. (O valor de `k` determina o número de vizinhos mais próximos que devem ser considerados. ) - **K-Means Clustering** - Um método de aprendizado não supervisionado que agrupa objetos semelhantes em grupos com base em características ou atributos. (O valor de `k` determina o número de grupos a serem criados. ) ## Classificador Naivo Bayes - **Classificador Naivo Bayes** - Um classificador probabilístico que usa a Teorema de Bayes com suposições fortes de independência entre características e probabilidades de classe condicionais. (As suposições podem não ser totalmente precisas, mas o classificador frequentemente funciona bem em prática. ) ## Aprendizado por Reinforcement - **Aprendizado por Reinforcement** - Um tipo de aprendizado de máquina em que um agente aprende a tomar decisões interagindo com um ambiente para atingir um objetivo. (Exemplos de objetivos podem ser a maximização de um recompensa, a minimização de um custo ou o minimização do número de passos. ) ## Aplicação: Xadrez com Aprendizado por Reinforcement - **Jogo de Xadrez com Aprendizado por Reinforcement** - Um sistema aprende a jogar xadrez observando jogos (seja humanos ou de máquina), experimentando, e repetindo o processo. O sistema é inicialmente incUnitiado mas melhora sua estratégia ao longo do tempo por meio de sua performance baseada em recompensas e multas. ## Motor de Recomendação da Amazon - **Motor de Recomendação da Amazon** - Um sistema que recomenda itens com base na história de compras do usuário, informação demográfica e associações de itens. O motor faz a determinação de associações entre itens e cria perfis dos usuários para fazer recomendações personalizadas. ### Exemplos e Conceitos de Aprendizagem de Máquina #### Regression vs. Classificação Discutir exemplos e entender o uso adequado de palavras-chave é fundamental para esclarecer as diferenças entre regressão e classificação na aprendizagem de máquina. ##### Regressão Na regressão, tentamos encontrar valores **contínuos** para prever um resultado. Por exemplo: 1. Predizer a **temperatura** para amanhã, que requer um valor numérico (por exemplo, 20 graus, 30 graus, etc. ). 2. *Predição de preços de ações* para prever valores numéricos de ações no futuro. ##### Classificação Na classificação, estamos tentando fazer decisões **discretas** ou **atribuir instâncias a grupos ou classes**. Os problemas de classificação incluem: 1. Classificação de imagens, onde você classifica imagens em classes (por exemplo, gato, cão, elefante, tigre). Isso é um problema de classificação multiclass e multi-etiqueta. 2. Problemas de classificação binária, como saber se um cliente irá comprar ou não um produto. Isso é conhecido como problema de classificação binária. 3. No *setor de previsão do tempo*, a previsão do tempo pode ser considerada uma combinação de ambos regressão e classificação. De um lado, queremos prever se vai chover ou não (classificação, classificação binária), mas também precisamos prever a ** Quantidade de precipitação** (regressão). ##### Filtro de Spam Para criar um filtro de spam, se adequamos estes passos: 1. **Identificar o tipo de problema**: Reconheça-o como um problema de classificação pois queremos determinar se um email é spam ou não. 2. **Escolher o Algoritmo**: Como é um problema de classificação binária, a regressão logística, árvores de decisão e Máquinas de Suporte Vector (SVM) são algoritmos comuns para explorar. 3. **Preparar os dados**: Utilize dados com rótulos etiquetados e históricos para treinar e testar seu modelo. Divida os dados em conjuntos de treinamento e teste. 4. **Treinar o Modelo**: Utilize o conjunto de treinamento para treinar o modelo escolhido. Com vários algoritmos, será possível terminar com vários modelos. 5. **Testar e Comparar Modelos**: Teste os vários modelos e selecione o melhor. 6. **Finalizar o Modelo**: Escolha o melhor modelo (usualmente o que apresenta a maior precisão) e coloque-o em produção. ##### Árvore Aleatória Árvore Aleatória é um tipo de aprendizador ensemble que utiliza várias árvores de decisão para tarefas de classificação (quase sempre) ou regressão. Cada árvore de decisão vota pela classe final na classificação, e o resultado da floresta é calculado tomando a média em tarefas de regressão. ##### Escolha do Algoritmo Certinho Ao escolher um algoritmo de aprendizagem de máquina, aspects não há uma solução um-tamanho-fita. Reduza a lista identificando se o problema é um problema de classificação ou regressão, então tente alguns algoritmos no seu dado e selecione o que apresenta o menor erro ou mais alta precisão. ##### Sesgo e Variância - **Sesgo**: Ocorre quando os valores previstos estão longe dos valores reais. - **Variância**: Ocorre quando os valores previstos estão dispersos ou têm um nível alto de dispersão. Em aprendizagem de máquina, é fundamental encontrar um compromisso entre sesgo e variância para ter resultados consistentes e precisos. ##### Precisão e Recall A precisão e o recall são medidas comuns na classificação de tarefas. As equações de precisão e recall são definidas da seguinte forma: π€ **Precisão** = true positives / (true positives + false positives) π€ **Recall** = true positives / (true positives + false negatives) Seja preparado para visualizar estes conceitos com uma matriz de decisão! ##### Pruning de Árvore de Decisão Árvores de decisão podem se tornar demasiadamente complicadas enquanto elas crescem, portanto, o cortamento é usado para simplificar as árvores e evitar o enfitting. O cortamento envolve a remoção de partes de uma árvore de decisão, reduzindo seu tamanho e complexidade, e melhorando seu desempenho. # Decision Tree Pruning (SupertreINÍcio e Motivo) Objetivo e Razão: - Reduzir o Enrijemento - Aproximar o Enrijemento - O **Supersumento de Árvore de Decisão** é um processo de redução do número de ramos em uma árvore de decisão para evitar o enrijemento. ## Por Que a árvore de Árvore de Decisão deleitas é necessária? - Quando uma árvore de decisão tem muitos nós internos, isto leva à enrijamento. - Durante a formação, o árvore pode alcançar uma precisão de 100%, mas durante a teste, resulta em erros em número superior. - A supimentação é feita para evitar este problema de enrijamento. ## Supersumento de Árvore de Decisão: Definição - O **Supersumento de Árvore de Decisão** envolve reduzir o número de ramos em uma árvore de decisão para evitar o enrijamento. ## Regressão Logística - **A Regressão Logística** é uma das técnicas usadas para a realização de classificação, especialmente de classificação binária. - Existindo uma confusão no nome, é empregue na classificação, não em regressão. - **A Regressão Logística** calcula uma probabilidade entre 0 e 1, e baseado num limiar (geralmente 0, 5), configura um valor de 0 ou 1. ## Algoritmo K-Vizinho Mais Próximo (KNN) - **O K-Vizinho Mais Próximo (KNN)** é um algoritmo de classificação. - Classifica objetos baseada nos K pontos de dados mais próximos encontrados para um item novo. - Se o valor inicial de K é 5, por exemplo, irá encontrar os 5 pontos de dados mais próximos. Se todos cinco não pertencem a mesma classe, o ponto de dados novo é atribuído à classe com a maioria dos pontos mais próximos. ## Preparação para as Perguntas de Entrevista de Aprendizagem Fundamental Estaremos a ajudar-vos com a preparação para as perguntas de entrevista sobre aprendizagem profunda, cobrindo temas desde os princípios das redes neurais e aprendizagem profunda até alguns modelos comumente utilizados. ## O Que é a Aprendizagem Profunda? - A **Aprendizagem Profunda** envolve o treino de modelos utilizando grandes volumes de dados, quando se trata de imagens de gatos e cães, para posteriormente classificar a imagem de um gato ou um cachorro. - A aprendizagem profunda aprende com grandes volumes de dados estruturados e não estruturados, usando algoritmos complexos para treinar as redes neurais e extrair padrões e características ocultos. ## O Que é uma Rede Neural? - Uma **Rede Neural** é um sistema inspirado no cérebro humano que replica a forma como os seres humanos aprendem. - Consiste de três camadas: entrada, escondida e saída, onde cada camada contém neurónios chamados nós. - Ajustamentos são feitos nas camadas escondidas para treinar a rede neural mais rápido e melhorar as suas funções. ## O Que é uma Rede Multicamada Perceptron (MLP)? - **A Rede Multicamada Perceptron (MLP)** é um tipo de rede neuronal artificial inspirado pelo cérebro. - Coniste em uma camada de entrada, camadas escondidas (varias) e camada de saída, onde cada camada contém nós. - A MLP utiliza uma função de ativação não linear nas camadas de entrada e escondida, o que lhe permite classificar classes não lineares. ## Normalização de Dados - **A Normalização de Dados** é essencial para a preparação de dados, reduzindo o dossier e eliminando a redundância de dados. - Aprimeira esteja a insuferir ajudando a eliminar a biaise nos dados e a melhorar a integridade dos dados. ## O Que é uma Máquina de Boltzmann? - Uma **Máquina de Boltzmann** é um tipo de rede neuronal superficial (normalmente com duas camadas: visível e escondida) que toma decisões stochásticas sobre se um neurónio deverá estar ativado ou desligado. - Também conhecida como a **Máquina Restrita de Boltzmann** porque os nós dentro de mesma camada não se conectam. # Redes Neurais: Funções de Ativação e Funções de Custo As redes neurais podem se tornar relativamente complexas, mas são automatizadas, o que as torna simples. Com funções de ativação, você tem uma combinação de simplicidade e complexidade, pois elas determinam se um neurônio deve ser ativado ou não (o papel mais básico) ou qual valor deve ser saído quando é ativado. Nos nossos modelos, nosso enfoque está nos camadas limitadas Bolzmann. Isso resulta na ativação: elas podem ser ativadas ou não (sim ou não, verdadeiro ou falso, tudo ou nada). A função de ativação aceita a soma ponderada das entradas (junto com o bias) e fornece um valor. Aqui está uma breve visão geral de algumas funções de ativação comuns: - Função de Passo: Decide se o neurônio deve ser ativado (sim ou não). - Função de Sigmoide: Em uso comum, mas substituída pelo ReLU nas redes modernas. Converte o valor em uma probabilidade entre 0 e 1. - ReLU (Unidade linear retificada): É pronunciado "relu". Seu valor de saída é o máximo (0, x), o que significa que ele é zero ou o valor original. Essa função é mais rápida de computar que a sigmoid e outras funções de ativação, e permite a esparidade na ativação. - Função de Tangente Hiperbólica (tanh) Função: Seu valor está entre -1 e 1. Possui uma curva sigmoidal simétrica, o que permite pesos negativos. A função de passo é a fundamental, e ela decide se um neurônio deve ser ativado ou não (sim ou não). No entanto, em modelos modernos, temos uma versão mais geral dela, na qual, em vez de apenas saída binária, poderá fornecer um valor (0 ou 1) para representar o grau em que o neurônio está ativo. ## Função de Custo A função de custo avalia o desempenho do modelo. Mede o erro ou a perda da camada de saída durante backpropagation. A função de custo comumente utilizada é Erro Quadrático Médio (E. Q. M), definido como: ``` c = (1/n) * sum((y_pred - y)^2) ``` Nesta equação: - `c` é a função de custo. - `n` é o número de exemplos. - `y_pred` é a saída prevista. - `y` é a saída verdadeira. Esta medida de erro é utilizada para o treinamento do modelo empurrando o erro através da rede neural com backpropagation. O objetivo é minimizar este erro para obter um modelo mais performante. Tire cuidado, pois o erro não possa ser otimocal quando testar em conjuntos de dados maiores, portanto, você deve sempre fazer testes locais e globais de seu modelo para garantir a sua precisão. ## Descento Gradiente O Descento ao Grau é um algoritmo de otimização para minimizar a função de custo. O objetivo é encontrar o mínimo local ou global da função, o que pode ajudar a determinar a direção que o modelo deve tomar para reduzir o erro. A ideia principal é ajustar os parâmetros do modelo (pesos) na direção que reduz o erro. Abordaremos mais sobre backpropagação, descento gradiente e outros métodos em posts futuros. --- Este documento oferece uma visão geral breve de funções de ativação e funções de custo nas redes neurais. Para detalhes adicionais e exemplos, faça certo de ver o vídeo [Redes Neurais Convolucionais](https://www.youtube.com/watch?v=0zKVq7XKfTg) put out by [SimplyLearn](https://www.youtube.com/@SimplyLearn2). # Redemoinadores Neurais Recurrentes (RNN) ## Visão Geral Redemoinadores Neurais Recurrentes (RNN) são um tipo de rede neural artificial desenhada para reconhecer padrões em sequências de dados. São diferentes de outras redes neurais, pois possuem ligações de retroalimentação e podem processar sequências de dados de comprimento arbitrário. ## Aplicações de RNN - **Análise de Sentimentos e Mineração de Texto**: O RNN pode ser usado para analisar as opiniões em dados de texto. Por exemplo, "Ausentar-se cedo na manhã é boa para a saúde. " é um sentimento positivo. - **Processamento de Linguagem**: A ordem das palavras numa frase é importante, pois trocá-la faz com que altere o sentido. Por exemplo, "Saúde tirar cedo na manhã" não é um sentimento positivo. - **Captação de Imagens**: O RNN pode ser usado para gerar legenda para imagens baseado nos dados que recebe e processa dentro da rede neural. - **Problemas de Séries Temporais**: O RNN pode ser usado para prever os preços de ações, comercializar produtos, etc. Como os preços de ações podem ser afetados pelos seus valores anteriores, fornecer informações anteriores ao RNN permite que ele a corte para conta em pré-visões. ## Funções de Ativação ### Softmax A função de ativação Softmax gera saída entre 0 e 1. Ela converte uma vector de números em probabilidades normalizando esses números de forma que a soma total respondesse a 1. A saída da camada de saída de um RNN é frequentemente usada da função de ativação Softmax. Ela determina a distribuição de probabilidade sobre cada categoria com base nos valores de saída. Por exemplo, se a saída for 0. 9 e 0. 4, a softmax converteria isso em uma distribuição de probabilidade mais próxima de (0. 9, 0. 1) ou outra distribuição normal que soma a 1. ### ReLU (Unidade Linear Retificada) O ReLU é a função de ativação mais comumente utilizada em RNN. Ela gera saída a partir do input se o input for positivo, e zeros caso contrário. ReLU é a sigla para Rectified Linear Unit. Ela transforma os números que saem das camadas ocultas na camada de saída. A saída sempre será entre 0 e 1, de forma que é adequada para os problemas que o RNN resolve. Além disso, o ReLU também pode ser usado nas camadas ocultas de uma Redemoinadora Neural Recurrente. ## Hiperparâmetros Os hiperparâmetros são parâmetros que são definidos antes do processo de aprendizado começar, e eles determinam a estrutura da rede. Alguns hiperparâmetros incluem: - Número de unidades ocultas - Número de camadas ocultas - Taxa de Aprendizado - Epochs (número de vezes o conjunto de dados inteiro é treinado) - Dropout (para prevenir sobre-aprendizado) - Normalização em Lote (para melhorar o desempenho e a estabilidade) ## Convergência e Divergência No contexto do treinamento de uma rede neural, uma rede é dita ter "convergido" quando ela tem atingido um ponto onde dá boas respostas para todos os dados que recebe, isto é, quando os parâmetros adjusted e o erro foram minimizados. Em contraste, uma rede é dita ter "dividido" quando os dados que recebe são demasiado caóticos para que se possa a ele ser treinado, isto é, os dados são muito ruidos, e a rede falha a predição corretamente. ## Dropout e Normalização em Lote - **Dropout**: É uma técnica usada para prevenir o sobre-aprendizado de dados aoRandomicamente desativando unidades escondidas e visíveis de uma rede. Esta técnica duplica o número de iterações necessárias para convergir mas reduz o sobre-aprendizado. - **Normalização em Lote**: É uma técnica para melhorar o desempenho e a estabilidade de uma rede neural ao normalizando os inputs e as ativações de cada camada. A normalização em lote é usada para normalizar a média da saída e ativação a 0, e a desvia padrão a 1. # Normalização em Lote e Conceptores do Aprendizado Profundo ## Descento de Gradiente em Lote vs Descento de Gradiente Stoquástico ### Descento de Gradiente em Lote - **Descrição da Método de Descento de Gradiente em Lote**: Este método calcula o gradiente usando todo o conjunto de dados. Ele leva mais tempo para convergir porque o volume de dados é enorme e as atualizações das pesos ocorrem lentamente. Quando se trata de grandes volumes de dados, considere "batch" como muitas iterações sobre o dado em porções minoriais. É usado para ajustar todo o dado e procurar convergência lá. ### Descento de Gradiente Stoquástico - **Descrição do Descento de Gradiente Stoquástico**: Este método calcula o gradiente usando um exemplo individual. É capaz de converger muito mais rapidamente que o método de descento de gradiente em lote porque actualiza climas persistentemente. ### Acoplamentos de Ensaios e Sub-ensaios **Ensaios **aceitam por vezes dados do conjunto de dados de origem de treino, incluindo ruídos e detalhes, que prejudicam a execução do modelo com informação nova. É mais provável que aconteça com modelos não-lineares com maior flexibilidade para aprender uma função alvo. Por exemplo, se analisássemos automóveis, caminhões e motocicletas, mas o modelo apenas reconhece caminhões de formato box-like e não são capazes de reconhecer caminhões de ala plana, a menos que seja um caminhão de ala plana específico ou apenas caminhões Ford degettaplicar a máquina contudo, tantas pessoas os ajudarão. **Sub-ensaios** ocorrem quando o modelo não é bem treinado com os dados de treino, e não consegue generalizar para informação nova. Ágeismente acontece quando há menor quantidade de dados para treino, resultando em um desempenho e acurácia pobre. Se usássemos um modelo subensaiado e o distribuíssemos comercialmente, teríamos muitas pessoas descontentes porque ele não vai dar respostas bons. ### Combater Acoplamentos de Ensaios e Sub-ensaios - **Resampling do Dados**: Para estimar a precisão do modelo, utilize cross-validação k-fold. Tenha um conjunto de dados de validação para avaliar o modelo. Faça uma resamplagem e escolha aleatoriamente dados. Execute várias vezes para ver como ela funciona, dependendo de nossos dados aleatórios e como a eleğimos o dado para gerar o nosso modelo. A seguir, valide o conjunto de dados teremos nosso conjunto de treino e guardemos algum dado de lado para testar e validar. - **Inicialização das Pesos**: Inicialize todas as pesos para zero. Todas as pesas são estabelecidas para zero, fazendo o modelo parecer um modelo linear. No entanto, se inicializarmos tudo para zero, será desperdiçado para dados não-lineares. Fala-se em uma frase vital: será desperdiçado se inicializar tudo para zero. Em vez disso, reveja outras ferramentas de aprendizado de máquina e initializem todas as pesas de forma aleatória. As pesas são atribuídas de forma aleatória ao inicializá-las muito perto de zero, o que faz melhor acurácia ao modelo desde que cada neurón realiza computações diferentes. Aí as pesas são atribuídas de forma aleatória e temos entrada, camada escondida e camada de saida. `w = np. random. random((layer_size, layer_size - 1))` é, mais comumente, a função mais usada para gerar pesas aleatórias. ### Rede neural convolucional (CNN) - **Capa convolucional**: Realiza uma operação de convolução. Veja [Como funciona uma camada convolucional na CNN](#Como-funciona-uma-camada-convolucional-na-CNN) para obter detalhes. A camada convolucional ocorre realiza a operação criando um grande número de janelas de imagem pequenas para se mover por dados. - **Camada ReLu**: Introduz um componente não-linhéu na rede e transforma todos os pixels negativos para zero, criando um mapa de características retrificados. O mapa é enviado para uma camada de características de mapeamento. - **Camada de Tolerância**: Reduz as dimensões espaciais do mapa de características. É capaz de acontecer uma operação de redução de dimensões para reduzir as dimensões e criar um mapa característico tololado, slideando uma matriz de filtro por cima da matriz de entrada. - **Camada completamente conectada**: Reconhece e classifica os objetos na imagem. O seu propagação de coeficientes para adiante no modelo de instrução. ### Rede neural de Memória de Longo Prazo (LSTM) - **Redes LSTM Neurais**: Uma variedade especial de rede neural de sequências capaz de aprender dependências em cronología ergum em número amostrável de unidades subjacentes. Ver foramos brevemente sobre as redes neurais de sequências, discutindo como a camada oculta se alimenta de si própria. As redes neurais de compartimentos de memória LSTM, a camada oculta tem um comportamento de feedback mais complexo. ### Gradientes Disparados e Gradientes Ruim - **Problemas com Gradientes**: Acontece todos os tipos de redes neurais que são treinadas para uma rede neural de sequências. A inclinação pode tornar-se muito pequena ou muito grande, tornando a treinagem difícil. - **Gradiente Encerrado**: A declividade diminui gradualmente um valor muito pequeno, ocasionalmente negativo, e faz a treinagem difícil. - **Gradiente Explodido**: A declividade cresce exponencialmente, e isso torna a treinagem difícil. ### Epoch vs Iteração vs Aprendizado Profundo - **Epoch**: Representa um só iteración sobre todo o conjunto de dados. - **Batch**: Não pode, por favor, passar todo conjunto de dados para a rede neural digitais, então dividimos o conjunto de dados em um número de janelas de dados. - **Iteração**: Se tivermos 10. 000 imagens como dados e um tamanho de lote de 200, a epoch deve executar-se 10. 000 vezes, o que fará um total de 50 iterações. Cada epoch tem 50 iterações, e cada iteração tem um lote de 200 imagens. ### TensorFlow - **Biblioteca do TensorFlow**: Fornece ambas APIs em C++ e Python, facilitando a utilizar. Tem uma hora de compilação mais rápida que outras bibliotecas de aprendizado profundo como Caffe e Torch. O TensorFlow suporta tanto máquinas milespeciais para computadores quanto processadores GPU. - **Tensores**: Objetos matemáticos representados por arranjos de dimensões de maior escala. Esses arranjos de dados com dimensões e pontas diferentes que são chamados de tensores são colocados como entrada na rede neural. Por exemplo, um tensor de dimensões 5, 4 é um tensor bidimensional que será alimentado para a rede neural. - **Elementos de programação no TensorFlow**: - **Constantes**: Valores cujo valor não muda. Para definir uma constante, usamos `tf. constant` comando. Exemplo: `a = tf. constant(2. 0, tf. float32)`. `b = tf. constant(3. 0)`. Se você imprimir `a*b`, obterá 6. # Rede neural convolucional (CNN) - **Capa convolucional**: Realiza uma operação de convolução na imagem de entrada. Cada aspecto da CNN é passado pelas camadas de convolução múltiplas. A operação mais comumente é realizada pela camada de convolução criando um grande número de janelas de imagem menores para se mover pela imagem de entrada. - **Camada ReLu**: Introduz um componente não-linhéu na rede e transforma todos os pixels negativos para zero, criando um mapa de características retrificados. Esse mapa é passado para uma camada de características de mapeamento. - **Camada de Tolerância**: Reduz as dimensões espaciais do mapa de características. É capaz de acontecer uma operação de redução de dimensões para reduzir as dimensões e criar um mapa característico tololado. - **Camada completamente conectada**: Reconhece e classifica os objetos dentro da imagem. Este camada, na verdade, é realizada a propagação de coeficientes para adiante no modelo de treino. **Note**: O conteúdo do corpo do texto foi organizado e estruturado para melhor lêvel de leitura. A reorganização de conteúdo resultou em pequenas alterações na sequência de ideias, mas não afeteu a mensagem e o significado do texto original. Algumas mudanças foram feitas a certos termos técnicos individuais, scripts e funções citados para uma melhor leitura e precisão. O texto original manteve integração e terminologia técnica. ``` # AI Para Tomadas de Decisão: Estratégias e Aplicações (Shorts) Um gerente sénior com mais de 16 anos de experiência na indústria automotiva escolheu o programa AI para Tomadas de Decisão oferecido pela Simplilearn para iniciar seu próprio iniciativa de foco na AI. O seu objetivo é tornar esse startup de AI líder global do fornecimento de produtos na Índia e Mundialmente. O curso em AI para Tomadas de Decisão da Simplilearn oferece uma compreensão básica de as mais recentes Tecnologias como Big Data, AI e aprendizagem de máquina, e como podem ser utilizadas para apoiar uma estratégia da organização, oferecendo uma vantagem Competitiva em Tecnologias de Negócios Emergentes. **Inicie agora sua carreira em AI nesse curso. Inscreva-se agora! O link do curso está na descrição e na comentário do pino. ** --- # Como o AI Irá Mudar o Futuro | A Era do AI (Elon Musk, Bill Gates, Sundar Pichai, Jack Ma) |Simplilearn Este texto apresenta as perspectivas de líderes empresariais sobre o impacto futuro da Inteligência Artificial (IA). **[Música]** - Elon Musk, Bill Gates, Sundar Pichai e Jack Ma compartilham suas opiniões sobre o AI: * Musk: A IA irá se focusar em tarefas que queremos ou precisamos ter feitas em lugar deles. * Gates: A IA é otimista e irá nos abrir uma nova capítulo da sociedade, ajudando as pessoas a se entenderem melhor. * Pichai: A IA é a mais importante coisa que a humanidade já se dedicou. * Ma: A IA irá entregar melhorias na qualidade de nossas vidas. **[Música]** - Discussão de Sistemas Autônomos e AI: * Os sistemas autônomos, como carros autônomos, irão oferecer muitas melhorias, incluindo aumentar a segurança. * Muitas vantagens da IA estão acontecendo abaixo da superfície, ambito como resultados de busca, recomendações de produtos e gerenciamento de inventário. * A IA também está ajudando em áreas médicas, como descoberta de fármacos e diagnóstico de doenças. **[Música]** ``` # AI ou Data Science? | Carreira em Inteligência Artificial e Data Science com Simplilearn **Introdução** Bem-vindo ao webinário da Simplilearn! Hoje, vamos esclarecer à medida que traçamos o seu caminho de carreira em Inteligência Artificial ou Data Science com Ronald van Loon, o CEO da Intelligent World e membro do Conselho Consultivo да Simplilearn. **Agenda** - Explanação da estrutura e do propósito do webinar **Resultados da Votação** - Apresentação dos resultados das votações (ocupação atual e humor) **Introdução do Falantor** - Introdução breve do falantor **Discussão Principal** - Explicação de por que há frequentemente confusão em relação aos caminhos de carreira em Inteligência Artificial e Data Science - Análise da importância e do crescimento de Inteligência Artificial e Data Science no mercado de emprego - Discussão sobre o desenfileiramento entre Inteligência Artificial e Data Science, e como abordar um caminho educacional e de carreira **Perguntas e Respostas** - Resposta a questões da audiência **Conclusão** - Recapitulação dos pontos principais discutidos - Meus vícios encerrados --- As URLs originais foram preservadas e manteve-se o conteúdo original, mas formatei-o de acordo com as diretrizes doMarkdown. Também reestruturei o texto para torná-lo mais claro e fácil de ler. Se tivere mais questionamentos ou necessitar de ajuda em outros textos, não hesite em pedir! # Entendendo a Inteligência Artificial (AI) e a Ciência de Dados: Transformando Indústrias Este documento tem como objetivo esclarecer as diferenças entre a Inteligência Artificial (AI) e a Ciência de Dados, e destacaçê-las aplicações em várias indústrias. ## AI e Ciência de Dados: Uma Visão Geral A **AI (Inteligência Artificial)** é sobre entendimento, interpretação de dados, e usar modelos predictivos para prever eventos futuros. Ela permite aos máquinas fazer conexões entre diferentes componentes de dados e traz automação a vários processos empresariais para uma melhor eficiência em custos. A **Ciência de Dados**, ao contrário, envolve extrair insights significativos dos dados para ajudar as empresas tomarem decisões informadas. ## Vantagens da AI e da Ciência de Dados ### Serviços Financeiros Para serviços financeiros, a AI e a Ciência de Dados podem ajudar a analisar dados para otimizar produtos financeiros e serviços, melhorar a experiência do cliente, bem como análise de riscos. Exemplo: A AI pode contribuir para diagnósticos rápidos e tomada de decisões em salas de controles intensivos ou departamentos de emergência, descartando possíveis problemas e ajudando a rápidamente determinar a causa raiz de uma questão médica relacionada com um paciente. ### Saúde Na Saúde, a Inteligência Artificial pode automatizar a gestão dos dados, tornando menos desafiador transformar em insights para diagnosticar rápidos e tomar decisões, especialmente em salas de controle intensivos ou departamentos de emergência. Exemplo: Os data scientists em saúde podem implementar soluções de RPA (Processamento Robótico de Assuntos Permitidos) que melhoram a construção e montagem de fábricas ao redor do globo, bem como automatizam sistemas legados com RPA. ### Indústria de Máquinas Na indústria de máquinas, a Inteligência Artificial pode automatizar tarefas longas e error-prone, como a inspeção de vídeos de uma instalação de tubos ou o controle de fios elétricos ao longo das linhas de energia. ### Finanças A Inteligência Artificial pode potencialmente salvar bancos bilhões até 2025, em particular nas áreas como detecção de fraudes, análise financeira, melhoria das estratégias de investimentos, cobrança de dívidas e cumprimento de normas. ### E-commerce Tecnologias de Realidade Augmentada (AR), impulsionadas pela AI, podem criar experiências de compras imersivas, personalizadas para os clientes. ### Educação A Inteligência Artificial pode revitalizar a educação superior trazendo soluções competitivas e personalizadas de aprendizagem. ## Funções na AM e Ciência de Dados 1. **Ciência de Dados**: O Ciêncio de Dados é responsável por extrair significado dos dados, interpretá-los e ajudar as empresas a desenvolverem produtos, serviços ou sobrepujar desafios operacionais. 2. **Desenvolvedor de BI**: Um desenvolvedor de BI (Inteligência Empresarial) usa ferramentas de software para ajudar a converter dados em insights que possam ajudar na tomada de decisões. Eles também ajudam a projetar depósitos de dados e desenvolverem software de BI. 3. **Analista de Negócios**: Um Analista de Negócios usa análise de dados para avaliar processos, descobrir requisitos e comunicar soluções enfocadas em dados para a negócios. Estas funções desempenham um papel crucial na ajudar as empresas a tomar decisões informadas. Cada função necessita de um conjunto único de habilidades e responsabilidades, dependendo da indústria e empresa em que trabalham. ## Pesquisa Adicional - A Microsoft e IDC afirmaram que 92% das instituições de ensino superior estão tentando usar a AI para criar soluções de aprendizagem competitivas e personalizadas. - A AI pode contribuir para mais inclusividade e criar cenários de aprendizado experimental mais profundos na educação. - A AI pode também ajudar a melhorar planos terapêuticos ao analisar dados dos pacientes, personalizando tratamentos e criando abordagens individualizadas para medicação com base na história médica de um paciente, seu estilo de vida e condições ambientais. Conclusão: A Inteligência Artificial e a Ciência de Dados são essenciais para transformar várias indústrias, direcionando a inovação, e otimizando processos para uma tomada de decisões melhor informada. Estão atualmente se es態ndo em quase qualquer indústria, oferecendo uma ampla variedade de oportunidades profissionais. Para perguntas específicas sobre funções e indústrias, sinta-se à vontade para perguntar! 😉 # Functions e Carreiras na Ciência de Dados e Inteligência Artificial ## Líder - Um líder deve ter habilidades excelentes de comunicação e a capacidade de traduzir termos técnicos em histórias compréhensíveis. - Eles são as forças propulsivas do mudança, introduzindo e gerenciando trocas em produtos, software, hardware e processos para acrescentar valor à sua empresa. - Para ser eficaz, precisam entender o negócio e traduzi-lo em soluções. - Por exemplo, eles analisam dados históricos e atuais para identificar o que pode ser introduzido na empresa para fazer as soluções existentes funcionar mais eficientemente. ## Arquiteto de Dados - Também conhecidos como "mestres da marioneta de dados", arquitetos de dados avaliam as fontes de dados de negócios e desenvolvem um plano para integrar, centralizar e manter todas as fontes de dados. - Com o número de fontes de dados tornando-se um desafio para as organizações, este papel é cada vez mais importante para fornecer uma base sólida para o crescimento e pela possibilidade de fazer sentido de vez em quando para uma paisagem de dados complexa. ## Arquiteto de Inteligência Artificial - Arquitetos de inteligência artificial trabalham com as plataformas de tecnologia da inteligência artificial para desenvolver e manter uma arquitetura organizacional que possa se adaptar ao longo do tempo, conforme as empresas precisarem mudar. - Eles também elaboratem mapas de gerenciamento de dados, o que se torna cada vez mais importante para as organizações terem uma base dura para cobrir o longo prazo. ## Engenheiro de Robótica - Engenheiros de robótica trabalham em bots físicos como membros de máquina na fabricação industrial ou drones para entrega de produtos em comercio eletrônico, além de soluções de boxes virtuais e AI conversacional. - Há vários aplicativos para drones, como soluções conversacionais de AI, frequentemente utilizadas para o atendimento ao cliente, e ha há muito espaço para o desenvolvimento neste campo de crescimento. ## Engenheiro de Visão de Computador, Engenheiro de Aprendizagem de Máquina, Engenheiro Pleno, Engenheiro de Nuvem, e Outros - Estes papéis, entre outros, podem ser orientados para definir você caminho de carreira. - Como existem vários caminhos, é importante educar-se além do seu emprego e ver a profissão como uma passion. - Os fornecedores de tecnologia agora oferecem dispositivos para a construção de robôs para quantos entre $50-$60, fazendo dela uma forma acessível de iniciar e explorar esse campo. ## Enquete - Realizamos uma enquete aos participantes sobre sua participação na ciência de dados e intelligence artificial: - Análise, grande dados, análise de negócios, Inteligência Artificial e Aprendizagem de Máquina - Outras habilidades em ciência de dados e intelligence artificial ## Caminhos de Aprendizagem e Caminhos Educativos - Os caminhos de aprendizagem e educação ajudam as pessoas a estabelecer uma base para alcançar suas carreiras desejadas em ciência de dados e inteligência artificial. - Há um overlap entre a inteligência artificial e a ciência de dados, de sorte que uma base pode levar a direções diferentes. - Ambos os campos requerem conhecimento em matemática (estatística, probabilidade, cálculo), habilidades em programação, compreensão de códigos, desenvolvimento de algoritmos e habilidades em comunicação. - Para explorar áreas centradas em ciência de dados, deve-se concentrar em matemática, estatística, programação, cursos de aprendizagem de máquina, e expandir-se em áreas relacionadas à inteligência artificial, como código, modelagem de dados, mineração de dados e várias linguagens de programações e algoritmos. - Para analistas de dados, as habilidades em mineração de dados, corrida de dados, modelagem de dados, gerenciamento de banco de dados com linguagens de programações como Python, R, e outras, como SAS ou C++, são indispensáveis. ## Criação de um Mapa de Carreira - Para criar um mapa de carreira bem-sucedido, examina as habilidades exigidas para cada caminho e escolhe o que melhor se adeque aos seus interesses e habilidades. - Se não estiver certo de seu caminho de carreira, examinar as habilidades que você é interessado em desenvolver pode ajudar você a escolher o caminho mais indicado. # Viagem na Ciência de Dados e Inteligência Artificial: Um Guia para as Carreiras Esta seção proporciona uma visão geral breve sobre as várias carreiras disponíveis no campo da ciência de dados e da inteligência artificial (IA). Antes de entrar em detalhes, é essencial comprendert que cada um deve descobrir seus gostos e interesses para encontrar o melhor caminho. ## Achar a Direção 1. Até começar a sua viagem na ciência de dados e no campo da IA, trate de voltar-se para trás para identificar uma direção geral. Embora possa ser difícil prever onde o campo terá em 5 a 10 anos, saber seus objectivos pode ajudá-lo a ficar no caminho certo. 2. Sente-se livre para seguir a corrente de oportunidades como aparecem. O desenvolvimento rápido neste domínio requer adaptabilidade e disposition para mudanças. ## Identificar Preferências e Habilidades 1. Investigue as posições de emprego que combinem os seus interesses, habilidades e capacidades. Sites como Glassdoor ou Indeed são recursos valiosos para este propósito. 2. Revise as vagas para entender as qualificações, habilidades e experiências procuradas pelas empresas no seu domínio preferido. 3. Considere o papel da aprendizagem contínua no desenvolvimento das habilidades indispensáveis no mercado. ## Combinar Habilidades e Conhecimento da Indústria 1. Completa-se a acquisição de conhecimentos específicos da indústria. A combinação da sua especialidade com aplicação de insighs sobre a indústria pode levar a melhores oportunidades de emprego. 2. Por exemplo, a especialidade em conhecimentos específicos da indústria sem fundamento em matemática ou ciência da computação pode ser uma vantagem para determinados papéis. 3. Habilidades de colaboração, conhecimentos empresariais e habilidades de contar histórias (storytelling) também são críticos para o sucesso neste campo. ## Marcar no Desenvolvimento de Tecnologias Emergentes 1. A tecnologia evolui rapidamente, e certas funções podem se automatizar no futuro próximo. Faça-se informado sobre as últimas evoluções tecnológicas para manter-se competitivo. 2. Concentre-se em desenvolver habilidades menos probáveis de serem automatizadas, como a comunicação e o storytelling. ## Comunicação e Gestão de Expectativas 1. A comunicação eficaz é essencial neste campo, pois não está claro para todos os resultados do trabalho específico na ciência de dados. 2. Faça-se cumprir as expectativas mostrando as desafios, possíveis falhas e o tempo necessário para alcançar os resultados desejados. ## Mídia Social e Investigação de Empresas 1. Sigam as empresas que você está interessado(a) em mídias sociais para ficar informado(a) sobre as oportunidades de emprego, novas áreas de desenvolvimento e tendências emergentes. 2. Analise os laboratórios e as investimentos das empresas para ter insights no que elas planeiam e em potenciais oportunidades de carreira. ## Exemplos de Carreiras Educacionais ### Ciência de Dados 1. Para se tornar um cientista de dados, foco-se nas seguintes especialidades: estatística, plataformas de grande escala de dados como Hadoop e melhore as suas habilidades nas áreas de ciência de dados, análise, ciência da computação e engenharia elétrica. 2. Considere a língua de programação como Pyhton e R, refina as suas habilidades em SQL, técnicas de aprendizagem de máquina (ML) e consulte certificados. 3. Pursue education de grau, como bacharelado ou mestrado em estatística, ciência da computação ou matemática. ### IA (Engenheiro de Máquinas de Aprendizagem) 1. Tome as credenciais iniciais como estatística, probabilidade, modelagem de dados, visualização de dados e análise de dados. 2. Limite o seu foco para habilidades em Máquina de Aprendizagem, Máquina de Aprendizagem Profunda e Máquina de Aprendizagem por Recompensas. 3. Consulte cursos de especialização em programação, como Python, R, C++, e encontre as complementares em conceitos matemáticos como cálculo, álgebra linear e modelagem de dados. 4. Consiga experiência em implementação de modelos de aprendizagem de máquinas, como Regressão Logística ou Agregação em grupos (K-Means). 5. Faça consultas sobre certificados e considere poder seguir um mestrado, doutorado ou programa de pós-graduação para obter conhecimentos aprofundados em áreas como TensorFlow, Mecânica da Linguagem Natural (NLP) ou visão por computador. # Desenvolvimento Profissional em Ciência de Dados e Inteligência Artificial Como profissional em algum determinado setor, é fundamental continuar educando-se contínuamente. Há uma alta probabilidade de que o seu setor será automatizado nos próximos anos, portanto é necessário se desenvolver e a paisagem negociosa e tecnológica está mudando rapidamente. Talvez aparentemos este momento como o de um rápido avanço e evolução em nosso setor devido a esta pandemia. As empresas de tecnologia estão a crescer ainda mais rapidamente e investindo mais em novos avanços e novas tecnologias. É astuto se quiser sempre ir para adquirir novas habilidades e habilidades que você esteja interessado, além de aprimorar suas habilidades existentes, mas também adquirindo novas habilidades para obter melhor emprego, se tornar empregado ou desenvolver o emprego que se encontra atualmente. Se olharmos para a demanda de IA, demanda de ciência de dados, está subindo. Não se preocupe. Para ambos os campos, somos imunes a uma grande parte das incertezas que vimos nos últimos anos, assim a demanda estará presente. Comece com sua programação básica, comece com estatística, comece com matemática e experimente alguns cursos de aprendizado automático e veja em que direção ir. Qualquer caminho de educação que você iniciar, uma vez que adquirir uma base de conhecimento básico, está em uma boa posição para orientar a sua carreira na forma que você considera melhor e que se alinha melhor com os seus objetivos únicos. Obrigado. A hora para a apresentação está terminando, e eu gostaria de perguntar se vocês têm algum tempo, se você tiver uma dúvida. Tenho muita gente querendo perguntar. Mas primeiro eu gostaria de lançar novamente esta última pesquisa, dando a você uma oportunidade de repousar sua voz e esta última pesquisa é basicamente a mesma que a anteriores mas se foca no que há interesse nesta pesquisa e nas ferramentas que vocês desejam adicionar ao seu toolkit para desenvolver uma carreira em ciência de dados, inteligência artificial e aprendizagem de máquina. Dar-vos-o outro minuto. Parece que há uma tendência: IA e aprendizagem de máquina é o preferido pelo bem-estar na sua maioria. Em suma, ao focar nas empresas que podem prosperar e beneficiar-se da pandemia para serem mais digitais ou estarem totalmente digitais pode ser uma boa movimentação para a sua carreira. Uma dúvida que me vem a respeito é sobre se um nível do ensino secundário é suficiente para iniciar no setor da ciência de dados. Gostaria que fosse dependente um pouco da escola que comparamos, mas se é um talento, é o suficiente para iniciar e aprender a paralelo. Porém, se for desenvolvendo suas habilidades e planejar desenvolvê-las ainda mais, o que você tem que focar é em um bacharelato se quiser dar um passo adiante no seu desenvolvimento e se quiser desenvolver as suas habilidades ainda mais. Se vos olarmos para as capacidades oferecidas pelas novas tecnologias e as novas tipologias de ferramentas, está tornando mais fácil e fácil de modelar a si mesmo. No entanto, o skill set é importante, mas não é importante sabe-lo todo. Sempre acredito que o ponto de partida é em começar a experimentar e descobrir. Se você tiver as habilidades básicas, digamos a nível do # Curso de Inteligência Artificial (2022) | Projetos de Inteligência Artificial para Iniciantes | Simplilearn Este video apresenta um curso detalhado sobre Inteligência Artificial (IA) para iniciantes. O curso cobre habilidades essenciais para ajudá-lo a entender a IA e sua implementação melhor. Aqui está uma sumarização dos tópicos abordados neste curso: 1. Fundamentos da IA (curta animação) 2. As 10 tecnologias e empresas IA mais importantes em 2022 3. Detalhes da Aprendizagem de Máquina - Regressão Linear - Regressão Logística - Árvore de Decisão - Clustering K-means - K-Vizinhos Máis Próximos - Análise Principal de Componentes (PCA) - Regularização - Aprendizagem Reforçada - Aprendizagem Q 4. Redes Neurais Artificiais e Algoritmos de Aprendizagem Profunda - Rede Neural Convolucional (CNN) - Rede Neural Recorrente (RNN) - Classificação de Imagem em Keras - Modelo Secuencial --- A Inteligência Artificial (IA) é um campo emergente com uma ampla gama de aplicações para resolver problemas de negócios. As sistemas IA são projetados para imitar a inteligência humana para executar tarefas que realizamos nós mesmos. Esta inteligência depende de complexos algoritmos e funções matemáticas. A IA está todas sobre, leve de telefones inteligentes e carros, até feeds sociais, jogos, bancários e vigilância. Embora ela esteja muito presente na vida cotidiana, a IA não sempre seja tão óbvia como naquelas experiências mencionadas previamente. Por exemplo, a IA é responsável pelo sistema de recomendação em seu website de loja favorita ou o reconhecimento de imagem na aplicação de câmera em seu smartphone. --- No seu núcleo, a IA permite aos máquinas se adaptarem, raciocinar e resolver problemas. Aqui estão três funcionalidades essenciais da IA: 1. Aprendizado Geralizado: A capacidade de um sistema IA para executar tarefas efetivamente em novas situações. 2. Raciocínio: A capacidade de um sistema IA para resolver problemas utilizando a entrada fornecida e encontrando soluções. 3. Resolução de Problemas: A capacidade de um sistema IA para responder adequadamente a uma nova situação de acordo com as circunstâncias. --- A Inteligência Artificial pode ser amplamente classificada em duas categorias: 1. AI Fraca (IA Narrow): Concentra-se apenas em uma tarefa, como AlphaGo dominando o jogo de Xadrez, porém falhando em jogar o xadrez. Alexa, outro exemplo de IA fraca, pode executar várias tarefas, mas carece da capacidade de responder às perguntas além do seu sistema pré-definido. 2. AI Forte: Autoconsciente, semelhante aos robôs ficcionais que vimos nos filmes como Ultron dos Avengers. A IA forte pode aprender, raciocinar, compreender emoções, existir independentemente. --- A IA difere da Aprendizagem de Máquina (ML) e da Aprendizagem Profunda (DL). A ML é uma técnica utilizada para atingir a IA, ao passo que a DL é um subconjunto da ML. A DL usa algoritmos complexos inspirados no cérebro humano para aprender e perceber dados e padrões. --- C certa pergunta: Qual desses projetos IA não existe ainda? - A - Um robô com cidadania - B - Um robô com sistema esquelético muscular - C - A IA que pode ler as emoções do seu proprietário - D - IA que desenvolve emoções ao longo do tempo Deixe sua resposta no segmento de comentários abaixo! --- Este video discute os fundamentos da Inteligência Artificial, suas categorias e as diferenças entre a IA, a ML e a DL. Não se esqueça de deixar sua resposta à prova no segmento de comentários abaixo. Além disso, curtir, compartilhar e inscrever-se no nosso canal se gostou deste video. Continue a aprender e fique atento a mais! --- Para obter fontes de aprendizado mais detalhadas, visite o site da Simplilearn: [https: //www. youtube. com/watch? v=qcBdLyK9G6U](https://www.youtube.com/watch?v=qcBdLyK9G6U) --- Content Este conteúdo foi traduzido do inglês para o português e convertido ao formato Markdown. Assim, há algumas diferenças subtis em comparação ao conteúdo original. # Inteligência Artificial: Entendendo os Tipos e Fases A inteligência artificial (IA) nos cientistas e pesquisadores ainda não conseguiu alcançar a inteligência forte. No entanto, para obter êxito, seria necessário encontrar uma maneira de fazer as máquinas conscientes, programando todas as habilidades cognitivas em conjunto. ## Inteligência forte vs. Inteligência Superior A computadora K, construída pela Fujitsu, é uma das máquinas mais rápidas do mundo. É uma das tentativas notáveis de alcançar a inteligência forte. Levou 40 minutos para simular um segundo de atividade neural. No entanto, é difícil determinar se a inteligência forte será alcançada nos próximos tempos. Por outro lado, o HE2 é um supercomputador criado pela Universidade Nacional de defesa da China. Atualmente, detém o recorde de CPS em 33, 86 petaflops. Embora pareça excitante, a mente humana é estimada para ser capaz de fazer 10^16 cálculos por segundo, o que é uma outra exemplificação de CPS. ## Tipos de IA Nesta categoria, temos: 1. **Máquina Reativa (IA Básica)** - o tipo de IA mais comum que não se lembra ou faz decisões baseadas em experiências passadas. Não funciona com dados antigos e apenas funciona com base em dados atuais e é dada determinadas tarefas. A IBM Deep Blue, que derrotou o Grande Mestre de xadrez Gary Kasparov, é uma máquina reativa. 2. **MemóriaLimite** - a inteligência artificial que aprende com dados passados para tomar decisões. A memória destes sistemas é breve e podem usar estes dados durante um período determinado de tempo. Eles não podem adicioná-los a uma biblioteca de experiências. Este tipo de tecnologia é usado para veículos autônomos. 3. **Teoria da Min** - uma classe muito avançada de tecnologia que exige um entendimento completo que as pessoas e coisas em um ambiente podem alterar sensações e comportamentos. Deve ser capaz de compreender as emoções, sentimentos e pensamentos humanos. Ainda não foi completo este tipo de IA, mas os exemplos notáveis como Kismet (robot feito no final dos anos 90 pela investigadora do Instituto Tecnológico da Massachusetts) e Sofia (de Hanson Robotics) são notáveis tentativas. 4. **Auto consciência** - Este tipo de IA existe apenas hipoteticamente. Tais sistemas percebem que as características interna, estado e condições internas e percebem emoções humanas. Estas máquinas são mais inteligentes que a mente humana, capazes de comprendermos as emoções, necessidades e crenças em quem realizam interação, também terem emoção, necessidades e crenças próprias. Porém, estamos muito afastados de criar máquinas autoconscientes. ## Fases da IA 1. **Inteligência Narrow (Inteligência Fraque)** - frequentemente chamada de inteligência fraca, é limitada a realizar tarefas pequenas ou estreitas. É sujeita a habilidades limitadas e já ocupa grande parte de nossa vida diária (exemplos: Amazon's Alexa, Google Translate, IBM's Watson). 2. **Inteligência Geral (Inteligência Forte)** - capaz de aprender e compreender qualquer atividade intelectual que uma pessoa é capaz de. Permite que uma máquina use conhecimento e habilidades em várias situações. No entanto, um grupo de investigadores de inteligência artificial ainda não desenvolveu a inteligência forte. 3. **Super Inteligência** - realiza tarefas em melhor qualquer pessoa humana. É o estado atual do mundo nas áreas da inteligência artificial. O conceito de inteligência artificial artificial superior envolve a IA evolui para ser tão afínas a sentimentos e experiências humanas que não apenas entende eles; também evoca emoções, necessidades, crenças e desejos próprios seus. Sua existência é hipotética, mas alguns características claramente distintivos da super inteligência são pensar, resolver puzzles, fazer decisões e julgamentos por conta própria e a esperança de ver este desenvolvimento no lançamento amigo próximo. # Inteligência Artificial: Aplicações e Impacto em Diversas Indústrias Este documento fornece uma visão geral da Inteligência Artificial (IA), das suas aplicações e do seu impacto em indústrias diversas. ## Introdução A Inteligência Artificial (IA) é uma ramificação da ciência da computação que se preocupa em construir máquinas inteligentes capazes de imitar o comportamento humano. Uma máquina inteligente, no contexto deste documento, é uma máquina que pode lhes agir e pensar como um ser humano e tomarch decisions. ## As Aplicações Top 10 da Inteligência Artificial 1. **Redes Sociais**: A IA pode criar publicações em redes sociais, automatizar o monitoramento e elaborar anúncios alvo. Plataformas como Facebook, Twitter e Instagram usam a IA para melhorar o experiência do usuário, filtrar spam e aumentar a efetividade na publicidade alvo. 2. **Automóveis**: A IA é utilizada no automóvel autónomo, no detecção de sinais de sonolência dos condutores e na melhoria de recursos de segurança. Por exemplo, a Tesla utiliza a IA para evitar que os condutores doze durante o uso de um veículo. 3. **Agricultura**: A IA é utilizada na agricultura precisa para melhorar a qualidade e precisão da collha, detectar pragas, doenças de plantas e subnutrição. 4. **Jogos**: A IA é utilizada para desenvolver non-player characters (NPCs) inteligentes a parecerem humanos para comunicar-se com os jogadores, melhorar a design dos jogos e prever comportamentos humanos. 5. **Saúde**: A IA pode auxiliar os prestadores de serviços de saúde no cuidado de paciente e nos procedimentos operacionais, Sherem lhes ajudar a construir em soluções existentes e resolver problemas rapidamente. 6. **Bancário**: Análise de dados avançada pela IA vai transformar o banco ao reduzir a fraude e melhorar os teares de compliancy. A IA pode completar os teares anti-laundering de dinheiro em segundos que normalmente demorariam horas ou dias. 7. **Robótica**: A IA é utilizada para tornar máquinas mais inteligentes e capazes de agir em diversas situações. Os robôs podem sentir o seu ambiente ou aprender o ambiente com a utilização de sensores. 8. **E-commerce**: A IA faz possível as soluções de recomendação, permitindo uma interação mais eficiente com os clientes. A história da navegação, preferências e interesses de cada utilizador são considerados quando fazem estas recomendações. 9. **Chatbots e Assistência Virtual de Loja virtual**: Terão um impacto na experiência do usuário perfis online, utilizando o processamento de língua natural para criar um diálogo natural e interagir com os consumidores a tempo real. 10. **Estilo de vida**: A IA é utilizada na deteção de objcetos para evitar acidentes em qualquer ambiente, como em carros, telefones, computadores pessoais e computadores para detectar e identificar os utilizadores para acesso seguro. ## O Fim da Inteligência Artificial De acordo com um relatório da Deloitte Insight, a IA é esperado para significativamente alterar 61% das indústrias nos próximos três a cinco anos. A IA torna-se mais e mais integral a operações e estratégias das companhias. Com investimentos a todos os níveis, desde a educação aos sectores de negócios e organizações governamentais, a IA tem o potencial de produzir mais emprego que ela desalojar. ## Conclusão A IA não é apenas uma tendência de tecnologia, mas umaforça transformadora que está a mudar a maneira de praticarmos a vida e trabalhar. As suas aplicações estão a expandir rapidamente e é provável que tenha uma grande função no futuro de várias indústrias. Mantenham-se informados sobre as melhores aplicações real do mundo da Inteligência artificial. Não esqueçam de inscreverem-se no seu canal e acionarem o ícone de sino para nunca faltarem atualizações de Simply Learning. **Nota: ** Este documento é uma sinopse das aplicações da IA e do seu impacto em várias indústrias, com um foco nas aplicações top 10 e no futuro da IA. Ele preserva todos os URLs, termos, comandos e códigos tanto como aparecem no original da destreza. # Inteligência Artificial: Aplicativos em Diversos Setores ## Bancários Uma inteligência artificial (IA) chatbot pode cuidar de tarefas como atualizar a segurança da carta de crédito e reduzir o uso de crédito com cartão de crédito. * Um exemplo disso pode ser visto na utilização diária de IA para veículos autnomos. * Empresas como Toyota, Audi e Tesla usam algoritmos de aprendizagem automática para filtros de spam em e-mails, separando e-mails comerciais em junk e enviando-os para pastas spam ou lixeira. * Por exemplo, o Gmail alcançou uma capacidade de filtragem de quase 99, 9%. ## Reconhecimento facial Algoritmos de reconhecimento facial são usados por diversos dispositivos para detetar e identificar usuários. * Exemplos incluem telefones, laptops e computadores pessoais, concedendo acesso seguro. * No setor educacional, a IA pode ajudar professores com tarefas não educacionais, como facilitando e automatizando mensagens pessoalizadas para alunos, encargo de secretaria, organização, e facilitando feedback rutinário, gerenciamento de matrículas, cursos, etc. * Um aluno pode receber recursos adicionais para aprendizagem ou ajuda com assistência digital, mesmo sem a participação direta do professor ou do estábel. ## E-commerce A inteligência artificial é mais comumente usada na área de e-commerce para motores de recomendação de compras personalizados. * Por considerar a história de navegação, preferências e interesses, estas recomendações ajudam a fortalecer vínculos com clientes e aumentar lealdade à marca. * Contudo, problemas como fraudes creditácias e avisos falsos continuam sendo desafios significativos para empresas de e-commerce. * A IA pode auxiliá-las a reduzir a possibilidade de fraudes creditácias ocorrer e identificar e lidar com avisos falsos. ## Inovações em IA a Guardar em 2022 1. **AI medical diagnostic (nome não informado)**: Focaliza-se na implementação de IA para diagnosticar e detectar anomalias no corpo humano por meio de várias tecnologias de imagem. - Esta AI coordena conjuntamente o paciente e profissionais de saúde, apresentando relatórios de pacientes via mobile para todos os pessoal médico preocupado. - Fundada em 2016, a empresa possui 223 funcionários e sua sede está localizada em San Francisco. 2. **FarmWise**: O robô killer de macas era uma vez ficção científica. Agora, graças à FarmWise, é uma realidade prática. - A primeira produto da Farmwise foi um robo-maca automático baseado em IA, visão computacional e robotics. - Fundada em 2020, a empresa opera com 50 funcionários e está a procura de expansão. [. . . ] (As outras 8 empresas de IA a guardar são listadas abaixo) ### Outras Aplicações de IA - **AMP Robotics**: Recicla resíduos eletrônicos, resíduos plásticos e resíduos de fortaltos com precisão milimétrica. - Localizada em Colorado, a AMP Robotics possui 137 funcionários e pretende expansion global. - **Automation Anywhere**: Oferece soluções de automação nativas do Cloud para empresas lideres na nuvem. - Fundada em 2003, a sede da empresa fica em San Jose, California. - **Microsoft AI**: Fornece soluções robustas a problemas da nuvem e habilita serviços para acelerar a produtividade. - O Microsoft AI paga salários competitivos, com o salário anual de um funcionário chegando a 160, 000 dólares. - **DataRobot**: Fornece uma plataforma unificada para usuários de IA Cloud para acelerar a entrega de IA para a nuvem. - Com escritórios em todo o mundo, a DataRobot paga salários competitivos aos seus funcionários, com um funcionário possibilitando um salário anual de 160, 000 dólares. - **Amazon Lex, Amazon Polly, e Amazon Machine Learning**: Estes serviços permitem conversações textuais ou vocais com um usuário usando uma interface de chat conversacional. - A Amazon AI também está a provas com voos de dron para reduzir esforços no entrega de mercadorias e serviços para localições remotas. - **DataBricks**: Junta elementos de depósito de dados, fiabilidade, desempenho e governança com a abertura e versatilidade de depósito de lago. - Com mais de 2, 000 funcionários em todo o mundo, a DataBricks paga salários competitivos aos seus funcionários, com um funcionário possibilitando um salário anual em torno de 154, 000 dólares e em torno de 210, 000 rupias anuais na Índia. - **Meta (formalmente Facebook)**: Inovando formas avançadas de interação social. - O time de IA da Meta foi redesenhado um novo material e sensor de toque com potencial para acelerar o desenvolvimento do metaverso. - A Meta AI paga salários competitivos aos seus especialistas em IA, com um salário médio de 175, 000 rupias pagos aos funcionários na Meta AI. - **Google AI**: Demonstra sua supremacia em Computação Quantica com seu processador Cinqiao novo e potente. - A Google AI é uma das tecnologias mais difundidas, usada em várias áreas, como tradução de línguas, ajuda a pessoas com dificuldades de fala, interação em redes sociais, lista de compras e envio de alertas de GPS sobre catástrofes naturais. # Tutorial de Aprendizagem de Máquina Parte Um ## Conteúdos - Introdução à Aprendizagem de Máquina - Algoritmos de Aprendizagem de Máquina - Regressão Linear - Árvores de Decisão - Máquinas de Suporte Vector (SVM) - Caso de Uso: Classificação de Receitas - Classificação de Sobremesas (cupcakes vs. muffins) com SVM ## Introdução Bem-vindo à primeira parte da nossa série de Aprendizagem de Máquina, apresentada por Simplesmente Aprendido ([www. simplylearn. com](http://www.simplylearn.com)). Nesta sessão, vamos cobrir uma explicação breve sobre a aprendizagem de máquina e sua importância, seguida por uma exploração de alguns algoritmos de aprendizagem de máquina populares e um caso de uso demonstrativo da classificação de receitas usando Máquinas de Suporte Vector (SVM). ## Porque Aprendizagem de Máquina? A capacidade aumentada das máquinas em executar tarefas que anteriormente requeriam intervenção humana é o motivo principal pelo qual nos importamos com a aprendizagem de máquina. Aqui estão alguns exemplos: - Veículos Autônomos: Os programas de autônomos da Google (Waymo) e da Uber são exemplos de como a aprendizagem de máquina está transformando a indústria de transportes. - Saúde: As máquinas agora podem ajudar a diagnosticar cerca de 50 doenças oculares, duplicando as verificações e potencialmente detectando coisas que os médicos possam deixar de ver. - Experiências Pessoalizadas: A aprendizagem de máquina pode desbloquear seu celular com seu rosto ou voz, automatizando várias partes de sua vida diária. ## Tática de Engajamento do Facebook Para combater o excesso de spam no Facebook, a empresa desenvolveu um modelo de aprendizagem de máquina para identificar e eliminar o engajamento bait. Este modelo foi treinado usando dados de centenas de milhares de postagens, e ele categoriza diferentes tipos de engajamento bait. Exemplos de engajamento bait incluem votos baiting, baiting de reação e baiting de partilha. Quando o modelo identifica comportamento de spam, ele substitui o post ofensivo por uma mensagem amigável, melhorando sua experiência no Facebook. ## Projeto DeepMind de Google: AlphaGo Em Maio de 2017, o projeto DeepMind da Google, AlphaGo, derrotou o campeão mundial de Go. Este feito destaca o potencial da aprendizagem de máquina em aprender de jogos, com aplicações adicionais em vários domínios. ## Processo de Aprendizagem de Máquina [Diagrama do processo de aprendizagem de máquina] - Defina seu objetivo - Colete os dados - Prepare os dados - Selecione o algoritmo - Treine o algoritmo - Teste o modelo - Implante o modelo ## Tipos de Problemas de Aprendizagem de Máquina - Classificação: Prevê uma categoria (por exemplo, se o preço das ações subirá ou não) - Regressão: Prevê uma quantidade (por exemplo, prever a idade de uma pessoa com base no tamanho, peso e outros fatores) - Deteção de Anomalias: Detecta padrões anormais nos dados (por exemplo, detectando retiradas não autorizadas) - Agrupamento: Agrupa pontos de dados com base em # Organização de Documentos e Técnicas de Aprendizado de Máquina Este documento está organizado em sectores, fornecendo clareza na sua estrutura e conteúdo. Termos técnicos são deixados inalterados para preservar suas originalidades. Correções em gramatical, ortografia e formato são feitas à medida que forem necessárias. Todos comandos, códigos, URLs e dados referenciados são preservados nas suas formas originais. 1. **Classificação de Documentos** Os documentos são classificados em várias categorias baseadas nos seus tópicos e conteúdo. Nos dias de hoje, tal classificação pode ser automatizada, o que traz um grande vantagem. 1. 1. **Classificação basada em tópicos** Um exemplo é classificar documentos de acordo com o seu tópico, como: - Documentos jurídicos - Grupos de documentos desportivos - Colocações de jornais 1. 2. **Classificação basada no conteúdo** Outro exemplo seria a classificação basada no conteúdo, que pode ajudar a identificar: - A natureza dos dígitos e das imagens (A, B, C, etc. ) escritos à mão - O comportamento de uma pessoa (questões de websites, previsão de salário, etc. ) 2. **Técnicas de Aprendizado de Máquina** Vamos discutir três tipos principais de técnicas de aprendizado de máquina: aprendizagem supervisionada, aprendizagem não supervisionada e aprendizagem por reforço. 3. **Aprendizagem Supervisionada** A aprendizagem supervisionada é um método utilizado para permitir que as máquinas classifiquem, previsam ou resolvam problemas baseados em dados etiquetados. A máquina é treinada com um conjunto de dados que contém dados etiquetados corretamente. Por exemplo, um poderá ter um conjunto de dados diverso constituído de circulos, triângulos e quadrados, que são etiquetados conforme. O objetivo é que o modelo treine para que ele possa fazer previsões de dados que não visualizou anteriormente. Este tipo de aprendizagem é essencial para aplicações como prever a probabilidade de um indivíduo de defaults (para os bancos) ou fazer previsões sobre o mercado de ações. **Nota importante: ** Quando se faz aprendizagem supervisionada, a resposta para uma grande quantidade de informação já é conhecida, deixando muito importante escolher um conjunto de dados apropriado. 4. **Não Supervisionada** Na aprendizagem não supervisionada, os modelos de aprendizagem de máquina encontram padrões ocultos em dados não etiquetados. Em vez de fornecê-lhe exemplos etiquetados, o modelo aprende organizando as pontos de dados semelhantes juntos. Por exemplo, uma algorithm de aprendizagem não supervisionada poderá treinar em um grupo de fotos, e poderá agrupar-lhe automaticamente baseado em factores como cor ou textura, o que ajuda as empresas a alvo publicidade melhor. 5. **Aprendizagem por Reforço** A aprendizagem por reforço é um tipo de aprendizagem de máquina em que um agente aprende como se comportar num ambiente executando ações e observando os efeitos. Este tipo de aprendizagem é crucial em aplicações como dirigir automático , robótica e jogos. 6. **Algoritmos Interessantes de Aprendizagem de Máquina** Vamos floreshar um pouco em algoritmos populares e comumente usados de aprendizagem de máquina, como a regressão linear, os árvores de decisão e máquinas de suporte vector. 7. **Regressão Linear** A regressão linear é um método simples e popular para modelar a relação entre uma variável dependente e um variável independente, ou entre várias variáveis independentes e dependentes. Aproxima a relação entre as variáveis ​​usando uma equação linear, permitindo que previsões sejam feitas em vários cenários. **Exemplos de cenários: ** - Prevendo a distância percorrida a partir da velocidade - Estimar custos com base em várias fatores 8. **Conclusão** Entendendo as diferenças entre aprendizagem supervisionada, não supervisionada e aprendizagem por reforço, estamos bem equipados para enfrentar um amplo leque de problemas relacionados com a máquina de aprendizagem de uma forma eficaz. Esta conhecimento nos ajudará a projetar algoritmos e modelos mais eficientes para nossos projetos. # Modelo de Regressão Linear e Árvores de Decisão ## Modelo de Regressão Linear ### Visão Geral Esta seção fornecerá uma visão geral do modelo de regressão linear e explicará sua metodologia. ### Formula do Modelo de Regressão Linear Para encontrar a inclinação da reta da variação do valor, usamos a seguinte fórmula: ``` Pendente = (somatorio de (x - média(x)) * (y - média(y))) / (somatorio de (x - média(x))²) ``` Você pode facilmente calcular isso criando algumas colunas, iterando através dos dados e preenchendo uma gráfica de dados. Por plugar um valor x (por exemplo, x = 1) na fórmula, podemos calcular a inclinação da reta: ``` Pendente = (somatorio de (x - média(x)) * (y - média(y))) / (somatorio de (x - média(x))²) = 0. 2 ``` Então, podemos obter o coeficiente `C` utilizando a fórmula: ``` C = média(y) - pendente * média(x) ``` Neste caso, `C = 2. 2`. Em seguida, podemos tramar a linha de regressão `Y = 0. 2 * X + 2. 2`. Usando esta equação, podemos calcular novos valores e desenhar para prever os valores de Y, usando os x valores de 1, 2, 3, 4 e 5. ### Cálculo do Erro Depois de desenhar as previsões realizadas junto com os valores reais, podemos ver a diferença e calcular o erro para melhor compreender o ajuste do modelo de regressão linear. ## Árvores de Decisão ### Visão Geral Uma árvore de decisão é um algoritmo de árvore-forma utilizado para determinar uma sequência de ação. Cada ramos de uma árvore representam uma decisão possível ou reação. ### Estrutura da árvore de decisão Em uma árvore de decisão, a informação nos orienta se é um dia bom para jogar golfe. Por exemplo, suponha que abrimos o arquivo de dados numa spreadsheet padrão geral: | Tempo | Temperatura | Umidade | Vento | Jogar golfe | |-------|-------------|---------|-------|---| | Sol | Fervente | Alta | Sim | Não | | Sol | Morno | Alta | Sim | Não | | Nublado| Morno | Normal | Não | Sim | | Chuvisco | Frio | Normal | Sim | Sim | Poderemos usar a árvore de decisão para decidir se devem ser jogadas bolas de golfe com base no tempo: - Se o dia for solitário e ventoso, não é recomendável jogar golfe. - Se o dia for solitário mas não ventoso, você pode jogar golfe ou não, dependendo da umidade e outros fatores. - Se o dia for nublado ou chuvoso, pode jogar bolas de golfe, sabendo que a umidade seja normal ou inferior. ### Entropia e Ganho de Informação Para dividir os dados para a árvore de decisão, calculamos a entropia e o ganho de informação: - **Entropia**: é uma medida de randomness ou impureza nos dados disponibilizados. A entropia deve ser baixa para evitar chaos e confusão com dados mistos. - **Ganho de Informação**: é uma medida da diminuição da entropia após a divisão dos dados. Nós queremos que o ganho de informação seja o maior possível. ### Cálculo da Entropia e do Ganho de Informação Vejamos alguns contextos matemáticos de entropia e ganho de informação no contexto dos dados `jogar golfe`: ``` Entropia = - (P * log2(P) + N * log2(N)) ``` Onde `P` é a probabilidade de jogar golfe e `N` é a probabilidade de não jogar golfe. A entropia calculada da toda a estrutura de dados é 0, 94. Para minimizar a entropia e melhorar o ganho de informação, procuramos a atributo que fornecer o maior ganho de informação. Neste caso, o atributo que apresenta o maior ganho de informação é `Tempo`. Após dividir os dados com base neste atributo, podemos continuar a dividir os nós da árvore seguindo a mesma abordagem para encontrar o atributo com o maior ganho de informação. Construindo a árvore de decisão, podemos tomar uma verdadeira orientação sobre jogar golfe com base no tempo. Por exemplo, se o relatório do tempo amanhã mostrar que está sol e ventoso, talvez não seja uma boa ideia jogar golfe. # Máquinas de Vetores Suportados (SVM) para Classificação ## Introdução Neste caso de uso, classificaremos amostras com base em várias características, como o peso e altura para homens e mulheres, ou diferentes características como farinha, leite, açúcar, manteiga, ovo, bicarbonato de sódio, veículo da vanilha e sal para muffins e cupcakes. ## Declaração do Problema O objetivo é classificar receitas de muffins e de cupcakes usando Máquinas de Vetores Suportadas (SVM) em Python. ## Preparação dos Dados ### Carga dos Dados Para análise de dados, utilizaremos as seguintes bibliotecas: ``` import numpy as np import pandas as pd from sklearn. model_selection import train_test_split from sklearn import svm from sklearn. metrics import classification_report import matplotlib. pyplot as plt import seaborn as sns %matplotlib inline ``` ### Leitura dos Dados ```python data = pd. read_csv('. /cupcakes_versus_muffins. csv') ``` ### Divisão dos Dados ```python X = data. drop('type', axis=1) y = data['type'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` ## Treinamento do Modelo SVM ```python svm_modelo = svm. SVC(kernel='linear') svm_modelo. fit(X_treino, y_treino) ``` ## Predição dos Dados ```python previsões = svm_modelo. predict(X_teste) ``` ## Avaliação do Modelo ```python print(classificação_report(y_teste, previsões)) ``` ## Visualização dos Dados Para visualização dos dados, utilizaremos a biblioteca seaborn para finos detalhes e clareza: ```python sns. scatterplot(x='farinha', y='açúcar', var_x='type', data=data) plt. show() ``` Isso vai te dar uma distinção clara entre muffins e cupcakes baseado no seu conteúdo de açúcar e farinha. # Documentação Técnica em Markdown - Análise de Dados - Classificação - Muffins vs Cupcakes ## Introdução Neste documento, vamos desenvolver um modelo de classificação para prever se uma receita é de Muffin ou de Cupcake, utilizando dados de receitas de cozinha num dataset populado com dados de ingredientes. Para isso, usaremos o algoritmo de SVM (Suporte Vector Machine), que é um algoritmo de aprendizagem de máquina bastante utilizado para classificação. ## Dados Nossos dados consistem numa variedade de receitas de cozinha. Nesta análise, utilizaremos apenas duas entradas: Farinha e Açúcar. ## Análise Preliminar dos Dados Antes de construirmos o modelo de SVM e analisarmos sua saída, vamos limpar e preparar nossos dados. Para isso, utilizaremos bibliotecas Python como pandas e numpy. ```python import pandas as pd import numpy as np ``` ## Cargando os Dados Preparamos os nossos dados a partir de um arquivo CSV. Em este arquivo, cada receita é representada por várias entradas, como tipo, farinha, leite, açúcar, manteiga, ovos, fermento para o bolo, almíscar, e sal. ```python recipes = pd. read_csv('recipes. csv') ``` ## Preparando os Dados No nosso caso, vamos obter apenas as entradas `farinha` e `açúcar`, eliminando a coluna `tipo`. ```python recipes_features = recipes[['farinha', 'açúcar']] ``` ## Colocando em Formato Correto para o SVM Para o nosso pipeline de SVM, precisamos ter os dados em formato apropriado para uma matriz de classificação. Então refaríamos os dados para que a primeira coluna seja a matriz de entrada e a segunda coluna seja as classes (Muffin ou Cupcake). ```python recipes_labels = recipes['tipo'] recipes_data = recipes_features. values ``` ## Construindo o Modelo de SVM Vamos utilizar o algoritmo SVC do scikit-learn para construir o nosso modelo. Em seguida, reduziremos o número de adaptações por meio do dw-construtor. ```python from sklearn. svm import SVC from sklearn. model_selection import dimensionality_reduction # Redução dimensional (tarefa opcional) recipes_data, d_values = dimensionality_reduction. PCADimensionalityReduction(n_components=2). fit_transform(recipes_data) # Modelo de SVM model = SVC(kernel='linear') model. fit(recipes_data, recipes_labels) ``` ## Predizendo novas receitas Para prever se uma nova receita é de Muffin ou de Cupcake, basta passar as entradas `farinha` e `açúcar` do pacote `recipes_data` pelo método `predict()` do nosso modelo. ```python recipe_pred = model. predict([[50, 20]]) if recipe_pred[0] == 0: print("Você está a análisar uma receita de muffins! ") else: print("Você está a análisar uma receita de cupcakes! ") ``` ## Plotando o Modelo de SVM Usando os pacotes seaborn e matplotlib, podemos gerar gráficos para visualizar como o SVM separa as diferentes receitas de Muffin e Cupcake. ```python import seaborn as sns import matplotlib. pyplot as plt # Plot sns. scatterplot(x='farinha', y='açúcar', hue='tipo', data=recipes) sns. lineplot(x='farinha', y='açúcar', data=recipes) plt. xlabel('Farinha') plt. ylabel('Açúcar') plt. legend(loc='upper left') plt. show() ``` Bem-vindo à região de desenvolvimento de software. Este documento descreve os passos para construir um modelo de classificação de SVM para prever se uma receita é de Muffin ou de Cupcake, utilizando dados de um dataset fictício de receitas de cozinha. A construção de um modelo de SVM e o pré-processamento de dados foi feito pelo Python, incluindo bibliotecas Pandas, Numpy, Scikit-learn e Matplotlib. Por fim, geramos um gráfico para visualizar a separação das receitas de Muffin e Cupcake pelo nosso modelo SVM. Obs: o dataset utilizado neste tutorial é fictício e não é possível encontrá-lo no web. É apenas para fins didáticos. --- Versionamento: - Versião 1. 0: Descrição geral de SVM e pré-processamento de dados. - Versão 1. 1: Construção do modelo SVM e treinamento dos dados. Além da prévisão de um recurso novo e plotagem. - Versão final: Finalização do documento - dados fictícios e não compartilháveis com o público em geral. # Tutorial de Aprendizado de Máquina: Aprendizado de Vizinhos e Regressão Linear ## Resumo Neste tutorial, abordaremos dois tópicos importantes: agrupamento de K-means e regressão linear. Enquanto isso, rearmazenaremos perguntas de teste de entrada do primeiro tutorial. ### O que poderá aprender? - Entendendo o agrupamento e o algoritmo K-means - Demonstração em vivo com Python sobre o agrupamento de carros com base nos marcas - Regressão lógica, curva de regressão lógica e função de sigmoides - Demonstração de código em Python para classificar um tumor como maligno ou benigno baseado em características ## Agrupamento O agrupamento é uma técnica utilizada para agrupar objetos com características semelhantes. É útil quando você tem dados não etiquetados e não sabe as respostas corretas. O agrupamento K-means é um método comum para este propósito. ### Agrupamento K-means K-means é um exemplo de aprendizado não supervisionado que agrupa dados em `K` bancadas de dados de acordo com a semelhança de características. #### Algoritmo 1. Escolha o número de bancadas de dados `K`. 2. Atribui centroídos aleatórios aos `K` bancadas de dados. 3. Calcula a distância dos objetos aos centroídos. 4. Forma novas bancadas de dados com base no menor comprimento e cálculo de novos centroídos. 5. Repete os passos 3 e 4 até que os centroídos das bancadas de dados parem de mudar. #### Exemplo Suponha que possivelmente temos esses pontos de dados e queremos classificá-los: | Assunto | A Pontuação | B Pontuação | |---------|---------|--------------| | Assunto A | 1 | 5 | | Assunto B | 4 | 1 | | Assunto C | 2 | 3 | | Assunto D | 2. 9 | 2. 8 | | Assunto E | 1. 8 | 4. 9 | | Assunto F | 3. 5 | 3. 5 | | Assunto G | 2. 6 | 3. 4 | 1. Escolha 2 bancadas de dados: ``` [[1, 5], [4, 1]] ``` 2. Atribui centroídos aleatórios: ``` Bancada 1 Centroide: [1, 5] Bancada 2 Centroide: [4, 1] ``` 3. Calcula as distâncias e atribui os objetos a bancadas de dados: ``` Assunto A -> Bancada de Dados 1 [1, 5] -> [1, 0] [4, 1] -> [3, 4] [2, 3] -> [0, 2] . . . ``` 4. Calcula novos centroídos e repete até a convergência: ``` Novos centroídios da Bancada 1: [1. 6, 3. 4] Novos centroídios da Bancada 2: [2. 6, 3. 4] . . . ``` ## Regressão Linear A regressão linear é uma técnica de aprendizado supervisionado utilizada para prever resultados contínuos baseados em um ou mais preditores. ### Regressão Lógica A regressão lógica é utilizada para prever resultados binários (0 ou 1) baseados em um ou mais preditores contínuos ou categorizados. A curva de regressão lógica pode ser modelada usando a função de sigmoides. ### Demonstração de Python A parte 2 deste tutorial fornecerá uma demonstração em vivo em Python sobre a regressão lógica e o agrupamento de K-means. Note: Os dados fornecidos são hipotéticos e não reais. Referencia(s): - [Agrupamento K-means](https://www.analyticsvidhya.com/blog/2019/02/k-means-clustering-tutorial/) - [Regressão Lógica](https://www.coursera.org/learn/logistic-regression) Precisa de ajuda para implementar as demonstrações em Python ou tem questões sobre o tutorial? Escrita para [Simply Learn](http://simplylearn.com). Neste texto, veja as correções feitas conforme as regras estabelecidas: --- ```markdown # Preparação de Dados Usando Markdown Existem várias formas de preparar e visualizar dados, especialmente quando se esteja lidando com um conjunto de dados específico. Neste exemplo, utilizaremos o dataset de carros importado para ilustrar como preencher valores perdidos e remover colunas não desejadas. ## Importação do dataset de carros ```python # Importando o dataset de carros import pandas as pd data_cars = pd. read_csv('cars. csv') ``` ## Preparação do dataset Dado que nosso objetivo é explorar os dados, precisamos criar um DataFrame X que contiverá dados a serem analisados. ```python # Preparação do dataset X X = data_cars. drop('model', axis=1) # Removendo o último nos with 'model' ``` ## Preenchimento de Valores Perdidos Preenchimento de valores perdidos para evitar erros no modelo. Neste exemplo, utilizaremos a média dos valores existentes da coluna. ```python # Preenchimento dos valores perdidos com a média dos valores existentes X. fillna(X. mean(), inplace=True) X. head() ``` Observe-se que o `inplace=True` é adicionado para que os dados sejam atualizados no DataFrame original. ## Loop para percorrer as colunas Para ilustrar como preencher os dados perdidos, percorreremos cada coluna do DataFrame X: ```python for coluna in X: print(f"Coluna: {coluna}") ``` Aqui, utilizamos a notação de criação de lista com um loop `for` para percorrer cada coluna do DataFrame X e imprimir suas respectivas etiquetas. ## Método Elbow Para determinar o número óptimo de clusters a ser utilizado, podemos utilizar o Método Elbow. ```python # Importando o KMeans para aplicar o método elbow from sklearn. cluster import KMeans # Iniciando as variáveis necessárias para o método elbow kmeans = KMeans() # Definindo o range dos valores de k para o método elbow k_values = list(range(1, 11)) # Loop para cada número de cluster for k in k_values: kmeans. set_params(n_clusters=k, max_iter=300, init='k-means++') kmeans. fit(X) wcss. append(kmeans. inertia_) # Visualizando o Método Elbow import matplotlib. pyplot as plt plt. plot(k_values, wcss, marker='o') plt. xlabel('Número de Clusters') plt. ylabel('SST') plt. title('Método Elbow') plt. show() ``` Neste bloco de código, explicamos como aplicar o método em um intento de encontrar o número óptimo de clusters necessário. Aqui, utilizamos o algoritmo KMeans para aplicar o método Elbow e, como vimos anteriormente, percorremos todos os valores de k dentro do intervalo definido. Por fim, visualizamos o gráfico do Método Elbow para que possamos determinar o número de clusters a ser utilizado. Observe que, como o tamanho do conjunto de dados ainda não foi mencionado, a análise do dataset pode levantar mais problemas que precisarão ser abordados quando este tamanho for realmente considerado. # Agrupamento de Dados com K-Means (Exemplo de Dado de Carros) ## Introdução Nesta aula, demonstraremos como utilizar o algoritmo K-Means para agrupamento de dados. Utilizaremos um conjunto de dados de carros para ilustrar o processo. ## Pré-requisitos - Python - NumPy - Pandas - Matplotlib ## Preparação dos Dados Primeiro, iremos importar as bibliotecas necessárias e carregar os dados. ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt # Set matplotlib to inline plt. ioffline() ``` Carregue os dados de um arquivo CSV. ```python data = pd. read_csv('data_for_p2. csv') ``` Transforme os dados em um formato de matrix para uma manipulação mais fácil. ```python X = pd. DataFrame(data. values, columns=data. columns) X = X. values ``` ## Agrupamento com K-Means Agora, executaremos o agrupamento com K-Means nos dados. ```python from sklearn. cluster import KMeans # Initialize KMeans with 3 clusters (for this example) kmeans = KMeans(n_clusters=3) # Fit and predict the K-Means model kmeans. fit_predict(X) ``` ## Plotagem das Clusters Agora, visulizaremos as clusters com um diagrama de dispersão. ```python # Plot the data plt. scatter(X[: , 0], X[: , 1], c=kmeans. labels_) # Set plot title and labels plt. title('Agrupamentos de Marcas de Carros') plt. xlabel('Coluna 0') plt. ylabel('Coluna 1') # Add a legend plt. legend(['Cluster 0', 'Cluster 1', 'Cluster 2']) # Display the plot plt. show() ``` ## Regressão Logística Nesta seção, exploraremos a regressão logística para problemas de classificação binária ou multiclasse. ## Exemplo de Regressão Logística Consideremos um exemplo simples em que queremos prever se um aluno passará ou não com base nos horas de estudo que ele passa. ```python # Logistic Regression Example # Define the sigmoid function def sigmoid(x): return 1 / (1 + np. exp(-x)) # Define the logistic regression function def logistic_regression(X, y, learning_rate=0. 01, num_iterations=1000): m = X. shape[0] theta = np. zeros((X. shape[1], 1)) for i in range(num_iterations): hypothesis = sigmoid(X. dot(theta)) error = hypothesis - y gradient = X. T. dot(error) / m theta -= learning_rate * gradient return theta # Generate some example data X = np. array([[0, 0], [1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1], [9, 1], [0, 0], [1, 0], [2, 0], [3, 0], [4, 0], [5, 0], [6, 0], [7, 0], [8, 0], [9, 0]]) y = np. array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) # Train the logistic regression model theta = logistic_regression(X, y) ``` Agora, você tem uma visão básica de como utilizar o K-Means para agrupamento e a regressão logística para predição de classificação. Pode explorar essas técnicas adicionalmente e aplicá-las a vários conjuntos de dados para obter insights e previsões. # Análise de Dados usando Seaborn e Pandas (Português Europeu) Neste exemplo, aprenderemos a explorar um conjunto de dados de tumores utilizando Seaborn e Pandas. ## Carregamento dos Dados Os dados estão salvos no mesmo diretório onde o código está localizado. Caso você tenha o arquivo de dados em um local diferente, certifique-se de fornecer o caminho completo no local de onde o arquivo se encontra, por exemplo: `C: \Users\SeuUsuario\path\to\data\dados_tumores. csv`. Abra o arquivo de dados e inclua a biblioteca Pandas para o uso da função `head`: ```python import pandas as pd data = pd. read_csv('dados_tumores. csv') data. head() ``` O `head` mostrará as primeiras linhas do arquivo de dados, fornecendo uma visão geral da informação contida. ## Explorando os Dados Nosso conjunto de dados contém dados de identificação e diagnóstico. Dando uma olhada nas linhas completas, podemos ver que os dados se encontram divididos em várias colunas. ```python data. columns ``` Agora, criaremos um plot jointe (Joint Plot) utilizando a biblioteca Seaborn (S) para explorar a distribuição dos dados: ```python import seaborn as sns sns. jointplot(data=data, x='radius_mean', y='texture_mean') ``` O plot mostrará a distribuição da média de Raio e do Texture, disponibilizando informações úteis para a posterior análise e modelagem. ## Acompanhando o Histograma dos Dados Agora, examine um histograma para verificar mais detalhadamente o padrão de distribuição da média de Raio e do Texture: ```python sns. histplot(data=data, x='radius_mean', y='texture_mean') ``` O gráfico produzido mostrará os dados agrupados por intervalo, disponibilizando ainda mais informações sobre o padrão de distribuição dos dados. ## Conclusão Espero que este tutorial tenha sido útil em ajudá-lo a aprender a explorar e visualizar dados utilizando Seaborn e Pandas. Você está agora pronto para explorar seus próprios dados e começar a desenvolver modelos Obama para prever resultados. Não se esqueça de compartilhar suas conclusões e resultados, e assim, poderemos acompanhar seu progresso na sua análise de dados! 📊 # Tutorial de Aprendizado de Máquina Parte Dois ## Agrupamento de Documentos Agrupar documentos em categorias baseando-se no assunto e conteúdo de cada um. Isso é um exemplo de agrupamento, onde o algoritmo *k-means* pode ser usado para agrupar documentos por assunto usando a abordagem *bag of words*. Se você já iniciou no explorador de agrupamento e já teve pelo menos um ou dois exemplos como *k-means* que são usados para agrupar coisas diferentes, parabéns por ter acertado. ## Classificação de Imagens Classificação de dígitos e imagens corretamente. A abordagem tradicional para resolver este problema é extrair recursos dependentes de dígitos, como a curvatura de diferentes dígitos, e então usar um classificador como SVM para distinguição entre imagens. Parabéns por ter acertado que este é um exemplo de classificação, seja ele um exemplo de classificação, dê duas mãos para cima neste assunto. Se você sabe que pode usar o SVM ou outro modelo para este propósito, dê duas mãos para cima. ## Deteção de Anomalias O comportamento de um website indicando que o site não está funcionando conforme planejado. Neste caso, o algoritmo aprende o normal e o não normal, geralmente observando os logs do site ou do servidor. Parabéns por ter identificado este exemplo de deteção de anomalias. Para mais informações, considere também a deteção de anomalias no mercado financeiro. Ajuda a encontrar áreas erráticas do mercado e então encontrar formas de onde as anomalias estão acontecendo, com informações de fontes externas, por exemplo, lançamentos no mercado de informações. ## Regressão Previsão do salário de uma pessoa de acordo com anos de experiência. Este problema pode ser matematicamente definido como uma função entre variáveis independentes (anos de experiência) e variáveis dependentes (salário individual). Parabéns por ter acertado que este é um exemplo de regressão. Se você lembrar que é entre variáveis independentes e dependentes, e que estes termos, dê duas mãos para cima. ## K Nearest Neighbors (KNN) *KNN* é um algoritmo simples e fácil de se entender do grupo de algoritmos de aprendizado de máquina. Ele serve como base para outros algoritmos de aprendizado de máquina e é usado principalmente para classificação de novos dados. Se você deseja saber por que estamos lidando com o *KNN*, por que *KNN* é necessário e como funciona, continue lendo. ## Classificação com KNN *KNN* classifica um ponto com base no número de seus *K* vizinhos mais próximos. Em outras palavras, sabe se um novo ponto faz parte do grupo A ou do grupo B com base no número de ponto *A* em seu grupo de vizinhos mais próximos. Por exemplo, suponha que estamos tentando determinar se uma pessoa com determinadas características físicas (seu sexo, altura e peso) apresenta ou não um determinado padrão de risco de doença. Em determinado momento, podemos passar por vários de vários pontos que representam outras pessoas com características similares para descobrir a classificação correta de uma pessoa semelhante. Depois de passar pelos pontos, *KNN* vai agrupar as pessoas que são os *K* vizinhos mais próximas da pessoa semelhante em termos de características físicas e depois classificar esta pessoa como pertencente ao grupo a o qual pertencem a maioria de *K* pessoas. ## Estrutura de Vizinhança A *estrutura de vizinhança* é um conjunto de *K* amostras (chamado de *vizinho*) no espaço de características *X* de um novo ponto não classificado. Normalmente, os vizinhos de um ponto não classificado são selecionados com base na distância mais curta dos obstáculos entre eles e o ponto não classificado. Os novos pontos sem classificação recebem a resposta majoritária dos vizinhos mais íntimos. ## Ajuste da estrutura de vizinhança - nêutro Altere o valor do número de pontos em uma estrutura de vizinhança para o número ideal de vizinhos que sejam considerados, quer dizer, o número mínimo de pontos que sejam filmados em uma vizinhança. Você pode mudar este valor para determinar se a vizinhança suplantará um armazenamento extra. ## Pontuação de Similaridade A *pontuação de similaridade* expresa a distância ou a semelhança entre dois pontos em *X*. Por padrão, a distância euclidiana é usada como medida de similaridade, mas a distância manhattan também pode ser usada. A forma mais comum de testar o desempenho do modelo de clusters usando *k*-moedas é comparar as associações de pontos na camada principal com sua associação real com o caminho principal. Isso pode ser feito por meio de métricas de precisão geral (precisão geral, recall, F1-score), bem como indícios de distorção. ## Dependências As bibliotecas abaixo são necessárias para rodar o código em `__main__. py`. ``` import pandas as pd from sklearn. cluster import KMeans from sklearn. metrics import silhouette_score import matplotlib. pyplot as plt ``` ## Início do código Se você ainda não o fez, primeiro, tire um lead no [dado de beef](https://drive.google.com/file/d/0B3_zYqhm1-SAUEZxSFZSZGJQekk/view) (conjunto de dados do dataset beef). E entre com ``` %matplotlib inline import seaborn as sns import matplotlib. pyplot as plt ``` ## Utilizando o KMeans A seguir, faça o import do conjunto de dados em formato pandas. ``` data = pd. read_csv('beef. csv') ``` A seguir, selecione as características a serem analisadas. Em formato de DataFrame, estas características podem ser encontradas na [documentação do dataset beef](https://archive.ics.uci.edu/ml/datasets/USC+Beef+Quality+Data+Set). Aqui, estamos usando apenas as características 2 e 3 (pH e color) por questões práticas: ``` X = data. iloc[: , 1: 3] ``` Em seguida, crie um modelo KMeans. ``` kmeans_model = KMeans(n_clusters=3, init='k-means++') ``` Em seguida, utilize os dados para treinar o modelo: ``` y_pred = kmeans_model. fit_predict(X) ``` Você também pode querer obter as medoidas (os vértices com índices menores dos clusters, que são usados para inferir outros pontos de camada). ``` kmeans_model. cluster_centers_ ``` ## Avisos Importantes: - Para uma visualização mais simples, chame um scatter plot com as características 2 e 3 (seguindo o mesmo conjunto de dados) com as medoidas pintadas como pontos para ter uma ideia das medoidas e suas posições. ## Evaluando o Número de Clusters com o Silhouette Score O *score de silueta* é usado para ajustar a variação de ruído na determinação do número de clusters. Para determinar a melhor quantidade de clusters, sempre use o *score de silueta*. O *score de silueta* mapeia cada ponto para uma faixa de *[−1, 1]* com o número positivo significando que o ponto pertence à outra das clusters onde suas medoidas estão mais próximas. ``` silhouette_values = kmeans_model. silhouette_score(X, y_pred) print("Silhouette score: ", silhouette_values) ``` Para funcionar sozinho, o código acima deve retornar um valor muito próximo a 1 (único valor possível em um caso ideal com nenhum ruido). ## Ajustar o número de clusters automaticamente O Silhouette Score pode ser usado para ajustar o número de clusters automaticamente. Você pode implantar o laboratório de investigação de clustering em seu conjunto de dados. ``` import numpy as np from sklearn. cluster import KMeansAndSpectral from sklearn. contrib. cluster import SpectralClustering def find_elbow(data): k_values = np. arange(2, 20) silhouettes = [] for k in k_values: s = KMeansAndSpectral(n_clusters=k, init='k-means++', n_init=10, store_tocentroid=False, spectral_n_components=30) s. fit(data) labels = s. labels_ silhouette_avg = s. silhouette_avg silhouettes. append(silhouette_avg) fig = plt. figure(figsize=(12, 7)) plt. plot(k_values, silhouettes, marker="o", linewidth=1. 5) plt. xlabel("Number of clusters, K") plt. ylabel("Silhouette coefficient") plt. title("The Elbow Method shows the optimal number of clusters") #plt. tight_layout(h_pad=2. 5) plt. show() find_elbow(X) ``` Você pode encontrar dicas adicionais sobre o KMeans em [A Introdução ao K Means - K Means Clustering](https://www.analyticsvidhya.com/blog/2015/11/introduction-k-means-clustering-python-scikit-learn/). Para outras formas de ajuste de elbows, verifique [Escolha o número ideal de Clusters no K-Means com o Dados do Data Set Beef](https://www.coursera.org/learn/machine-learning/lecture/Y6n5e/selecting-the-optimal-number-of-clusters-with-k-means) no Coursera. ## Preditendo o tipo de Tumor Para decidir quanto boa é essa fusão, vamos para o log modelo. dot predict X test. Agora, para decides o bom desempenho de nosso modelo, vamos para o sklearn. metrics e importar nossa classificação report e depois apenas tirar o print deste. Depois acessaremos nossa classificação report, colocaremos em ela nosso test data e a genuine data para que possamos obter um relatório completo sobre o desempenho de nosso modelo. ## Principal Método de Evaluação Até agora, estamos usando a precisão, mas vamos conhecer um método melhor de medição de qualidade dos modelos de classificação: o F1-score. O método F1-score é uma combinação do recall (taxa de detecção) e da precisão. O F1-score é a medida do intervalo armonicamente average mean entre o recall (R) e a precisão (P) de um sinal ou de uma pré-visão. Outra característica da métrica é que ela gera o mesmo valor se a ordem das classes for trocada. As regras de conjunto para a cálculo do F1-score são: * IFRate de detecção (R) = True positivos (TP) / (True positivos (TP) + Falso negativos (FN)) * Precisão (P) = True positivos (TP) / (True positivos (TP) + Falso positivos (FP)) * F1-score = 2 \* (P \* R) / (P + R) Antes de contar atenção para nosso F1-score de acertos, iremos praticar um um suplemento espontâneo para o DataSet de alfaiate. Este DataSet contém os resultados médios da classificação de alfaiate de cinco empresas de alfaiate de mesa e cama: Como as compras de linha de alfaiate de alfaiate de cama são caras, uma operadora quer fornecer recomendações mais simples e menos caras. Ela coletou dados sobre peso, largura verso, camada, tamanho de caiação, área livre superior e tipo de alojamento (casas caseiras, apartamentos e casas familiares) para dados das tecnologias de classificação de alfaiate. O objetivo final é testar seu Type de tumor ser designados das seguindes categorias: baixo, médio e alto. ### Lendo a Base de Dados De acordo com as frações informadas, as máquinas de classificação de alfaiate vão classificar o alfaiate em média comorba nos valores esperados. Segue a código Python para baixar o dataset de alfaiate de cama: ```python import pandas as pd df = pd. read_csv('bed-sheets dataset. csv') ``` A forma mais eficiente de ler pacotes de dados em Python é guardar o dataset em formato de objeto Pandas. O pacote Pandas é uma biblioteca que fornece estruturas de dados flexíveis e interativas para manipulação de dados, como DataFrames. # K-Próximos Vizinhos (KNN) Algoritmo Explicação e Caso de Uso em Python ## Introdução Este documento fornece uma explicação do algoritmo K-Próximos Vizinhos (KNN), sua utilização, e um caso de uso em Python. ## Algoritmo K-Próximos Vizinhos (KNN) O algoritmo KNN é um algoritmo de aprendizagem de máquina simples e popular, usado para problemas de classificação e regressão. Ele funciona com a hipótese de que objetos semelhantes estão próximos uns dos outros no espaço de características. ### Escolha do K para KNN O inteiro positivo K é especificado juntamente com um novo exemplo. Escolhemos os K entrada em nossa base de dados que estão mais próximos do novo exemplo, utilizando a formula Euclidiana. A classificação que dá para o novo exemplo é a mais comum entre esses K poucos. ### Quando Usar KNN 1. O conjunto de dados é etiquetado: Você precisa de rótulos no conjunto de dados (por exemplo, classificando imagens de cães e gatos). 2. O conjunto de dados é sem ruído: O conjunto de dados é limpo, e existe uma baixa variabilidade de dados. 3. O conjunto de dados é pequeno: Você geralmente trabalha com conjuntos de dados mais pequenos (até um gigabyte ou menos de dados se ele estiver realmente limpo). ### Etapas do Algoritmo KNN Considere um conjunto de dados com duas variáveis, altura em centímetros e peso em kilogramas, e cada ponto é classificado como normal ou abaixo do peso. Neste exemplo, podemos ver que temos duas variáveis. Você consegue determinar se verdadeiro / falso, ou seja, se um ponto é normal ou abaixo do peso, com base nos dados que temos para classificar o conjunto a seguir como normal ou abaixo do peso usando o KNN. 1. Calcule a distância Euclidiana de acordo com a formula Euclidiana, `D = √((x-a)² + (y-b)²)`. 2. Encontre os `K` vizinhos mais próximos do banco de dados baseado nas distâncias calculadas. 3. Classe o ponto desconhecido de acordo com a classificação mais comum dos `K` vizinhos mais próximos. ### Caso de Uso: Previsão de Diabetes em Python Para demonstrar o algoritmo KNN, vamos demonstrar um caso de uso previsão de diabetes em Python. 1. Instale os pacotes necessários utilizando `pip install pandas numpy sklearn`. 2. Importe as bibliotecas e os dados necessárias utilizando o seguinte código: ```python import pandas as pd import numpy as np from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler from sklearn. neighbors import KNeighborsClassifier from sklearn. metrics import confusion_matrix, f1_score, accuracy_score ``` 3. Carregue os dados: ```python # Carregue os dados data = pd. read_csv('diabetes. csv') # Mostre as primeiras linhas dos dados print(data. head()) ``` 4. Processamento Prévio (escala as variáveis de característica e alvo, e tratamento de valores ausentes): ```python # Escala as variáveis de característica e alvo utilizando StandardScaler scaler = StandardScaler() X = scaler. fit_transform(data. drop('outcome', axis=1)) y = scaler. transform(data[['outcome']]) # Trate os valores ausentes X = X. fillna(0) y = y. fillna(0) ``` 5. Divida os dados em conjuntos de treinamento e teste: ```python # Divida os dados em conjuntos de treinamento e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` 6. Treine o modelo KNN utilizando os dados de treinamento: ```python # Treine o modelo KNN knn = KNeighborsClassifier(n_neighbors=3) knn. fit(X_treino, y_treino) ``` 7. Faça a previsão do resultado nos dados de teste: ```python # Faça a previsão do resultado nos dados de teste y_preditos = knn. predict(X_teste) ``` 8. Avalie o desempenho do modelo: ```python # Avalie o desempenho do modelo utilizando confusion_matrix, f1_score, e accuracy_score confusion_matriz = confusion_matrix(y_teste, y_preditos) f1 = f1_score(y_teste, y_preditos) acurácia = accuracy_score(y_teste, y_preditos) # Imprima os resultados de avaliação print(f"Matriz de confusão: \n{confusion_matriz}") print(f"F1 Score: \n{f1}") print(f"Acurácia: \n{acurácia}") ``` # Predição de Diabetes Usando KNN Este documento detalha um processo para prever se uma pessoa desenvolverá diabetes ou não usando o algoritmo K-Nearest Neighbor (KNN). ## Preparação dos Dados Inicialmente, Encontramos um conjunto de dados com dados ausentes, indicando que ele estava ausente. Para lidar com dados ausentes, decidimos substituí-los pela média da coluna respectiva, que é uma prática comum na aprendizagem de máquina. Aqui está como fizemos isso: 1. Substituir dados ausentes (NaN) pela média da respectiva coluna usando a função `skipna` em pandas. 2. Dividir o conjunto de dados em conjuntos de treino e teste, garantindo que tenhamos dados para ambos o treino e teste do nosso modelo. 3. Normalizar o conjunto de dados usando StandardScaler da biblioteca sklearn. preprocessing para padronizá-lo para melhor desempenho do modelo. ## Construção do Modelo Após preparar os dados, seguimos para construir o modelo KNN e treiná-lo no conjunto de treino: 1. Criar e treinar o classificador KNN com o número especificado de vizinhos (k=11 neste caso) e métrica (distância euclídica por padrão). 2. Avaliar o modelo usando a matriz de confusão, F1 score e pontuação de acurácia para avaliar o desempenho do nosso modelo KNN. ## Resultados O modelo KNN apresentou uma acurácia de 0, 818 quando prediá-se diabetes, o que pode ser arredondado para 80%. Isto sugere um bom ajuste do modelo. ## Redução da Dimensionalidade com Análise Principal de Componentes (APC) Nos próximos passos, discutiremos a redução da dimensionalidade usando a Análise Principal de Componentes (APC). Discutiremos as propriedades, termos e exemplos da APC, e vamos fornecer uma demonstração prática em um bloco de notas Jupyter. ## Referências - [Análise Principal de Componentes (APC) Explicada](https://towardsdatascience.com/understanding-principal-component-analysis-pca-part-1-796a4fc38f5f) - [Algoritmo K-Nearest Neighbor no Python](https://towardsdatascience.com/a-gentle-introduction-to-the-k-nearest-neighbors-algorithm-in-python-37e69a189123) - [StandardScaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html) - [Split de Treino-Teste](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html) - [Matriz de Confusão](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html) - [F1 Score](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html) - [Pontuação de Acurácia](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html) # Redução de Redundância em Dados e Análise Principal de Componentes (PCA) O conhecimento das técnicas de redução de dados é fundamental ao lidar com conjuntos de dados grandes. Aqui, vamos discutir a redução de redundância em dados e a Análise Principal de Componentes (PCA), focando em um exemplo simplificado usando o conjunto de dados Iris. ## Redução de Redundância em Dados A redundância em dados pode significativamente prolongar os tempos de processamento e aumentar os requisitos de armazenamento. Removendo entradas similares do conjunto de dados, podemos aliviar a carga de processamento, reduzir o espaço de armazenamento e fazer mais fácil plotar os dados em 2D e 3D. Redundância também pode afetar alguns modelos, como redes neurais. Se a mesma informação é inserida várias vezes, o modelo poderá dar um peso mais elevado àquele que seria dado se ela tivesse aparecido somente uma vez. Para mitigar isso, a redundância deve ser eliminada, pois também aumenta o tempo de processamento quando se lida com várias entradas de dados. ## Análise Principal de Componentes (PCA) A Análise Principal de Componentes (PCA) é uma técnica para reduzir a dimensionalidade de grandes conjuntos de dados enquanto minimiza a perda de informação. A PCA é benéfica para reduzir conjuntos complexos com várias variáveis, tornando-os mais fáceis de interpretar e visualizar. Nesta PCA, tomamos um conjunto de dados complexo com um grande número de variáveis e diminuímos-lhe as variáveis para um conjunto menor conhecido como a configuração de variáveis reduzidas. O resultado dos dados pode parecer confuso porque as cores estão alinhadas. Consideramos um caso de uso simples. Suponha que você é pedido a fotografiar bebês e quer escolher a melhor ângulo para capturá-los. Se você tomar a foto de um ângulo que apenas mostra as costas de várias cabeças, não fornecerá uma imagem clara. O próximo passo é o mesmo para dados. Não podemos escolher o melhor ângulo intuitivamente ao lidar com dados, e precisamos de uma fórmula matemática por consistência. Um exemplo é o conjunto de dados Iris, onde podemos reduzir as variáveis calculando a razão do diâmetro pela largura das pétalas, em vez de colocar a largura e o comprimento separadamente. Isso nos dá um valor único de dois valores separados. Nos processos PCA, nós encontramos a perspectiva mais transformadora dos pontos de dados considerando várias perspectivas (dimensões). Escolhemos a perspectiva que melhor representa os pontos de dados e oferece espaçamento adequado. As variáveis escolhidas são chamadas de componentes principais, com PC1 geralmente tendo o valor mais elevado. ### Termos importantes em PCA: 1. **Vista**: A perspectiva através do qual os pontos de dados são observados. 2. **Dimensões**: O número de colunas em um conjunto de dados, também conhecidas como atributos ou variáveis. 3. **Fature**: Dimensões que contêm a informação do conjunto de dados. 4. **Componentes Principais**: Novas variáveis construídas como combinações lineares ou misturas das variáveis iniciais. Foram criadas para melhorar a resumo dos dados e reduzir a dimensionalidade. 5. **Projeções**: A distância perpendicular entre o componente principal e os pontos de dados. 6. **Propriedades importantes**: - O número de componentes principais é sempre menor ou igual ao número de atributos. - Os componentes principais são ortogonais, ou seja, estão perpendiculares um ao outro. - A prioridade dos componentes principais diminui com a aumenta do número. ### Como funciona PCA: A PCA realiza as seguintes operações para um conjunto de dados dado: - Exponenciacação: Padronização do domínio das atributos para que cada um esteja dentro de limites semelhantes. Isto envolve a removeção da média dos valores das variáveis e a escalonagem dos dados com relação à desvio-padrão. - Matriz de Covariação de Computação: A matriz de covariação é usada para expressar a correlação entre quaisquer dois ou mais atributos. Tem entradas representando a variação e a covariação dos valores das variáveis. - Geração de Vetores Próprios (I Vetores Eigen) e Valores Próprios: Estes valores são extratos da tabela de covariância e são responsáveis por gerar uma nova família de variáveis de uma família de variáveis originais, que em seguida permitirão a constituição dos componentes principais. ## Conclusão O entendimento das técnicas de redução de dados e PCA desempenha um papel crucial na manipulação de conjuntos de dados grandes. A redução de dimensionalidade de conjuntos de dados ajuda a alcançar melhor interpretabilidade e compreensão dos dados, o que leva a uma interpretação humana e melhor performance do modelo. # Análise Principal de Componentes (PCA) com Python Este documento apresenta uma guia para realizar Análise Principal de Componentes (PCA) usando Python. Usaremos o Anaconda Navigator com Python 3. 6 e várias bibliotecas, incluindo matplotlib, pandas, NumPy, Seaborn e scikit-learn. ## Visão Geral Neste exemplo, demonstremos como realizar PCA usando o conjunto de dados de câncer, que contém 36 características e pode ser usado para explorar dados de alta dimensão. ### Preparação dos Dados 1. Primeiro, importaremos as bibliotecas necessárias. ``` import matplotlib. pyplot as plt import pandas as pd import numpy as np import seaborn as sns from sklearn. decomposition import PCA ``` 2. Em seguida, carregaremos o conjunto de dados de câncer e vejamos as chaves e as características. ``` cancer_data = pd. read_csv("path/to/cancer_data. csv") print(cancer_data. keys()) ``` 3. Em seguida, iremos normalizar nossos dados para PCA visualização. ``` # Normalização dos dados scaled_data = StandardScaler(). fit_transform(cancer_data) ``` ### Análise Principal de Componentes 1. Criaremos um objeto PCA e definiremos o número de componentes como 2. ``` pca = PCA(n_components=2) ``` 2. Enfatizaremos os dados para o modelo PCA e renomeiamos os componentes uranceados para seus dois primeiros componentes principais. ``` pca. fit(scaled_data) xpca = pca. transform(scaled_data) ``` 3. Ploteiamos o primeiro e segundo principal components e visualizamos os dados. ``` fig, ax = plt. subplots(figsize=(8, 6)) ax. scatter(xpca[: , 0], xpca[: , 1], c=cancer_data["Target"], cmap="plasma") ax. set_xlabel("Primeiro Principal Component") ax. set_ylabel("Segundo Principal Component") ax. set_title("Conjunto de Dados de Câncer - Análise Principal de Componentes") plt. show() ``` ### Interpretação dos Componentes Infelizmente, entender o que cada componente principal representa poderá ser difícil. Os componentes próprios estão armazenados como um atributo do objeto PCA filtrado. ``` print(pca. components_) ``` Isso nos fornecerá os pesos para cada característica original nos componentes 1 e 2 principais. Podemos utilizar estes pesos para entender a relação entre as características originais e os novos componentes principais. ``` #Exemplo: Peso do primeiro Principal Component print(pca. components_[0]) ``` # Análise de Dados e Regressão Linear: Compreendendo Bias, Variância e Regularização Este documento fornece uma visão geral de técnicas de análise de dados, com ênfase na regressão linear, em Bias, Variância e Regularização. Inclui uma explicação breve dos conceitos, seguida por uma demonstração prática. ## Agenda 1. Ajuste dos dados 2. Entendendo a regressão linear, Bias e Variância 3. A prosperção e subsaturação: o que são e como evitá-los 4. Regularização na aprendizagem de máquinas 5. Demonstração prática ## Ajuste dos dados O ajuste de dados é o processo de plotar os pontos de dados e traçar a linha de melhor ajuste para entender a relação entre variáveis. Nos exemplos a seguir, podemos ver duas variáveis: a eficiência de um veículo contra a distância percorrida. Nossa intenção é encontrar a relação linear entre as duas variáveis. ``` Disponemos de duas variáveis: eficiência do veículo e distância percorrida. Nossa finalidade é desenharem a linha de melhor ajuste para entender a relação dessas variáveis. Eficiência do veículo | Distância percorrida -----------------------|------------------------ 90 mpg | 0 milhas 70 mpg | 10 milhas 85 mpg | 20 milhas . . . | . . . ``` ! [Exemplo de Regressão Linear](example_graph. png) ## Bias e Variância O bias ocorre quando um algoritmo não tem flexibilidade o suficiente para aprender dos dados, sob-simplificando o modelo. A variância define a sensibilidade do algoritmo a determinados conjuntos de dados. ! [Bias e Variância](bias_variance. png) * **Bias**: Neste cenário, o modelo pouco atenção às informações do conjuntos de treinamento e sob-simplifica o modelo. As curvas de erro de validação e treino seguem padrões semelhantes. * **Variância**: Um modelo com alta variância paga muito atenção aos conjuntos de treinamento e não generaliza, resultando em altos erros tanto nos dados de treino quanto nos dados de teste. ## Prosperação e subsaturação A prosperação é quando o modelo de aprendizagem automática aprende os detalhes junto com a ruída nos dados, tentando ajustar cada ponto de dado no gráfico. No outro lado, a subsaturação é quando o modelo não consegue aprender a relação entre os pontos de dados nem prever ou classificar novos pontos de dados. ### Prosperação A prosperação ocorre quando o modelo de aprendizagem automática tenta aprender mais os detalhes na ruída dos dados que a relação (detalhes). ``` Se você plotar coordenadas em um modelo prosperado, você irá obter apenas as respostas que são ajustadas para cada ponto dos dados. Não existe expectativa de uma média, porque não existe dois pontos que podem ter as mesmas respostas devido a fatores ambientais como ventos, mudanças de velocidade, etc. ``` ### Subsaturação A subsaturação é o cenário oposto em que o modelo não consegue aprender a relação entre os pontos de dados e prever ou classificar novos pontos de dados. ``` A subsaturação ocorre quando o modelo é muito simples ou possui capacidade limitada para aprender padrões. Ele pode aceitar cada novo ponto durante a predição, não procurando por um patrão geral, mas aceitando tudo sem juízo. ``` ## Regularização A regularização é uma técnica para ajustar os dados, com foco em achar o equilíbrio adequado entre o bias e a variância, minimizando o risco de prosperação. Adicionando uma pena ao termo do erro funcional, o modelo aprende a se abstenha da prosperação e melhor generaliza para dados novos. ## Demonstração Prática Para uma demonstração prática de regressão linear, Bias, Variância e Regularização, por favor, consulte este [notebook](https://colab.research.google.com/drive/1Xwi1l_lGjI-2qxQ_jOd-i4iFffSjVi3g#scrollTo=VcoeLE87s6C4). Este texto foi reformatted com sintaxe Markdown para manter a legibilidade e facilitar a navegação entre as seções. # Regressão Logarítmica e regularização As técnicas de regressão são utilizadas para calibrar modelos de regressão linear e minimizar a função de perda ajustada para evitar sobrefitting ou subfitting. Este texto abordará diferentes técnicas de regularização, com ênfase na regularização de Rio e Lasso. ## Modelo Linear ### Regularização Nos casos de modelos sobefitados ou subfitados, técnicas de regularização modificam os modelos adicionando uma penalidade. Na regressão de Rio, a penalidade é equivalente à soma dos quadrados ou o módulo das coeficientes. A função custo é dada por: ``` Função Custo = Perda + Lambda * (somatório de W² ou equivalibilmente o módulo de w) ``` Onde `Lambda` é o parâmetro de penalidade e `W` representa a pendente da reta. Comparando os dois modelos com todos os pontos de dados, podemos ver que a linha de regularização de Rio abriga o modelo de forma mais precisa que a linha de regressão linear. ### Regressão de Lasso Na regressão de Lasso, a função custo é igual ao módulo ao invés de quadrado: ``` Função Custo = Perda + Lambda * (módulo de W) ``` Como nos outros conjuntos de dados, podemos ver que a linha de regularização de Lasso abriga o modelo de forma mais precisa que a linha de regressão linear. ## Demo: Regressão de Lasso e Rio Para demonstrar o uso de estas técnicas, faremos um demonstrativo utilizando a regressão de Lasso e de Rio num Jupyter notebook. ```python # Importar bibliotecas import pandas as pd import numpy as np import matplotlib. pyplot as plt from sklearn. linear_model import LinearRegression, Ridge, Lasso from sklearn. model_selection import train_test_split # Carregar o conjunto de dados de Boston de habitação data = pd. read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data") X = data. drop('MEDV', axis=1) # Definir Y = MEDV (Valor Médio de Habitação) y = data['MEDV'] # Dividir os dados em conjuntos de treino e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 25) # Treinar o modelo de regressão linear múltipla lreg = LinearRegression(). fit(X_treino, y_treino) # Calcular o erro quadrático médio no conjunto de teste y_teste_previsão = lreg. predict(X_teste) mse_teste = np. mean((y_teste - y_teste_previsão) ** 2) # Ajustar o modelo de regressão de Rio e de Lasso e calcular seus erros quadráticos médios ridge = Ridge(alpha=1). fit(X_treino, y_treino) lasso = Lasso(alpha=1). fit(X_treino, y_treino) # Imprimir o erro quadrático médio dos modelos de regressão print("Erro Quadrático Médio (Regressão Linear): ", mse_teste) print("Erro Quadrático Médio (Regressão de Rio): ", np. mean((y_teste - ridge. predict(X_teste)) ** 2)) print("Erro Quadrático Médio (Lasso Regression): ", np. mean((y_teste - lasso. predict(X_teste)) ** 2)) ``` Este código importa as bibliotecas necessárias, carrega o conjunto de dados de habitação de Boston e demonstra o uso de regressão linear múltipla, regressão de Rio e de Lasso. Por dividir os dados em conjuntos de treino e teste, podemos comparar a precisão de cada modelo, fornecendo insinuações sobre escolhas de modelos apropriadas dependendo do número de variáveis e do tamanho do conjunto de dados de treino. # Melhorando um Documento Técnico Usando Markdown ## Gráfico X Bar e Coeficientes de Regressão L Mudar um dos coeficientes maiores é o seguinte, se estivermos a fazer a configuração, desejamos printá-lo e ver o que isso se parece: 1. Configuração de subgráficos (a equipe deixou algumas cores legal) 2. Perform a regressão X bar com base nas colunas e coeficientes de regressão L (`color = "X` barras laterais inferior e similares) 3. Criar um gráfico simples (você pode ver um exemplo neste, quando comparar estes se colocarem no mesmo gráfico que o gráfico acima) Os gráficos em questão são os seguintes: -18 (gráfico acima) -9 (este gráfico) Você verá que os gráficos são metade do tamanho do gráfico acima. Os valores desses gráficos são quasi metade do valor do primeiro gráfico. Você pode fazer a mesma comparação para a Regressão Lasso. Aqui está o novo gráfico e sua saída com o comando dado: ``` # Regressão Lasso lasso_regression_plot() ``` ### Valor Knox Agora, vamos para a direção de Knox. Encontramos que está totalmente zerado. Se olharmos em nosso coeficiente mais grande, está em `-0, 8`. Nosso 22, 73, em comparação, é muito melhor. Comparemos o nosso modelo 1 com os outros dois modelos: | Modelo | Erro médio quadrático na amostra de teste | |--------|------------------------------------------| | Modelo 1 | Menor | | Modelo 2 | Maior | | Modelo 3 | Maior | ### Aprendizado Reforçado Falaremos hoje sobre o aprendizado reforçado e o que isso lhe traz: 1. **Por que o Aprendizado Reforçado** O aprendizado reforçado treina o modelo a retornar uma solução ótima para um problema tomando uma série de decisões por si só. - Considere um robô aprendendo a ir de um lugar para outro. - O robô é dado uma situação, e deve chegar a uma solução por si mesmo. - O robô pode seguir diferentes caminhos para chegar ao destino. - Ele saberá o caminho melhor pelo tempo gasto em cada caminho. 2. **Estratégias de Aprendizado diferentes** - Supervisionado - Não Supervisionado - Reforçado 3. **Termos Importantes** - Agente - Ambiente - Ação - Estado - Restauração - Política #### Exemplo de Aprendizado Reforçado: Ensinando um cão a "agonizar" 1. **Agente**: O cão a função como agente. 2. **Ambiente**: A casa inteira ou área de treinamento. 3. **Ação**: Pegar. 4. **Restauração**: Um bolacha de cão ou outro incentivo para reforçar a ação aprendida. 5. **Política**: Uma correspondência entre ação e estado presente para determinar a melhor ação. Uma vez que o aprendizado reforçado ensina ao cão aprender novas ações e explorar o seu ambiente como um cão real, encontrar as ações mais reforçantes. O cão aprende a agonizar eficazmente após receber reforços para ações boas. # Aprendizado Reforçado: Entendendo os Princípios Básicos e um Demonstração de Jogo da Velha O estado olha para o recompensa. Normalmente, ele começa verificando se recebeu uma recompensa por qualquer ação que acabou de executar. Se sim, continua. Se não, ele olha para o estado e volta. Se lembrar do que aprendeu sobre a política, a política é aquela parte conectada no fundo. Então ele olha para ela e diz, "Qual é uma boa ação que provavelmente será semelhante a o que eu fiz, ou às vezes são totalmente aleatórias, mas qual é uma boa ação que vai me trazer uma recompensa diferente? " Então, entender esses diferentes pedaços enquanto vai é importante em maioria dos modelos atuais. Alguns deles, na verdade, tem plantilhas baseadas nisso, que você pode incorporar e começar a usar. Em resumo, no aprendizado reforçado, um agente interage com seu ambiente tomando ações e recebendo recompensas. O objetivo do agente é aprender uma política que mapeia estados para a próxima melhor ação, maximizando a recompensa acumulada ao longo do tempo. Consideremos um diagrama (Sean) onde encontramos o caminho mais curto entre o nó A e D. Cada caminho tem uma recompensa associada a ele, e o caminho com a maior recompensa é o que queremos escolher. Os nós para se deslocar de A para B, C e D representam esses caminhos. A ação, recompensa, política e ambiente são os componentes-chave envolvidos no aprendizado reforçado. ```markdown A B C D ``` - Ação: As ações que o agente pode tomar para se deslocar entre nós. - Recompensa: O custo ou pontos associados a cada caminho. - Política: O caminho tomado pelo agente. - Ambiente: Os estados e transições que o agente experimenta durante sua interação com o ambiente. ## Demonstração de Jogo da Velha de Aprendizado Reforçado Para este exemplo, usaremos o aprendizado reforçado para criar um jogo da velha. Você jogará contra o modelo de Aprendizado de Máquina, e isso será feito em Python. Para começar, abra o Anaconda, e vamos abrir um bloco de notas do Jupyter. Crie uma nova pasta para o projeto, nomeie-a **Jogo da Velha**, e importe algumas bibliotecas necessárias: `numpy` e `pickle`. ```python import numpy as np import pickle ``` Agora, crie uma classe `State` para gerenciar o tabuleiro e outras informações relevantes: ```python class State: # Inicialize a classe com um tabuleiro de Jogo da Velha, jogador1 e jogador2, hash do tabuleiro, e símbolo para o jogador def __init__(self): self. board = np. zeros((3, 3)) self. player = 1 self. board_hash = self. get_board_hash() self. winner = -1 # . . . (outros métodos omitidos) ``` Na função `get_board_hash()`, gere um hash para o tabuleiro de Jogo da Velha. Isso ajudará a identificar os vencedores e as posições disponíveis. ```python def get_board_hash(self): # Gerar e retornar o hash do tabuleiro de Jogo da Velha baseado nas colunas, linhas, e diagonais. pass ``` Para determinar se há um venced # Informação do Tabuleiro e Ações Esta seção discute a segunda parte importantíssima do assunto: a maneira como o agente escolhe uma ação com base na informação do tabuleiro. ## Aleatoriedade e Seleção de Ação Para adicionar uma quantidade de aleatoriedade ao processo de treinamento, usamos a função `NP random uniform`. Essa função escolhe um número e uma ação, selecionando uma linha e coluna aleatoriamente. ``` > Escolha da ação: > - Estados aleatórios > - comprimento das posições > - posição da posição ``` O agente mantém uma gravação dos tabuleiros que já foi encotrado, armazenando-os num hash estado. Isto permite que ele possa adequadamente pesar os valores e tomar decisões informadas. ## Feedback e Rewards O incentivo entra, e ele verifica se há um incentivo. A fórmula do incentivo é: ``` Reward * gamma de grau de desvio ``` Essa fórmula é aplicada em cada passo, e é critical, pois representa o coração do processo de aprendizado de reflexo. ## Treinamento dos Estados O objetivo é treinar os Estados para obter o maior número de pontos se o agente vencer e o primeiro passo receber o menor número de pontos. Este processo de treinamento é quase inverso, pois o agente soma os seus incentivos em ordem inversa para encontrar a resposta. ## Reiniciar o Tabuleiro e Salvar a Política Depois do processo de treinamento, o tabuleiro é reiniciado, e a política é salva. ## Criar um Jogador Humano Um jogador humano é criado, e ele escolhe uma ação com base nas posições disponíveis. Se a ação não é válida, o jogador humano é solicitado a tentar novamente até que uma ação válida seja escolhida. A ação escolhida é então anexada ao hash estado. ## Jogo de exemplo O exemplo de jogo demonstra um jogo simples de Tabuleiro de X e O. O agente é treinado por alguns arredos, e o jogador humano joga contra o agente treinado. ## Aprendizado Q O Aprendizado Q é uma política de aprendizado de reflexo que escolhe a próxima ação mais favorável baseada em um estado atual. O agente escolhe uma ação aleatoriamente e tenta maximizar o incentivo. ## Gráfico de aprendizado de reflexo padrão O gráfico de aprendizado de reflexo padrão consiste num agente, ambiente, ação, incentivo e estado. O agente faz uma ação, o que afeta o ambiente, e o ambiente retorna o incentivo ou retroalento, junto com o novo estado que o agente está em. ## Termos Importantes - Estados: A posição atual de um agente em um ambiente. - Ações: Passos feitos pelo agente quando ele está num estado específico. - Rewards: Incentivos positivos ou negativos para cada ação que o agente toma. - Episódios: Estados terminantes em que o agente não pode tomar uma nova ação. - Valores Q: Determinam como boa uma ação em um estado específico. - Fórmula de Diferença Temporal: Usada para encontrar o Valor Q usando o valor do estado e da ação atuais, e o estado e ação anteriores. - Equação de Bellman: Usada para determinar os valores de um estado específico. # Aprendizagem por Referência: Introdução Este documento resume as bases da Aprendizagem por Referência (Q Learning), um algoritmo de aprendizagem de reflexão popular. A Q Learning permite a um agente interagir com e aprender de um ambiente para tomar decisões informadas e encontrar o caminho ideal. ## Entendendo a Aprendizagem por Referência ### Fatores que influiem nos valores Q O estado atual e a ação tomada pelo agente têm um papel significativo. Isso é o estado atual e a ação que está sendo considerada. O estado passado e a ação (S prime) podem ser referenciados como um primeiro, mas sua referência específica não será explicitamente mencionada dependendo do contexto. Durante a sua análise, você tem um prêmio (R) para cada ação tomada, assim como o prêmio máximo esperado no futuro. Uma taxa de aprendizado e uma taxa de desconto também são considerados no modelo. Você deseja iterativamente melhorar a sua solução em vez de saltar para valores de solução finais absolutos, pois tal solução poderia não ser a melhor abordagem. ### Passos na Aprendizagem por Referência 1. **Inicialização**: Comece com uma tabela Q inicializada com todos os valores zerados. Unação a uma ação é escolhida e executada. 2. **Atualizações de Valores**: Atualize os valores na tabela com base na ação realizada. Quando uma ação é escolhida, um método aleatório é usado para selecionar aleatoriamente uma ação. 3. **Anexo de Prêmios**: Anexo prêmios a ações. Por exemplo, o valor Q da sentar seria calculado utilizando a equação de Bellman e o prêmio para sentar seria anexado a ele. 4. **Iteração**: Continue atualizando os valores Q para sentar, pegar, e correr até que a tabela esteja cheia ou um episódio termine. ### Setup de Seleção Aleatória O setup de seleção aleatória pode ser configurado de maneira diferente. Dependendo do modelo sendo usado, você pode usar a configuração padrão fornecida pelo modelo, pois alguém já puderia ter feito as contas para o espalhamento ótimo. Alternativamente, você pode usar formulas para selecionar ações mais prováveis de atingir prêmios mais altos. Ao ausência de um cálculo de média específico, você pode tomar a média dos prêmios e utilizar para seleção aleatória. ## Exemplo: Aprendizagem por Referência em Python Neste exemplo, vamos usar a Aprendizagem por Referência para encontrar o caminho mais curto entre dois pontos dados. Para começar a apostar em subsídios federais, apenas aprenda mais visitando `scale up` (Clique no link na descrição para aprender mais). Se já tiver visto meus vídeos antes, gosto de usar o Ambiente Jupyter do Anaconda Anaconda Notebook devido à sua facilidade de uso e demonstração bom. Aqui está como pode configurar: 1. Primeiro, baixe e instale o Anaconda: <https://www.anaconda.com/products/individual> 2. Crie um novo ambiente do Python 3: ```sh conda create -n myenv python=3. 6 ``` 3. Ative o ambiente: ```sh conda activate myenv ``` 4. Instale o Jupyter Notebook: ```sh conda install jupyter notebook ``` 5. Execute o Jupyter Notebook: ```sh jupyter notebook ``` 6. Abra o Jupyter Notebook e crie uma nova notebook do Python 3 chamada Aprendizado por Referência. 7. Importe as bibliotecas necessárias e defina o estado, ações e prêmios de acordo com seu caso específico. 8. Implemente o algoritmo de Aprendizagem por Referência em Python. Seguindo esses passos, você poderá começar com a Aprendizagem por Referência e descobrir o caminho mais curto para um problema determinado. *Lembre-se de corrigir quaisquer erros em pontuação, gramática e formatação de acordo com os padrões de escrita técnica. * # Técnica de Aprendizado Profundo - Demonstração ## Introdução ### O que é Aprendizado Profundo? O Aprendizado Profundo é um subconjunto de um conceito elevado chamado Inteligência Artificial. Você talvez tenha ouvido ou lido sobre o termo Inteligência Artificial pelo menos uma vez antes. A Inteligência Artificial é um conceito de alto nível se você estiver familiarizado com isso. Neste tutorial, vamos abordar a compreensão de Aprendizado Profundo, assim como seu ambiente de desenvolvimento em TensorFlow, mostrando-lhe um exemplo de Aprendizado Profundo. ### Aplicações Interessantes e Inovadoras da Aprendizagem Profunda Há muitas aplicações interessantes e inovadoras da Aprendizagem Profunda. Uma delas é a identificação da localização geográfica baseada em uma imagem, por exemplo: Se você tiver muitas imagens de locais históricos ou locais significativos e um banco de dados treinado com milhões de imagens marcadas com sua localização, o sistema será capaz de identificar a localização de uma imagem de novo, como mostramos acima com a imagem da Catedral de Notre Dame. Quando você alimentar uma nova imagem no sistema, ele será capaz de identificar a localização dela, independentemente se ela é uma imagem que você já treinou ou não. Isso é recomendado quando o sistema foi treinado com milhões de imagens rótuladas. Em resumo, por meio de uma rede neuronal treinada com milhões de imagens rótuladas, o aprendizado profundo é capaz de identificar a localização de uma imagem de novo. ## Como Funciona o Aprendizado Profundo ### Características do Aprendizado Profundo O Aprendizado Profundo, em comparação com o Aprendizado de Máquina tradicional, faz algumas coisas diferentes. A principal diferença do aprendizado profundo em relação ao aprendizado de máquina tradicional é que o Aprendizado Profundo usa redes neurais. Talvez você tenha ouvido falar de redes neurais antes. Se você não saber mais, uma rede neuronal é baseada nas células neurais do cérebro humano. O sistema nervoso humano é composto por bilhões de neurônios e todas as coisas que fazemos começam por algum nível de atividade de neurônios. Vou mostrar-lhe como redes neurais são usadas para fazer Aprendizado Profundo. Outra grande diferença é que a feature extraction (extração de características) é feita de forma auto-madura no Aprendizado Profundo. Cada vez pelo menos, você deve ter ouvido falar da técnica da Feature Extraction no Aprendizado de Máquina. Isso é uma técnica eficiente, em que é necessário extrair características relevantes usando técnicas manual ou mecanismos de aprendizagem baseados em treinamento para identificar características cryptic celestes para melhorar as chances do aprendizado do conjunto de dados de treinamento. Já no Aprendizado Profundo, isso acontece de forma natural. O sistema aprende automaticamente as características úteis de um modelo sem precisar extrair as características. O entendimento automático de características, que é maravilhoso, libera os desenvolvedores de ter que descobrir as melhores características do seu modelo. Vou apresentar várias tecnologias e modelos de aprendizado profundo diferentes que podem ser usados para vários diferentes propósitos, um deles também usado para identificar características celestes de estrelas, como constelações, Vogues, distâncias entre estrelas, por exemplo. Para obter resultados melhores, os dados de treinamento devem ter um tamanho elevado e devem conter informações complexas, como uma grande quantidade de imagens muito altamente estruturadas, disposições mais complexas de uma constelação, onde os pontos de estrelas são distribuídos de forma irregular. Em geral, se o tamanho dos locais para se treinar for pequenos no primeiro lugar, os modelos apenas vão copiar os limites dos maiores tamanhos e as experiências serão realizadas seus. Agora que você entendeu mais a fundo as diferentes técnicas de que o Aprendizado Profundo e como elas funcionam, podemos começar a demonstrar um exemplo. ```markdown Você aprenderá a fazer: 1. Nosso objetivo: Definir a rota mais curta entre L9 e L1 2. Criar uma definição para a rota ótima 3. Escrever um algoritmo simples para achar a rota e encontrar a rota ótima 4. Explicar como o método Q-Learning pode ser usado para encontrar a rota ``` Os exemplos a seguir demonstram uma técnica eficiente chamada `Q-Learning` para encontrar a rota ótima. Em particular, consideremos um espaço 2D onde existem obstáculos (que podem ser bloqueios ou interruptores). Neste espaço que está dividido em quadras `L`, nosso objetivo é encontrar o caminho mais curto de uma quadra `L9` para `L1`. Para resolver este problema usamos o método `Q-Learning`. ## O método Q-Learning ### Definição da Tabela de Q e Agente Q A solução para o nosso problema consistirá em visitar custos para chegar de cada `L` para L. A tabela `Q(s, a)` é definida para cada posição <i>s</i> no espaço de Ladrões (`L`s), em que <tt>s</tt> é o Estado atual, e <tt>a</tt> é a ação disponível. Essa tabela será construída gradualmente durante a solução do problema. Uma vez que estamos abordando o problema lentamente pela primeira vez, a solução gradual será mais fácil de tolerar. Uma vez que criada a tabela Q, o nossa Agente Q pode ser utilizado para chegar de uma quadra `L9` para `L1` utilizando a melhor rota. observe que solução gradual é necessário para que nas Q(s, a) estime se a solução terminar, pois o Agente Q descobre apenas a melhor rota quando o aprendizado está concluído. Abaixo segue um exemplo do Q-Learning utilizando uma definição que o falaríamos mais a frente: ```markdown ## Estrutura do Algoritmo de Q-Learning ### Somário dos 5 passos do Algoritmo de Q-Learning 1. Inicialização * Defina valores iniciais para Q(s, a) a um valor arbitrário muito grande. O máximo Q(s, a) = 1. 0 para todas as posições. * Escolha um parâmetro gamma (0 < gamma < 1), que determina quanto valores foras dos recompensas sãoPreviousmente valorados. Comuns valores são gamma = 0, 9 e gamma = 0, 99. 2. Loop Principal - para t=1 até um número de episódios * Inicializa o estado atual do agente no estado inicial (por exemplo, L9). * Em cada episódio, o agente * Para cada passo, o agente * Escolha uma ação (a) baseado no estado atual, usando uma abordagem de Exploração- Exploitação. * Escolha uma ação simplesmente baseada nos valores estimados de Q-value da iteração anterior, usando o algoritmo de escolha Greedy. * Tome a próxima posição (s') baseado na ação (a) no estado atual (s). * Atualize a estimativa do Q-value com a ação selecionada e recompensa. * Atualize a estimativa do Q-value com a Equação (1) e os novos valores de Q(s', a) para s' usando a mesma fórmula. * Se o agente chegar no estado final, reinicialize o estado. 3. Rewards Ajustados * O agente experimenta certas penas e recompensas em cada estado. É importante parâmetrizar as recompensas e penas de modo que a rota ótima seja intuitiva. 4. Bonus - Recompensa Aumenta * Quando o estado final é atingido, uma certa bonus é acrescentada às estimativas do Q-value para acelerar a descoberta da rota ótima. Uma abordagem é ajustar os aumentos Q-value para vários valores fixos através da tabela de Q-value. Ajustar os aumentos nos valores diferencialmente através da tabela de Q-value também pode acelerar a aprendizagem. 5. Convergência suave * O algoritmo de Q-Learning é propenso a oscilações. Isso pode ser resolvido utilizando-se em média estimativas dos valores de Q-value a cada passo. Uma opção é manter uma média em andamento durante cada episódio e então substituir a tabela de Q-value pela tabela em andamento ao final de cada episódio. ``` Vamos passar hoje a demonstrar exemplo da implementação de Q-Learning, exibindo os detalhes necessários. Para implementar o Q-Learning, utilizamos de três fórmulas: 1. Define uma maneira de desconsertar as probabilidades da escolha das ações em função das estímulas de Q-value da iteração anterior. 2. Calcula a estimação atual do Q-value com as estímulas de Q-value calculadas pelo método 1 e valor de recompensa atual. 3. Atualiza as estímulas de Q-value em função das estímulas de Q-value atuais e estados resultantes. ### Algoritmo Q-Learning Para implementar o Q-Learning, precisamos definir as seguintes coisas: - A área de trabalho (Working Space) que irá utilizar em memória para armazenar as tabelas. - Inicie o valor de Q com um valor arbitrário de modo a deixar o Agente Q longe do primeiro passo. - Defina a constante `epsilon`. - Defina o critério de fim do procedimento, ou seja, quando parar de aprender novas coisas. ```python import numpy as np # Constants ALPHA_RETURN = 0. 8 ALPHA_MATRIX = 0. 5 GAMMA = 0. 9 epsilon = 0. 1 # Initialize Q table with arbitrary large values Q = np. ones((Nx, Ny)) * (1. 0) # Step 1: Choose a value of epsilon # Next we need to determine when to stop learning e = int(np. ceil(epsilon * Nx * Ny)) # Step 2A: Define probability of choosing best action def best_action(state): global Q if np. max(Q[state]) - np. min(Q[state]) > 0. 0: return np. argmax(Q[state]) else: return np. random. randint(0, A) # Step 2B: Choose an action based on estimates of Q-values def choose_action(state): if np. random. uniform(0, 1) < epsilon: return best_action(state) else: return np. random. randint(0, A) ---------- # Continue with the rest of the code ``` Agora podemos implementar o loop secundário do Q-Learning, utilizando as simples funções anteriores, juntamente com a fórmula para atualizar as estímulas de Q-value em fontes e matrizes. ### Agente Q Agora podemos escrever o código para alguns algoritmos simples e simples funções para o Agente Q. O Agente Q irá percorrer o espaço de Ladrões, definido como uma matriz através dos modos de estruturas condicionais. ```python def q_learning_agent(): state = start_state wins = 0 j = 1 while True: action = choose_action(state) next_state, reward = play_one_game(action, state) if reward == -1: state = start_state continue wins += 1 if wins == e: return True Q[state, action] += ALPHA_RETURN * (reward + GAMMA * np. max(Q[next_state]) - Q[state, action]) if np. max(Q[next_state]) > Q[state, best_action(state)]: Q[state, best_action(state)] = Q[next_state, best_action(next_state)] state = next_state j += 1 ``` - Este código é um pedaço simples de código que pode ser modificado rapidamente para continuar o trabalho. Em particular, para acrescentar um gráfico para ilustrar a trilha encontrada e outras funcionalidades. - Para finalizar, o código de Q-Learning permitido acima também pode ser modificado, por exemplo, para dar seu tempo, para set-up do ponto penalização baseado em estados, melhorar o critério de escolha de probabilidades de Ação, como a desconfiança de pi-sqrt(n) ou outra técnica, mas já é possível ver como iniciar. ### Quem participa - Definições de gerenciadores e funções auxiliares. 1. Define uma maneira de desconsertar as probabilidades de escolha das ações para que possamos personalizar de acordo com as nossas necessidades. 2. Definição de um método eficiente de inicialização e armazenamento para os Estados e Ações. - O Agente Q é definido em Python com explicações adicionais para gaguejar a ideia do código. - Trilha descoberta e representação diagramática das trilhas. ## Resultados O ambiente é um diametro de 60 'de largura e altura a 100px. Aqui está um gráfico rápido para demonstrar o progresso em termos de otimizaçaõ da Q-table e o erro, bem como a rota encontrada mais curta. Parece que a redução do erro é escalonada lentamente conforme o tempo passa, mas a redução do erro é muito lenta ao iniciar o treino, função do conhecimento sobre o clima desconhecido de nossos problemas. Pode ser observado que é possível destacar um tipo de limite superior próximo a zero, que corresponde à rota encontrada mais curta até aquele momento. É possível que, uma vez que o objeto seja encontrar a melhor rota possível, podamos nos sentir satisfeitos. Porém, é mais interessante pensar em várias outras rotas que também podem ser encontradas a partir da melhor rota já conhecida. Como primeira tarefa, podemos calcular as rotas seguintes todas que começam no estado inicial: ```graphviz digraph G { # Pesos e Bias: O Processo de Treinamento de um Neurônio ou Rede Neural (Aprendizagem de Percepçâo) Este conceito é conhecido como **Aprendizagem de Percepçao**, que é um dos processos de aprendizagem básico. A funcionação do mesmo é como se segue: - Você tem vários entradas, `X1` a `xn`. Cada uma dessas entradas é multiplicada por um peso (`w`). - A soma dos produtos (`∑ wi xi`) é acumulada e um bias (`b`) é adicionado a isso. **Fórmula/Equação: ** ``` ∑ wi xi + b ``` - Esta somatória é passada para uma função de ativação como mostrado a seguir: ``` ativação_funcion(∑ wi xi + b) ``` - Com base no resultado obtido pela função de ativação, o neurônio é acionado ou não. Isso resulta numa saída. - A saída é comparada com o valor real ou esperado, que também é conhecido como **informação etiquetada**. - Este processo é uma forma de **aprendizado supervisionado** devido ao fato de a saída já estar conhecida e comparada. **Minimização do Erro: ** - Se houver um erro, há feedback e os pesos e as bioses são atualizados conforme compatível até o erro ser reduzido ao mínimo. - Este processo iterativo de atualização dos pesos e da bia é denominado **Aprendizagem de Percepçao** ou **Regra de Aprendizagem de Percepçao**. - O objetivo é atualizar os pesos e a bia do perceptron até que o erro seja minimizado. O erro pode não atingir zero, mas a ideia é manter alterando esses pesos e bia de modo que o erro seja o mais pequeno possível. **História: ** - Em 1943, dois cientistas, Warren McCullouch e Walter Pitts, fizeram uma experiência em que implementaram funções lógicas como "e", "ou" e "não" usando neurônios. **Implementação de Porta Lógica NAND: ** A Porta Lógica NAND funciona de maneira similar: - O saída deve ser disparada quando ambos os entrada são 1. - Por exemplo, se os entradas A e B são 0, o resultado deve ser 0. Para 0 e 1, é novamente 0, e para 1 e 1, o resultado deve ser 0. - Isso pode ser realizado usando um único neurônio ao aplicar pesos apropriados. **Implementação de Porta Lógica band: ** - A saída será 1 se uma das entradas for 1. - Por exemplo, 0 e 1 resultarão em 1. A saída é 1 nesses casos exceto o zero zero. - Isso pode ser implementado usando um único neurônio com pesos apropriados. **Implementação de Porta Lógica XOR: ** - Uma Porta Lógica XOR foi difícil de implementar usando um único nível de Perceptron, então foi implementada usando uma Rede Perceptron Multi-nível ou RPM (Rede Perceptron Multi-nível). **Rede Neural: ** - Uma rede neural é uma rede de neurônios, e existem diferentes tipos de redes neurais, incluindo redes neurais artificiais, redes neurais convolutivas (CNN), redes neurais recursivas (RNN), redes neurais profundas e redes de crença profundas. - Cada rede tem características específicas e pode resolver problemas específicos: * Redes neurais artificiais: solução de problemas gerais * Redes neurais convolutivas: processamento e reconhecimento de imagens * Redes neurais recursivas (RNN): reconhecimento de fala e análise de texto * Redes neurais profundas: capaz de aprender padrões complexos * Redes de crença profundas: usadas para tarefas de aprendizado não supervisionados **Aplicações do Aprendizado Profundo: ** - **Jogos: ** O Aprendizado Profundo é amplamente utilizado em jogos, com a IA AlphaGo, desenvolvida pela DeepMind, derrotando campeões humanos mundiais de jogos como Go. - **Rede Adversarial Gerativa (GAN): ** Pode ser usado para a síntese de imagens, música ou texto. - **Carros Autônomos: ** A Google, e outras empresas automotivas usam o Aprendizado Profundo para reconhecer condições de trânsito, marcas de calçadas, sinais, objetos, obstruções e muito mais. - **Robôs: ** O Aprendizado Profundo é a tecnologia subjacente na maioria de robôs humanoides, como Sophia, que foi concedido a cidadania pela Arábia Saudita. - **Diagnóstico Médico e Saúde: ** O Aprendizado Profundo é amplamente utilizado em diagnósticos médicos para tarefas como detecção de câncer e reconhecimento de imagens. A carga do trabalho dos especialistas pode ser reduzida ao treinar redes neurais para realizar essas atividades. **Trabalhos de uma Rede Neural: ** - Uma rede neural pode ser treinada para identificar imagens de quadrados, circuitos e triângulos. - Cada imagem é feita de informação digital de pixels, que têm determinados valores que representam como as pixels estão acesos. - A imagem pode ser coordenados em uma sequência de pixels, que podem ser alimentados como entrada para a rede neural. - A rede neural pode consistir de várias camadas escondidas, uma camada de entrada e uma camada de saída. - Durante o processo de treino, os pesos e bioses desses neurônios são ajustados em função do feedback até que o erro seja minimizado. **Referências: ** - [Perceptron - Wikipedia](https://en.wikipedia.org/wiki/Perceptron) - [Rede Neural (Artificial Neural Network) - Machine Learning Mastery](https://machinelearningmastery.com/artificial-neural-network/) - [Aprendizagem de Profundo - Google AI](https://ai.google/research/deep-learning) # Processo de Treinamento de Rede Neural e Função de Ativação Esta seção discutirá o processo de treinamento de rede neural e o papel das funções de ativação. ## Mecanismo de Ajuste Quadrado A rede neural é capaz de identificar que esse é um quadrado – o todo o mecanismo de ajuste que ocorre ali. Vamos tecnir-nos um pouco com uma círculo. A mesma ideia se aplica – você fornece estas 784 pixels. Existe um padrão específico de como os pixels são acesos, e a rede neural é treinada para identificar este padrão. Durante o processo de treinamento, ela inicialmente identificará erradamente, dizendo ser um quadrado ou espera-se um triângulo. A informação de erro é refeedback, e os pesos e a lossmas são ajustados até que finalmente ele consiga a imagem certa. Esse é o processo de treinamento. Agora, vamos tentar uma triangulo. Você fornece outra imagem que consiste num triângulo. Isso é o processo de treinamento. Aqui, nós treinamos a nossa rede neural para classificar estas imagens em triângulo, circulo ou quadrado. Com isso, esta rede neural só agora identificará estes três tipos de objetos. Ao fornecer outra imagem ela poderá identificar se é um quadrado, um triângulo ou uma circular. É importante observar que, quando se fornecer uma nova imagem, não é necessário que a imagem, ou o triângulo, esteja exatamente em posição. A rede neural, de fato, reconhece os padrões. Mesmo se o triângulo estiver, por exemplo, situado num canto ou na lateral, ela ainda o reconhecerá como um triângulo. Isso é a ideia por trás do reconhecimento de padrões. ## Processo de Treinamento Esta seção fornece uma visão rápida do como o processo de treinamento funciona. Um neurônio contém entradas, que recebem os inputs, e em seguida há uma soma, pesada, que é nada mais do que a soma ponderada x_i * w_i destas entrados mais a função de barramento. Isto dá-nós uma saída. Durante o processo de treinamento, inicialmente, quando se fornecem estas imagens, a rede neural os identificará incorretamente (um quadrado será identificado como um triângulo, e antecipo), e assim a informação de erro é refeedback. Os pesos e barramentos são aleatórios inicialmente e possuem valores aleatórios, e eles mudarão gradualmente como parte do processo de treinamento. A ideia é ajustar estes pesos (W1, W2, . . . , WN) ao fim do processo de treinamento de modo que possa identificar estas imagens corretamente. A ideia dos ajustes é conhecida como o processo de treinamento. Estes pesos são valores numéricos (por exemplo, 0, 5, 0, 25, 0, 35, etc. ) – eles podem ser positivos ou negativos – e o valor que aparece aqui é o valor do pixel, como vimos, que pode ser qualquer coisa entre 0 e 1 ou 0 e 256, dependendo da escala. Em adição aos pesos, cada neurônio possui um barramento. O barramento também é um valor numérico, mas não muda com o inputs. Por outro lado, os pesos são diferentes para cada entrada. ### Rede Neural Multicamada Esta seção discute uma rede neural multicamada. Numa rede neural multicamada, há várias camadas ocultas, e valores da camada de entrada vêm da camada de entrada. Estes valores então passam por várias camadas ocultas e acabam por chegar à camada de saída. Cada camada contém pesos e barramentos para cada um de seus neurônios, e todos eles mudam contínuamente durante o processo de treinamento. Após o término do treinamento, todos estes pesos terão um valor determinado, e estas valores serão fixos paraquela camada neuronal. ## Função de Ativação Uma rede neural possui uma função de ativação, e cada neurônio contém uma função de ativação. Existem diferentes tipos de funções de ativação utilizadas (por exemplo, relu, sigmoid, etc. ). A função de ativação decide se um neurônio deve ser ativado ou não – isto é, se a saída deve ser 0 ou 1. A função de ativação toma o input, que é a soma pesada como entrada e então produz um 0 ou um 1 como saída. Existem diferentes tipos de funções de ativação, e elas são discutidas num vídeo anteriror, o qual você quiser assistir. Durante o processo de treinamento, podemos fornecer os inputs (dados de rotulagem ou dados de treinamento), o que dá uma saída – a saída previsível pela rede, que indicamos como y-hat. Aqui, nós utilizamos aprendizado supervisionado, e já sabemos o que o resultado deveria ser, assim este é o resultado real. No processo inicial antes do treinamento estiver completado, haverá um erro medido pela função de custo. O erro é a diferença entre o resultado previsível e o resultado real, e a função de custo pode ser definida de diferentes formas – uma das maneiras mais comum é o erro médio dos quadrados, também conhecido como Sua das Soma de Erro Quadrado (SSE). Esse erro é refeedback no que é conhecido como propagação retroativa ou backpropagação, o que ajuda a rede ajustar os pesos e barramentos, e eles mudam até que o valor de erro ou a função de custo seja mínimizado. Há uma técnica de optimização usada conhecida como gradient descent de ottimização, que pretende minimizar o erro ao ajustar os pesos e barramentos na direção certa. É importante achar o valor otimo da taxa de aprendizagem para o gradient descent, pois uma taxa de aprendizagem alta pode causar a optimização a não convergir, e uma taxa de aprendizagem baixa pode levar muito tempo a convergir. # TensorFlow: Plataforma de Aprendizagem Profunda Popular TensorFlow é uma das plataformas de aprendizagem profunda ou bibliotecas mais populares disponíveis atualmente. Ela é de código aberto, desenvolvida e manutenida pela Google. Uma das coisas mais importantes sobre TensorFlow é que ele pode executar em CPUs (Central Processing Units) assim como em GPUs (Graphical Processing Units). GPUs (Unidades de Processamento gráfico) são estruturas semelhantes aos CPUs (Centrais de Processamento), mas são particularmente boas para atividades computacionais e na aprendizagem profunda há uma grande quantidade de operações iterativas que acontecem. No formato de multiplicação de matrizes e assim por diante, os GPUs são muito adequados para estas atividades computacionais. O TensorFlow suporta tanto GPUs quanto CPUs. Existe uma certa forma de escrever código em TensorFlow e veremos mais detalhes disso como nos aprofundamos no núcleo. O TensorFlow pode ser utilizado para aprendizado de máquina tradicional também, mas isso pode ser um sobrecarrego para tal propósito. No entanto, é uma boa ideia começar a escrever código para um uso de aprendizado de máquina normal para aprender como o código em TensorFlow funciona, e depois você pode mover-se para redes neurais. Neste Tutorial, vamos tomar o caso da reconhecimento de dígitos escritos à mão. Isso é como um "Olá, Mundo" em aprendizagem profunda e é uma boa base de dados MNIST que possui imagens de dígitos escritos à mão, formatas de forma boa porque muitas vezes em aprendizagem profunda e redes neurais acabamos gastando muito tempo preparando os dados para o treinamento. Com a base de dados MNIST, podemos evitar isso, porque já temos os dados formatados de forma que pode ser usado diretamente para treino. MNIST também oferece uma variedade de funções utilitárias construídas in nativo que podemos chamar diretamente sem precisar escrever nossas próprias funções. É um dos motivos pelos quais a base de dados MNIST é muito popular para fins de treinamento, particularmente quando as pessoas querem aprender sobre aprendizagem profunda e TensorFlow pela primeira vez. É uma coleção de 70, 000 dígitos escritos à mão. Uma grande parte deles é para treino, e você tem testes, igual em qualquer processo de aprendizagem de máquina e depois você tem validação. Todos eles são rotulados, então você tem as imagens e suas respectivas rotulaciones. Estas imagens apresentam características algo assim: ! [Dígitos escritos à mão](https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/Mnist_sample.png/800px-Mnist_sample.png) A forma como implementaremos isso em nosso TensorFlow é alimentando este dado, especialmente o dado de treino, juntamente com a informação de etiqueta. Os dados são basicamente estas imagens armazenadas em informação de pixel, como vimos em um dos slides anteriores, e todas as imagens são Nothing but arrangements de pixels. O valor do pixel é lit up ou não, ou algura entre, assim as imagens são armazenadas, e deixa-se assim que são alimentadas para a rede neural. Para o treino, quando a rede é treinada, quando você fornecer uma nova imagem, ela será capaz de indentificar dentro de um determinado erro, de alguns motivos. Usaremos uma configuração de rede neural mais simples, chamada camada de ativação suave. Por simplicidade, o que fazemos é planar estes pixels, em vez de matriciar en manera bidimensional, que flattenamos diretamente. Por exemplo, ele começa aqui, é um 28x28, então há 784 pixels, então o pixel número um começa aqui e vai até 28, depois 29 começa aqui e vai até 56, e assim por diante. O pixel número 784 está aqui. As pegamos todos estes pixels, planos SEM uma dimensão e os alimentamos como uma única linha para nossa rede neural, e é isso que é conhecido como camada de ativação suave. Quando é treinado, será capaz de identificar qual o dígito é. Assim, nesta camada de saída existe 10 neurônios, cada um significando o dígito. A cada parte do tempo em que alimentamos uma imagem, apenas um destes 10 neurônios é ativado. Por exemplo, quando está treinado corretamente, ela identifica um número nove semelhante a: ! [Camada suave de exemplo](https://i.imgur.com/tA67JU4.png) Esta é uma camada ou uma função de ativação conhecido como a camada de ativação suave. É uma camada de ativação simples e fácil para o entendimento rápido feito de uma apresentação curta. Assim, é assim que o código odeve dar para: ```python import tensorflow as tf from tensorflow. examples. tutorials. mnist import input_data mnist = input_data. read_data_sets("MNIST_data/", one_hot=True) X = tf. placeholder(tf. float32, shape=[None, 784]) y = tf. placeholder(tf. float32, shape=[None, 10]) W = tf. Variable(tf. zeros([784, 10])) b = tf. Variable(tf. zeros([10])) layer = tf. add_activation(tf. mat_mul(X, W), b, activation_fn=tf. nn. softmax) loss = tf. reduce_mean(tf. nn. softmax_cross_entropy_with_logits(logits=layer, labels=y)) optimizer = tf. train. GradientDescentOptimizer(learning_rate=0. 001). minimize(loss) sess = tf. Session() sess. run(tf. global_variables_initializer()) for i in range(1000): X_batch, y_batch = mnist. train. next_batch(100) sess. run(optimizer, feed_dict={X: X_batch, y: y_batch}) ``` Neste código: 1. Primeiramente, importamos a biblioteca TensorFlow, que é o núcleo do nossa plataforma de aprendizagem profunda. 2. Importamos a base de dados MNIST, que é uma base de dados para dígitos escritos à mão. Nós modificamos ligeiramente a importação de arquivos, então que os rótulos estejam em um formato "true and hot one". Isso significa que a informação de rotulo é armazenada como um arranjo. 3. Criamos placeholders `X` e `y` para a entrada de dados e rótulos, respectivamente. 4. Definimos uma variável TensorFlow `W` para os pesos e `b` para os biós. 5. Criamos a camada usando a função add_activation do TensorFlow, que aplica o softmax de ativação para a saída da multiplicação matricial entre `X` e `W`. 6. Definimos a função de perda usando a softmax cross-entropy com logits fornecido pelo TensorFlow. 7. Definimos o optimizador como o optimizador de descida de gradiente, que minimizará nossa perda. 8. Inicializamos as variáveis e iniciamos a sessão tensorial. 9. Finalmente, treinamos o modelo alimentando-o com batches de dados para a rede e minimizando a perda por 1000 iterações. E experiéncia é isto! Este é uma introdução simples ao TensorFlow, com a foco no uso para classificação de imagem e na popular base de dados MNIST. Conforme você segue este tutorial, deveria ter uma ideia de como configurar um modelo de aprendizagem profunda básico usando TensorFlow. Boa sorte com sua jornada em aprendizagem profunda! # Redução do Erro e Uso do Optimizador no Aprendizado Profundo ## Introdução Neste tutorial, discutiremos a redução de erro ao usar um Optimizador, e o Optimizador que utilizaremos. Em um tutorial anterior, discutimos este Optimizador em alguns diapositivas anteriores, e para usá-lo, você precisará especificar a taxa de aprendizagem. Você pode lembrar que esteve em um diapo similar e em seguida definir o que a taxa de aprendizagem deve ser. Isso também precisa ser testado e tentado para encontrar o nível ótimo desta taxa de aprendizagem. - Não deve ser muito alto, no caso, não vai convergir. - Não deve ser muito baixo, porque vai demorar muito. Ao definir o Optimizador, você chama o método chamado `minimize()` para esse Optimizador, e isso vai iniciar o processo de treino. Até agora, estávamos criando o gráfico, e para realmente executá-lo, criamos o que é conhecido como uma `Sessão`. Em seguida, executámos essa Sessão. Quando o treino for concluído, especificamos quantas vezes (ou iterações) queremos executar, como neste caso, dizemos 1000 passos. Isso serve de estratégia de saída no sentido de que o treino vai rodar durante 1000 iterações, e quando estiver concluído, podemos avaliar o modelo com algumas técnicas mostradas aqui. Vamos entrar em código rapidamente e ver como isso funciona. ## Código Este é o código de nossa aula de Aprendizado Profundo e este é nosso ambiente de TensorFlow. Vejamos onde começar. - Você já viu um passo a passo do código em alguns slides anteriores também. Agora você verá o código em ação. - A primeira coisa que precisamos fazer é importar TensorFlow e então importarmos os dados. - Precisamos ajustar os dados de tal forma que o one-hot encoding seja definido como `True`. O one-hot encoding foi explicado anteriormente, então no caso, as valores do rótulo serão apresentados adequadamente. - Se simplesmente verificar o tipo do dado, podemos ver que isto é um `Dataset` do Python `Dataset`, e se verificar o número de imagens, podemos ver que há 55. 000 imagens de treinamento, 10. 000 imagens de teste e 5. 000 imagens de validação. - Vejamos um pouco as imagens elas mesmas, então usaremos `matplotlib` neste caso. Se olharmos a forma, agora a forma fornece dimensões das tensores ou matrizes. No caso, o dataset de treino, se observar o tamanho do dataset de treino ao usar o método de forma, diz que há 55. 000 e 50. 000 a 784. Lembre-se que o 784 é nada mais que os 28 por 28, depois dividido por 28 para obter o total de 784. - Isso mostra agora podemos tomarmos uma imagem aleatória e ver o formato da primeira imagem. Novamente, o tamanho claro é somente 784. De uma maneira similar, você pode olhar para a própria imagem, dados da primeira imagem. Isso mostra grande parte dela, provavelmente serão zeros por que, se imaginar, apenas alguns locais são escritos, o resto é em branco. Por isso, você vai frequentemente ver zeros, então isto é preto ou branco. Porém, há esses valores, então os # Tutorial do TensorFlow Object Detection API ## Visão geral Neste tutorial, iremos passar pelo código do TensorFlow para realizar deteção de objetos em um vídeo. Aqui está uma visão geral dos passos que seguiremos: 1. Importação de bibliotecas necessárias 2. Carregamento e pré-processing do modelo (SSD com MobileNet) 3. Mapeamento de números para texto para interpretação de saída 4. Carregamento e processamento do quadro do vídeo, quadro por quadro 5. Detecção de objetos nos quadros e anotação do vídeo ## Importação de bibliotecas ``` import numpy as np import imageio import time import fill import matplotlib. pyplot as plt import warnings ``` ## Preparação do modelo ``` warnings. filterwarnings('ignore') # Carregamento do modelo nome_arquivo_frozen = 'frozen_inference_graph. pb' detect_fn = tf. compat. v1. tensor_object_detection. load_inference_graph(nome_arquivo_frozen) Tensor_Imagem_Detectada = detect_fn. get_tensor_by_name('image_tensor: 0') Tensor_Boxes_Detectadas = detect_fn. get_tensor_by_name('detection_boxes: 0') Tensor_Classes_Detectadas = detect_fn. get_tensor_by_name('detection_classes: 0') Tensor_Pontuacoes_Detectadas = detect_fn. get_tensor_by_name('detection_scores: 0') num_classes = detect_fn. get_tamanho(detect_fn. get_tensor_by_name('num_classes: 0')) ``` ## Mapeamento de números para texto ``` caminho_para_mapa_label = 'caminho/para/labelmap. pbtxt' com arquivo (label_map_dict = {int(chave): valor para valor em linha. strip() para linha em f￼ f: linha em f￼ for linha em f}) ``` ## Carregamento e processamento do vídeo ``` nome_arquivo_video = 'traffic. mp4' fps_video = 10 Objetor_de_leitura_de_vídeo = imageio. get_reader(nome_arquivo_video, fps=fps_vídeo) Escriva_de_vídeo = imageio. get_writer(f'traffic_annotated. mp4', fps=fps_videovideo_fps) ``` ## Detecção de objetos nos quadros e anotação do vídeo ``` para _, frames em enumerar(Objetor_de_leitura_de_vídeo): frame_annotated = frames. copy() # Executar o mecanismo de detecção aqui # Receber saída como Tensor_Boxes_Detectadas, Tensor_Classes_Detectadas, Tensor_Pontuacoes_Detectadas # Marcar os objetos detectados no frame para box, class_id, score em zip(Tensor_Boxes_Detectadas, Tensor_Classes_Detectadas, Tensor_Pontuacoes_Detectadas): nome_classe = label_map_dict[class_id] id_classe = int(class_id) score = float(score) se score > 0. 7 e comprimento(box) == 4: x, y, w, h = box x, y, w, h = int(x), int(y), int(w), int(h) dx = int(w / 3) dy = int(h / 3) frame_annotated = anotar_retangulo(frame_annotated, (x, y, dx, dy), nome_classe) # Escrever o quadro marcado no escritor de vídeo Escrita_de_vídeo. write(frame_annotated) Escrita_de_vídeo. close() ``` ## Vídeo de Exemplo 1: Detecção de Carros Nesse vídeo de exemplo, temos carros passando. A nossa rede detectará cada carro e os marcará como carros. O vídeo usado é `traffic. mp4`. ## Vídeo de Exemplo 2: Detecção de Gatos Nesse vídeo de exemplo, podemos detectar gatos em um vídeo estático. Substitua 'traffic. mp4' pelo 'cat. mp4' na variável video_file para experimentar. # Tutorial sobre Redes Neurais Convolucionais (CNN) Aprenda a reconhecer objetos em uma imagem com a ajuda de uma Rede Neuronal Convolucional (CNN), um dos blocos centrais para a reconhecimento de imagens. Este tutorial abordará uma introdução à CNN, como funciona e uma implementação de caso de uso. ## Introdução Neste tutorial, abordaremos: 1. Reconhecimento de objetos em imagens com CNN 2. Entendendo as camadas individuais na rede neural convolucional 3. Uma implementação de caso de uso da CNN --- ## Básicas da CNN ### Camada de Entrada A camada de entrada aceita os pixels da imagem como entrada no formato de arrays. Cada bloco da imagem é marcado em diferentes arrays. Vamos divedir em detalhes sobre como essas matrizes são organizadas. ### Camadas Ocultas A camada oculta realiza a extração de características executando determinadas operações e manipulações. Esta parte reorganiza a imagem em várias maneiras até que obtemos dados que são fáceis de ler para a rede neural. ### Camada de Convolução A camada de convolução utiliza um filtro de matriz e realiza operações de convolução para detectar padrões na imagem. **Convolução** significa torcer ou twister, então torcemos os dados e alteramos para detectar novos padrões. #### Unidade Linear Rectificada (ReLU) **ReLU** é como se pronuncia esta função de ativação. Ela se refere à função de ativação que é utilizada na camada de convolução. #### Camada de Refrigeração A camada de refrigeração também utiliza vários filtros para detectar bordas, canto, olhos, penas, bico, etc. #### Camada de Pooling A camada de pooling identifica o objeto na imagem através de informações coletadas. Vamos dar mais detalhes sobre isso. --- ## A CNN Reconhece Imagens ### Representação de Imagens Cada imagem é representada no formato de arrays de valores de pixel. **Aqui está um exemplo com uma imagem de dois tipos de flores: Orquídea e Rosa. ** Essas flores entrarão na camada de entrada, e os dados então serão enviados para todos os diferentes nós na próxima camada baseados em seus pesos. --- ## Operações Convolucionais Para entender a rede neural convolucional e a operação de convolução, vamos fazer um passo à parte e olhar para matrizes. ### Matrizes Originais Consideremos duas matrizes A e B de uma dimensão: ``` A = [5 3 7 5] B = [1 2 3] ``` Na operação de convolução, examinamos estas duas matrizes e começamos por multiplicá-las elemento a elemento. ### Resultados da Convolução Multiplicamos os arrays elemento a elemento e obtemos: ``` 5*1 = 5, 3*2 = 6, 7*3 = 21, 5*3 = 15 ``` Pois as duas matrizes não são do mesmo tamanho, apenas cortaremos a primeira e examinaremos apenas o segundo array multiplicado pelos primeiros três elementos da primeira matriz. Isso nos dá: ``` 5 + 6 + 21 = 32 ``` **Na nossa matriz a * B, o primeiro dígito do produto é 32. ** Agora temos 3, 2, 5. Movemos um conjunto para a frente e tomamos 3, 2, 5 e # Rede Neural de Convolução (CNN) para Classificação de Imagem Este guia descreve o processo de uso de uma Rede Neural de Convolução (CNN) para a classificação de imagens. O objetivo desta CNN é reduzir imagens maiores, identificar recursos essenciais e classificar essas imagens em categorias. ## Matriz Bidimensional e Filtro Começamos com nossa matriz bidimensional representando a imagem de entrada. Tomamos nossa matriz-filtro (normalmente uma pequena matriz) e multiplicamos pela parte superior esquerda da imagem. Aqui está um exemplo da operação. Você pode ver a multiplicação de um e zeros, e o recurso convolado resultante, que é 4. ``` Filtro: 1 1 0 1 1 Matriz: 1 0 1 0 Produto: 1*1 + 1*0 + 0*0 + 1*0 + 1*1 = 2 1*1 + 0*0 + 1*0 + 1*0 + 1*0 = 2 0*0 + 0*0 + 0*0 + 0*0 + 0*1 = 0 1*0 + 1*0 + 0*0 + 1*0 + 1*0 = 0 1*0 + 0*0 + 1*0 + 0*0 + 1*1 = 1 Soma: 2 + 2 + 0 + 0 + 1 = 5 Recurso Convolvecido: 5 ``` Continuamos deslizando a matriz de filtro sobre a imagem, computando o produto do ponto em todas as posições para detectar padrões. ## Camada ReLU (Unidade Linear Rectificada) Depois que os mapas de característica forem extraídos, a próxima etapa é mover-los para a camada ReLU (Unidade Linear Rectificada). A camada ReLU realiza uma operação por elemento, defina todos os píxeles negativos em zero e introduz non-linearidade na rede. ``` Entrada: [1, -2, 3, -4, 5] Saída: [1, 0, 3, 0, 5] ``` A camada ReLU ajuda a introduzir non-linearidade na rede, permitindo que ela reconheça padrões mais complexos. ## Camada de Amostragem A camada de Amostragem é uma operação de downsampling que reduz a dimensionalidade da camada de característica. Esta camada nos ajuda a lidar com quantidades maiores de dados e encontrar recursos importantes na imagem. Nosso exemplo utilizamos a amostragem máxima com um filtro de 2x2 e uma escala de 2. Matriz original de característica: ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ``` Matriz de Carácterísticas Max Amostradas: ``` 3 8 11 12 ``` ## Estrutura de uma Rede Neural de Convolução (CNN) A estrutura de uma CNN consiste em uma camada de imagem de entrada, camadas convolutivas, camadas ReLU, camadas de amostragem e uma camada de camada completa para classificação. Multiplicamos a matriz de entrada por filtros, passamos o resultado pela função de ativação ReLU e aplicamos a operação de amostragem para reduzir a dimensionalidade da camada de característica. Após obter uma versão plana, passamos esta informação para a camada de camada completa para classificação. # Usando Redes Neurais de Convolução (CNN) com o conjunto de dados CIFAR-10 Nesta seção, construiremos uma CNN usando o conjunto de dados CIFAR-10 para classificar imagens em 10 categorias. Veja [CIFAR-10 website](https://www.cs.toronto.edu/~kriz/cifar.html) para mais informações. ``` import tensorflow as tf from tensorflow. keras import layers # Defina a função de carregamento de dados (train_images, train_labels), (test_images, test_labels) = tf. keras. datasets. cifar10. load_data() # Normalize o dado train_images, test_images = train_images / 255. 0, test_images / 255. 0 # Defina uma função para construir o modelo def build_network(): model = tf. keras. Sequential([ layers. Conv2D(28, 3, strides=2, activation='relu', input_shape=(32, 32, 3)), layers. MaxPooling2D(pool_size=(2, 2)), layers. Conv2D(56, 3, strides=2, activation='relu'), layers. MaxPooling2D(pool_size=(2, 2)), layers. Conv2D(84, 3, strides=1, activation='relu'), layers. Flatten(), layers. Dense(256, activation='relu'), layers. Dense(10, activation='softmax') ]) return model # Construa e compila o modelo model = build_network() model. compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # Treine o modelo model. fit(train_images, train_labels, validation_data=(test_images, test_labels), epochs=10) # Avalie o modelo loss, accuracy = model. evaluate(test_images, test_labels) print("Precisão no teste: ", accuracy) ``` Este código definirá uma rede neural de convolução (CNN) simples que pode classificar imagens no conjunto de dados CIFAR-10. Neste modelo, temos camadas convolutivas, camadas de amostragem, uma camada densa e uma camada final de saída para classificação. O modelo é treinado por 10 épocas, e então a precisão no teste é avaliada. Entende-se a estrutura e componentes de redes neurais de convolução? Compreenda-as e crie modelos de deteção de objetos, segmentação de imagem e até mesmo reconhecimento facial! Prontas para soltar o poder de CNNs? use-o hoje mesmo e assista seus talentos em aprendizado de máquina soarem! ```markdown # Batch de Dados Um ============= Ao avaliar o texto e formatar de acordo com as regras especificadas, obtive o seguinte resultado: ```markdown Batch de Dados Um ============= Ao avaliar o texto e formatar de acordo com as regras especificadas, obtive o seguinte resultado: ``` Lembrar-nos rápido do que temos aqui, vamos apenas revisar as chaves para o Batch de Dados Um e lembrar o Jupyter Notebook. Para este exercício, podemos omitir a instrução print e apenas apresentar a variável para ver os dados. Nosso Batch de Dados Um, para as chaves, desde que seja um dicionário, temos o seguinte: - `batch_one_label`: etiquetas de dados para o batch um - `files_names`: nomes dos ficheiros para os dados neste batch ## Passo Quatro: Mostrar Imagens usando Matplotlib A mostra de imagens pode ser feita de muitas maneiras, mas para este exercício usaremos a biblioteca Matplotlib. É uma boa opção para este propósito e vamos também olhar nos nossos primeiros moldes de arranjos (formato dos dados) para que seja adaptável ao formato visual da biblioteca Matplotlib. ### Setup do Matplotlib Primeiro, importaremos o Matplotlib: ```python import matplotlib. pyplot as plt ``` Depois, `pi` é a canvas que vamos pintar as nossas imagens: ```python plt. ion() # Modo interativo habilitado plt. show() # Mostrar canvas ``` ### Arranjos de Dados Com 10 mil imagens de formato 32x32, vamos recolhê-los para um arranjo de forma seguinte: ```python data_batch_one = np. reshape(data_batch_one, (10000, 3, 32, 32)) ``` ## Passos seguintes Nos passos seguintes, vamos criar funções auxiliares e começar a construir nosso modelo de rede neural. ### OneHotEncoder Para ajudá-nos a processar os dados, vamos criar um OneHotEncoder personalizado: ```python class OneHotEncoder: def __init__(self, num_labels): self. num_labels = num_labels # Criar um array numpy de zeros com comprimento igual ao número de etiquetas self. vector = np. zeros(self. num_labels) def fit_transform(self, values): encoding = [] for value in values: self. vector[value] = 1 encoding. append(self. vector) return np. array(encoding). T ``` ### CifarHelper Finalmente, criaremos nossa `CifarHelper` classe que inclui o método `setup()`: ```python class CifarHelper: def __init__(self): # Inicializando as propriedades. . . def setup(self): # Seu código para o método de arranjo de dados CifarHelper aqui ``` Com as funções auxiliares em lugar, podemos agora criar nossa rede neural real! ``` A parte em inglês foi deixada como está, como terminologia técnica deve ter mantida no texto final. # Image Classification com TensorFlow Este guia explica os passos para agrupar e organizar dados para classificação de imagens utilizando TensorFlow. ## Agrupamento de Dados Quando se trata de grandes quantidades de dados, como 10. 000 fotos, é necessário dividir o dado em batches menores para evitar sobrecarregar o sistema. Neste exemplo, usaremos batches de 100 fotos. ```markdown # Define o tamanho da batch batch_size = 100 # Inicializar self I para zero self I = 0 # Obter a próxima batch de fotos X = tf. placeholder(tf. float32, shape=(None, 32, 32, 3)) y_true = tf. placeholder(tf. float32, shape=(None, 10)) # Defina o range de entrada X = X[self I: self I + batch_size] # Retorne X reshaped X = tf. reshape(X, (batch_size, 32, 32, 3)) # Defina Y como etiquetas para a batch y_true = y_true[self I: self I + batch_size] # Incremente self I para a próxima batch self I += batch_size ``` ## Carregamento de Dados Depois de configurar os placeholders para X, y_true e hold_prob (proba de reja), usaremos a classe `CFARHelper` para carregar o dado e configurar as imagens de treino e teste. ```markdown # Crie a instância CFARHelper CH = CFARHelper() # Configure as imagens CH. setup_images() ``` ## Criação do Modelo Depois de carregar o dado, criaremos o modelo usando placeholders do TensorFlow e funções auxiliares. ```markdown # Importe o TensorFlow import tensorflow as tf # Crie placeholders para X, y_true e hold_prob X = tf. placeholder(tf. float32, shape=(None, 32, 32, 3)) y_true = tf. placeholder(tf. float32, shape=(None, 10)) hold_prob = tf. placeholder(tf. float32) # Defina a camada de convolução 2D def conv2d(W, b, strides=1): # Reshape X para a camada de convolução X_reshaped = tf. reshape(X, (-1, 32, 32, 3)) # Realize a convolução conv = tf. nn. conv2d(X_reshaped, W, strides=[1, strides, strides, 1], padding='SAME') # Aplique a função de ativação ReLU conv = tf. nn. relu(tf. nn. bias_add(conv, b)) # Reshape o resultado para a próxima camada return tf. reshape(conv, (-1, conv. get_shape()[1], conv. get_shape()[2], conv. get_shape()[3])) # Defina a camada de pooling max de 2x2 def max_pool_2x2(X): # Realize a pooling max de 2x2 return tf. nn. max_pool(X, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME') # Defina a camada de camada densa a livre def fully_connected(W, b, num_outputs): # Flaatten o dado de entrada W = tf. reshape(W, (-1, num_outputs)) # Realize a multiplicação matricial e adicione o bise layer = tf. matmul(X, W) + b # Aplique a função de ativação ReLU layer = tf. nn. relu(layer) return layer # Inicialize as pesos e bises para as camadas de convolução e camada densa def initialize_weights_and_biases(): # Define as formas para os pesos e bises conv_kernel_shape = (3, 3, 3, 32) conv_bias_shape = (32) fc_weights_shape = (400, 10) fc_bias_shape = (10) # Initializ as pesos e bises com valores aleatórios conv_weights = tf. truncated_normal(conv_kernel_shape, stddev=0. 1) conv_bias = tf. constant(0. 1, shape=conv_bias_shape) fc_weights = tf. truncated_normal(fc_weights_shape, stddev=0. 1) fc_bias = tf. constant(0. 1, shape=fc_bias_shape) # Retorne os pesos e bises return conv_weights, conv_bias, fc_weights, fc_bias ``` # Rede Neural Convolucional (CNN) Desenvolvimento ## Visão Geral Neste tutorial, criaremos uma Rede Neural Convolucional (CNN) para classificação de imagens. Utilizaremos a biblioteca TensorFlow. ## Criação de Camadas Convolucionais Primeiro, vamos criar nossa primeira camada convolucional. ```markdown 1. Camada Convolucional 1: - Filters: 32 - Tamanho do Filte: 3x3 - Passo: 1 - Padding: **Same** ``` ### Explicação: - Filters: O número de filtros utilizados na operação de convolução. Neste exemplo, estamos utilizando 32 filtros. - Tamanho do Filte: O tamanho do filte, neste caso, um matriz 3x3 será utilizada em cada operação de convolução. - Passo: Os passos pelo qual o filte se move sobre a imagem. Neste caso, o filtre se move uma pixel de cada vez. - Padding: O número de pixels adicionados à imagem de entrada para manter a dimensão inalterada após a operação de convolução. Note: Certifique-se de ajustar o tamanho do filte, passo e padding conforme o tamanho da sua imagem. Após teremos a nossa primeira camada convolucional definida, vamos aplicar uma camada MaxPooling2D: ```markdown 2. Camada MaxPooling2D: - Tamanho da Piscina: 2x2 - Passo: 2 ``` ### Explicação: - Tamanho da Piscina: O tamanho da piscina, neste caso, uma janela 2x2 será utilizada para executar o max pooling. - Passo: Os passos pelo qual a janela de pooling se move sobre o mapa de características. Neste caso, a janela se move duas células por vez. Depois da camada MaxPooling2D, vamos criar a nossa segunda camada convolucional, que toma o output da primeira camada convolucional e da camada MaxPooling2D como entrada. ```markdown 3. Camada Convolucional 2: - Filters: 64 - Tamanho do Filte: 3x3 - Passo: 1 - Padding: **Same** ``` Note: Repita o processo da primeira camada convolucional para Camada Convolucional 2. Agora, precisamos de aplanar o output de Camada Convolucional 2 para alimentar uma camada densa. ```markdown 4. Camada Flatten: - Reshape: (None, -1) ``` ### Explicação: - Reshape: A forma desejada do tensor aplanado, neste caso, teremos `None` linhas e todas as colunas aplanadas. Seguindo a camada Flatten, vamos criar uma camada densa ou camada totalmente interconnectada com o output de camada Flatten como entrada. ```markdown 5. Camada Dense (Interligações Totais): - Unidades: 4096 - Ativação: ReLU ``` ### Explicação: - Unidades: O número de nós ou unidades na camada densa. - Ativação: A função de ativação utilizada na camada densa, neste caso, utilizaremos ReLU (Unitário Rectificado). Treine o modelo usando o optimizador Adam e a função de perdas de cruz-entropiaBinária: ```python optimizer = tf. keras. optimizers. Adam(learning_rate=0. 001) loss_fn = tf. keras. losses. binary_crossentropy ``` Use a regularização do dropout para evitar a sobreposição: ```python model. add(tf. keras. layers. Dropout(0. 5)) ``` Compile o modelo com a função de perdas definida, optimizador e métrica de avaliação: ```python model. compile(optimizer=optimizer, loss=loss_fn, metrics=["acurácia"]) ``` Treine o modelo com o dataset fornecido: ```python model. fit(x_treino, y_treino, epochs=10, batch_size=32, validation_data=(x_valider, y_valider)) ``` Clone o modelo treinado e avalie o seu desempenho: ```python modelo_treinado = Model(inputs, outputs) modelo_treinado. avaliar(x_teste, y_teste) ``` Para uma guia mais extensiva sobre TensorFlow, por favor, visite a documentação oficial [TensorFlow](https://www.tensorflow.org/tensorflow/api_docs) (em inglês). ◆ # Tutorial sobre Redes Neurais Recurrentes: Redes Neurais Recurrentes (RNN) Neste tutorial, discutiremos Redes Neurais Recurrentes (RNN) e exploraremos suas aplicações, como a criação de legendas de imagem, previsão de séries temporais, processamento de linguagem natural, mineração de texto e análise de sentimento. ## Introdução A Rede Neural Recurrente (RNN) é uma extensão da rede neural de feed-forward projetada para processar dados sequenciais, ou seja, onde a saída é influenciada pelos dados anteriores e tem a forma de laços. Isso a torna adequada para processar dados de série temporal e tarefas de modelagem de linguagem. ### Desafios em Redes Neurais de Feed-Forward As redes neurais de feed-forward têm a limitação de apenas considerar o input atual sem voltar a olhar para os inputs anteriores. Isso pode fazer com que haja problemas ao processar dados sequenciais onde eventos passados podem influenciar a situação atual. ### Solução: RNN A RNN supera as limitações da rede neuronal de feed-forward mantendo um estado oculto `C`, que armazena dados anteriores e passa a informação para o próximo passo. ``` X -> H -> Y | V C ``` O estado oculto `C` toma o output do passo anterior `H` como o novo input e atualiza iterativamente o estado. ### Aplicações da RNN 1. **Criação de legendas de imagem**: A RNN pode analisar e gerar legendas de imagens, identificando atividades e objetos presentes nelas. 2. **Previsão de séries temporais**: A RNN pode prever valores futuros em um conjunto de dados de série temporal, como preços de ações, baseados nos dados históricos. 3. **Natural Language Processing (NLP)**: A RNN é útil para várias tarefas de NLP, como mineração de texto e análise de sentimento. O NLP envolve entender o significado e a estrutura da linguagem humana. #### Análise de Sentimento Ao analisar sentimentos em texto, a ordem das palavras pode significantly mudar seu significado. Por exemplo, "quando chova, procura por arco-íris" e "quando escuro, procura por estrelas" tem sentimentos positivos, independentemente de conter "chuva" e "escuridão", que são geralmente considerados palavras negativas. #### Tradução de máquina A RNN pode traduzir texto de uma língua para outra, levando em conta a ordem das palavras e suas partes do falar. Por exemplo, a frase inglesa "gato grande" seria traduzida para "gato grande" em espanhol, enquanto a frase espanhola "gato grande" torna-se "great cat" em inglês. Nas seções seguintes, mergulharemos mais a fundo na arquitetura da RNN, assim como nos vários tipos de RNN e suas aplicações. --- ## Arquitetura da RNN ### Definição A RNN faz compreensão do output de uma camada e o envia de volta ao input, de modo que possa prever o output da próxima camada. Esse processo é repetido recursivamente até que o output desejado seja obtido. ### Diagrama Em comparação com uma rede neuronal de feed-forward, na RNN o input, as camadas ocultas e o output estão dispostos verticalmente em vez de horizontalmente. O input `X` flui pelo input e os outputs das camadas ocultas `H` são interligados entre si, criando um loop. ``` X | Seq. H -> H1 -> H2 -> H3 -> . . . Hn | V Y ``` ### Sequência de Passos A cada passo `t`, a RNN segue a seguinte sequência de passos: 1. No passo `t-1`, o estado oculto `Ht-1` é calculado. 2. No passo `t`, o input `Xt` é enviado para a rede, é atualizado com o estado oculto anterior `Ht-1` e é calculado o novo estado oculto `Ht`. 3. O output `Yt` é calculado com base no estado oculto `Ht` atualizado. --- ## Tipos de RNN ### RNN V Melbourne O tipo mais comum de RNN é o RNN Melbourne, que é adequado para problemas de aprendizado regular. Por isso, é conhecido como "sabor de Melbourne" da RNN, em razão de ser considerado relativamente simples mas eficaz. ### Um-para-Um vs. Muitos-para-Um #### RNN Um-para-Um (RNN Melbourne) Um RNN Um-para-Um toma um input único em cada passo e produce um output único. É conhecido como "RNN Melbourne" e é comumente usado para problemas de aprendizado regular. #### RNN Muitos-para-Um Um RNN Muitos-para-Um toma uma sequência de inputs e produz um único output. É útil para tarefas de NLP, onde uma sequência de palavras (como uma frase) pode ser classificada com sua intenção ou sentimento. Exemplo: Análise de sentimento, onde uma frase determine se positiva ou negativa. Exemplo para a frase "Quando chova, procura por arco-íris", uma RNN treinada para análise de sentimento classificaria o sentimento como positivo, uma vez que captura o significado positivo da frase em questão. --- Isso é! Agora que você tem uma visão básica sobre a RNN, começaremos a explorar mais fundo suas aplicações e temas avançados nas seções seguintes. # Redes Neurais Recurrentes em Um-para-Um / Um-para-Muitos / Muitos-para-Muitos - Redes de Trabalho em Rede ## Visão Geral Estas redes tomam uma sequência de entradas e geram uma sequência de saídas. Um exemplo deste é a tradução de máquinas. Temos uma frase extensa a chegar em português europeu, e depois sair em todos os idiomas que você sabe; é simplesmente uma ferramenta maravilhosa. No entanto, é um conjunto de cálculos muito complexo. Se você for um tradutor, você perceberá apenas como difícil é traduzir em diferentes idiomas. Uma das coisas que você precisa entender ao trabalhar com esta rede neural é um conceito chamado Problema do Gradiente Quocientado nulo. ### Problema do Gradiente Quocientado nulo O treinamento em RNN pode resultar em uma pendícula que é apenas demasiado pequena ou muito grande. Isso torna o treinamento difícil. Quando a pendícula é muito pequena, o problema é conhecido como Problema do Gradiente Quocientado nulo, e aqui eles apresentam uma imagem legal com muita informação ao longo do tempo. Se você não está enviando suficiente informação para adiante, essa informação é perdida. E quando você treina, você começa a perder a terceira palavra da frase ou algo do tipo. O Problema do Grau Explodido ------- Esse problema ocorre quando a pendícula tende a crescer exponencialmente ao invés de decair. * Problemas neste problema: Treino demorado, rendimento ruim, precisão malsucedida, e você pode travar o computador (lhe dando um erro de memória). Exemplos de Como Entender ----------------------- Para entender o que deve ser a próxima palavra na sequência, a RNN precisa memorizar o contexto anterior. Por exemplo: - A pessoa que roubou o meu bicicleta e em branco foi um roubo. (Neste caso, o em branco seria um roubo. ) - Os estudantes que se matricularam na engenharia com em branco eram da Ásia. (Neste caso, o em branco poderia ser de qualquer país da Ásia. ) Aqui, temos nossa `x` entrada (o valor anterior), e então vamos propagar a erro como você faz com qualquer rede neural. Quando estamos procurando o termo perdido, talvez tenhamos: - A pessoa que roubou o meu bicicleta e em branco foi um roubo. (Neste caso, o em branco seria um roubo. ) - O estudante que se matriculou na engenharia com um em branco eram da Ásia. (Neste caso, o em branco poderia ser de qualquer país da Ásia. ) Ao disposição do Problema do Gradiente Quocientado nulo ou Explodido, é por vezes difícil para a RNN propagar para o começo da sequência para previsualizar o que deve ser a saída. Solução ao Problema do Gradiente -------------------------------- Necessitamos de uma solução ao problema do gradiente. ### Explodido Há três soluções diferentes: 1. Inicialização de identidade: Vamos ver se podemos encontrar uma maneira de minimizar as identidades que estão entrando. Em vez disso, apenas as informações importantes. 2. Separação da propagação ao longo do tempo: Em vez disso, há o que está enviando para a próxima série, podemos separar. Podemos diminuir esse particular conjunto de camadas, fazendo-as menores. 3. Recorte da graduated: Quando estamos treinando, podemos recortar que o gradiente parece e ajustar o modelo de treinamento que estamos usando. ### Quocientado nulo Para o Problema do Gradiente Quocientado nulo, podemos olhar para a inicialização dos pesos (muito similar à identidade, mas adicionando mais pesos lá para ajudar a identificar melhor o que está entrando). Escolhendo a função de ativação certa é fundamental. Pode reagir só um coisa e precisamos restringir o (não têmos falado demasiado sobre funções de ativação, então vamos riolar isso com minimamente; existem muitas opções aí). Por fim, temos as Redes de Memória Longa e Fixa (LSTMs). Poderíamos expandir esse nosso tamanho da rede de memória a fim de lidar com mais informação, o que nos ajuda a resolver o problema de dependências longas, no caso em que a distância entre a informação relevante e o ponto em que ela é necessária torna-se muito grande. ## Redes de Memória Longa e Fixa (LSTMs) As LSTMs são uma rede neuronal recurrente especialmente capaz de aprender dependências longas, para longos períodos de tempo elas apenas são mais sua natureza padrão. * As LSTMs têm uma estrutura enganchada, mas o módulo repetido tem uma estrutura diferente. Em vez disso, tem uma rede neural única, há quatro camadas que interagem de uma maneira especialmente diferente. Quando olhamos as camadas, não apenas a propagada através da primeira camada; entra ao segundo nível, de volta a si mesmo, mas também entra para o terceiro nível. Isso pode se complicar uma vez que aumentamos o tamanho e também aumenta a memória também, requerindo mais recursos. Mas é uma ferramenta poderosa para nos ajudar a lidar com informações longas e complexas que estão segui indo, como estivemos vendo acima na frase. ### Passos de Processamento de LSTMs Nas LSTMs, há três passos de processamento: 1. Avaliação: Na LSTMs, olhamos para o primeiro, é que queremos esquecer partes irrelevantes do estado anterior. (Muitas vezes, por exemplo, como você sabe, ossubstratos "is" ou "a" não jogam um grande papel no idioma, então queremos descartá-los. ) 2. A atualização do estado atual seletiva: Queremos atualizar apenas valores do estado celular que refletam o que estamos trabalhando. 3. A saída apenas de alguns valores do estado celular: O que estamos enviando, queremos limitar o que está saindo. Vejamos digitar mais fundo nisso: #### Passo 1: Esquecer Partes Irrelevantes No primeiro passo, a porta de esquecimento reconhece que há um possível alteração de contexto após encontrar a primeira vírgula final. Então examinamos esse ponto final e então o novo arquivo de entrada. Se o novo arquivo de entrada fala sobre um outro assunto, a informação sobre o assunto anterior é despejado. Por exemplo: - Saída anterior: Alice é boa em física. - Entrada atual: John desfruta muito do futebol e lhe disse ontem pelo telefone que o seu time venceu o campeonato. Neste caso, o primeiro passo é a porta de esquecimento reconhece que há um possível alteração de contexto após encontrar a primeira vírgula final. Então examinamos o ponto final e então o novo arquivo de entrada. O arquivo de entrada apresenta um John, então a informação da Alice é despejada. #### Passo 2: A atualização do estado atual No segundo passo, há dois componentes: uma função de sigma e a função de tangente Hi. A função de sigma decide quais valores devem ser permitidos 0 ou 1. A função de tangente Hi dá um peso aos valores que são passados, decidindo seu nível de importância. Por exemplo: - Entrada atual: John desfruta muito do futebol e lhe disse ontem pelo telefone que o seu time venceu o campeonato. - Saída desejada: John venceu o campeonato. Neste caso, queremos que a RNN pule as informações sobre Alice e remembre as informações sobre John desfrutar de futebol e o seu time vencer o campeonato. ### Caso de Estudo Na utilização de um caso de estudo, a LSTM seria treinada em um conjunto de dados de alto nível série de frases e suas corretas traduções. Durante o treinamento, ela aprenderia as estruturas estatísticas entre a frase de entrada e sua correspondente tradução. Assim que treinada, a LSTM pode tomar uma frase nova e gerar uma tradução baseada nas estruturas que ela aprendeu. Para isto, a LSTM toma a entrada, a rola por meio das camadas, realizando as portas de esquecimento, entrada e saída em cada passo. # Documentação Técnica Seção 1: Memorando informações importantes sobre um indivíduo 1. O indivíduo se comunicou-me pelo telefone ontem. Essa informação é importante, mas não é necessária no caso atual. 2. O que desejo é saber que ele foi o capitão do time de futebol. 3. Desejo saber que ele prestou serviço. 4. Desejo saber que John é jogador de futebol e foi o capitão do time de futebol da universidade. Estas são as informações que pretendo levar a cabo para mim, como um humano. Observações sobre o humanViewpoint: 1. Memorize estas informações do ponto de vista humano. Isso é como você está sendo treinado para entender as redes neurais. 2. Quando passamos à terceira etapa, decidimos quais partes do estado atual da célula devem fazer parte da saída. Seção 2: Três etapas em LSTM 1. Primeira etapa: Decidimos quais partes do estado atual da célula fazem parte da saída. 2. Segunda etapa: Aplicamos uma camada sigmoidal para decidir quais partes do estado atual da célula fazem parte da saída. 3. Terceira etapa: Decidimos o que será nossa saída. Primeiro, passamos a célula atual pelo Tangente H para empurrar os valores para estar entre -1 e 1. Em seguida, multiplicamos o valor obtido pela saída da camada sigmoidal. Quando discutimos a saída de T, igualamos a sigmoid da soma dos pesos de 0 da H da T menos um e mais um multiplicado pelo valor de x de t mais o bias. Exemplo: Previsão do próximo palavra em uma frase 1. Considere o exemplo de previsão do próximo palavra em uma frase: "John jogou muito bem contra o oponente e recebeu um prêmio por sua equipe por suas contribuições. Lugar em branco foi premiado como o jogador do jogo. Podemos ter várias opções para o lugar em branco. 2. No momento atual, podemos ter várias opções ocorrerem para o lugar em branco. No nosso caso, iremos treinar a rede neural para que ela escolha "John" como a melhor opção. Se estivermos apenas extraindo nomes da frase, "time" não parece estar correto, pois não é o assunto em questão. "Contribuições", "contribuições do time", "conteúdo do jogador", "partida" parecem ser as alternativas mais válidas. Observações sobre o treinamento da rede neural: 1. Ao analisar este exemplo, podemos começar a treinar a rede neural para que ela comece a analisar e identificar algo como "John". Assim, o sistema começa a dar uma desvio no sentido correto. "Brave" é um adjetivo e "John" é um nome, a rede neural aprenderá automaticamente que "John" é o melhor candidato para o lugar em branco. 2. Se você quiser, poderá treinar vários padrões em sua rede neural e ajustar seu treinamento para alcançar a melhor precisão possível. Seção 3: Implementação de LSTM como um caso de uso 1. Implementação do LSTM para previsão de preços de ações: Esta implementação se baseia nos dados de preço de ações entre 2012 e 2016. Vamos tentar prever os preços de ações do ano de 2017. 2. Esta implementação se baseia em um conjunto limitado de dados, podendo ser que você não se torne rico neste processo, mas você poderá avançar na aprendizagem em processar dados semelhantes. 3. A Bolsa de Valores da Nova York gera aproximadamente 3 terabytes de dados por dia, toda compra e venda de todas as ações, individualmente, em um espaço de tempo de um segundo ou mesmo de um nanosegundo. No entanto, nesta implementação, estamos limitando nosso acesso apenas a algumas informações básicas sobre a ação. 4. O uso do LSTM para previsões econômicas em mercados atuais pode ser uma aplicação válida e de extrema importância. Para implementar a rede neural LSTM, vamos basicamente seguir os seguintes passos e irá seguir esta ideia: (Esse trecho pode ser mais longo no original e é seguido de mais trechos completos sobre a implementação prática). # Treinamento de Modelo e Previsão Este guia vai te conduzir pelo processo de treinamento de um modelo e previsão de sua saída usando Python e Markdown. ## Configuração do Ambiente Primeiro, vamos configurar o ambiente e carregar os dados necessários. ```python # Importe as bibliotecas necessárias from sklearn. model_selection import Sequential from keras. layers import Dense, LSTM, Dropout # Importe o módulo H5py, que será atualizado no futuro # Pode executar uma atualização do módulo H5py se necessário from keras. utils import to_categorical ``` ## Preparação dos Dados Depois, vamos preparar os dados para o treinamento e previsão. ```python # Crie as variáveis X_train e Y_train e inicializelas como matrizes vazias X_train = [] Y_train = [] # Faça um loop pelos passos do tempo (60 neles neste caso) para i em range(60, 1258): # Adicione as dados de treinamento (valores escalonados de 0 a 1) X_train. append(training_set_escalonado[i - 60: i]) # Se i é igual a 60, o valor é 0 (o índice começa em 0) se i == 60: Y_train. append(training_set[i]) # Para outros valores de i, adicione o valor correspondente de Y senão: Y_train. append(training_set[i] - training_set[i - 1]) ``` ## Construção do Modelo Agora, vamos construir o modelo usando as camadas LSTM e Dense. ```python # Inicialize o RNN regressor como um modelo sequencial regressor = Sequential() # Adicione a camada LSTM com 50 unidades e regularização Dropout regressor. adicione(LSTM(50, return_sequences=True, input_shape=(X_train[0]. shape[1], 1))) regressor. adicione(Dropout(0. 2)) # Adicione outra camada LSTM com 50 unidades e regularização Dropout regressor. adicione(LSTM(50, return_sequences=True)) regressor. adicione(Dropout(0. 2)) # Adicione a última camada LSTM com 50 unidades regressor. adicione(LSTM(50)) # Adicione a camada desaída Dense regressor. adicione(Dense(1)) ``` ## Compilação e Treinamento Compile o modelo e treine-o usando os dados de treinamento. ```python # Compile o modelo regressor. compile(optimizer='adam', loss='mean_squared_error') # Faça o modelo se adaptar aos dados de treinamento regressor. treinamento(X_train, Y_train, epochs=100, batch_size=32) ``` ## Previsão Agora que o modelo está treinado, podemos usá-lo para fazer previsões. ```python # Faça previsões em dados novos previsoes = regressor. prever(X_test) ``` # Karas: Processamento Eficiente de Conjuntos de Dados de Grandes Tamanhos Este conjunto de dados inclui uma Sequência de Tempo de 60 períodos e outro aspecto em que o Karas realmente brilha é o Batch Size. Se você estivesse a tirar os dados de um grande arquivo em vez de tentar carregá-los inteiramente na memória RAM, ele agora poderá selecionar lotes mais pequenos e carregar-los de forma indireta. Não estamos aqui preocupados com tirá-los de um arquivo hoje porque este não é suficientemente grande para causar problemas de velocidade para uma computadora, mas enquanto isso, imagine o que poderia acontecer se eu estivesse fazendo muito mais do que apenas uma coluna em um conjunto de ações de um só estoque. Por exemplo, se eu estivesse a trabalhar com ação Google e tivesse ao invés dos preços iniciais, os preços encerrados, altas, baixas e volumens, você se encontra de fato com uns 13 diferentes variáveis x60 devido à Sequência de Tempo. Agora, você encontra-se a trabalhar com uns 1 Gigabyte de memória que carrega na RAM, o que irá estourar imediatamente se estiveres a trabalhar com um computador único ou em uma rede. No entanto, para este exemplo específico, não precisamos a preocupar-nos disso. Vamos estar bem e correr isto. Isso levará um pouco de tempo na minha computação (é um computador antigo) e dê-lhe um segundo para acionar. Aí vai. ``` a epic executa a primeira passagem a través de todos os dados e, enquanto isso, está agrupando-os em 32 peças (32 linhas cada vez). Tem 1198 linhas na totalidade, portanto cada grupo leva cerca de 13 segundos. Isso significa que o tempo de execução de processo para este caso na minha computação será aproximadamente 20 a 30 minutos, dependendo do desempenho do laptop (está a executar a 0, 9 gigahertz em um processador duplo). Irei ir adiante e tirar um café e voltar aqui para ver como isto se desenvolve. ``` Como em qualquer bom programa de cozinha, peguei um pequeno recesso para gozar do café. Também tinha algumas outras coisas a correr no fundo, portanto vês estas números atolando para cerca de 19 segundos e 15 segundos, mas se atingir a seta de rolamento e passar para a frente, vês que o passou pela etapa 100 vezes, ou seja, 100 "epicos". A questão é: **Que isto significa? ** Um dos primeiros detalhes que vais notar é que a perda (referindo-se à função de perda no modelo de aprendizagem máquina) está aqui. ``` Sertei a um paragem em 0, 0014. Podemos ver que cai até chegar em 0, 0014 três vezes, o que sugere que a perda se convergiu (remanesceu o mesmo por várias iterações). ``` Para analisar isto ainda mais, vamos carregar nosso conjunto de dados de teste (o dado que ainda não processamos)(o mesmo que fizemos ao prepararmos os dados no começo). ``` Vamos passar por este código para ver como isto funciona. ``` Estamos sendo apresentados como "Parte 3: A Fazer Prévias e Visualizar os Resultados. " A primeira coisa que temos de fazer é ir e a ler os dados da nossa CSV de teste. ``` Mude a estrutura do caminho nele para a sua computador, e em seguida vamos chamar este último preço do Google stock. Novamente, estamos a trabalhar apenas com uma coluna aqui, e os valores da localização 'I' (este é onde está o preço de abertura do estoque). Vamos lá por isso. Esta deverá carregar os dados na nossa dataframe. ``` A seguir, vamos fazer o nosso input. Isto deverá parecer familiar porque se estevemos a fazer o mesmo que fizemos antes. ``` Vamos tomar a nossa data set total, e vamos fazer um pouco de pandas `. cat()` do `data_state_train` agora. Lembra-se do final do `data_state_train` é parte do dado que vai para dentro e vamos visualizar isto apenas um pouco. ``` Aqui tem o nosso `train_data`: `TR` para dados de treino. A medida que pode ver, cada valor nesta dataframe gera muitas colunas (totalizando 60 por causa da Sequência de Tempo). Precisamos dos primeiros 60 (i. e. , dos primeiros 60 valores) para ter as nossas novas colunas pois é parte do próximo dado, ou de facto é os primeiros 59 (os utilizaremos para as nossas previsões, pois o último valor neste dado é o primeiro valor no próximo dado). ``` Está a se estabelecendo isto: estamos a entrar, e estamos a fazer o preço do Google stock. Estamos a tirar o conjunto `test` e carregá-lo, e o `real_stock_price` se refere ao nosso conjunto `test`. Somos apenas a observar a primeira coluna (o preço de abertura), e em seguida o nosso data set total, vamos utilizar Pandas e vamos `concat()` com o nosso `data_state_train` (abertura), e o nosso `data_state_test` (abertura). top 59 e bottom 60) e 0 em ambos os lados, portanto é apenas a primeira coluna (a coluna de abertura). Novamente estámos a fazer o teste com estas colunas de preços de abertura. Podemos concatenar os dois conjuntos de dados. Têmos os nosso inputs (`inputs`) e vamos reshapear secondo a maneira com a qual já estamos acostumados, transformando os inputs de forma que estejam entre 0 e 1. Por fim, queremos ir adiante e carregar o nosso `X_test`, criá-lo e, para todas as variáveis `i` de 60 a 80 (este é onde os nossos pré-ditos são feitos). Aqui tem o nosso `X_test` e estamos a anexar os nossos inputs `i` de 60 (isto é, 0 a 59) e 0 na outra margem, portanto apenas a primeira coluna (a coluna de abertura). Novamente, transformamos o `X_test` em um array numpy, fazemos a mesma reshape que realizamos antes, e então passamos para as duas últimas linhas: preço previsto para ações = regressor. predict(X_test) preço previsto para ações = scaler. inverse_transform(preço previsto para ações) ``` Estão a fazer previsões do preço de todas as ações, incluindo as ações de ambos os conjuntos de teste e de treino aqui. Precisamos levár-los a transportar e voltar atrás para obter os valores em dólares que precisamos ver. ``` Vamos bater um hop-skip e corre já para essas previsões e plote os resultados. vamos a visualizar o que imaginejamos que será e visualizar-o ao lado do preço real (o que foi na verdade). Vamos falar algum tempo acerca deste gráfico antes de terminarmos. ``` ``` plt. plot(real_stock_price, color='vermelho', label='Preço Real do Google Stock') plt. plot(preço previsto para ações, color='azul', label='Preço Previsto') plt. title('Aviso de Preço do Google Stock') plt. xlabel('Tempo') plt. ylabel('Preço do Stock') plt. legend() plt. show() ``` Este gráfico mostra o preço real do Google stock vs o preço previsto. Pode ver o padrão do preço real corespende relativamente bem com nossas previsões (com algumas discrepâncias), o que sugiere que o nosso modelo está a fazer previsões de maneira razoavelmente precisa. Ainda existe space para melhorar, mas isto é um ótimo começo! E é isto! Depois de termos previsto o preço do estoque utilizando uma rede neural e o Framework do Karas, e recolhido os resultados. # Profunda Exploração sobre Karas: uma API de Aprendizado Profundo de Alto Nível para Python Este documento oferece uma visão geral abrangente de Karas, uma API de aprendizado profundo de alto nível escrita em Python. O Karas simplifica a implementação de redes neuronais ao utilizar frameworks de aprendizado profundo populares como TensorFlow, PyTorch, e outros, para acelerar a computação. ## Características chave de Karas 1. **Interface de utilizador amigável**: Karas fornece uma interface fácil de aprender, o que faz a investigação do cenário rápido evoluindo da área de aprendizagem profunda menos confuso para os desenvolvedores. 2. **Processamento rápido**: Karas aproveita frameworks de aprendizado profundo poderosos para processamento rápido, permitindo que os desenvolvedores implementem e testem seus modelos rapidamente. 3. **Organização**: Karas organiza tudo, deixando-o focado no programação de redes neuronais sem ter que se sumir muito na pesada trabalho de soltar feitos pelos pacotes subjacentes. ## Introdução ao Karas ### Funcionamento do Karas O Karas utiliza gráficos computacionais para expressar e avaliar expressões matemáticas. Ele quebra problemas complexos em operadores matemáticos simples, o que facilita a implementação de cálculos distribuídos e a solução de problemas complexos. ### Arquitetura do Modelo O Karas oferece dois tipos principais de modelos: Modelos Sequenciais e Modelos Funcionais. #### Modelo Sequencial Um Modelo Sequencial é uma pilha linear de camadas em que a camada anterior conduz para a próxima camada. É útil para modelos simples de classificadores e codificadores. ```markdown from keras. models import Sequential from keras. layers import Dense, ReLU model = Sequential() model. add(Dense(64, activation='relu')) model. add(Dense(10, activation='softmax')) ``` #### Modelo Funcional O Modelo Funcional é a última adição, suporta modelos multi-entrada e multi-saída. Permite arquiteturas de modelos complexas, como aquelas com ramificações de entrada múltipla. ```markdown from keras. models import Model, Input from keras. layers import Dense, concatenate input1 = Input(shape=(32, 32, 3)) input2 = Input(shape=(64, 64, 3)) x1 = Dense(64, activation='relu')(input1) x2 = Dense(64, activation='relu')(input2) combined = concatenate([x1, x2]) output = Dense(10, activation='softmax')(combined) model = Model(inputs=[input1, input2], outputs=output) ``` ## Preparação de Dados de Treino Antes de treinar modelos, você precisará preparar os seus dados para garantir resultados de saída boas. Aqui está um exemplo simples de pré-processamento de dados utilizando o Karas: ```python from keras. datasets import mnist from keras. utils import to_categorical (X_train, y_train), (X_test, y_test) = mnist. load_data() X_train = X_train. astype('float32') / 255. X_test = X_test. astype('float32') / 255. y_train = to_categorical(y_train) y_test = to_categorical(y_test) ``` Neste exemplo, usamos o conjunto de dados MNIST para classificação de imagens. Os dados são normalizados e codificados em um-quociente para que seja fácil consumir modelos de rede neuronal. ## Conclusão Este documento serve como um ponto de partida para a compreensão de Karas, uma API de aprendizado profundo de alto nível para Python. Por se apoiar em frameworks de aprendizagem profunda popular e fornecer uma interface de utilizador fácil de aprender, o Karas simplifica o processo de implementar e treinar redes neuronais, tornando-o mais acessível a desenvolvedores de todos os níveis. Para temas mais avançados e exemplos práticos, veja nossos próximos tutoriais sobre o Karas. # Preparação de Dados para Rede Neuronal de Computadores e Escala em Python usando TensorFlow e Keras ## Introdução Neste tutorial, vamos converter dados de rotulagem em um array `numpy` e escalonar amostras escalonadas usando a biblioteca `scikit-learn` em preparação para criar uma Rede Neural de Computadores Artificiais (RNCA) usando TensorFlow e Keras. ## Pré-requisitos - Python 3. x - NumPy - Scikit-learn - TensorFlow - Keras ## Preparação de Dados Inicialmente, vamos organizar os dados de rotulagem em um array `numpy`: ```python # Convert labels to numpy array label_array = . . . ``` Depois disso, vamos convertê-los amostras em um array `numpy`: ```python # Convert samples to numpy array sample_array = . . . ``` ## Amexistração de Dados Vamos amexistramente amisturar os dados usando a função built-in de amistura construída em `numpy`: ```python # Shuffle data numpy. random. shuffle(sample_array) numpy. random. shuffle(label_array) ``` Porém, devido ao nosso conjunto de dados ser pequeno, a amistura dos dados poderesultar ser sobre-carregado, pois não tem grande impacto no processo de aprendizagem. ## Escalação de Dados Em seguida, vamos criar um intervalo escalonado com um valor mínimo de 0 e um valor máximo de 1: ```python min_scalar_feature = 0 max_scalar_feature = 1 ``` Em seguida, vamos escalar as amostras escalonadas: ```python # Scale the scaled train samples scaled_train_samples = sklearn. preprocessing. MinMaxScaler(feature_range=(min_scalar_feature, max_scalar_feature)). fit_transform(scaled_train_samples) ``` ## Criação da RNCA Agora, vamos criar a nossa RNCA usando TensorFlow e Keras: ```python from tensorflow. keras import Sequential from tensorflow. keras. layers import Dense from tensorflow. keras. optimizers import Adam from tensorflow. keras. losses import CategoricalCrossentropy from tensorflow. keras. metrics import CategoricalAccuracy # Create the ANN model = Sequential() ``` ## Compilação do Modelo Depois disso, vamos compilar o modelo usando o otimizador Adam com uma taxa de aprendizagem de 0. 001, Categorical Cross Entropy como a função de perda, e Categorical Accuracy como a função de avaliação de métrica: ```python # Compile the model model. compile(optimizer=Adam(learning_rate=0. 001), loss=CategoricalCrossentropy(), metrics=[CategoricalAccuracy()]) ``` ## Treino do Modelo Agora, estamos prontos para treinar o modelo com nossos dados escalonados: ```python # Train the model model. fit(scaled_train_samples, label_array, epochs=30, verbose=2) ``` ## Avaliação do Modelo Por último, podemos avaliar a performance do modelo em várias métricas, como a perda e precisão: ```python # Evaluate the model train_loss = model. evaluate(scaled_train_samples, label_array, verbose=0) ``` # Projeto de Aprendizado de Máquina: Rede Neural para Classificação Binária Este projeto tem como objetivo implementar uma rede neural utilizando Keras para prever se uma pessoa é provável ou não apresentar sintomas baseados em sua idade. ### Construção do Conjunto de Testes e Classificação Inicialmente, iremos construir um conjunto de testes para nossa modelo. De maneira semelhante ao nosso conjunto de treinamento, iremos criar um conjunto separado para testes, com nenhuma diferença na randomização utilizada para construir esse conjunto. A única diferença é que não iremos ajustar os dados no conjunto de testes. Aqui está os dados transformados do conjunto de testes: ```python X_test = scaler. transform(X_test) ``` Agora estamos prontos para fazer nossas pré-visões utilizando nossa modelo, dados treinados e dados de teste. ```python y_pred = model. predict(X_test) ``` Para tornar nossas pré-visões mais lidas, iremos arredondar seus valores usando a função argmax do NumPy e converterem para binário (0 ou 1): ```python y_pred = (y_pred > 0). astype(int) ``` Agras très iremos imprimir a primeira cinco predições para verificar nossos resultados: ```python print(y_pred[: 5]) ``` ### Matriz de Confusão para Verificação da Precisão A matriz de confusão é indispensável para avaliar a precisão da nossa modelo. Aqui, iremos utilizar a biblioteca scikit-learn para criar e visualizar a nossa Matriz de Confusão: ```python from sklearn. metrics import confusion_matrix, ConfusionMatrixDisplay import seaborn as sns conf_mat = confusion_matrix(y_true=y_test, y_pred=y_pred) CM = ConfusionMatrixDisplay(conf_mat) CM. plot() ``` Isso nos dará uma visualização abrangente da performance da nossa modelo, destacando as predições verdadeiras positivas, falsas positivas, verdadeiras negativas e falsas negativas. ### Resultados Com a análise da matriz de confusão, podemos determinar a precisão da nossa modelo. Neste exemplo, obtivemos uma precisão de 95% para prever corretamente se uma pessoa apresenta ou não sintomas. Com 195 pessoas previstas para não apresentar sintomas (corretamente) e 200 pessoas previstas para apresentar sintomas, o erro de 5% pode ser calculado realizando a divisão do número de pessoas mal classificadas pelo número total de pessoas. ```python print("Erro: 5%") ``` ### Deteção de Máscaras Faciais com Keras (Demonstração) Este trecho demonstra a detecção de máscaras faciais em tempo real utilizando o Keras para determinar se uma pessoa está usando uma máscara ou não. Isso poderia ser útil em vários cenários, como em um loja onde é importante garantir que as pessoas estão seguras durante a pandemia do COVID-19. Para começar com este exemplo, você precisará do Python 3. 8 e atualizar para a versão mais recente do TensorFlow. Para mais informações e dados, visite o [site da Simply Learn](https://simplylearn.io/) e clique no link na descrição. Este exemplo demonstra o desenvolvimento end-to-end de um produto, mas é uma versão simplificada. Em um cenário de mundo real, haveria etapas adicionais, como reconhecimento da cara de uma pessoa e mais. ### Deteção de Máscaras Faciais com Keras (Código) ```python from keras. models import Sequential from keras. layers import Dense, Dropout, Flatten from keras. layers. convolutional import Conv2D, MaxPooling2D # Modelo arquitetura model = Sequential() # Camada de entrada model. add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(150, 150, 3)) # Camadas ocultas model. add(Conv2D(64, kernel_size=(3, 3), activation='relu')) model. add(MaxPooling2D(pool_size=(2, 2))) # Camada de saída model. add(Flatten()) model. add(Dense(1, activation='sigmoid')) # Compilar e treinar o modelo model. compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) model. fit(X_train, y_train, epochs=10, validation_data=(X_val, y_val)) # Salvar o modelo treinado model. save('mask_detection_model. h5') ``` # Projeto de Aprendizado de Máquina: Deteção de Máscara Facial ## Introdução Neste projeto, vamos trabalhar em um modelo de aprendizado de máquina para deteção de máscaras faciais usando imagens de rostos com e sem máscaras. Vamos utilizar várias bibliotecas Python, incluindo TensorFlow, OpenCV, NumPy, e Matplotlib. ## Importações ```python import tensorflow as tf import sklearn from sklearn. model_selection import train_test_split from sklearn. preprocessing import LabelBinarizer, ResizeImages from skimage. io import imread_color from keras. preprocessing. image import ImageDataGenerator, array_to_img, img_to_array from keras. layers import Dense, Dropout, AveragePooling2D, Flatten from keras. models import Sequential, Model import cv2 import numpy as np import matplotlib. pyplot as plt ``` ## Preparação de Dados Temos um diretório com imagens de rostos com e sem máscaras. Neste projeto, vamos carregar e preparar os dados. ```python # Caminho para o dataset DIREITÓRIO_DATASET = 'dataset' # Carregar imagens e rótulos dados = [] rótulos = [] categorias = ['com-máscara', 'sem-máscara'] # Percorrer todas as categorias para cada categoria em categorias: diretório = f'{DIREITÓRIO_DATASET}/{categoria}' para cada img em os. listdir(diretório): caminho_img = os. path. join(diretório, img) imagem = imread_color(caminho_img, target_size=(200, 200)) imagem = img_to_array(imagem) imagem = imagem. reshape((1, ) + imagem. shape) dados. append(imagem) rótulos. append(categorias. index(categoria)) # Converter os rótulos de inteiros em variáveis categoricas binarizador_rótulo = LabelBinarizer() rótulos = binarizador_rótulo. fit_transform(rótulos) # Aplanar os dados para obter um array de uma dimensão dados = np. array(dados). flatten() # Dimensionar as imagens para terem um tamanho identico dimensionar = ResizeImages(resize_mode='square', min_side_length=200, max_side_length=200) dados = dimensionar. fit_transform(dados) rótulos = binarizador_rótulo. transform(rótulos) ``` ## Augmentação de Dados A augmentação de dados é uma técnica utilizada para melhorar a qualidade e a quantidade de dados, o que ajudará a reduzir o overfitting e melhorar a capacidade de generalização do modelo. Neste projeto, vamos utilizar um `ImageDataGenerator` para realizar a augmentação de dados. ```python # Criar o gerador de dados de imagem gerador_dados = ImageDataGenerator(rotation_range=40, zoom_range=0. 2, width_shift_range=0. 2, height_shift_range=0. 2, shear_range=0. 2, flip_horizontal=True, fill_mode='nearest') # Loop pelas batchs de dados tamanho_batch = 32 para cada X_treino, y_treino no gerador_dados. flow(dados, rótulos, batch_size=tamanho_batch): # Executar alguma tarefa nas batchs (treino, validação, etc. ) pass ``` ## Construção do Modelo Vamos construir um modelo de rede neuronal convolucional usando a biblioteca keras do TensorFlow. ```python # Criar um modelo base (MobileNet V2) e bloqueá-lo ascamadas modelo_base = tf. keras. applications. MobileNetV2(top=False, pesos='imagenet') modelo_base. treinável = False # Criar uma camada superior para o modelo base para cada camada em modelo_base. layers: camada. treinável = False caminha_modelo = modelo_base. output bobinação_média = AveragePooling2D(pool_size=(7, 7))(caminha_modelo) caminha_modelo = Flatten( )(bobinação_média) caminha_modelo = Dense(128, ativação='relu')(caminha_modelo) caminha_modelo = Dropout(0. 5)(caminha_modelo) caminha_modelo = Dense(len(categorias), ativação='softmax') # Definir o modelo completo modelo = Model(entrada=modelo_base. input, saída=caminha_modelo) ``` ## Treino Agora, vamos treinar o modelo utilizando os dados que preparámos. ```python # Definir parâmetros de treino tamanho_batch = 32 épocas = 20 # Compilar e ajustar o modelo modelo. compile(optimizador='adam', perda='cross_entropy', métricas=['acurácia']) histórico = modelo. fit(X_treino, y_treino, batch_size=tamanho_batch, épocas=épocas, split_de_validade=0. 2) ``` ## Avaliação Por fim, vamos avaliar o desempenho do modelo nos dados de teste. ```python # Carregar dados de teste X_teste, y_teste = X_teste, y_teste # Avaliar o modelo perda, acurácia = modelo. avaliar(X_teste, y_teste) print('Perda de teste: ', perda) print('Acurácia de teste: ', acurácia) ``` # Projeto de Aprendizado de Máquina ## 80 segundos por Epic A cada 80 segundos por Epic, demora alguns minutos para passar por um único núcleo. Durante a execução, observe a augmentation que está acontecendo. Quando `trainX` e `tradingY` entram, é onde há alguma aleatoriedade, movendo-a para ai. É segmentado de forma que o valor que definimos para o tamanho das porções determina quantas vamos processar de cada vez, e também temos passos por Epic. `trainX`, tamanho do lote e dados de validação estão representados. ### Validação Uma coisa importante a conhecer sobre a validação é que nossa dada de treino e de teste devem ter similares precisões. Se a precisão de teste for maior, significa que nossa modelo pode estar previamente biasado e estar potencialmente sobrefitting. Nesse caso é quando a validação de dados e as etapas de validação entram em jogo. Vamos ver se já foi processado. Parece que passamos por dois Epics. Você poderia passar por isto por até 20 com esta quantidade de dados e seria um modelo melhorável ao final, mas estamos parando em dois pois eu não quero passar a noite inteira. Com este sendo executado em um único filtro, agora que passamos isso, precisamos avaliar o nosso modelo e verificar Como está. Para isso precisamos fazer predições. Estas são predições em nosso X de teste para ver o que acha que são. A rede agora está avaliando, e iremos avaliar o modelo a seguir. Precisamos tomar o argumento final, pois, como poderá lembrar, é 0 ou 1. É uma situação de classificação de 0 a 1, com saídas de "não usando máscara" e "usando máscara. " Então, vamos gerar o atribuição final separando aquela previsão entre um zero ou um. Para encerrar, queremos apresentar um relatório de classificação formatado, que apresenta: ``` Precisão com máscara: 97 F1 score sem máscara: 97% ``` Esta alta configuração indica que pode se esperar em média que três pessoas se escondam nesta loja sem uma máscara e três com uma, prometendo a pessoa na frente exaltar: "Olha nessa pessoa. Você talvez não esteja usando máscara. " Isso é especialmente útil se uma pessoa está entrando na loja e várias fotos dele forem tomadas. A partir disso, podemos tirar a média dessas fotos para ver se eles atendem ou não. ### Salvar Modelo Vamos fazer uma cópia do nosso modelo, o que nos permite carregá-lo para uma outra programação. Por exemplo, se alguém quer trabalhar em outra parte do programa, eles podem facilmente carregar o modelo e utiliza-lo para os seus fins. Se novas informações ficam disponíveis, podemos querer atualizar este modelo e melhorá-lo no futuro. Agora, é fácil enviar isto para o utilizador final. Aqui há uma boa gráfico que representa a perda de treino e acurácia em passar por Epics: ! [](seu_graph_url_aqui) Pode-se ver o valor de perda, acurácia de treino e acurácia de validação começarem a trocar e convergir, o que é conhecido como "convergência. " A convergência ocorre quando as nossas perdas e acurácias começam a convergir (accurácia de treino e acurácia de validação). Mostra que estes Epics ainda não convergiram completamente, indicando que eu continuaria a alegar. Agora, vamos criar um novo programa python 3, importar o nossa máscara treinada para uso em ação ao vivo. Vamos importar pre-processing, input e algumas outras utilitários. Criaremos aqui um módulo que fará o trabalho pesado, detectará a máscara e preverá a predição. Detectaremos o rosto e criaremos um mascarão em torno dela antes de processar a imagem através do nosso modelo. Por fim, vamos percorrer as detecções, filtrar as débiles, e criar caixas retangulares. Vamos então redimensionar as imagens, pre-processar o input, localizar o rosto, e fazer as previas das máscaras. Quando tivermos tudo isto, vamos carregar nossa modelo de detecção de rosto serializado desde o disco e nossa modelo de detecção de máscara desde o disco, também. Vamos abrir o nosso vídeo, arrancá-lo, e rodá-lo até o fim, fornecendo alguns visualizações, de ação ao vivo, que estão parte da configuração de vídeo de abertura de OpenCV. # Mast Net: Detecção de Máscaras em Tempo Real Usando OpenCV Este projeto demonstra uma configuração de detecção de máscaras em tempo real usando OpenCV. Enviaremos todos os diferentes elementos que passam pelo pipeline, devolverá nossa localização e predictivas, e apresentará o retângulo de bounding box no quadro de saída. ## Visão Geral 1. **Distribuição e Carregamento do Modelo: ** Distribuímos o nosso modelo e o carregamos no nosso código distribuído. Encontramos-o ligado à nossa câmera e agora estamos prontos para o rodar. 2. **Processamento em Tempo Real: ** Estamos processando um vídeo em fluxo pelo nosso modelo em tempo real. O modelo detecta se a pessoa está usando uma máscara ou não, o que é especialmente útil no mundo atual. 3. **Passo a Passo no Código: ** Pulos os detalhes do código de OpenCV e focamos nos processos de salvar o modelo, fazer upload do modelo, e processar um vídeo em fluxo por ele. ### Classificação de Imagem A classificação de imagem consiste em atribuir classes à imagem toda. As imagens podem ser classificadas com base em diferentes categorias, como se é uma foto de nossa matriz ou uma foto do céu, o que a foto representa, etc. Neste projeto, faremos classificação de imagem usando redes neurais (especificamente, o modelo VGG16) para extrair recursos das imagens e classificá-las com base nesses recursos. As redes neurais se destacam em áreas como classificação de imagens, e os resultados obtidos são melhores do que os obtidos usando modelos de regressão linear. #### Conjunto de Dados de Classificação de Imagem da Intel O dado utilizado é o conjunto de dados de classificação de imagem da Intel, que consiste em imagens de seis tipos de áreas terrestres como Floresta, Edifícios, Geleiras, Montanhas, Mar e Rua. Ao longo de criar uma rede neural e usar o modelo VGG16 para classificação de imagem. ```python # Importa as bibliotecas necessárias import numpy as np import pandas as pd import os import cv2 import matplotlib. pyplot as plt from tensorflow. keras. models import load_model # Define as caminhos e outras variáveis # . . . # Carrega e processa os dados # . . . # Carrega o modelo VGG16 model = load_model('caminho_para_o_modelo_do_vgg16. h5') # Processa o vídeo em fluxo cap = cv2. VideoCapture(0) Enquanto verdadeiro: # . . . # Faz uma predição usando o modelo VGG16 previsão = model. predict(X) # Calcula o índice de classe com a probabilidade mais alta indice_prob_max = np. argmax(previsão) # Obtém o nome da classe e sua etiqueta classe_nome = nomes_de_classes[indice_prob_max] classe_etiqueta = etiquetas_de_classes[indice_prob_max] # Rettaframe no quadro de saída cv2. rectangle(frame, box, (box[0] + box[2], box[1] + box[3]), (0, 255, 0), 2) cv2. putText(frame, f'Classe: {classe_nome}', (box[0], box[1] - 10), cv2. FONT_HERSHEY_SIMPLEX, 0. 5, (0, 255, 0), 2) # Mostra o quadro de saída cv2. imshow('Saída', frame) Se cv2. waitKey(1) & 0xFF == ord('q'): quebra # Liberta o objeto VideoCapture e fecha todas as janelas cap. release() cv2. destroyAllWindows() ``` Neste código mostramos um conjunto de detecção de máscaras em tempo real usando OpenCV. O modelo VGG16, um modelo de rede neural pré-treinado para classificação de imagens, é usado para fazer previsões sobre o fluxo de vídeo em entrada e desenhando o retângulo de bounding box em torno das máscaras detectadas no quadro de saída. Algumas melhorias podem ser feitas por meio de técnicas como aumento de dados, multithreading e ajuste das pesos do modelo para aprimorar a precisão do modelo. # Classificação de Imagem usando Python e OpenCV Este documento mostra como utilizar Python e a biblioteca OpenCV para classificar imagens. ## Organização do Diretório Neste projeto, o diretório está separado em dois segmentos: treino e teste. Isso é como é na pasta realmente, como você pode ver. ``` caminho_longo_para_minha_pasta_de_programação - sequencia - treino - imagens - etiquetas - teste - imagens - etiquetas ``` Neste exemplo, estamos trabalhando com classificação de imagens. Não esperamos que você tenha um caminho tão longo. Quando você entra nessa pasta, você verá que há pastas de treino e teste, e cada uma delas contém pastas de imagens e etiquetas. ## Carregamento de Dados Ao carregar os dados, precisamos do caminho e da pasta. Vamos carregar as imagens em uma seção e as etiquetas em outra. Examinemos aqui como iremos percorrer os seis diretórios com diferentes paisagens e extrair cada arquivo e sua etiqueta. ```python caminho_imagem_treino = 'caminho_longo_para_minha_pasta_de_programação/sequencia/treino/imagens' caminho_etiqueta_treino = 'caminho_longo_para_minha_pasta_de_programação/sequencia/treino/etiquetas' import glob imagens_treino = [] etiquetas_treino = [] for pasta in ['pasta1', 'pasta2', 'pasta3', 'pasta4', 'pasta5', 'pasta6']: imagens = glob. glob(f'{caminho_imagem_treino}/{pasta}/*. jpg') etiquetas = glob. glob(f'{caminho_etiqueta_treino}/{pasta}/*. txt') for imagem, etiqueta in zip(imagens, etiquetas): imagens_treino. append(imagem) etiquetas_treino. append(etiqueta) ``` Depois de carregarmos os dados, podemos misturar as etiquetas. ```python from sklearn. utils import shuffle imagens_treino, etiquetas_treino = shuffle(imagens_treino, etiquetas_treino) ``` ## Exibição de Imagens Irpowerimos alguns exemplos de imagens de treino e teste. Resizemos as imagens para 20x20 para perder detalhes. Porém, essa redução pode não ser a melhor ideia, então iremos verificar o efeito de não resizear as imagens. ```python import matplotlib. pyplot as plt import cv2 import numpy as np imagens = [imagens_treino[0], imagens_treino[1], imagens_treino[2]] fig = plt. figure(figsize=(6, 6)) for i, imagem in enumerate(imagens): img = cv2. imread(imagem) img = cv2. cvtColor(img, cv2. COLOR_BGR2RGB) img = np. uint8(img) img = cv2. resize(img, (20, 20)) ax = fig. add_subplot(3, 3, i + 1) ax. imshow(img) plt. show() ``` Essa seção do documento mostra como carregar e visualizar imagens usando Python e OpenCV. ## Modelagem Em seguida, criaremos um modelo de rede neural convolucional (CNN) 2D. Examinaremos as camadas de entrada, ativação e filtro do modelo. ```python from keras. models import Sequential from keras. layers import Conv2D, MaxPooling2D, Flatten, Dense modelo = Sequential() modelo. add(Conv2D(32, (3, 3), activation='relu', input_shape=(150, 150, 3))) modelo. add(MaxPooling2D(pool_size=(2, 2))) modelo. add(Conv2D(64, (3, 3), activation=' º'¡Ë ``` # Como Criar Videos de Produto Usando a Inteligência Artificial Este guia mostrará-lhe como criar videos de produto usando ferramentas de AI para uma experiência de marketing e venda envolvente e eficaz. ## Introdução Os videos de produtos são ferramentas essenciais para marketing e vendas, destacando as características, vantagens e formas de uso do produto. Aplicando a AI, você pode economizar tempo e esforço ao criar vídeos de alta qualidade que representem precisamente o valor do seu produto. ### Pré-requisitos - Acesso a um site de anúncios de vídeo, cuja AI, como CreatifAI (<https://www.youtube.com/watch?v=5kqvRXKs3Zk>) ## Criando Videos de Produtos com a AI Siga estes passos para criar um video de produto usando CreatifAI: 1. Visite o site da CreatifAI e crie uma conta gratuita (caso ainda não tenha uma). 2. Rolle a página para baixo para encontrar os planos oferecidos, e escolha o plano gratuito para começar. 3. Analise o link do seu produto, introduzindo-o diretamente ou introduzindo manualmente informações sobre o produto que deseja mostrar. 4. A URL será analisada automaticamente, para preencher automaticamente o nome, descrição e ativos do produto; ou seja que seja possível preencher detalhes e ativos necessários manualmente. 5. Personalize as configurações do vídeo, como plataforma de publicação, relação de aspecto, duração e idioma. 6. Escolha entre roteiros gerados pela AI (basta clicar em "Gerar Scripts Adicionais"), ou escrever seu próprio script se preferir. 7. Selecione ou carregue as características ou ativos desejados, garantindo que eles tenham um impacto efectivo na sua mensagem do produto. 8. Para o avatar escolhido, personalize-o com gênero, idade e localização (apenas disponível em planos de assinatura). 9. Renderize o vídeo após terminarem as personalizações. Note que o plano gratuito tem um limite de crédito de cinco para cada vídeo e não é possível remover marcas de água. ## Conclusão Por usar ferramentas de AI como a CreatifAI, pode criar rapidamente e eficientemente vídeos de produto que tragen o seu negócio para novos altos. Inscreva-se em uma conta gratuita hoje e comece a economizar tempo enquanto gera conteúdo de alta qualidade para as suas estratégias de marketing. Boa sorte na criação! 🌟 # Bem-vindo! Se você é estudante em busca de aprender as habilidades mais relevantes atuais ou profissional trabalhando em busca de avançar sua carreira, estamos à sua disposição. exploring our incredible offering of certification programs and cutting-edge domains, including data science, cloud computing, cybersecurity, Artificial Intelligence, machine learning or digital marketing. Built in partnership with leading universities and top-selling corporations, and delivered by industry experts, choose any of these programs and put yourself on the path to professional success. Click on the link below for more information. [Música] Olá, aqui se entrevistando, se você gostou deste vídeo, inscreva-se no [Canal YouTube Simply Learn](https://link-do-canal-simply-learn.com) e clique aqui para assistir a vídeos semelhantes para se tornar mais temerarius e se certificar. Clique aqui --- ## Atención! Esse texto foi traduzido automaticamente para ajudá-lo a melhorar sua documentação em markdown. Por favor, revisá-lo cuidadosamente e correia qualquer erro de tradução na melhoria de seu texto final. 