# Curso completo de Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina ## Tabela de conteúdos 1. [Aprendizagem de Máquina | O que é Aprendizagem de Máquina? | Introdução à Aprendizagem de Máquina | 2024 | Simplilearn](https://www.youtube.com/watch?v=ukzFI9rgwfU) 2. [Aprendizagem Supervisionada vs Aprendizagem Não Supervisionada vs Aprendizagem por Reconhecimento | Tutorial de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=1FZ0A1QCMWc) 3. [Análise de Regressão Linear | Análise de Regressão em Python | Algoritmos de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=NUXdtN1W1FE) 4. [Algoritmo KNN na Aprendizagem de Máquina | Algoritmo KNN utilizando Python | K-vizinhos | Simplilearn](https://www.youtube.com/watch?v=4HKqjENq9OU) 5. [Tipos de Aprendizagem de Máquina | Algoritmos de Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=olFxW7kdtP8) 6. [Predição de Mercado de Ações utilizando Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=OXwZtlcTiuk) 7. [Árvores de Decisão na Aprendizagem de Máquina | Árvores de Decisão em Python | Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=RmajweUFKvM) 8. [O que é Aprendizagem de Máquina? | Aprendizagem de Máquina Basics | 2023 | Simplilearn](https://www.youtube.com/watch?v=cfSDvPlFFVQ) 9. [Detecção de Notícias Falso utilizando Aprendizagem de Máquina | Projetos de Aprendizagem de Máquina em Python | Simplilearn](https://www.youtube.com/watch?v=U6ieiJAhXQ4) 10. [Curso completo de Aprendizagem de Máquina em Python 2023 | Tutorial de Aprendizagem de Máquina para Iniciantes | Simplilearn](https://www.youtube.com/watch?v=c8W7dRPdIPE) 11. [Predição de Doenças Cardiovascular utilizando Aprendizagem de Máquina | Previsão de Doença Cardiovascular | Simplilearn](https://www.youtube.com/watch?v=tSBAag6lAQo) 12. [Curso completo de Aprendizagem de Máquina 2022 | Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina | SimpliLearn](https://www.youtube.com/watch?v=qhM7dGsQ3m0) 13. [Top 10 Aplicações da Aprendizagem de Máquina | Aplicações de Aprendizagem de Máquina & Exemplos | Simplilearn](https://www.youtube.com/watch?v=HKcO3-6TYr0) 14. [Algoritmos de Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina | Algoritmos de Ciência de Dados | Simplilearn](https://www.youtube.com/watch?v=I7NrVwm3apg) 15. [Seleção de Características na Aprendizagem de Máquina | Técnicas de Seleção de Características com Exemplos | Simplilearn](https://www.youtube.com/watch?v=5bHpPQ6_OU4) 16. [Questões e Respostas de Interview da Aprendizagem de Máquina & Preparação para o Interview | Simplilearn](https://www.youtube.com/watch?v=hB1CTizqGFk) 17. [Previsão de Aprovação de empréstimos utilizando Aprendizagem de Máquina | Projetos de Aprendizagem de Máquina 2022 | Simplilearn](https://www.youtube.com/watch?v=x2NrPeHSPU0) 18. [Classificação na Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina | Treinamento em Python | Simplilearn](https://www.youtube.com/watch?v=xG-E--Ak5jg) 19. [Aprendizado de Inteligência Artificial Full Course | Curso de Aprendizado de Inteligência Artificial & Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=wnqkfpCpK1g) 20. [Juizamento em Aprendizagem por Reward | Algoritmo de Juizamento em Q Learning | Tutorial de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=tMnc-hhO2jE) 21. [Análise de Mercado Basket utilizando Mineração de Regras | Projetos de Aprendizagem de Máquina 2022 | Simplilearn](https://www.youtube.com/watch?v=aqsa-gO_aq4) 22. [Análise do Chat do Grupo WhatsApp utilizando Python | Projetos de Aprendizagem de Máquina 2023 | Simplilearn](https://www.youtube.com/watch?v=SbX2-o5w5pY) 23. [Curso Rápido de Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina | Projetos de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=NOJOYcmyDhM) 24. [Top 10 Ideias de Projetos de Aprendizagem Profunda | Aplicações de Aprendizagem Profunda | Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=f09B2Dr9y-Y) 25. [Análise Principal de Componentes na Aprendizagem de Máquina | Análise de Componentes Principais | Tutorial de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=2NEu9dbM4A8) 26. [Aprendizagem de Máquina em 5 Minutos | Introdução a Aprendizagem de Máquina | O que é Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=-DEL6SVRPw0) 27. [Deteção de discurso odioso utilizando Aprendizagem de Máquina | Projetos de Aprendizagem de Máquina em Python | Simplilearn](https://www.youtube.com/watch?v=jbexvUovHxw) 28. [O que é Aprendizagem de Máquina? | O que é Aprendizagem de Máquina e Como Funciona | Simplilearn](https://www.youtube.com/watch?v=HgBpFaATdoA) 29. [Detecção de Doença de Parkinson utilizando Aprendizagem de Máquina | Projetos de Aprendizagem de Máquina 2022 | Simplilearn](https://www.youtube.com/watch?v=CQLkX4utdIU) 30. [Sobefitando e Subaprendizagem na Aprendizagem de Máquina | Tutorial de Aprendizagem de Máquina para Iniciantes | Simplilearn](https://www.youtube.com/watch?v=W-0-u6XVbE4) 31. [Top 10 Ideias de Projetos de Aprendizagem de Máquina para 2023 | Projetos de Aprendizagem de Máquina para Curriculum Vitæ | Projetos de Ideias | Simplilearn](https://www.youtube.com/watch?v=YrJE9q1FYnM) 32. [Tutorial de Aprendizagem de Máquina, Parte 1 | Tutorial de Aprendizagem de Máquina para Iniciantes, Parte 1 | Simplilearn](https://www.youtube.com/watch?v=DWsJc1xnOZo) 33. [Algoritmo de K Means na Aprendizagem de Máquina | Algoritmo KMeans em Python | Algoritmos de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=BSRsXi-gvms) 34. [Aprendizagem de Máquina vs Aprendizagem Profunda vs Inteligência Artificial | Aprendizagem de Máquina vs Aprendizagem Profunda vs AI | Simplilearn](https://www.youtube.com/watch?v=9dFhZFUkzuQ) 35. [Roadmap de Aprendizagem de Máquina para 2022 | Como se Tornar Engenheiro de Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=8CcmD690iNc) 36. [Top 5 Motivos para Aprender Aprendizagem de Máquina | Porque tornar-se um Aprendizagem de Máquina? | Simplilearn](https://www.youtube.com/watch?v=wMHhlZbsusY) 37. [Como se Tornar Engenheiro de Aprendizagem de Máquina | Como Aprender Aprendizagem de Máquina | Simplilearn](https://www.youtube.com/watch?v=-5hEYRt8JE0) ## Transcrições ### O que é Aprendizagem de Máquina? | O que é Aprendizagem de Máquina e Como Funciona? | 2024 | Simplilearn URL: [https: //www. youtube. com/watch? v=ukzFI9rgwfU](https://www.youtube.com/watch?v=ukzFI9rgwfU) Linguagem: en Conhecemos os humanos aprenderem dos seus próprios passados, e as máquinas seguem as instruções fornecidas pelo humano. Mas, o que se trata de treinar as máquinas para aprender dos dados do passado e fazer o que os humanos podem fazer, e muito mais rápido - isso se chama aprendizagem de máquina. No entanto, isso é muito mais do que apenas aprender; é sobre entender e raciocinar. Hoje, aprenderemos sobre os fundamentos da aprendizagem de máquina. Por exemplo, Paulo gosta de ouvir novas músicas. Ele gosta ou não delas, e ele determine isso com base no ritmo e a intensidade da música. Simplificando isso apenas através do ritmo e da intensidade, então o ritmo está no eixo x, fluctuando de relaxado para rápido, e a intensidade está no eixo y, fluctuando de luz a voar. Podemos ver que Paul gosta de músicas com um ritmo rápido e intensidade voadora, enquanto ele não gosta de músicas com um ritmo relaxado e intensidade luz. Assim que sabemos as opções de Paul. Se Paul ouvir uma nova música, "Canção A. " "Canção A" tem um ritmo rápido e intensidade voadora, então ela está localizada aqui. Olhando para os dados, você pode deduzir se Paul irá gostar ou não da canção? Correto, Paul gosta desta canção. Agora, se Paul ouvir uma nova música, "Canção B. " "Canção B" está localizada aqui com um tanto lento ritmo e intensidade, nem relaxado nem rápido, nem luz nem voar. Você pode deduzir se Paul vai gostar dela ou não? Não consigo determinar. Isso é onde a aprendizagem de máquina entra em jogo. Verifiemos como, nesse exemplo para "Canção B, " se circulamos ao redor "Canção B, " vêmos que há quatro votos de gostar e um deles vota para não gostar. Se eye por o voto da maioria, podemos afirmar que Paul vai certamente gostar da canção. Isso foi um básico algoritmo de aprendizagem de máquina, conhecido como o k-vizinhos mais próximos. No entanto, é fácil classificar "Canção A"; mas quando as opções se tornam mais complicadas, como no caso de "Canção B, " é quando a aprendizagem Então entra. Ele aprende os dados, construindo o modelo de previsão e, quando um ponto de dados novo entra, ele consegue prever para ele sem dificuldades. O mais dados há, melhor o modelo é e a maior a precisão. Há várias maneira de como a máquina aprende, pode ser uma supervisionada, não supervisionada ou por recompensa. Vamos rapidamente entender a supervisionada. Por exemplo, seu amigo lhe dá um milhão de moedas em três diferentes moedas: uma rúpia indiana, um euro e um dirham. Cada moeda pesa com uma peso diferente: uma moeda de uma rúpia pesa três gramas, um euro pesa sete gramas, e um dirham pesa quatro gramas. Seu modelo prevê a moeda. Aqui, o peso se torna uma característica do token, enquanto a moeda se torna a rótula quando você passa este dado para o modelo de aprendizagem de máquina, ele aprende qual característica está associada à rótula. Por exemplo, entenderá que se um token pesa três gramas, será uma moeda de uma rúpia. Cobrando um token novo para a máquina, com base no peso de novo token, seu modelo prevê a moeda. Assim, a aprendizagem supervisionada usa dados rotulados para treinar o modelo. Nessa nota, vamos ao aprendizagem não supervisionada e ver a diferença. Por exemplo, você tem uma base de dados de críquet sobre jogadores de diversas partidas com suas respectivas marcas e wickets tirados. Quando você combina esta base de dados para a máquina, ela reconhece o padrão do desempenho dos jogadores. Então ela encontra 4 jogadores cujos turnos são os seguintes: "Jogador 1" com 10 turnos de bolas (wickets) e 1000 carradas lancadas (runs); "Jogador 2" com 26 turnos de bolas (wickets) e pouco menos de 500 carradas lancadas (runs); "Jogador 3" com 30 carradas lancadas (runs) e 11 turnos de bolas (wickets); "Jogador 4" com 15 turnos de bolas (wickets) e 300 carradas lancadas (runs). Você pode facilmente ver que "Jogador 1" é um jogador que gosta de bolas e não leva tanta conta da prova, enquanto que "Jogador 2" é um jogador que gosta de lancar a bola e então procura lançar runs. "Jogador 3" é um jogador que gosta de ambas as opções, enquanto "Jogador 4" também é um jogador que gosta de lancar a bola, porém gosta de ganhar carradas também. Assim, após uma analysis de vez que a aprenda seus dados. Assim, após uma análise de vez que a aprenda seus dados, é possível visualizar uma tendência dos jogadores. No entanto, um ponto importante para se lembrar aqui é que nenhuma das labels de jogador fora fornecida, com isso a aprendizagem sem rotuladores é a aprendizagem não supervisionada. Por fim, difamosemo rápidamente o aprendizado por recompensas, que é um aprendizado recompensado ou baseia-se no princípio de feedback. Por exemplo, você fornece o sistema com uma imagem de um cachorro e pergunta se é uma imagem de um cachorro. O sistema identifica-o como uma imagem de um leopardo, então você dá um feedback negativo para o sistema dando-lhe a entender que a imagem é de um cachorro. O sistema aprende do feedback e, finalmente, ao analisar qualquer outra imagem de um cachorro, o sistema vai ser capaz de classificá-la corretamente. Isso é a aprendizagem por recompensas. Para generalizar o modelo de máquina de aprendizagem, queremos ver um fluxograma. Uma entrada para um modelo de aprendizagem de máquina de máquina há por em um modelo de aprendizagem de máquina, o qual então fornece a saída de acordo com o algoritmo aplicado. Se tiver certeza, tomamos a saída como um resultado final; caso contrário, fornecemos um feedback para o modelo de treinamento e pedimos para previsões até que ela aprenda. Espero que tenham entendido a supervisionada e aprendizagem não supervisionada. Por este entanto, tenham uma breve pergunta. Pode-se determinar se os cenários abaixo são de aprendizagem supervisionada ou não supervisionada? 1. O programa Facebook reconhece seu amigo em uma imagem de um álbum de fotos pela tag. 2. O Netflix recomenda novos filmes baseados em suas últimas escolhas de filmes. 3. Análise de dados bancários para detecção de transações suspeitas e marcação das transações suspeitas. Resposta: 1. Supervisionada 2. Supervisionada 3. Supervisionada (pois os dados foram conhecidos e rotulados, e o sistema aprende para marcar as transações suspeitas). # Aplicações da Aprendizagem Máquina A aprendizagem máquina tem um vasto escopo de aplicações em vários setores. Aqui estão algumas exemplos: 1. **Saúde** - Predição de Diagnóstico: Modelos de aprendizagem máquina são usados para prever diagnósticos para revisão dos médicos. 2. **Análise de Sentimento** - Redes Sociais: Giants da tecnologia usam a aprendizagem máquina para análise de sentimento em redes sociais. 3. **Detecção de Frauda** - Finanças: A aprendizagem máquina é empregue no setor financeiro para detecção de fraude. 4. **Predição de desertição do cliente** - E-commerce: A aprendizagem máquina é utilizada para predizer desertação de clientes no sector e-commerce. 5. **Preço Dinâmico** - Serviços de Taxis: Gigantes globais de serviços de táxis como Uber usam a aprendizagem máquina para preços diferenciais em tempo real baseados na demanda. 6. **Assistentes Inteligentes** - Siri: Por exemplo, Siri pode ser treinado para lembrar os usuários de realizar tarefas como agendar um táxi a um determinado horário. ## Agora é Sua vez! 🤝💻 Compartilhe alguns interessantes exemplos de situações cotidianas em que você tenha visto máquinas aprendendo e fazendo armazendos trabulhos no comentário abaixo. --- ## Aprendizagem Supervisionada vs Aprendizagem não Supervisionada vs Aprendizagem Reforçada URL: [Aprendizagem Supervisionada vs Aprendizagem não Supervisionada vs Aprendizagem Reforçada](https://www.youtube.com/watch?v=1FZ0A1QCMWc) - Inglês Seja bem-vindo a este tutorial pela Simplilearn! Neste vídeo, você aprenderá sobre um interessante assunto de aprendizagem máquina: Aprendizagem Supervisionada vs Aprendizagem não Supervisionada vs Aprendizagem Reforçada. Vamos discutir cada um deles em detalhe e entendermos quando usar esses algoritmos, juntamente com suas aplicações. **Aprendizagem Supervisionada** - Utiliza dados etiquetados para treinar os modelos de aprendizagem máquina. - Exemplo: Treinando uma máquina para identificar uma imagem de um animal. **Aprendizagem não Supervisionada** - Utiliza dados não etiquetados para treinar as máquinas. - Exemplo: Classificando fotos de veículos como ônibus ou caminhão baseando-se em características como comprimento, largura, tipo de corpo, etc. **Aprendizagem Reforçada** - Treina a máquina a escolher as ações apropriadas e maximizar recompensa em uma determinada situação. - Exemplo: Treinando uma máquina a identificar a forma de um objeto. --- ## Análise de Regressão Linear | Análise de Regressão em Python | Algoritmos de Aprendizagem Máquina | Simplilearn URL: [Análise de Regressão Linear](https://www.youtube.com/watch?v=NUXdtN1W1FE) - Inglês Seja bem-vindo à análise de regressão! Neste vídeo, vamos olhar um exemplo de um uso comum da regressão linear: a estimativa da receita da empresa. Se você tiver interesse em investir em uma empresa, gostaria de saber quantos recursos poderá obter. Neste caso, vamos considerar uma variável única (gastos de pesquisa e desenvolvimento) e descobrir quais empresas investir. A plotagem da receita baseada nos gastos de R&D pode ajudar a estimação da receita, e a tendência é que as empresas gastando mais com R&D fiquem com lucro grande, portanto, podemos investir em aquelas que gastam mais com R&D. Aconteça as seguintes alterações no texto para portugês de Portugal: 1. Supervisado significa que temos as respostas; nem apenas associando coisas. Reproduzivo é onde proporciona feedback positivo e negativo para nosso algoritmo para alinhar programa-lo e não tema informação para isso já depois. No entanto, a discussão teórica Aqui vais a fonte de ap renderá ao Reino Superviado porque tal é onde abre-se espaço á regressão linear. Da dados Supevisionadas, temos nossa dados(entrada), as respostas(entrada) grupo, que usemos para ao modelo-nos e alcancemos sua respostas. ``` --- #Aprendagem Supervisionado: Explorendo as Regressao Lineares ** Supervisionado temos as repostas devemos nunca apenas agruprendo eventos. reproduzido (ou ap renderedo) permite que usemos feedback como positivo do negativo dado ao programa para almimentar enquanto supervisionado baseia-na informação antiga. Tanto, isto é referido ap presentedo, podemos nos nuvem, pois dentro desta Aprende-se nós viemos a conhecer onde a regreção linear em. Em Nosso treino de daados, dispostos Temos nossas dados as resposta para um definido grupo-que utilizás para programr-nos E chegar sem respostes. ---- ``` 2. As duas aplicaçoens mais regulares Para a regrssao linear Fornece nas regressâo e categoria. Da presente Situação, tudo o seu regressoes linear, así que vãmos a priorizar a Secção de referência. --- na regressöo, conseguimos: - 1 apresentação a regressée simplese (externos que examinei já, ) --- 2 supervisão-multiplis (quado temos outras variados) Aqui muitas diferentes variões podem entra na apresentação; como a fome que das plantas soja for proporcida, a partir de quando estejam terra, respectivamente. essa é precisamente Para que sejam chamsas regrassões multipleras. depois seja, muitas soluções linhares puder passar por Curva. Essa é Chamada em regressee linear polonez. ao invés de desenchar uma linah, podes desenchar por exemplo nesta linhado. [```mermaid flowchart Graph LR; A --> B; B --> C("Polinêmica - Curva) ````] --- na regressoes simples eles desenhando uma de linha sólida Por um grande tamanho Amount de ponctos na data. Aqui mamutos em regressores multiplerais podemos tratar de dezenas A centenas de variós. Mais em discussão de multiplerais matemática. *** ##Usos daRegressão: -- ### Aquecimento Empresaral Está utilizava para determmar o aquacimento emprentarial País ou e estado no jantar ao futuro quatro. Mas também pode Utilizar para efetruar a quantidade do que o Pibe deve fazer. As vezes muitas firmas utilizasa para determara a quantía de vendese de prodos que de venderão No próximp meses De acordcomo com efetores de mercaderia. as vezes estejam aqueciment económiko para determear o aquoecimento crescentdio de preços . [``` graphviz diagram digram { Economia c-> Aquoecimento [[Economíca]] , Eficaz-> Tempo [[Não]])} `` ```)] <! -- ### Ensino Escolar é utilizado para determenar o andamento do enseino segundo o nêvel de percepção De um alvaro. E também para decidir se muitos coisas terão que é alteradas caso o alívio permaneça dificil Por exemplo algu # Regressão Linear em Python: Uma Guia Passo a Passo ## Introdução Nesta guia, iremos nos guiar pelo processo de realização de regressão linear em Python usando um conjunto de dados comum. Utilizaremos bibliotecas populares como `numpy`, `pandas`, `matplotlib`, e `seaborn`. Para continuar com o seguinte, configure seu ambiente de desenvolvimento de software de Python preferido (IDE) e garanta que as bibliotecas necessárias estejam instaladas. ## Instalando Bibliotecas Requisitadas Antes de começar, vamos instalar as Bibliotecas necessárias caso você não as tenha installado ainda: ``` pip install numpy pandas matplotlib seaborn sklearn ``` ## Carregando o Conjunto de Dados Agora que temos as bibliotecas necessárias instaladas, vamos carregar o conjunto de dados que vamos trabalhar. Para este exemplo, utilizaremos um conjunto de dados que contém informações sobre 1000 empresas, incluindo gastos com Pesquisa e Desenvolvimento (R&D), custos administrativos, custos de marketing, estado e lucro. Você pode encontrar o conjunto de dados [aqui](https://drive.google.com/file/d/1KCtFry67R4Ezt3Uwj6RAo7u1_OeQ2jlz/view?usp=sharing). ```python import pandas as pd # Carregar o conjunto de dados empresas = pd. read_csv("caminho/do/seu/dados/1000_empresas. csv") ``` ## Visão Geral do Conjunto de Dados Agora vamos olhar as primeiras linhas de nosso conjunto de dados para entender sua estrutura: ```python print(empresas. head()) ``` ## Preparação dos Dados e Treino do Modelo Após o carregamento e apresentação do conjunto de dados, preparamos-os para o modelo de regressão linear no Python realizando as transformações e passos de pré-processamento necessários. Em seguida, treinamos o modelo e avaliamos sua performance. Siga as próximas seções para aprender detalhadamente cada passo! 😉 # Regressão Linear no Python Este tutorial vai te conduzir através da criação de um Modelo de Regressão Linear no Python. Nós também abordaremos conceitos importantes como a divisão dos dados, a criação de uma Regressão Linear Múltiple e o uso do modelo para previsões. ## Divisão de Dados Quando criamos um modelo predictivo, queremos sempre dividir os dados em um conjunto de treino e um conjunto de teste. Isso é essencial para garantir a adequação do modelo e evitar práticas não éticas. Usaremos a função `train_test_split` da biblioteca `sklearn. model_selection` neste propósito. ```python from sklearn. model_selection import train_test_split # Supondo que você tenha seus dados em `X` (colunas com os dados) e `y` (coluna de lucros) X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=0) ``` Neste código, criamos 20% dos dados para teste, com o restante utilizado para treino. ## Regressão Linear Múltiple Criaremos nosso Modelo de Regressão Linear usando a classe `LinearRegression` da biblioteca `sklearn. linear_model`. O modelo utiliza todos os cálculos que calculamos previamente, permitindo simplificarmos o processo. ```python from sklearn. linear_model import LinearRegression # Criaremos uma variável `regressor` para o Modelo de Regressão Linear regressor = LinearRegression() # Treine o modelo com nossos dados regressor. fit(X_treino, y_treino) ``` ## Predição de Resultados do Conjunto de Teste Agora que já possuímos um modelo treinado, podemos utilizar-lo para prever o lucro do conjunto de teste. ```python y_predict = regressor. predict(X_teste) ``` ## Coeficientes e Interceptos Podemos calcular os coeficientes e interceptos para ter uma compreensão rápida de o que está acontecendo atrás da linha. ```python coeficientes = regressor. coef_ intercept = regressor. intercept_ ``` ## Valor do Coeficiente de Determinação R² Para avaliar a validade do modelo e seu poder predictivo, calcularemos o valor do coeficiente de determinação R² utilizando a função `r2_score` da biblioteca `sklearn. metrics`. ```python from sklearn. metrics import r2_score r2_score(y_teste, y_predict) ``` O valor do R² é 0, 9352. Isto indica que o nosso modelo é bom, com uma previsão bastante válida. ## Conclusão 1. **Introdução**: Nós abordamos os fundamentos do aprendizado de máquina, focando na regressão linear e suas várias aplicações. Viimos como números (valores financeiros) e variáveis categoricais (locais) podem ser manipulados num Modelo de Regressão Linear. 2. **Aplicação**: Aplicamos um Modelo de Regressão Linear para previsar os lucros das empresas. 3. **Modelo de Regressão Linear**: Enfrentaros profundamente na criação e compreensão de um Modelo de Regressão Linear, incluindo o Modelo de Regressão Linear Múltiple. 4. **Predição**: Aprendemos como prever valores usando a Linha Regressora. 5. **Uso do valor do R²**: Usamos o valor do R² para avaliar a validade do modelo e seu poder predictivo. Para quem tenha interesse, você pode encontrar mais tutoriais de Aprendizado de Máquina no nosso canal do YouTube [Simplilearn](https://www.youtube.com/watch?v=4HKqjENq9OU). Lembrando de inscrever-se no canal de Youtube do Simply Learn e clicar neste link para assistir a vídeos semelhantes. Se tiver alguma pergunta sobre este vídeo, não hesite em comentar e responderemos o mais brevemente possível. Muito obrigado pela sua presença em nossa equipe do Simply Learn! -- ### Algoritmo KNN no Aprendizado de Máquina | Algoritmo KNN Usando Python | Algoritmo K Nearest Neighbors | Simplilearn URL: https://www.youtube.com/watch?v=4HKqjENq9OU Língua: en Olá e bem-vindo ao tutorial do Algoritmo K-Vizinhos Mais Próximos (KNN). Meu nome é Richard Kirchner e eu estou aqui com a equipe de Simplilearn hoje. Nós cobriremos o algoritmo KNN, compreendermos seu uso e aplicá-lo num caso de uso para prever se uma pessoa poderá ter diabetes ou não. Os modelos de aprendizagem automática fazem previsões baseadas nos dados passados disponíveis. Por exemplo, podemos diferenciá-los entre um gato e um cachorro baseando-nos nas características: analisaremos a agudeza dos unhas e o comprimento dos ouvidos para identificá-los. O KNN classifica um novo caso baseado na semelhança de suas características com os seus vizinhos mais próximos. Em outras palavras, podemos criar um classificador KNN para classificar pondos de dados baseando-se na semelhança das características. Como já mencionei, o KNN é um simples e poderosa ferramenta de classificação. É a base para muitos outros algoritmos do aprendizado automático. Nos próximos tópicos, aprofundaremos em detalhes sobre o algoritmo KNN, seus fatores e os seus casos de uso. Tenha atenção para o próximo tutorial! # Algoritmo KNN para Classificação ## Introdução Este documento trata da aplicação do Algoritmo K-NN de Vizinhos mais próximos (KNN) na aprendizagem de máquina, com ênfase na sua utilização na classificação de qualidade de vinho e no previsto do diabetes. ### KNN para Classificação de Qualidade de Vinho **Descrição: ** - O KNN é utilizado para classificar casos novos com base num medidor de similaridade. - Neste caso, medimos o nível de enxofre dovícios contra o nível de clorídrio de diferentes vinhos. - KN refere-se ao número de vizinhos mais próximos considerados no processo de votação. **Fórmula para escolher K: ** O método mais comum para escolher K é utilizar a raiz quadrada de n, onde n é o número total de valores. Se n é par, votar por um valor ímpar de K pode melhorar a seleção. ## Algoritmo KNN ### Procedimento 1. Para um ponto de dados novos, encontre os K vizinhos mais próximos. 2. Classifique o ponto novo com base na classe mais comum dos seus K vizinhos mais próximos. ### Interpretação - Se K for muito baixo, o resultado pode estar biasado devido a disponibilidade insuficiente de dados. - Se K for muito alto, o algoritmo pode demorar excessivamente a processar e consumir recursos. ## KNN para Predição de Diabetes (Caso de Uso em Python) **Passos: ** 1. Importe as bibliotecas necessárias (pandas, numpy, en lígadas específicas do sklearn) 2. Carregue o dataset (um ficheiro separado por vírgulas, facilmente abrir com editores comuns como o Anaconda Notebook Jupyter) 3. Prepare os dados (escala asFeatures para removerquias) 4. Realize a classificação KNN com o classificador KNeighbors da sklearn 5. Avalie o modelo com여ests como a matriz de confusão, a pontuação F1 e a precisão. **Atenção: ** Certifique-se de endereçar potenciais problemas como valores ausentes e pontos anómalos para melhorar a precisão do algoritmo de KNN. # Predição de Diabetes Usando K-Vizinhos Mais Proximos (KNN) em Python ## Introdução Este guia apresenta uma passo a passo sobre a criação de um modelo para a previsão de diabetes utilizando KNN em Python. ### Pré-requisitos - Python 3. x - Jupyter Notebook - Bibliotecas Sklearn, Pandas e Math ## Preparação de Dados A preparação dos dados é um passo essencial ao trabalhar com modelos de aprendizado de máquina. No nosso projeto, vamos trabalhar no Conjunto de Dados de Gravidezes fornecido pela biblioteca seaborn. ### Carregar Dados Começamos por carregar o dataset e verificar sua estrutura. ```python import pandas as pd from sklearn. model_selection import train_test_split # Carregar o dataset data = pd. read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/pregnancies.csv') data. head() ``` ### Substituir Valores Nulos com `np. nan` Neste passo, substituimos valores nulos nas colunas de destino com `np. nan` para remover qualquer possível confusão durante os passos futuros, pois, no pandas, o valor zero é tratado como um valor real e não como dados faltares. ```python import numpy as np # Substituir valores nulos com np. nan data[['gravidez', 'açucar no soro', 'pressão arterial', 'espessura da pele']] = data[['gravidez', 'açucar no soro', 'pressão arterial', 'espessura da pele']]. replace(0, np. nan) ``` ### Lidar com Dados Faltares A seguir, tratamos os dados faltares, substituindo-os de acordo com a natureza das colunas. Por exemplo, substituimos valores nulos de açucar no soro com a média de açucar no soro no dataset. ```python def substituir_valores_faltantes(data): # Substituir valores faltantes em açucar no soro e coluna de absorção com valores médios data['açucar no soro'] = data['açucar no soro']. fillna(data['açucar no soro']. median()) data['absorção'] = data['absorção']. fillna(data['absorção']. median()) return data data = substituir_valores_faltantes(data) ``` ### Divisão dos Dados em Conjunto de Treino e Conjunto de Teste Em seguida, dividimos o data em conjunto de treino e conjunto de teste. Neste exemplo, utilizamos uma divisão 80-20. ```python X = data. drop('diagnóstico', axis=1) y = data['diagnóstico'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=0) ``` ### Normalização dos Dados A normalização é necessária para que o algoritmo KNN funcione corretamente. Aqui, utilizamos `StandardScaler` do Sklearn. A normalização é aplicada apenas aos dados de treino. ```python from sklearn. preprocessing import StandardScaler sc = StandardScaler() X_treino = sc. fit_transform(X_treino) X_teste = sc. transform(X_teste) ``` ### Criação e Treinamento do Modelo KNN Agora criamos e treinamos o modelo KNN usando os dados de treino. ```python from sklearn. neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=3) knn. fit(X_treino, y_treino) ``` ### Previsão de Diagnóstico para o Conjunto de Teste Por fim, utilizamos o modelo treinado para fazer previsões no conjunto de teste. ```python y_previsão = knn. predict(X_teste) ``` ## Resultados Você pode avaliar a performance do modelo utilizando várias métricas como matriz de confusão, precisão, recall, F1-score e acurácia. ## Conclusão Em resumo, este exemplo demonstra como criar um modelo de previsão de diabetes utilizando o algoritmo KNN em Python. Os passos de preparação dos dados são importantes para alcançar resultados precisos e confiáveis. # Tutorial de Aprendizado de Máquina Este tutorial fornecerá uma visão geral abrangente do Aprendizado de Máquina, com ênfase nos seus tipos, algoritmos e aplicações. ## Uma Vida com o Aprendizado de Máquina O Aprendizado de Máquina não é apenas sobre robôs e máquinas; é uma tecnologia que significativamente melhora nossas vidas diárias. ### Uma Vida sem o Aprendizado de Máquina Imagine um mundo sem Aprendizado de Máquina: 1. Pesquisa de Informação: Você teria que passar por desenas ou milhares de livros e artigos para encontrar informação sobre um determinado assunto. 2. Reconhecimento facial: O reconhecimento facial seria disponível apenas em filmes como Mission Impossible ou Terminator. 3. Assistência: Siri, Cortana, Alexa, e outras assistentes digitais não existiriam. ### Aplicações do Aprendizado de Máquina na Vida quotidiana 1. Jogos: Os óculos de realidade virtual em PS4s e Xboxes fornecem uma experiência de jogos imersiva, enquanto o controle gestural de jogos rastreia os seus movimentos corporais. 2. Recomendações: A Amazon usa o Aprendizado de Máquina para recomendações de produtos baseadas na sua história de compras. 3. Transportes: A Uber usa o Aprendizado de Máquina para sugerir rotas e você é emparelhada com motoristas que viajam esse trajeto frequentemente. ## O Que é o Aprendizado de Máquina? O Aprendizado de Máquina é uma aplicação da Inteligência Artificial que dá aos sistemas a capacidade de aprender e melhorar a partir da experiência sem precisar ser explicitamente programado. Ele pode realizar tarefas como jogar jogos, resolver equações matemáticas complexas, e mais. ## Tipos de Aprendizado de Máquina ### Aprendizado Supervisionado O Aprendizado Supervisionado requer dados treinados etiquetados. O modelo é treinado com dados e informado sobre as respostas certas. Em seguida, ele faz previsões e aprende do seu erro. ### Aprendizado Não Supervisionado O Aprendizado Não Supervisionado não requer dados treinados etiquetados. Em vez disso, ele procura padrões e agrupamento de pontos de dados semelhantes juntos. ### Aprendizado Reforçado O Aprendizado Reforçado envolve tente-errada onde o sistema aprende a partir de seus erros e melhora ao longo do tempo. ## Algoritmos de Aprendizado de Máquina Aqui estão alguns algoritmos de Aprendizado de Máquina: 1. regressão linear 2. regressão logística 3. árvores de decisão 4. florestas aleatórias 5. máquinas de suporte vector (SVM) 6. K-vizinhos mais próximos (KNN) 7. redes neurais ## Conclusão O Aprendizado de Máquina é uma tecnologia essencial no mundo digital atual. Ele melhora nossas vidas em várias maneiras, desde a pesquisa de informação até jogos e e-commerce. Se você tiver interesse em aprender mais sobre o Aprendizado de Máquina, visite [o Tutorial de Aprendizado de Máquina do Simplilearn](https://www.youtube.com/watch?v=olFxW7kdtP8) para uma explicação mais detalhada. Por mais informações, visite www. subscriptorium. com. --- Este texto foi formatado usando o Markdown de acordo com as regras especificadas para formato, estrutura e conteúdo. # Predição de Mercado de Ações Utilizando Aprendizado de Máquina | Aprendimento de Máquina - Tutorial | Simplilearn Este tutorial fornece uma visão geral do uso do aprendizado de máquina para prever os preços do mercado de ações. ## Pré-requisitos Antes de construir um modelo de aprendizado de máquina, é crucial escolher o tipo de solução correto. Aqui estão alguns fatores a considerar: 1. **Declaração do Problema**: A declaração do problema descreve o tipo de modelo que você está construindo. Por exemplo, se o problema é prever os preços do mercado de ações futuros, uma solução de aprendizado supervisionado seria mais adequada. 2. **Dados**: O tamanho, qualidade e natureza dos dados também podem influenciar a escolha da solução de aprendizado de máquina. Por exemplo, se os dados estiverem desordenados, uma solução de aprendizado não supervisionado poderia ser mais apropriada. 3. **Complexidade**: A complexidade da solução também deve ser considerada. Para o problema da previsão do mercado de ações, uma solução de aprendizado por reforço poderia ser utilizada, mas seria mais difícil e consumidora de tempo em comparação com os algoritmos de aprendizado supervisionados. ## Algoritmos de Aprendizado de Máquina ### Classificação A classificação é um tipo de aprendizado supervisionado utilizado quando a saída é categórica, como sim/não, a/b, verdadeiro/falso. Alguns exemplos de algoritmos de classificação incluem árvores de decisão, K-Próximos Vizinhos (KNN), regressão logística e Floresta Aleatória. ### Regressão A regressão é utilizada quando os dados preditos são numerais. Por exemplo, se um comerciante deseja prever o preço de um produto com base na demanda, seria utilizada a regressão. ### Agrupamento O agrupamento é um tipo de aprendizado não supervisionado utilizado para agrupar os dados. Muitos sistemas de recomendação, como aqueles utilizados pelas empresas Flipkart e Amazon, utilizam agrupamento. ## Algoritmos-chave 1. **K-Próximos Vizinhos (k-NN)**: o k-NN é um algoritmo de classificação que classifica os dados baseado sobre os vizinhos mais próximos em um conjunto de dados. 2. **Regressão Linear**: a regressão linear é utilizada para estabelecer uma relação linear entre as variáveis. Ela é utilizada para prever valores numéricos baseados em outras variáveis. 3. **Árvore de Decisão**: as árvores de decisão são utilizadas para tomar decisões baseado em condições. Elas utilizam um método de ramificação para resolver o problema e fazer decisões baseadas nos respostas às condições. 4. **Naive Bayes**: o Naive Bayes é utilizado em casos em que uma previsão precisa ser feita em um conjunto de grande volume de dados. Ela utiliza probabilidade condicional e é mais comumente utilizada na filtragem de emails na conta de email. ## Árvore de Decisão na Aprendizagem de Máquina Uma árvore de decisão é uma ferramenta poderosa na aprendizagem de máquina que utiliza um método de ramificação para resolver um problema e tomar decisões baseado nas respostas às condições. Ela é útil para tomar decisões com base em dados e pode ser relacionada a decisões diárias. ### Vantagens e Desvantagens da Árvore de Decisão Vantagens: - Fácil de compreender e interpretar - Pode manipular tanto dados categóricos e numéricos - Não paramétrico, isto é, não faz supposições sobre a distribuição dos dados Desvantagens: - Sensível aos fora-de-escala - O inerDiskover de sobreposicion pode ocorrer se a árvore for demasiado complexa - O tamanho da árvore pode ser grande, o que faz com que seja mais caro computacionalmente ## Caso: Previsão de Repagamento de Empréstimos Neste caso, utilizaremos Python para construir uma árvore de decisão na previsão do repagamento de empréstimos. Isso envolverá processamento de dados, construção da árvore e avaliação de sua performance. ## Recursos - [Predição de Mercado de Ações Utilizando Aprendizado de Máquina | Aprendimento de Máquina - Tutorial | Simplilearn](https://www.youtube.com/watch?v=OXwZtlcTiuk) - [Árvore de Decisão na Aprendizagem de Máquina | Árvore de Decisão Algoritmo no Python | Aprendimento de Máquina | SimplyLearn](https://www.youtube.com/watch?v=RmajweUFKvM) Voici la traduction de ce texte en portugais brésilien en conservant la structure de Markdown : ```markdown # Aprendizagem de Máquina: Entendendo Árvores de Decisão A aprendizagem de máquina, um aplicativo de inteligência artificial, permite que um sistema aprenda automaticamente e melhore com a experiência. Isso pode ajudar um usuário comum a tomar decisões melhores fornecendo outra forma de informação e lhe ajudando a ver coisas que eles podem ter perdido ou rastrear coisas que eles não podem rastrear. ## Tipos de Aprendizagem de Máquina Vamos dividir a aprendizagem de máquina em três tipos primários de aprendizagem: 1. **Aprendizagem Supervisionada** 2. **Aprendizagem Não Supervisionada** 3. **Aprendizagem de Reforço** ### Aprendizagem Supervisionada Na aprendizagem supervisionada, já temos os dados e as respostas. Por exemplo, se você trabalhava em um banco, você já teria uma lista de todos os empréstimos anteriores e quem os pagou e quem os teve que desistir em seus pagamentos. Então, você pode programar sua ferramenta de aprendizagem de máquina para prever se a próxima pessoa vai poder pagar ou não em seus empréstimos. ### Aprendizagem Não Supervisionada A aprendizagem não supervisionada ocorre quando não conhecemos as respostas, mas temos uma grande quantidade de informações entrando. Essa forma de aprendizado permite que você agrupasse informações relacionadas juntas. Por exemplo, se estiver analisando fotos, ela pode agrupar todas as imagens de árvores juntas e todas as imagens de casas juntas sem nunca saber o que é uma casa ou uma árvore. ### Aprendizagem de Reforço A aprendizagem de reforço é diferente da aprendizagem supervisionada ou não supervisionada porque não temos os dados antes de começarmos. Você recebe os dados uma linha à vez, e depois a ferramenta de aprendizagem de máquina precisa se ajustar adequadamente em função se você fez uma escolha boa ou ruim. Isso se assemelha à forma como os seres humanos aprendem: experimentamos a vida por um minuto a cada vez e aprendemos com essa experiência. ## Árvores de Decisão As árvores de decisão são uma ferramenta de aprendizagem de máquina popular utilizada para fins de classificação e regressão. ### árvores de decisão de Classificação Em problemas de classificação, o objetivo é prever uma variável categorica (Sim/Não, Verdadeiro/Falso, Um/Zero) baseado em um dataset dado. As árvores de decisão de classificação utilizam uma inferência de if-então lógicos para classificar problemas. As principais algoritmos mais comumente utilizados para classificação são: 1. **Naive Bayes** 2. **Regressão Logística** 3. **Decision Trees** 4. **Árvores Aleatórias** As duas primeiras são para dados simples, mas quando se torna complicado, a árvore de decisão está entrando. Se você tiver uma grande quantidade de dados, você começa a entrar na Árvore Aleatória, que utiliza várias árvores de decisão para melhorar a precisão e reduzir soerteamento. ### Árvores de Regressão de Decisão Em problemas de regressão, a variável alvo é numérica ou contínua. Fazemos o ajuste do modelo de regressão para a variável alvo usando cada uma das variáveis independentes. Cada partição é feita com base na soma de erro quadrado. ``` Espero que isso possa servir! Sentir-me livre para fazer mais perguntas ou clarificar se necessário. Title: Splitting Dados e Classificação de Árvore de Decisão para Predição de Repasse de Empréstimo ## Introdução Neste exemplo, vamos trabalhar com um conjunto de dados para prever o repasse de empréstimo com base em vários fatores usando a algoritmo de árvore de decisão em Python. Vamos então mergulhar no código e explorar os dados primeiro. ## Preparação do Ambiente Para executar este código, usaremos o Anaconda Jupyter Notebook, mas você pode utilizar qualquer IDE Python preferida. ```python # Importar pacotes necessários import numpy as np import pandas as pd from sklearn. model_selection import train_test_split from sklearn. tree import DecisionTreeClassifier from sklearn. metrics import accuracy_score import sklearn. tree # Carregar o dataset # Altere o caminho do arquivo para o seu fonte de dados local. df = pd. read_csv("seu_dados2. csv") ``` ## Visão Geral Antes de prosseguirmos, vamos discutir os pacotes que usaremos: - `numpy as np`: Padrão para matemática, especialmente com ferramentas de machine learning complexas. - `pandas as pd`: Setup de tabela de dados, semelhante a uma planilha de Excel. - `train_test_split`: Divide os dados em conjuntos de treinamento e teste. - `DecisionTreeClassifier`: Algoritmo de árvore de decisão para tarefas de classificação. - `accuracy_score`: Métrica para avaliar a precisão de nossa modelo. - `sklearn. tree`: Função básica de árvore para o classificador de árvore de decisão. ## Exploração de Dados Vamos explorar os dados carregados e entender sua estrutura. ```python # Imprimir comprimento e forma dos dados print("Comprimento dos dados: ", len(df)) print("Forma dos dados: ", df. shape) # Imprimir as primeiras cinco linhas dos dados print("Cabeçalho dos dados") print(df. head()) ``` Com estas operações básicas, você poderá obter uma compreensão da estrutura dos dados e conteúdo. ## Divisão dos Dados Para treinar o modelo de árvore de decisão, precisamos dividir os dados em um conjunto de treinamento e um conjunto de teste. ```python # Divisão dos dados X = df. iloc[: , 1: ]. values # Exclua a primeira coluna (alvo) y = df. iloc[: , 0] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` ## Treinamento do Modelo de árvore de decisão Agora podemos treinar nossa árvore de decisão modelo usando o conjunto de treinamento e fazendo previsões no conjunto de teste. ```python # Inicializar o modelo modelo = DecisionTreeClassifier(random_state=42) # Treinamento do modelo com o conjunto de treinamento modelo. fit(X_treino, y_treino) # Fazer previsões no conjunto de teste predicoes = modelo. predict(X_teste) # Calcular a precisão precisao = accuracy_score(y_teste, predicoes) print("Precisão do modelo: ", precisao) ``` Com este código, você terá uma visão básica de como utilizar o algoritmo de árvore de decisão para ```markdown # Aprendizagem de Máquina: O Que é Aprendizagem de Máquina? | As Basicas do Aprendizamento de Máquina | 2023 | Aprender Facilmente Neste tutorial, vamos introduzir as basicas do aprendizagem de máquina. Definiremos as seguintes áreas: - Aplicações do aprendizagem de máquina na vida quotidiana - Tipos de problemas de aprendizagem de máquina: classificação, regressão e agrupamento - Árvores de decisão e funcionamento ## Reconhecimento de spam em e-mail O reconhecimento de spam em e-mail é uma das aplicações do aprendizagem de máquina que encontramos na nossa vida quotidiana. Neste exemplo, usaremos uma árvore de decisão para classificar e-mails como spam ou não spam. ### Dados Para treinar e testar a árvore de decisão, vamos dividir os dados em quatro partes diferentes: 1. `x_treino`: dados de treino 2. `y_treino`: rótulos para os dados de treino 3. `x_teste`: dados de teste 4. `y_teste`: rótulos para os dados de teste ### Divisão em treino-teste Usaremos a divisão em treino-teste para separar os dados em dois conjuntos, um para treinar e outro para testar: ```python from sklearn. model_selection import train_test_split # Divide os dados x_treino, x_teste, y_treino, y_teste = train_test_split(x, y, test_size=0. 3, random_state=100) ``` Nesta parte, definimos o tamanho do conjunto de teste para 30% dos dados. Adicionalmente, defineno o estado aleatório para garantir que o mesmo corte seja obtido sempre que executamos o código. ### Classificador de árvore de decisão Criaremos um classificador de árvore de decisão e falaremos com os dados de treino: ```python from sklearn. tree import DecisionTreeClassifier clf = DecisionTreeClassifier(random_state=100, max_depth=3, min_samples_leaf=5) clf. fit(x_treino, y_treino) ``` Aqui, definimos a profundidade máxima para 3, o que significa que a árvore apenas descerá até três níveis de profundidade. Além disso, definimos o número mínimo de amostras de folhas como 5, significando que a árvore terá ao menos 5 folhas no final. ### Predição Agora, podemos usar o modelo treinado para fazer previsões. Este exemplo usa os dados de teste para testar o modelo: ```python y_predito = clf. predict(x_teste) ``` ### Precisão Em seguida, podemos calcular a precisão do modelo. Façemos isso comparando as pré-visões (`y_predito`) com os rótulos reais (`y_teste`): ```python from sklearn. metrics import accuracy_score precisao = accuracy_score(y_teste, y_predito) print("Precisão: ", precisao) ``` ## Detecção de notícias falsas Nesta seção, usaremos o aprendizagem de máquina para detectar notícias falsas. [Continue com o restante do tutorial] ``` Esta solução é, certamente, um trabalho de transformar o texto em Markdown e, simultaneamente, em português adequado ao Portuguese de Portugal. No texto acima, a estrutura de títulos, as listas ordenadas e as URLs foram preservadas. A tradução e formatação foram executadas de modo que o texto possa ser mais fácil de compreender para um público lusófono com familiaridade com os termos técnicos em aprendizagem de máquina. Title: Projeto de Aprendizado de Máquina em Python: Deteção de Notícias Falsas ## Introdução Neste projeto, vamos usar Python para construir um modelo para a detecção de notícias falsas. Para alcançar o seu objetivo, vamos utilizar várias bibliotecas conhecidas, como NumPy, Pandas, Scikit-learn, Seaborn e Matplotlib. ## Importação de Bibliotecas Começamos por importar as bibliotecas essenciais: ```markdown import pandas as pd import numpy as np import string import re from sklearn. model_selection import train_test_split from sklearn. metrics import accuracy_score from sklearn. feature_extraction. text import TfidfVectorizer from sklearn. linear_model import LogisticRegression from sklearn. ensemble import GradientBoostingClassifier ``` ## Importação e Preparação dos Datasets Vamos utilizar dois conjuntos de dados: um para notícias falsas e outro para notícias verdadeiras (ou não falsas). ```markdown fake_news = pd. read_csv('EF_big_question_PD_Fake. csv') true_news = pd. read_csv('data_true. csv') ``` Você pode baixar os conjuntos de dados na caixa de descrição abaixo. Para ver os cinco primeiros registros de cada conjunto, use o método `head()`, e para os últimos cinco registros use a função `tail()`. ```markdown print(fake_news. head()) print(true_news. head()) ``` ## Processamento dos Dados Removemos alguns caracteres especiais dos conjuntos de dados com uma expressão regular. ```markdown def preprocess_text(text): text = re. sub(r"[^a-zA-Z]", " ", text) text = text. lower() words = text. split() return " ". join(words) # Processamos o texto nos conjuntos de dados fake_news["text"] = fake_news["text"]. apply(preprocess_text) true_news["text"] = true_news["text"]. apply(preprocess_text) ``` ## Adição da Coluna de Classificação Adicionaremos uma coluna "Class" como recurso alvo. ```markdown fake_news["Class"] = 0 true_news["Class"] = 1 ``` ## Divisão dos Dados de Treino e Teste Depois de preparar os dados, fazemos sua divisão em conjuntos de treino e teste para o desenvolvimento e avaliação do modelo. ```markdown X = fake_news["text"] + " " + true_news["text"] y = fake_news["Class"] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0. 25) ``` ## Vectorização do Texto Para converter o texto em vetores, usaremos o vectorizador TF-IDF de Scikit-learn. ```markdown vectorizer = TfidfVectorizer() X_train_vec = vectorizer. fit_transform(X_train) X_test_vec = vectorizer. transform(X_test) ``` ## Construindo e Treinando Modelos Agora, vamos construir e treinar vários modelos (Regressão Logística, Classeificador de Boosting Gradiente e Floresta Aleatória) para a detecção de notícias falsas. ### Modelo de Regressão Logística ```markdown model_logistic_regression = LogisticRegression() model_logistic_regression. fit(X_train_vec, y_train) ``` Previsão nos dados de teste: ```markdown predictions = model_logistic_regression. predict(X_test_vec) ``` Calculando a pontuação de acurácia: ```markdown accuracy = accuracy_score(y_test, predictions) print("Regressão Logística Accurácia: ", accuracy) ``` ### Classeificador de Boosting de Gradiente ```markdown model_gradient_boosting = GradientBoostingClassifier() model_gradient_boosting. fit(X_train_vec, y_train) ``` Fazendo previsões: ```markdown predictions_gb = model_gradient_boosting. predict(X_test_vec) ``` Calculando a pontuação de acurácia: ```markdown accuracy_gb = accuracy_score(y_test, predictions_gb) print("Classeificador de Boosting de Gradiente Accurácia: ", accuracy_gb) ``` (Nota: ore mencionado que é `accuracy_score` é o de pontuação de acurácia, não acurácia) # Aprendizagem de Máquina com Python - Curso Completo 2023 | Tutorial de Aprendizagem de Máquina para Iniciantes | Simplilearn ## Introdução - *Aprendizagem de Máquina* é uma sub-disciplina da Inteligência Artificial que utiliza algoritmos de dados e técnicas estatísticas para montar sistemas inteligentes. - Estes sistemas aprendem por conta própria e melhoram com a experiência. - O objetivo da Aprendizagem de Máquina é criar modelos de computador que possam imitar o comportamento humano. --- ### Pré-requisitos - Habilidades em programação: Python ou R - Conhecimentos básicos em ciência da computação: Estruturas de dados, algoritmos, complexidade temporal e espacial - Matemática: Álgebra linear, Cálculo, Estatística, Probabilidade --- ## Competências Necessárias 1. Línguagens de Programação: Python ou R 2. Matemática Aplicada 3. Manipulação de Dados e SQL 4. Algoritmos de Aprendizagem de Máquina 5. Modelagem de Dados e Avaliação 6. Construção de um portfólio em Aprendizagem de Máquina 7. Habilidades de trabalho: Engenheiro de Aprendizagem de Máquina, Cientista de Dados, Analista de Dados, Cientista de Pesquisa --- ### Algoritmos de Aprendizagem de Máquina - Aprendizagem Supervisionada: Regressão Linear, Regressão Lógistica, SVM, k-Vizinhos Mais Proximos, Árvores de Decisão, Florestas Aleatórias, K-Means Clustering - Aprendizagem Não Supervisionada: Agrupamento, Redução da Dimensionalidade - Aprendizagem Reforçada: Aprimoramento Q, Redes de Aprendizado Profundo Q, Métodos Monte Carlo --- ## Mapa de Calendário para 2023 1. Acquire programming skills: Python ou R 2. Domine a matemática aplicada 3. Aprenda manipulação de dados e SQL 4. Estude os algoritmos de aprendizagem de máquina 5. Pratique a modelagem de dados e avaliação 6. Construa um portfólio em aprendizagem de máquina 7. Procure empregos em engenharia de aprendizagem de máquina nas empresas e startups líderes --- ## Conclusão - A Aprendizagem de Máquina oferece muitas oportunidades no setor como e-commerce, fabricação, logística, varejo e saúde. - Inicie seu percurso agora com a Postgraduate Program in AI and Machine Learning da Simplilearn. - Clique no link da página de curso a seguir para saber mais sobre o caminho de aprendizado, ferramentas abordadas e projetos que você irá realizando. --- ## Referências - [Mercado do Aprendizagem de Máquina: Crescimento, Tendências e Previsão (2020 - 2027)](https://www.verifiedmarketresearch.com/product/machine-learning-market/) - [Mercado do Aprendizagem de Máquina - Crescimento, Tendências, Impacto COVID-19 e Previsões (2020 - 2025)](https://www.marketsandmarkets.com/Market-Reports/machine-learning-market-72662148.html) # Aprender Básicos da Aprendizagem de Máquina ## Introdução A Aprendizagem de Máquina é uma ferramenta poderosa utilizada em várias aplicações para analisar, prever e tomar decisões baseadas em dados. Neste exemplo, discutiremos alguns conceitos básicos da Aprendizagem de Máquina usando um exemplo simples. ### Exemplo: Classificação de Canções #### Canção A - Intensidade: Alta - A partir dos dados de escuta, podemos fazer uma hipótese se Paul irá gostar da canção ou não: **Correto** - Paul gosta desta canção com base na análise de Paul escolhas passadas: **Correto** - A classificação da canção desconhecida foi fácil: **Correto** #### Canção B - Intensidade: Média - Tempo: Médio - A partir dos dados, não podemos fazer uma hipótese se Paul irá gostar ou não: **Correto** - As opções pareciam ambíguas: **Correto** - A Aprendizagem de Máquina pode ajudar: **Correto** #### Aprendizagem de Máquina em Ação - Para a Canção B, desenhamos um círculo ao redor da canção e contamos os votos: + 4 votos para 'gostar' + 1 voto para 'não gostar' - Poderíamos concluir que Paul irá adorar a Canção B com base nas suas preferências - Isso foi um exemplo básico de um algoritmo de vizinhos mais próximos na Aprendizagem de Máquina ### Algoritmos de Aprendizagem de Máquina * **Aprendizagem Supervisionada** + Aprende com dados requintes + Exemplo: Prender a moeda de uma moeda com base no peso * **Aprendizagem Não Supervisionada** + Aprende com dados sem rótulo + Exemplo: Identificar padrões no desempenho dos jogadores de críquete * **Aprendizagem por Reforço** + Aprendizagem baseada em recompensa + Exemplo: Ensinar um sistema a identificar um cachorro a partir de feedback #### Aprendizagem Supervisionada Suponha que seu amigo te dê um milhão de moedas de três diferentes moedas, cada uma com um peso diferente. Seu modelo irá prever a moeda da moeda baseado no peso. Neste caso, o peso torna-se uma característica da moeda enquanto a moeda torna-se a etiqueta. Quando se fornecer esta informação ao modelo de aprendizagem de máquina, ele aprende qual característica está associada com qual etiqueta, por exemplo, ele aprenderá que se uma moeda pesa 3 gramas, será uma moeda de 1 reais. #### Aprendizagem Não Supervisionada Suponha que você tenha um dataset de críquete com vários jogadores e suas respectivas estás e *wickets*. Quando se fornecer essas informações ao computador, ele identifica o padrão de rendimento dos jogadores e traz este dado com as *wickets* no eixo X enquanto os *runs* no eixo Y. Por olhar no dado, você verá cleramente que há dois grupos - um grupo para jogadores que marcaram mais *runs* e tiraram menos *wickets*, enquanto o outro grupo é para jogadores que marcaram menos *runs*, mas tiraram mais *wickets*. Neste caso, interpretamos estes dois grupos como batedores e bowlers. #### Aprendizagem por Reforço A Aprendizagem por Reforço funciona pela lógica de feedback ou aprendizagem baseada em recompensa. Ele utiliza o conceito de feedback positivo e negativo para aprender. Por exemplo, digamos que você fornece um sistema com uma imagem de um cachorro e o solicite para identificá-lo. Se o sistema identificar como um gato, você dará feedback negativo dizendo que é uma imagem de um cachorro. O computador aprenderá do feedback e finalmente se encontrar com qualquer outra imagem de um cachorro, será capaz de classificá-la corretamente. ### Diagrama de Fluxo de um Modelo de Aprendizagem de Máquina O input é dado a um modelo de aprendizagem de máquina que depois deu o output de acordo com o algoritmo aplicado. Se estiver correto, tomamos o output como o resultado final. Caso contrário, fornecemos feedback à modelo de treinamento e solicitamos novamente que ele preveja até que ele aprenda. ### Questionário 1. Cenário 1: o Facebook reconhece um amigo em uma foto de um álbum de fotos etiquetadas - Aprendizagem Supervisionada 2. Cenário 2: Netflix sugestiona novos filmes baseado em escolhas de filmes anteriores - Aprendizagem Supervisionada 3. Cenário 3: analisando dados bancários para transações suspeitas e marcar as transações suspeitas - Aprendizagem Supervisionada ### Aprendizagem de Máquina na Era Moderna Hoje, temos enormes quantidades de dados disponíveis de transações online, atividades em redes sociais e várias outras fontes. As capacidades de armazenamento de memória dos computadores aumentaram significativamente, o que ajuda-os a processar tais grandes quantidades de dados rapidamente. Os computadores agora têm poderes computacionais extraordinários, o que permite a implantação de modelos de aprendizagem de máquina em várias aplicações. ### Exemplos Cotidianos de Aprendizagem de Máquina * Assistentes virtuais pessoais (Google Assistant, Alexa, Cortana, Siri) * Previsões de tráfego no Google Maps * Personalização na redes sociais (Amazon, Facebook, YouTube) * Filtragem de spam em correio eletrónico (Gmail) # Tutorial de Aprendizado de Máquina Parte Um Bem-vindo à primeira parte da nossa série de Aprendizado de Máquina! Este tutorial é apresentado pela Simply Learn. ## O Que Aprenderá Hoje? Nesta parte, vamos: 1. Explicar brevemente por que o Aprendizado de Máquina e o que é o Aprendizado de Máquina. 2. Discutir alguns tipos de algoritmos de Aprendizado de Máquina. 3. Fazer um caso de uso em que classificaremos se uma receita é de cupcake ou de muffin utilizando o SVM (Máquina de Suporte Vector). ## Por Que o Aprendizado de Máquina? ### Benefícios do Aprendizado de Máquina: 1. Agora as máquinas podem dirigir seu carro. Ainda estando no estágio infantil, cresce rapidamente, como se vê com o Waymo da Google e o programa automatizado de carros da Uber. 2. O Aprendizado de Máquina agora é utilizado para detectar mais de 50 doenças oculares. Isso é uma grande passo na indústria da saúde, pois ajuda os médicos a detectar coisas que eles poderiam deixar de ver. 3. O Aprendizado de Máquina pode agora desbloquear seu telefone com a sua face ou voz, tornando mais conveniente para si. 4. Com o Aprendizado de Máquina, podemos alcançar a total automatização, pois pode identificar a sua face ou voz e ligar e desligar coisas de acordo com o local onde está e o que precisa. ### Exemplos de Aprendizado de Máquina: 1. A Facebook utiliza o Aprendizado de Máquina para eliminarengagement bait. Eles já treinaram um modelo de Aprendizado de Máquina para detetar diferentes tipos de baiting engagement, como vote baiting, react baiting, e share baiting. 2. O projetogego Google DeepMind é um programa de computador que joga o jogo de tabuleiro Go. Ele já derrotou o jogador número um de Go, uma real assombrosa conquista nescampo da inteligência artificial. ## Aprendizado de Máquina: Uma Definição O Aprendizado de Máquina é a ciência de fazer computadores se parecerem com o ser humano ao alimentar-los com dados e informação sem ser necessário um programa explicitamente. A máquina aprende com o que aconteceu antes e apredendi o que vai acontecer. O objetivo é melhorar isso, encontrando novas soluções, avançando de lidar com palavras descritivas para lidar com coisas e compreender como elas se encaixam para prever o que vai acontecer para post-scripting, virar soluções novas. ## Passos do Aprendizado de Máquina: 1. Defina seu objetivo. 2. Colecione os dados que correspondem ao seu objetivo. 3. Prepare os dados, garantindo que estejam limpos. 4. Selecione o algoritmo que vai usar. 5. Treine o algoritmo. 6. Teste o modelo para ver se funciona. 7. Corre sua previsão. 8. Despdeie o modelo. ## Tipos de Aprendizado de Máquina: 1. Classificação: Prediz uma categoria, como previr se o preço da ação vai aumentar ou diminuir. 2. Regressão: Prediz uma quantidade, como prever a idade de uma pessoa baseado no cumprimento, peso, saúde e outros fatores. 3. Deteção de Anomalia: Detecte anomalias, como detectando uma anomalia de saque ou detectando uma anomalia no mercado de ações. 4. Agrupamento: Descoberta da estrutura de dados desconhecido, como encontrar grupos de clientes com comportamento semelhante. ## Horário do Teste Por favor, tome um momento para repetir a leitura quando estiver possível. Os códigos não foram alterados, apenas houve algumas correções de termos e fórmulas portuguesas para melhorar a verificação de suas respostas. ## Pergunta 1: Qual classificador de texto utilizamos para werecategorizar os documentos em diferentes grupos? 1. Naive Bayes Classifier 2. Decision Trees Classifier 3. Support Vector Classifier 4. Random Forest Classifier ## Pergunta 2: Considerando a imagem seguinte: ! [](https://i.ibb.co/PJW85GK/puzzle.png) Qual algoritmo seria utilizado para identificar cada dígito? 1. RNN 2. Convolutional Neural Network 3. Ridge Regression 4. K-means Clustering ## Pergunta 3: Qual algoritmo seria utilizado para dimensioneamento das **features** de entrada? 1. Ridge Regression 2. Autoencoder 3. Neural Network 4. Gradient Descent ## Pergunta 4: O objetivo do modelo **PCA (Principal Component Analysis)** seria construir os novos efeitos que seriam utilizados para: 1. Reduzir o número de variáveis, porém preservar o máximo das informações. 2. Gerar os dados aleatórios a partir das **features** originais. 3. Treina um reduzido modelo de classificação. 4. Treina um reduzido modelo de regressão. ## Pergunta 5: Qual a grande diferença entre **Ridge Regression** e **Lasso Regression**? 1. Elas são regressões linearmente independentes. 2. A Pensa Lasso penaliza os coeficientes com base na soma quadrática dos coeficientes, enquanto a Ridge penaliza os coeficientes com base na soma dos quadrados dos coeficientes. 3. A Ridge Regularizar o modelo, enquanto a Lasso minimiza os erros quadráticos. 4. A Ridge e a Lasso Regularizar o número de variáveis, diminuindo o sobreajuste. # Aprendizagem de Máquina: Aprendizado Supervisionado, Não Supervisionado e Aprendizado por Reforço ## Aprendizado Supervisionado O aprendizado supervisionado é um método utilizado para permitir que as máquinas classifiquem, predizam objetos, problemas ou situações baseados em dados etiquetados que são enviados para a máquina. Por aqui você encontra uma selva de dados com círculos, triângulos e quadrados. Etiquetamos-os (o que é um círculo, o que é um triângulo, o que é um quadrado). Temos nossa máquina de treinamento a fim de que fitness seja o resultado. Quando se trabalha com aprendizado supervisionado, já se sabe a resposta de uma grande quantidade de sua informação entrante, então você está recebendo um grande grupo de dados, e depois está recebendo um novo grupo de dados. Nós já treinámos a máquina e ela agora sabe a diferença entre um círculo, um quadrado e um triângulo. Agora que foi treinado, podemos enviar um novo grupo de dados (neste caso, um quadrado e um círculo) e ele preve que o topo é um quadrado e o próximo é um círculo. Isso se aplica à predição de se alguém vai entregar o empréstimo (como mencionei os bancos anteriormente), previsões do mercado de ações (se você vai ganhar ou não), ou em qualquer outra área onde dados do passado possam ajudar a prever os resultados futuros. Porém, é crucial notar que os dados do mercado podem ser muito voláteis, fazendo com que as previsões sejam desafiadoras. ## Aprendizado Não Supervisionado No aprendizado não supervisionado, um modelo de aprendizado de máquina acha os padrões ocultos em dados não etiquetados. Em vez de dizer-lhe o que é um círculo, o que é um triângulo, e o que é um quadrado, ele se inserta lá, observa e describe sozinho. Por exemplo, poderá organizar-los de acordo com absoluto número de cantos ou outras características comuns. Isto é útil para fins de marketing. Considere uma situação em que você quer agrupar clientes juntos para descobrir o que eles têm em comum. Talvez você tenha um cliente em sua loja e tenha outros cinco clientes que não estão clientes ainda, mas talvez correspondam aos mesmos grupos demográficos. Como você marketing ar (nos cinco que não são clientes ainda)? ## Aprendizado por Reforço O aprendizado por reforço é um importante tipo de aprendizagem máquina pela qual um agente aprenderá a se comportar em um ambiente ao executar ações e vendo o resultado. Ele ainda está no estágio inicial, mas é esperado ser uma das demandas mais importantes no futuro. No aprendizado por reforço, um agente (como um bebê) aprende por meio de erros e contatos. Por exemplo, se um agente (bebê) interage com um fogo, ele aprende que a ação (ir no fogo) resulta em um estado indesejado (o bebê está triste e choroso). Então ele modifica seu comportamento para evitar esse tipo de situação. Isso é semelhante a como os humanos aprendem – fazendo erros e aprendendo de forma a evitar que eles se repetam. A capacidade de aprender dos erros é um grande salto no mundo da aprendizado de máquina e dos computadores. ## Regressão Linear A regressão linear é um dos algoritmos mais conhecidos e compreendidos em estatística e aprendizado de máquina. É um modelo linear que supõe uma relação linear entre as variáveis de entrada x e a variável de saída única y. Por exemplo, considere uma situação em que estamos previsões distância percorrida (y) com base em velocidade (x). A representação do modelo de regressão linear para esse problema seria `y = m * x + c`, onde `m` é o coeficiente e `c` é o `y`-intercept. Nesse caso, `m` é a pendença da reta e representa como a distância aumenta com a velocidade. Se a relação é positiva (i. e. , a pendença é positiva), as variáveis têm uma relação positiva (isto é, com a velocidade aumenta a distância também). Podemos usar regressão linear em várias situações, desde previsões da distância percorrida pelo ciclista até previsionar a antenadora de um funcionário baseado nos anos do emprego. # Regressão Linear - Abordagem Simples ## Resumo Este texto explica o processo de encontrar a inclinação e interceptação da linha de regressão linear usando o método de cálculo dos valores médios. ### Encontrando a Inclinação (b) 1. **Definindo os Valores Iniciais**: Começamos com um valor de x de 1 e calculamos as seguintes diferenças: - x menos x i: (1 - 1) = 0 - y menos y i: (1 - 3) = -2 (lembra-se, o valor médio aproximado de y era cerca de 3) Podemos preencher a coluna para x menos x i e y menos y i para mais valores de x, como x = 2, 3, 4, 5, . . . 2. **Calculando os Valores Necessários**: Calcule as somas das seguintes colunas: - x menos x i ao quadrado: Soma de todas (x - x i)² - x menos x i vezes y menos y i: Soma de todas (x - x i) * (y - y i) 3. **Inserindo os Valores Somados**: Inserte os valores somados na equação: b = (suma de x menos x i vezes y menos y i) / (suma de x menos x i ao quadrado) Fazendo isso, encontramos a inclinação (b) da nossa linha, que neste exemplo é aproximadamente 0. 2. ### Encontrando o Intercepto (c) 1. **Identificando o Valor Médio**: Sabemos que a linha de regressão linear passa pelo valor médio, especificamente (x, y) = (3, 2. 8). 2. **Formulando a Equação**: Introduza o valor médio e a inclinação na equação: y = b * x + c Solvendo por c, encontramos que o intercepto (c) é aproximadamente 2. 2. ### Desenhando a Linha 1. **Usando a Inclinação e o Intercepto**: Introduza a inclinação (0. 2) e o intercepto (2. 2) na forma padrão do plano inclinado y = mx + c para encontrar valores preditos y para valores de x dados. 2. **Desenhando os Ponto**: Desenhe os pontos e a nossa linha de regressão y = 0. 2x + 2. 2. 3. **Predizendo os Valores de Y**: Agora, podemos prever valores de y utilizando outros valores de x através da equação y = 0. 2x + 2. 2. ### Calculando o Erro (Opcional) 1. **Calculando os Valores Preditos**: Introduza os valores originais de x na equação y = 0. 2x + 2. 2 para encontrar os valores preditos (y_p). 2. **Desenhando o Erro**: Desenhe os pontos (x, y) e (x, y_p) na mesma gráfica e faça uma linha para representar o erro entre os dois. 3. **Reduzindo o Erro**: O objetivo é minimizar o total do erro entre os pontos de dados originais e a nossa linha de regressão ao ajustar a posição da linha até possuir a menor distância ao quadrado dos pontos de dados. ## Árvores de Decisão ### Introdução As árvores de decisão são um algoritmo de formação árvore utilizado para determinar uma ação de acordo com um conjunto de condições. Cada ramo da árvore representa uma possível decisão ou reação. No exemplo abaixo, nossameta é saber se é um dia bom para jogar golfe, dado as condições meteorológicas. ### Exemplo Suponha que o pronóstico para amanhã seja sol and ventoso. Então construa a árvore de decisão de forma semelhante à mostrada a seguir: ``` Umidade / \ Umido Seco | | Jogar Não Jogar ``` ### Entropia e Ganho de Informação Para decidir onde e como dividir os dados, utilizamos as ideias de entropia e ganho de informação. A entropia (baixa) deve ser o mais baixa possível, pois nós queremos reduzir o caos. A informação ganha (alta) deve ser o mais alta possível, pois nós queremos o valor ganho dividindo os dados ser tão informativo quanto possível. Para números de dados mais complexos, decidir como dividir os dados e fazer a melhor decisão pode ser determinado pela cálculo da entropia e da informação ganha. Para mais informações sobre as cálculos de entropia e informação ganha, consulte as referências fornecidas. Neste exemplo, o ganho que alcançamos é calculado baseado na divisão em outlook, resultando na estrutura de árvore mostrada acima. Continuando este processo, podemos criar uma árvore de decisão para determinar se é bom jogar golfe dado diferentes condições meteorológicas. # Classificação de SVM: Mofins vs. Bolo de Festa ## Declaração do Problema Neste exemplo, demonstraremos o uso de Máquinas de Suporte Vector (SVM) para classificar receitas entre mofins e bolos de festa utilizando suas respectivas características. ## Mofins vs. Bolos de Festa: Entendendo os Dados Em contraste ao exemplo anterior envolvendo amostras masculinas e femininas apenas com dois traços (altura e peso), o nosso conjunto de dados de mofins e bolos de festa tem oito características diferentes (farinha, leite, açúcar, manteiga, ovo, massa levadura, pasta de sucked vanilha e sal) para prever o tipo de receita. - Os mofins apresentam mais farinha, enquanto os bolos de festa apresentam mais manteiga e açúcar, reduzindo-os um pouco mais como doceiros e os mofins um pouco mais como pão sofisticado. ## Visão Geral 1. Instale os pacotes Python necessários (numpy, pandas, matplotlib, seaborn, e sklearn) 2. Processamento de dados pré-processamento: Leia os dados, crie rótulos de tipo e construa a matriz de características 3. Treinamento do modelo 4. Seleção da hiperplano 5. Predizer um ponto de dados novo ## Pré-requisitos - Anaconda (Python 3. 6) e Jupyter Notebook ## Configuração do Ambiente 1. Abra o Gerenciador de Ambiente do Anaconda 2. Mude o ambiente para Python 3. 6 (ou qualquer outra versão desejada) 3. Inicie o Jupyter Notebook ## Importação de Bibliotecas Essenciais ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt from sklearn. svm import SVC ``` ## Carregamento dos Dados ```python receitas = pd. read_csv('bolos_de_festa_vs_mofins. csv') print(receitas. head()) ``` ## Processamento de Dados: Criação de Rótulos de Tipo ```python rotulo_tipo = np. where(receitas['tipo'] == 'mofins', 0, 1) ``` ## Processamento de Dados: Construção da Matriz de Características ```python dados_receita = receitas. drop('tipo', axis=1) ``` ## Treinamento do Modelo ```python modelo_svm = SVC(kernel='linear') modelo_svm. fit(dados_receita, rotulo_tipo) ``` ## Seleção da Hiperplano A hiperplano com a maior margem entre a linha decisiva e o ponto mais próximo dentro do conjunto de treinamento será selecionada para classificar o ponto de dados novo. ## Predizendo o ponto de dados novo ```python novo_dados = np. array([[. . . ]]) # Adicione aqui os seus próprios pontos de dados para classificar previsão = modelo_svm. predict(novo_dados) print(predição) ``` ## Visualização dos Dados ```python sns. lmplot(x='farinha', y='açúcar', hue='tipo', data=receitas) plt. show() ``` Isso te ajudará a visualizar os dados e permitir média que seja desenhada a hiperplano entre os mofins e os bolos de festa. Lembre-se de adaptar variável novo_dados com qualquer valor que deseje classificar. Divirta-se na aprendizagem de máquina! 😊 # Classificação de Support Vector Machines em Pão de Mel e Bolo de Fitas com Pandas ## Introdução Neste tutorial, vamos utilizar Support Vector Machines (SVM) para classificar pão de mel e bolos de fitas baseados nos seus ingredientes. Utilizaremos a biblioteca **pandas** para manipular dados e a biblioteca **sklearn** para o algoritmo SVM. ## Preparação de Dados Primeiro, vamos discutir os passos necessários para preparar os dados para o classificador SVM. ### Recapitação de Dados - Correto, a primeira coluna está denominada `type`, mas não precisamos desta coluna, pois sabemos se o nosso pão de mel ou bolo de fitas. Incluímos ingredientes como farinha, leite, açúcar, manteiga, ovos, potássio caxente, vinagre e sal. ### Ordenação dos Dados - A partir de pandas, podemos classificar os dados utilizando a função `value_counts()` nos nomes das colunas: ```python import pandas as pd # Suponha que 'recipes. csv' seja o arquivo que contém os dados recipes = pd. read_csv('recipes. csv') recipes. columns = recipes. columns. str. strip() # Removendo espaços em branco extras recipes = pd. melt(recipes, id_vars=['type'], value_vars=['farinha', 'leite', 'açúcar', 'manteiga', 'ovos', 'potássio caxente', 'vinagre', 'sal']) recipes. rename({'value': 'quantidade_ingrediente'}, axis='columns', inplace=True) recipes = recipes[['type', 'ingrediente', 'quantidade_ingrediente']] # Não precisamos da coluna type, então vamos removê-la: recipes. drop('type', axis=1, inplace=True) # Agora temos um dataframe que se parece com isso: # índice ingrediente quantidade_ingrediente # 0 farinha 40 # 1 leite 20 # 2 açúcar 20 # 3 manteiga 30 # 4 ovos 1 # 5 potássio caxente 2 # 6 vinagre 1 # 7 sal 1 ``` ## Classificação de SVM Agora vamos avançar para a etapa de treinamento e uso do classificador SVM para nossos dados. ### Extração de Características - Para classificação de SVM, precisaremos apenas das colunas de características (ingredientes), já que a rotulagem já é conhecida: ```python caracteristicas = recipes[['farinha', 'açúcar']] rotulação = recipes['type'] ``` ### Treinamento do Modelo - Importe as bibliotecas necessárias: ```python from sklearn. svm import SVC from sklearn. metrics import matriz_de_confusão ``` - Instancie a classe SVC e empacote-a utilizando nossas características e rotulagens: ```python clf = SVC(kernel='linha') clf. fit(caracteristicas, rotulação) ``` ### Predição de Pão de Mel ou Bolo de Fitas - Crie uma função para predizer se uma receita é pão de mel ou bolo de fitas com base nos ingredientes: ```python def pao_de_mel_ou_bolo_de_fitas(farinha, açúcar): previsão = clf. predict([[farinha, açúcar]]) se previsão[0] for 0: return 'Pão de Mel' outro caso: return 'Bolo de Fitas' ``` Executando a função acima com quantidades específicas de farinha e açúcar retornará `'Pão de Mel'` ou `'Bolo de Fitas'`, respectivamente. Por exemplo: ```python print(pao_de_mel_ou_bolo_de_fitas(50, 20)) # Retorna 'Pão de Mel' ``` Agora está! Agora você poderá utilizar esta função para prever se uma receita é de pão de mel ou de bolo de fitas com base nos ingredientes. Se tiver dúvidas ou precisar de ajuda adicional, sinta-se à vontade para perguntar. Boa sorte em suas criações de receitas! # Bolos de Chocolate versus Bolo Bandeja - Tutorial 2: K-means e Regressão Logística Este artigo trata sobre o **agrupamento** principalmente no algoritmo k-means e na regressão logística. Também abordaremos as questões do quiz da nossa primeira sessão. ## O que é agrupamento? O **agrupamento** é a organização de objetos em grupos com base na semelhança entre eles, sendo uma técnica reconhecida como uma ferramenta extremamente útil em **Aprendizado Automático**. ## Algoritmo de k-means ### O que é o Algoritmo de k-means? O Algoritmo de k-means é o algoritmo mais comumente utilizado de agrupamento no **Aprendizado Automático**. É um exemplo de aprendizagem não supervisionada, pois é utilizado quando não temos dados rotulados. O algoritmo agrupa os dados em grupos baseados na semelhança de características ($features$). ### Como funciona o Algoritmo de k-means? 1. Escolha o número de grupos (k) que deseja usar. 2. Aloca $k$ centroidas aleatórias para iniciar o agrupamento. 3. Atribui cada ponto de dados a uma centroide, de forma que a distância do ponto à respectiva exemplo é minimizada. 4. Calcula novas centroidas com base nos grupos criados. 5. Repete o passo 3 e o passo 4 até que uma centroida não seja mais alterada. 6. O Algoritmo de k-means converge quando as centroidas se tornam estáticas. ### Utilização do Algoritmo de k-means Um exemplo prático de utilização do **k-means** é a divisão de carros de diferentes marcas. ```markdown Por exemplo, se tivermos um parque de carros e queremos dividir em três grupos de Ferrari, Lamborghini e Fiat, o Algoritmo de k-means irá encontrar a divisão mais precisa possível. ``` ### Selecionando o número de grupos Uma boa maneira de selecionar o número de grupos é o método da "cotovia" (Elbow Method). --- ## Regressão Logística ### O que é regressão logística? A regressão logística é um modelo estatístico para predição de probabilidades, amplamente utilizado para modelar o comportamento binário. ### Curva de regressão logística A curva de regressão logística é uma função S-curve que representa a probabilidade de sucesso como função de uma variável independente. ### Função sigmoid A função sigmoid, também conhecida como função de ativação, possui uma forma curva semelhante a uma S e é usada extensivamente como parte do processo de regressão logística. ```markdown A função sigmoid pode ser representada pela seguinte equação: f(x) = 1 / (1 + exp(-x)) ``` ### Classificação de cancro como maligno ou benigno Um exemplo prático de classificação de cancro como maligno ou benigno seria o uso da Regressão Logística com dados, utilizados como entrada, para predição da probabilidade de um cancro ser maligno. --- O artigo a seguir fornecerá um exemplo de utilização do Algoritmo de k-means no agrupamento de marcas de carros, usando dados como a potência ($horsepower$), cilindrada ($cubic\_inches$), marca e ano ($year$). --- Leia a seção "Algoritmo de k-means" para uma explicação mais detalhada do algoritmo e da implementação em Python. # Preparação de Dados ## Preparação dos Dados Para compreender os dados, vamos primeiro criar o conjunto de dados `x`. É nesse conjunto que vamos analisar os dados. Há várias maneiras de fazer isso, mas mantemos-o simples com um laço para maiores visibilidade. ```markdown # Criação do conjunto de dados x para i em range(4): x_col = f"x_{i}" # Define o nome da coluna # Loop pelas colunas para j em df. columns: # Preenche dados ausentes com a média da coluna se df[j]. isnull(). somar(). valor > 0: df[x_col] = df[j]. fillna(df[j]. mean()) ``` ## Manejo de Dados Ausentes Depois de preencher os dados ausentes, vamos loopear pelos dados novamente para verificar se há valores nulos restantes e corrigir se necessário. ```markdown # Verifica se há dados nulos restantes contagem_nula = df[df. isnull(). somar(eixo=1). valor]. somar(). valor print(f"Número de linhas com dados nulos: {contagem_nula}") # Se necessário, reprise o processo de preenchimento de dados até que nenhum dado nulo seja encontrado # . . . ``` ## Remoção da Última Coluna Para remover a última coluna, pode-se utilizar o abordagem seguinte: ```markdown # Remove a última coluna (a coluna models) df = df. drop(df. columns[-1], eixo=1) ``` ## Método de Elbo para agrupamento Agora que nossos dados estão preparados, podemos começar a usar o método de elbo para encontrar o número de agrupamentos ótimo. ```markdown # Importe o k-means de sklearn do import sklearn. cluster como kmeans # Defina o número de agrupamentos a avaliar num_agrupamentos = range(1, 12) # Crie um array vazio para armazenar os valores WCSS wcss = [] # Loope pelos número de agrupamentos para k em num_agrupamentos: # Inicialize o k-means kmeans = kmeans. KMeans(n_clusters=k, estado_aleatório=0) # Ajuste o modelo ao conjunto de dados kmeans. fit(df) # Adicione o valor WCSS ao array wcss. append(kmeans. inertia_) # Plote o gráfico do método de elbo importe matplotlib. pyplot como plt Plotagem(num_agrupamentos, wcss) Titular('Método de Elbo') EixoX('Número de Agrupamentos') EixoY('WCSS') plt. show() ``` Depois de analisar o gráfico, podemos decidir o número de agrupamentos ótimo com base no ponto de elbo. Neste exemplo, o número de agrupamentos que parecem óptimos está em torno de 3 ou 4. # K-Means Clustering de Dados de Automóveis ## Introdução Neste tutorial, vamos explorar o uso do K-Means de agrupamento para o agrupamento de dados. Em particular, vamos analisar dados de automóveis para investigar diferenças entre fabricantes de automóveis. ## Preparação Começe por definir a quantidade de clusters (k) em 3 e crie a variável `y_kmeans` para suas respostas. Em seguida, iguale-a a `2k` pois não estamos fazendo a adaptação, mas sim a adaptação de predição. ```python from sklearn. cluster import KMeans kmeans = KMeans(n_clusters=3) kmeans. fit_predict(X) y_kmeans = kmeans. labels_ ``` `fit_predict` é o setup desejado para usar com modelos inativos. Quando você está utilizando modelos inativos, verá uma ligeira diferença de comportamento porque usualmente vê-se `fit` seguido apenas por `predict`. No entanto, desejamos adaptar e predizer o KMeans sobre esses dados. Portanto, utilizaremos `fit_predict`. A letra maiúscula `X` é os dados sobre os quais estamos trabalhando. Antes de plotarmos este dado, iremos aplicar um truque do pandas e converter o nosso `X` na Matriz com `columns=None`, para que ela seja apenas uma matriz de dados. ```python X = pd. DataFrame(X) X = X. values X = X. astype('float64') X = X. reshape(-1, X. shape[1]) X = pd. DataFrame(X) X = X. set_index('index') X = X. to_matrix() ``` **Nota: ** Você pode ver avisos devido às atualizações e alterações mínimas de versão, mas eles podem ser seguramente ignorados neste contexto. ## Visualização de Dados ### Examinando `y_kmeans` Antes de ir para o ploteio de dados, vamos verificar o `y_kmeans` para saber com o que trabalhamos. ```python print(y_kmeans) ``` Verá o seguinte array de respostas: ``` [2 1 0 2 1 2] ``` Isto indica que o dado está sendo agrupado em três diferentes grupos com base em três espaços que acredita estará dentro. ### Examinando X Em seguida, examinemos o `X` dado: ```python print(X) ``` Verá o seguinte array: ``` [[44. 98. 192. . . . , 0. 0806871 , 0. 037744 , 0. 1361787 ], [47. 96. 184. . . . , 0. 124511 , 0. 104149 , 0. 03560422], [44. 104. 193. . . . , 0. 024179 , 0. 085906 , 0. 3367393 ], [50. 110. 151. . . . , 0. 0799974 , 0. 034 , 0. 0483327 ], [47. 95. 186. . . . , 0. 073876 , 0. 025834 , 0. 08190436], [47. 98. 193. . . . , 0. 03333333, 0. 03974 # Análise de Dados em Python com bibliotecas seaborn e pandas ## Introdução Nesta análise, vamos explorar um conjunto de dados utilizando seaborn e pandas. Nós vamos ver alguns aspectos importantes do conjunto de dados e examinar diversas medidas e visualizações. ## Inicialização Para iniciarmos, é necessário instalar as bibliotecas seaborn e pandas, podendo ser realizado com o comando: ``` pip install seaborn pandas ``` ## Carga de Dados Após a instalação das bibliotecas, nós vamos carregar o nosso conjunto de dados e poderemos ver as primeiras linhas executando `data. head()`: ```python import pandas as pd import seaborn as sns data = pd. read_csv('dados. csv') # Assuma que o nosso arquivo de dados esteja na mesma pasta do código ``` ## Exploração das Primeiras Colunas Usaremos `data. head()` para ver as primeiras linhas do arquivo de dados. Podemos ver que temos algumas colunas importantes nesse arquivo como `id`, `diagnosis`, `raio_promediado`, `textura_promedio`, `idade`, `ruido` e `have_mass_and_texture_prop`. Com isso, podemos entender melhor os dados que nós estamos trabalhando: ```python data. head() ``` ## Visualização de Jointplot Uma forma fácil de explorar a relação entre diversas medidas em seaborn é o `jointplot`. Nós vamos utilizar o `jointplot` com as medidas `raio_promediado` e `textura_promedio` para visualizar a distribuição de cada uma e a relação entre elas: ```python sns. jointplot(x="raio_promediado", y="textura_promedio", data=data) ``` ## Visualização de Heatmap Outra maneira podermos visualizar o conteúdo de nossas medidas é através de heatmap. Podemos exibir uma heatmap com todas as medidas disponíveis: ```python heatmap = sns. heatmap(data. corr()) ``` ## Verificação de dados ausentes É importante verificar se nosso conjunto de dados contém dados ausentes, podendo ser realizado com o seguinte comando: ```python data. isnull(). sum() ``` ## Conclusão Nesta análise, usamos seaborn e pandas para explorar um conjunto de dados e visualizar algumas medidas e relações entre elas. Para mais informações sobre cada uma das ferramentas exploradas, consulte a documentação oficial em: - [Pandas](https://pandas.pydata.org/) - [Seaborn](https://seaborn.pydata.org/) # Avaliação do Modelo de Classificação de Tumor em Python usando Scikit-learn Este tópico explica como avaliar um modelo de classificação de tumor usando Python e Scikit-learn. ## Classificando Tipos de Tumor Para prever o tipo de tumor, precisamos primeiro prever contra o `y_test`. Aqui, nossa ambição é saber o que a modelo acredita será. Isso é justamente o nosso `y_predict`. Com essa informação, queremos os dados `x_test` de modo que tenhamos nossos conjuntos de treinamento e números de teste. Agora, vamos fazer o `y_predict` e vamos reb atoms e executá-lo. Se imprimirmos `y_predict`, verá que aparece uma boa array de `b` e `m` para `b9` e `malignant` para todos os dados de teste diferentes que colocámos lá. Então está tudo certo - não sabemos exatamente quanto funciona, mas podemos ver que realmente estabelece e é funcional. ### Criação do Modelo A criação de um modelo de ciência de dados envolve gastar um grande tempo preparando os dados e garantindo que os dados que entram são boas. Como diz o adágio, "Dados bons entrarem, bons resultados sairão; dados ruins entrarem, ruins resultados sairão". A seleção dos modelos se torna a próximo passo, pois determina quantas bons seus modelos são. Adjustar-lo depende do modelo que você está usando. Neste caso, estamos aqui para saber quanto boa nossa modelo saiu. Temos nossos `y_predict` aqui: ```python log_model. predict(x_test) ``` Para decidir quanto boa nossa modelo é, vamos partir do `sklearn. metrics` vamos importar `classification_report` e simplesmente relata como a modelo está se comportando. Em seguida, vamos fornecer seus dados: ```python from sklearn. metrics import classification_report # Imprima o relatório de classificação print(classification_report(y_test, y_predict)) ``` Isso nos dará uma precisão para `b9` e `malignant`, além de outros métricas úteis como F1 Score, recalculo e suporte. ## Resposta à prova: Classificação, Agrupamento, Deteção de Anomalias e Regressão Vamos discutir a resposta à prova da disciplina de Aprendizado de Máquina em Aula de Aprendizado de Máquina Parte 1. 1. Colocar documentos em diferentes categorias baseado no tópico e conteúdo de cada documento é um exemplo de **agrupamento**. O algoritmo K-means pode ser usado para agrupar documentos por tópicos usando uma abordagem de palavra-chave de barril. 2. Identificar dígitos escritas a mão e imagens corretamente é um exemplo de **classificação**. O método convencional para resolver isso seria extrair características digit-dependentes como a curva dos diferentes dígitos etc e em seguida, usar um classificador como SVM para diferenciar entre imagens. 3. O comportamento de um site indicando que a página não está funcionando conforme projetado é um exemplo de **deteção de anomalias**. Neste caso, o algoritmo aprende o que é normal e o que não é normal usando frequentemente os logs da página. 4. (Bônus) Outro exemplo de deteção de anomalias é na detecção de anomalias no mercado de ações. Os mercados de ações são muito inestáveis e retrabalho extremamente radicalmente, por isso, encontrar aquelas áreas erráticas e depois descobrir por que estão erráticas pode ajudar você a descobrir o que é a sua resposta para isso. 5. Predizer o salário de uma pessoa com base no número de anos de experiência é um exemplo de **regressão**. Essa questão pode ser matematicamente definida como uma função entre as variáveis independentes (anos de experiência) e as variáveis dependentes (salário de uma pessoa). # Equações Lineares e Matrizes ## Equações Lineares Este artigo discutirá sobre equações lineares, especialmente na adição. Se você estiver já familiarizado com redes neurais, talvez pareça algo conhecido: ``` ax + cz + **intercept** = setup ``` O _intercept_, como você pode ver, é basicamente sua rede neural, onde cada nó soma os diversos entradas. ### Formula A fórmula mais comum é: ``` y = **m**x + **c** ``` * `m` é a sua inclinação * `x` é seu valor de x * `c` é seu intercepto diretriz, que você etiquetou errado aqui, me deixando perplexo, mas em termos deste contexto, seria seu intercepto diretriz. Quando você a torna igual a zero, `y` equivale a `c`, e esse é seu intercepto diretriz, verdade? O valor inverso de `y` quando `x` é zero equivale ao intercepto diretriz, que é `c`. Sua inclinação (gradiente) é a sua _m_, então você obtém: ``` y = **2x + 3** ``` ## Matrizes Uma matriz se refere a uma representação retangular de um arranjo de números organizados em colunas e linhas. Aqui, estamos falando de `m` linhas e `n` colunas: * `a11` denota o elemento da primeira linha na primeira coluna * De maneira semelhante, `a12`, `a13`, `a21`, `a22`, `a23`, e assim por diante. Há muitas formas de se indicar isso, como a utilização de letras maiúsculas para a primeira linha, ou a utilização de uma letra minúscula a (pequena) para a primeira linha e de uma letra maiúscula para o resto. Lembre-se de que é preciso que haja algum tipo de designação como indicação da linha e da coluna. ### Operações básicas Disponemos de operações básicas: * Adição: quando se pensa em adição, se imaginam dois matrizes do mesmo tamanho, e somam cada número individualmente em cada matriz. * Subtração: Quando subtraem matrizes, é necessário se certificar das dimensões. * Multiplicação: quando se olha a multiplicação, chega-se a um setup um pouco diferente. ### Multiplicação ``` a * b = (a11 * b11) + (a12 * b21) + (a13 * b31) + (a21 * b12) + (a22 * b22) + (a23 * b32) + (a31 * b13) + (a32 * b23) + (a33 * b33) ``` ### Inversa e Transposta * Transposta = gira a matriz sobre o eixo diagonal para vir para a imageira onde aparece a matriz inversa, _a^(-1)_. ``` a^(-1) = 1/determinante(a) * adj(a) ``` * Vetores Os vetores se referem a um valor e uma direção. Na matemática, um matriz unidimensional é chamado de vetor. Pode-se pensar em um vetor como um ponto em um espaço bidimensional se tiver coordenadas x e y, e a sua direção pode ser pensada como a hipótese de um triângulo. Isso pode-se fazer com 3D, 4D, até `n` dimensões. * Vetores de higiene e valores de higiene Os vetores de higiene são vetores que mantêm sua área de espanha durante a transformação. Os valores de higiene são as razões escalares associadas aos vetores. * Demo sobre Algebra Linear (usando Python) Para isso, vou passar pela minha confiável Anaconda para o meu Jupyter Notebook e criar uma nova notebook chamada "Algebra Linear" desde que estamos trabalhando com Python, faremos uso de numpy (_importado como np ou array de numpy_), que é o módulo mais popular para fazer matrizes e coisas em termos de álgebra. Neste notebook, criaremos duas variáveis diferentes `a` para um arranjo de numpy (10, 15) e `b` para outro (29). Em seguida, vamos executar isto: ```python a = np. array([10, 15]) b = np. array([29]) ``` Agora podemos utilizar a adição e a multiplicação de vetores: ```python c = a + b d = np. dot(a, b) # equivalente a a * b quando trata-se de vetores 1D ``` Podemos também subtrair e transpor vetores: ```python e = a - b f = np. dot(a. T, b) # equivalente a a * b quando trata-se de vetores 1D e transpondo a ``` Podemos também fazer a multiplicação por escalar: ```python g = 2 * a ``` * Escalares e Vetores Podemos pensar em uma escalar como um valor único, enquanto um vetor é um conjunto de valores. Podemos alterar vetores pela multiplicação pelo escalar: ```python a_new = 2 * a ``` Neste caso, estamos multiplicando todos os valores em `a` por 2, efetivamente esticando-o na direção x. # Multiplicação e Operações de Matriz em Python Este guia explica as bases da multiplicação e operações de matriz em Python, utilizando formatação Markdown para clearidade e lisibilidade. ## Multiplicação de um Valor Singular e Vetor Se você tiver um valor simples `a` e um vetor `b` (que representa um vetor de valores), você pode realizar a multiplicação usando `a * b`. Aqui está um exemplo: ``` 2 * 4 = 8 5 * 4 = 20 ``` Este método é útil quando você deseja multiplicar um valor simples `a` por cada elemento no vetor `b`. Este é frequentemente referido como produto escalar. ## Multiplicação de Matriz e Vetor Nos contextos de multiplicação de matriz, temos um vetor chamado `a` que contém sub-vetores (- vetores de vetores). Em contraste, `b` é um vetor único (vetor). Para realizar a multiplicação de matriz e vetor, use a função `dot()` em numpy. Aqui está um exemplo: ``` numpy. dot(a, b) ``` Isso retornará dois valores, representando o resultado da multiplicação de matriz e vetor. O primeiro valor representa o resultado do vetor `b` multiplicado pelas linhas de `a` (vetor de vetores) e o segundo valor representa o resultado do vetor `b` multiplicado pelas colunas de `a`. Você pode misturar e combinar estas operações ao lidar com coisas complexas da camada de back-end, pois você encontrará camadas sobre camadas de dados. Lembre-se de que, ao fazer ciência de dados, não está normalmente observando o que está acontecendo atrás das cenas. Em vez disso, está concentrando-se nos resultados destas operações, manipulando os dados para que eles sejam compatíveis com o modelo que você está usando. ### Transposição de Matriz Você pode transpor uma matriz, representada como `a`, usando a função `transpose()` em numpy. Aqui está um exemplo: ``` numpy. transpose(a) ``` Isso transporá a matriz, acrescentando colunas e removendo linhas, de acordo com o exemplo abaixo: ``` a = np. array([[5, 10, 15, 20, 25, 30]) # a original np. transpose(a) # output: array([5, 15, 25, 10, 20, 30]) ``` ### Matriz Identidade A matriz identidade é usada para comparar diferentes características entre si. Aqui está um exemplo de criar uma matriz identidade 2x2: ``` numpy. eye(2) ``` Isso criará uma diagonal de um e zeros, de acordo com o exemplo a seguir: ``` array([[1, 0], [0, 1]]) ``` ### Inversa de Matriz A inversa de uma matriz, indicada como `a-1`, é uma matriz que satisfaz `a * a-1 = a-1 * a = I`, onde `I` é a matriz identidade. Você pode encontrar a inversa de uma matrizquadrada `a` usando a função `linalg. inv()` em numpy. Aqui está um exemplo: ``` import numpy. linalg as linalg # matriz original quadrada a a = np. array([[2, 1], [1, 2]]) # computação da inversa de a a_inverse = linalg. inv(a) # multiplicação de matriz e sua inversa numpy. dot(a, a_inverse) ``` ### Cálculo e Algebra de Matriz O cálculo é frequentemente usado no contexto da ciência de dados, especialmente quando trabalhar com redes neurais de tamanho grande, pois permite que você encontre a solução ótima ao minimizar o erro. Uma das conceitos fundamentais nos cálculos é o conceito de encontrar o ponto máximo e mínimo local e global, o que é crucial no momento do Descendo no Gradiente, um método usado para minimizar o erro em algoritmos de aprendizado de máquina. Vamos abordar o Descendo no Gradiente em uma seção separada. Guia básico de conceitos e operações utilizadas na multiplicação e operações de matrizes em Python, mas para uma compreensão mais profunda, você deve aprender álgebra linear, cálculo e equações diferenciais. Após seguir este guia, você será capaz de realizar várias operações de matriz em Python em seus projetos deciência de dados, de modo que pode trabalhar com grandes quantidades de dados com consistência e eficiência. # Maximizando a Saída: Encontrando o Pico e a Valeia Este é um método para encontrar o pico e a valeia de uma função. A coisa legal é que todos os trabalhos pesados já foram feitos. Eu juntei um destes um tempo atrás quando ainda não sabia sobre Sidekick e estava apenas começando. Aqui está o como jogar "Alto-Baixo": ## Jogando Alto-Baixo 1. **x Atual**: Onde começamos? Tenha em mente que o seu modelo é bastante genérico. O algoritmo começa em `x=3`, então escolhemos `x=5` arbitrariamente. 2. **Taxa de Aprendizado**: Isto define quantos passos saltar uma vez para a frente ou para trás. Não dei separado porque é muito importante. 3. **Precisão**: Isto nos informa quando parar o algoritmo. É específico do que você está trabalhando. 4. **Passo Anterior**: É importante cortar-lo em algum momento, geralmente construído em uma das muitas funções de minimização. 5. **Máximo de Iterações**: Queremos algo para parar em algum momento, normalmente em torno de 100 ou 200 iterações, exceto se o problema em que você está trabalhando exigir mais. Aqui está realmente a fórmula que vamos trabalhar: ```python enquanto prev_step_size > precisão e prev_step_size < max_iter: curr_x = curr_x - learning_rate * formula_prev_x prev_step_size = abs(curr_x - prev_x) erros = iterations + 1 se erros > max_tolerance: break print("Mínimo local ocorre em x: ", curr_x) ``` ## Estatística **Estática** é a coleção, organização, análise, interpretação e apresentação de dados. Aborda tópicos como: - Onde vem o dados? - É válido? - O que ele significa? - Como vamos organizá-lo? - Como o analisaremos e interpretaremos os resultados? - Como vamos o apresentarem para que as pessoas possam compreender? ## Amostragem Na estática, um **população** refere-se a **todos os objectos ou medidas cujas propriedades estão sendo observadas**. O **parâmetro** é uma matriz utilizada para representar uma população ou característica. Uma **amostra** é um subconjunto da população estudada. Não se quer estudar tudo porque então não terá uma forma de testar as conclusões. Existem diferentes tipos de amostragem: 1. **Amostragem Probabilística**: Seleciona amostras de uma população superior usando um método baseado na teoria da probabilidade. Abordaremos mais detalhes sobre ele mais tarde. 2. **Amostragem Não Probabilística**: Seleciona amostras baseados no julgamento subjetivo do pesquisador. Ele é vago e deve ser usado com cautela. ### Amostragem Probabilística: *Sistemática, aleatória, estratificada* - **Amostragem Aleatória**: Seleciona amostras de tamanho aleatório desde que seja o mais aleatório possível. - **Amostragem Sistemática**: Seleciona amostras de tamanho aleatório com um intervalo fixo. - **Amostragem Estratificada**: Seleciona amostras de tamanho aproximado a partir de cada grupo ou categoria separando as categorias e melhorando o entendimento de culturas diferentes. ### Amostragem Não Probabilística: Seleciona um funcionário de cada 50 funcionários únicos numa empresa de 250 funcionários (usando amostragem conveniente) ou seleciona um funcionário de cada filial da empresa (usando amostragem de critérios). Tipos de amostragem também podem gerar muita informação enganadora se não forem usados com cuidado, pois podem levar à situações eticamente inquietantes. Então, sempre é preciso cuidar quando usa estes métodos. Úm titulo: Entendendo tendências centrais e dispersão em Análise de Dados ===================================================================== Neste tutorial, vamos mergulhar mais profundamente nas tendências centrais e dispersão em Análise de Dados. Durante o estudo de conjuntos de dados, existem diversas medidas-chave que podem nos ajudar a compreender a distribuição geral e tendências. Tendências centrais -------------------- ### Média A média é a média de um conjunto de valores, também conhecida como a média aritmética. Ela representa o resultado típico ou médio de o que está sendo analisado. A média fornece um único número para descrever a tendência central de um conjunto inteiro de dados, e pode ser fáplicmente calculada somando os valores e dividindo pelo número total de valores. Exemplo: Quando calculamos a média de um conjunto de pontuações de alunos, simplesmente somamos todas as pontuações, totalizamos o número de alunos, e dividimos a soma total pelo número de alunos. ### Média O média é usado para separar a metade superior e a metade inferior de um conjunto de dados. Ele se refere ao ponto central de todos os pontos de dados quando os dados estão arranjados em ordem. O uso do média pode nos ajudar a ver mais claramente o ponto central dos dados, pois é menos afetado por fora-de-círculo ou valores extremos que podem stratificar a média. Exemplo: Suponha que tenhamos um conjunto de dados contendo os rendimentos económicos de várias pessoas dos EUA. A média de rendimento poderia ser superior devido a alguns indivíduos a obter rendimentos significativamente superiores, mas o quartilMEDiano dá uma representação melhor dos rendimentos típicos para a maioria das pessoas. ### Moda A moda é o valor mais frequente num conjunto de dados. Pode ser particularmente interessante quando se analisam fatores económicos sociais, como a distribuição da renda. Exemplo: Quando estudarmos a distribuição da renda, podemos encontrar que o valor mais frequente em EUA foi $1. 24 milhares anuais, enquanto a média era mais próximo a $80. 000. Este contraste ilustra que algumas pessoas têm rendimentos significativamentesuperiores em comparação com os demais, causando a média a ser arredondada. Dispersão ---------- ### Alcance O alcance é a diferença entre os valores máximos e mínimos em um conjunto de dados. Ajudará-nos a comprir a dispersão geral dos dados. Exemplo: Quando analisarmos pontuações de provas, o alcance será a diferença entre o maior valor e o menor valor. Por exemplo, numa prova onde todos obtiveram entre 50% e 100%, o alcance poderia variar de 90% a 50%, de acordo com a dificuldade da prova. ### Rangers interquartis (IQR) O ranger interquartis (IQR) divide um conjunto de dados ordenado em quatro partes iguais. É um método comum utilizado na análise de dados, independente do idioma de programação que se esteja a trabalhar com. O IQR pode nos ajudar a compreender a distribuição dos dados em cada quarto. Quando tivermos a média, podemos calcular o IQR identificando o primeiro quartil (percentis 25), o segundo quartil (percentis 50 = quartilMEDIANO), e o terceiro quartil (percentis 75). Exemplo: Com o mesmo conjunto de pontuações de provas, o IQR representaria a dispersão entre os quartos 1, 2 e 3. Isso será mais útil em termos de compreensão como a distribuição das pontuações, especialmente se desejarmos eliminar fora-de-círculo. ### Variância e Desvio-Padrão A variância mede a dispersão média dos pontos-dados em relação à média, fornecendo insight sobre a turbulência ou dispersão dos dados. O desvio-padrão é a raiz quadrada da variância, o que facilita a medida. Por exemplo, quando se vizualiza dados em gráficos, o desvio-padrão pode ser utilizado para representar as barra de erro ou margem de erro associada a cada ponto de dados. No Python, pode-se utilizar bibliotecas como NumPy e pandas para facilmente calcular muitas das tendências centrais e medidas de dispersão. ``` import pandas como pd # Criar um conjunto de teste de dados dados = {'Nome': ['Jane', 'Michael', 'William', 'Rosie', 'Hannah'], 'Rendimento': [50000, 70000, 90000, 189000, 60000]} df = pd. DataFrame(dados) # Calcular a média de rendimento df['Rendimento']. mean() # Calcular a média de rendimento df['Rendimento']. median() # Calcular o mais frequente de rendimento # Nota: Calcular a moda pode ser complexo com maiores data sets # Calcular o mínimo e máximo de rendimento df['Rendimento']. min() df['Rendimento']. max() # Calcular o ranger interquartis # Primeiro, precisamos calcular os quartis Q1 = df['Rendimento']. percentis(0. 25) Q3 = df['Rendimento']. percentis(0. 75) IQR = Q3 - Q1 # Calcular a variância e o desvio-padrão média_rendimento = df['Rendimento']. mean() variância = ((df['Rendimento'] - média_rendimento) ** 2). mean() desvio-padrão = variância ** 0. 5 ``` As tendências centrais e as medidas de dispersão fornecem informações valiosas sobre os dados e podem ajudar você a tomar decisões informadas ou a fazer conclusões baseadas em sua análise. # Análise de Dados em Python: Visão Geral e Conceitos Chave Este documento fornece uma visão geral da análise de dados, com o enfoque nas principais conceituações em Python, incluindo estatísticas descritivas e inferenciais. ## Estatísticas Descritivas ### Introdução As estatísticas descritivas ajudam a fazer uma resumo significativo dos dados, oferecendo insights sobre as características básicas de um conjunto de dados. Um aspecto importante das estatísticas descritivas é a representação gráfica, particularmente a linha x-v, que pode ser utilizada para mostrar tendências em cima e em baixo dos dados. ### Exemplo Na Python, a integração de estatísticas descritivas como a Média pode ser realizada com a utilização da biblioteca `pandas`. A seguinte exemplo ilustra a localização da média a partir de um conjunto de dados: ```python import pandas as pd dados = pd. read_csv('seu_dado. csv') # substituteir por seu desenho de dados media_valor = data['seu_coluna']. mean() print(media_valor) ``` ### Fora-etilo Os fora-etilos são valores extremos que podem alterar a média ou outras medidas estatísticas. Um histograma pode ajudar a identificar estes fora-etilos rapidamente. ### Describe Básica A `pandas` fornece uma função `describe()`, que pode ajudar a extraier várias informações estatísticas, como média, desvio-padrão, quartis e mais. ```python data. describe() ``` ## Estatísticas Inferenciais ### Introdução As estatísticas inferenciais ajudam a prever ou inferir de dados usando amostra de dados e várias testes e métodos como análise hipotética e interfunção de confiança. ### Análise Hipotética A análise hipotética é utilizada para medir a plausibilidade de uma hipótese utilizando amostra de dados. O processo consiste em quatro passos básicos: 1. Formular uma hipótese 2. Escolher o teste adequado para testar a hipótese 3. Executar o teste 4. Tomar decisão É importante lembrar que, em análise hipotética, o objetivo geralmente é tentar refutar a hipótese. Se não puder ser refutada e funciona para todos os fatos, ela pode ser chamada de teorema em algum momento. ### Estimação Pontual A estimação pontual é um processo de encontrar um valor aproximado para o parâmetro da população como a média ou a média a partir de amostras aleatórias da população. ### Exemplo: Teste de Vacinas Por exemplo, no contexto de se testar vacinas para COVID-19, um grupo de pessoas é escolhido da população, estudos are conduzidos nas resultados e os resultados são gerados para a população integral. ## Exemplo de Análise Hipotética Considerar um exemplo em que temos quatro alunos dado a tarefa de limpar uma sala sempre. Para determinar se um dos alunos violou a regra tramitando o seu nome em muitas chavetas, pode-se calcular a probabilidade de cada aluno receber a tarefa de limpeza todos os dias. ## Termos Importantes ### Hipótese Nula A hipótese nula diz que não existe relacionamento entre duas fenômenos medidos ou não há relação entre os grupos. ### Hipótese Alternativa A hipótese alternativa diz uma nova relação ou relação existe em comparação à hipótese nula. ### P-valor O p-valor é uma probabilidade da observação ou uma probabilidade mais intensa em que a hipótese nula da questão do estudo é verdadeira. ### Valor T O valor T é um valor calculado, representado em unidades de erro padrão. A maior a magnitude de t, maior a evidência contra a hipótese nula. ### Intervalo de Confiança Um intervalo de confiança é umIntervalo de valores em que estamos certos que os valores verdadeiros de observações estão na Range que o verdadeiro valor das observações metas provavelmente está. # Análise da Probabilidade de Barcelona Vencer a Série em um Jogo de Futebol Contra o Dortmund Esta análise é baseada num setup de verdadeiro/falso, onde você vence ou perde. Vamos considerar um cenário de uso e vamos considerar o jogo de futebol entre dois clubes: Barcelona e Dortmund. Os clubes terão que jogar um total de quatro partidas, e nossameta é encontrar as chances de Barcelona vencer a série. ## Encontrando as Chances de Barcelona Vencer a Série 1. Primeiro, olhamos no total de partidas e consideramos cinco partidas diferentes. 2. Digamos que a chance de vitória para o Barcelona é 75% (0, 75). Isso significa que cada partida eles têm uma chance de vitória de 75% e uma chance de derrota de 25% (0, 25). 3. A probabilidade de obter `k` vitórias em `n` partidas é calculada da seguinte forma: ``` P(k vitórias) = p^k * q^(n - k) onde: p é a chance de vitória (0, 75) q é a chance de derrota (1 - p ou 0, 25) ``` 4. Enquadrando os números: - Total de partidas: `n = 5` - Chance de vitória: `p = 0, 75` - Chance de derrota: `q = 1 - p = 0, 25` Podemos calcular as probabilidades para diferentes números de vitórias: - Probabilidade de que o Barcelona perca todas as partidas: ``` P(0 vitórias) = p^k * q^(n - k) = 0, 25^5 = 0, 0009765625 (Um chances bastante pequena de que eles percam todas as partidas) - Probabilidade de que o Barcelona vencesse ao menos dois jogos: ``` P(2 vitórias ou mais) = P(2 vitórias) + P(3 vitórias) + P(4 vitórias) + P(5 vitórias) Cada uma das probabilidades acima pode ser calculada utilizando a fórmula acima. Neste caso, obtemos a seguinte probabilidade: ``` P(2 vitórias ou mais) = 0, 0878 - Probabilidade de que o Barcelona vencesse exactamente três jogos: ``` P(3 vitórias) = 0, 264 - Probabilidade de que o Barcelona vencesse quatro jogos: ``` P(4 vitórias) = 0, 395 - Probabilidade de que o Barcelona vencesse todas as cinco partidas: ``` P(5 vitórias) = 0, 237 Observe que a probabilidade de Barcelona vencer a série é muito maior que 0, 75. ## Probabilidades Acumuladas Discretas Podemos encontrar as probabilidades acumuladas discretas para cada um dos resultados onde Barcelona tenha ganho três ou mais partidas: - Quando Barcelona ganha três ou mais partidas: `P(3 vitórias ou mais) = 0, 264 + 0, 395 + 0, 237 = 0, 996` Nosso caso real, a probabilidade de Barcelona vencer a série é muito maior que 0, 75. ## Gráfico dos Resultados É sempre agradável plotar a informação usando um gráfico, de maneira que você possa ver o número de vitórias contra a probabilidade e como se realça nossa hipótese binomial. A localização do centro do gráfico depende da média do valor, que é um ponto crucial a considerar. - A localização do centro do gráfico depende da média do valor. - A declividade do desnível inversamente depende da desvio-padrão. - Quando o desvio-padrão é grande, ele comprimirá os dados, e se for pequeno, a maioria dos dados acertará no meio, resultando em uma aguda gaussiana. - Sendo bem consciente disso, você pode ter uma probabilidade que se encaixe em determinados dados mas ter deviações consideráveis, de maneira que suas previsões podem não ser precisas. - Deviações significativas no mercado de ações podem não gerar apenas lucros, enquanto deviações menores podem levarte ao caminho de se tornar um milionário. ## Fórmula Gaussiana - A fórmula gaussiana te te dá o comprimento da saliência de um dado resultado em termos de desvios destinados de uma média, gravando-o em termos de quantos desvios causam a média. - À volta de 68 percent dos resultados são encontrados em uma distância simestral em torno da média. - Aproximadamente 95 percent dos resultados são encontrados em torno de duas distância simestrais. - De certa forma os sintomas gregos amam colocar algumas letras gregas: - µ denota a média (um jeito rápido de denotar a média). - σ denota o desvio-padrão. ## Teorema Ponderado Central Limit - O teorema ponderado central limite afirma que a distribuição das médias de amostras será aproximadamente distribuída de forma gaussiana, independentemente dos valores esqueléticos em comparação à distribuição de dados anteriores em que os dados são ou não esqueléticos. - A distribuição das médias de amostras será simétrica e não esquelética se: - Tomarmos amostras aleatórias de grande tamanho da popolação com a média µ e o desvio-padrão σ, com ressarcimento. ## Probabilidade Condicional - A probabilidade condicional de um evento A é a probabilidade que o evento A ocorra, dado o conhecimento de que evento B já ocorreu. - A probabilidade condicional da informação A given B é P(A | B) = P(A and B) / P(B). Este é conhecido como a lei de Bayes, que é uma importante fórmula de coleta de dados e ciência de dados, especialmente para combinar diferentes estudos em diferentes grupos. ## Caso de Estudo: Chance de uma Pessoa Ter Doença Pulmonar devido ao Fumo Vamos descobrir a chance de uma pessoa ter doença pulmonar devido ao fumo, baseado em vários estudos e dados: 1. De acordo com um relatório médico, 10% de todos os pacientes tratados por um hospital sofrem de doença pulmonar. 2. 15% de todos os pacientes que visitam o hospital fumam. 3. 5% das pessoas seguem fumando mesmo com doença pulmonar. Usando a informação de Bayes, podemos encontrar a probabilidade de uma pessoa que fuma ter doença pulmonar: - Probabilidade a priori de ter doença pulmonar = 10% (0, 1) - Probabilidade de ser um paciente que fuma = 15% (0, 15) - Probabilidade de ter doença pulmonar depois que uma pessoa fuma = 5% (0, 05) Podemos calcular: ``` P(a | b) = P(a and b) / P(b) P(a | b) = 0, 05 / 0, 15 = 0, 333 ``` Portanto há uma chance de 3, 33% de que uma pessoa que fuma tenha doença pulmonar. Nesta solução, mantivemos a formatação Markdown e substituiu os brasileirismos pelos termos portugueses, utilizando a terminologia técnica adequada, mantendo os comandos e códigos inalterados. Também preservou URLs e referências. # Probabilidade de uma Soma ser um Múltiplo de 3 ou 5 com Rolamentos de Dados ## Visão Geral Neste exemplo, discutimos a cálculo da probabilidade da soma obtida ao fazer o rolamento de dados múltiplos ser um múltiplo de 3 ou 5. Aplicaremos isto usando Python e conceitos básicos de Probabilidade e Combinatórias. ## Pré-requisitos - Conhecimentos básicos em Python - Compreensão da Probabilidade e Combinatórias ## Cálculo da Probabilidade para uma Soma ser um Múltiplo de 3 Para se alcançar este objetivo, criaremos um espaço de eventos e determinar a probabilidade de obter um múltiplo de 3. ``` import itertools # Definiremos o número de dados a serem rolados dados = 3 # Criaremos o espaço de eventos para a soma dos rolamentos de dados espaco_eventos = list(itertools. chain. from_iterable(itertools. combinations(range(1, dados+1), dados))) # Definiremos nossa saída para um múltiplo de 3 outcome_favoravel = set() para_todo_resultado_na_espaco_eventos: se sum(outcome) % 3 == 0: outcome_favoravel. add(tuple(outcome)) # Calculemos a probabilidade de um resultado favorável (múltiplo de 3) probabilidade_multiple_de_3 = len(outcome_favoravel) / len(espaco_eventos) imprimir(f'Probabilidade de um múltiplo de 3: {probabilidade_multiple_de_3}') ``` ## Cálculo da Probabilidade para uma Soma ser um Múltiplo de 5 (Opcional) Repita os passos anteriores para calcular a probabilidade de obter um múltiplo de 5 entre a soma dos rolamentos de dados. ``` # Definiremos nossa saída para um múltiplo de 5 outcome_favoravel_multiple_5 = set() por_tudo_resultado_na_espaco_eventos: se sum(outcome) % 5 == 0 e sum(outcome) % 3 ! = 0: outcome_favoravel_multiple_5. add(tuple(outcome)) # Calculemos a probabilidade de um resultado favorável (múltiplo de 5) probabilidade_multiple_de_5 = len(outcome_favoravel_multiple_5) / len(espaco_eventos) imprimir(f'Probabilidade de um múltiplo de 5: {probabilidade_multiple_de_5}') ``` ## Matriz de Confusão (Opcional) Nalgumas situações, é útil avaliar a precisão de modelos de aprendizagem automática com ferramentas como a matriz de confusão. Em um modelo de predição de cancro, poderíamos ter um resultado conhecido e um resultado previsto. Poderíamos comparar esses dois resultados para ver se o modelo é preciso, se ofereceu excessivamente muitos falsos negativos ou falsos positivos, e calcular a precisão, a precisão e a sensibilidade do modelo. ``` # Exemplo usando um modelo de predição de cancro resultados_conhecidos = ["câncer", "sem cancro", "câncer", "sem cancro"] resultados_previstos = ["câncer", "sem cancro", "sem cancro", "sem cancro"] # Calcularemos a matriz de confusão confusao = confusao_matriz(resultados_conhecidos, resultados_previstos) imprimir("Matriz de Confusão: ") imprimir(confusao) # Calcularemos a precisão, a precisão e a sensibilidade do modelo precisao = precisao_matriz(resultados_conhecidos, resultados_previstos) sensibilidade = sensibilidade_matriz(resultados_conhecidos, resultados_previstos) imprimir(f'Precisão: {precisao}') imprimir(f'Sensibilidade: {sensibilidade}') ``` # Classificador Naïve Bayes: Gaussiano ##visão Geral Neste tutorial, iremos passar pelo processo de construção de um classificador Gaussiano Naive Bayes em Python utilizando a biblioteca scikit-learn. ### Características do Classificador Gaussiano Naive Bayes - Website: [Gaussiano NB do scikit-learn](https://scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html) - Fit parcial: Processar grandes quantidades de dados lotando-os no modelo Gaussiano NB. - Variedades de opções de manipulação de dados e adjustamento. ### Passos 1. Importar bibliotecas necessárias 2. Carregar os dados de treino 3. Criar o classificador Gaussiano 4. Ajustar o classificador com os dados de treino 5. Fazer predições e criar a matriz de confusão 6. Visualizar os resultados ## 1. Importar bibliotecas necessárias ```python from sklearn. naive_bayes import GaussianNB from sklearn. metrics import confusion_matrix import pandas as pd import numpy as np import matplotlib. pyplot as plt import seaborn as sns ``` ## 2. Carregar os dados de treino Substituir o caminho do arquivo pela própria localização do seu CSV contendo os dados de treino. ```python data = pd. read_csv('seu_arquivo_csv. csv') x_train = data. drop(['target'], axis=1) y_train = data['target'] ``` ## 3. Criar o classificador Gaussiano ```python classificador = GaussianNB() ``` ## 4. Ajustar o classificador com os dados de treino ```python classificador. fit(x_train, y_train) ``` ## 5. Fazer predições e criar a matriz de confusão ```python x_test = . . . # Carregar os dados de teste y_predict = classificador. predict(x_test) matriz_de_confusão = confusion_matrix(y_test, y_predict) ``` ## 6. Visualizar os resultados Criar um scatter plot, plot contorno e visualizar a matriz de confusão para análise do desempenho do modelo. ```python # . . . (código para scatter plot, plot contorno e visualização da matriz de confusão é aqui) ``` ## Segunda parte Após a descrição inicial, temos uma situação em que `x` não é mais uma tabela de dados pandas, mas queremos transformá-lo de modo que os valores sejam colocados nele. Portanto, `x` não será mais uma tabela de dados de pandas, mas poderemos facilmente extrair os dados dele usando essa notação e depois atribuiremos `y` ao último valor da linha. A questão é qual informação estamos vendo. Passaremos então para a próxima parte e verificá-la. ### Examinando os dados Começaremos a examinar os dados usando o `head` do `companies`. Em breve, abriremos o arquivo como um CSV, mas primeiro vamos examinar os dados como vistos pela pandas. A pandas é uma ferramenta muito útil por que ele vai vizualizar o dado de forma semelhante a um workbook de Excel, onde você tem as linhas e lembrando que, ao começar a programar, todos começamos sempre com zero, portanto, as primeiras 5 linhas são apresentadas como zero, 1, 2, 3 e 4, e depois é apresentada as colunas `r`, `d`, `spend`, `administration`, `marketing`, `spend`, `state` e `profit`. A pandas também reconhece nomes de colunas de fato sem que sejam especificados. ### Visualizando os dados como CSV Em seguida, vamos abrir o arquivo CSV e verificar o conteúdo raw. Aqui abriu o arquivo no editor de texto e você pode ver aos olhos que no topo tem `r`, `n`, `d`, `spend`, `administration`, `marketing`, `spin` e `state` separados por vírgula. Você também pode abrir este mesmo arquivo em Excel para visualizá-lo de forma mais amigável, no entanto, não é nosso objetivo permitir ao usuário visualizar o arquivo em este momento. Nós queremos abrir o arquivo que é fácil de ler. Vamos então voltar para a parte superior e verificar as primeiras 5 linhas. ### Interpretando os dados A estrutura das colunas e linhas dos dados parece uma excelente visualização dos dados, mas para mim isto não significa muito uma vez que podemos ver linhas de números aleatórios como o 165, 349. 02, 136, 897. 80 etc que não gera nenhum sentido. Certamente você, se especialista em negócios e investimentos, poderá entender o que estamos vendo depois de alguns momentos, mas por enquanto não entendemos isto a primeira vista. Agora vamos ver outra parte para plotar os dados, para uma melhor compreensão. ### Plotando os dados Aplicaremos agora uma única linha de código já vamos ter uma grande quantidade de informações, permitindo-nos saber o que estamos fazendo. Copiaremos o código a seguir para anotação debloco de código e depois executaremos. No final, vamos ter um gráfico muito bom e vamos entender os dados melhor. ```python # Lembre-se que o código a seguir é apenas um exemplo hipotético e não deveria ser usado em um ambiente de produção import pandas as pd import matplotlib. pyplot as plt # Abra o arquivo CSV df = pd. read_csv('data. csv') # Por enquanto, vamos para um gráfico de linhas plt. plot(df['spend']) # Adicionaremos um título ao gráfico plt. title('Gráfico de língua dos gastos de operações de empresas') # Adicionaremos uma legenda plt. xlabel('Número da Empresa') plt. ylabel('Gastos (valor monetário)') # Exibiremos o gráfico plt. show() ``` Aqui estamos utilizando o módulo `pandas` para ler o arquivo CSV e o módulo `matplotlib. pyplot` para plotar os dados. Estamos criando um gráfico de linha que visualiza os gastos operacionais das empresas, com a etiqueta para o eixo x sendo o número da empresa e a etiqueta do eixo y sendo o gasto total em dinheiro. Em seguida, vamos mostrar o gráfico utilizando a função `plt. show()`. # Modelo de Regressão Linear: Previsões e Análise ## Introdução Neste documento, apresentaremos a nossa implementação do modelo de regressão linear. Em seguida, utilizaremos este modelo e verificaremos suas predições, e, se tivermos memória, teremos os dados de teste guardados, então construiremos uma variável de predição e inseriremos o x_test para ver o resultado [deslize para cima um pouco] para prever os resultados do conjunto de teste. ```markdown y_predict = regressor. predict(x_test) ``` Aqui temos `y_predict = regressor. predict(x_test)`, em seguida, isso nos dá `y_predict`. Como estou no ambiente Jupyter notebook, posso preferirmente colocar a variável acima e quando clicar no botão de execução ele imprime o array. Eu poderia facilmente ter feito `print(y_predict)`, entretanto, se você estiver em uma IDE diferente, você pode fazer isso da seguinte maneira: `print(y_predict)` e você verá que para as 200 variáveis de teste que foram retidas, será fornecida 200 respostas. Isso é o que ele diz sobre as 200 predições de profit, porém, vamos não parar aqui; vamos continuar parar e verificar ainda detalhes adicionais. ## Coeficientes e Interceptos Vamos calcular brevemente os coeficientes e interceptos deste modelo, o que nos dá uma rápida visão sobre o que está acontecendo atrás da linha. Vamos fazer uma pequena detour para quando calculamos os coeficientes e interceptos, então você pode ver o que eles parecem. O que é muito bom sobre o regressor que criamos é que já vem com coeficientes para nós. Podemos simplesmente imprimir `regressor. coef_` para ver os nossos coeficientes e se poderemos imprimir `regressor. intercept_` e ver como foi calculado o intercepto. A seguir, marcada a execução e veja os coeficientes e o intercepto. $$ y = m_1 * x_1 + m_2 * x_2 + . . . + m_n * x_n + c $$ Este todo vem da regressão múltipla e para o comando, estamos indentando para onde isso está entrando e onde ele está saindo. Você pode fazer isso com nova memória vamos entender o que acontece aqui. Por favor, note que essa foi uma breve detour e agora estamos chegando perto do final de nosso script, como você poderá se lembrar, eu iniciei dizendo que se quisermos dividir esse conhecimento precisamos de um modelo válido e entendemos bem esse modelo e teremos uma ideia de quão bemfunciona. ## Calculando o valor da R-squared Para isso, vamos calcular o valor do R-squared, isso nos dá uma noção de como bem a nossa predição está funcionando e vamos ver como isso é demonstrado no código: ```markdown from sklearn. metrics import r2_score r2 = r2_score(y_test, y_predict) print("R2 score: ", r2) ``` Aqui temos: `r2 = r2_score(y_test, y_predict)`, isso calcula o erro, por fim: `print("R2 score: ", r2)`, e nós veremos que recebemos 0. 9352. Isso não é um porcentagem exata, então não é dizendo que 93 por cento está correto, no entanto, um R-squared acima de 0. 91 ou 9-1 mostra que este é um modelo válido, que é um sucesso. Yay! Nós já treinamos com sucesso nossa modelo com determinados predicadores e estimamos os lucros das empresas usando a regressão linear. Vejamos agora um exemplo e verificamos como podemos aplicar a regressão logística para prever o número que está presente na imagem. Atualmente, estamos em um demonstrativo ao vivo e irei levá-lo ao ambiente Jupyter notebook e mostrar o código, no entanto, antes disso, eu vou me levar por alguns slides para explicar o que estamos fazendo. A seguir: ## Treinamento de modelos de regressão logística Se você tiver um conjunto 8x8 de imagens e a imagem tem um número de 0 a 8 e você precisar treinar seu modelo para prever qual o número é, então a primeira coisa evidente é que se você treina o modelo. Neste caso, estamos usando a regressão logística, então partilhamos um conjunto de treinamento para treinar o modelo e verificamos a precisão do modelo com o conjunto de teste. Isso é como se faz em qualquer processo de aprendizado de máquina: você treina seu modelo e, em seguida, testa-o com a curva de confiança do seu modelo, e então coloca-lo em serviço. ## Codes e Interceptes dos Coeficientes As coisas começam, como sempre, com a importação das bibliotecas e então nós vamos tomar um pequeno conjunto de imagens e ver o número total de imagens que podemos visualizar utilizando o Matplotlib. ```markdown from sklearn. metrics import r2_score import numpy as np import matplotlib. pyplot as plt import seaborn as sns from sklearn. linear_model import LinearRegression X = . . . y = . . . . . . ``` ## Exemplo Vamos aplicar a regressão logística para classificar os dígitos, desde que estão entre 0 a 9. Vejamos se ele é capaz de prever esses números corretamente ou não. ```markdown from sklearn. model_selection import train_test_split from sklearn import datasets digits = datasets. load_digits() X = digits. data y = digits. target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0. 23) ``` Existe um pequeno conceito: `train_test_split` é uma função pronta para uso que automaticamente divide os dados em treino e validação. ## Código Vamos agora ao nosso código, o que fez a separação em treinamento e teste para nossas imagens. ```markdown from sklearn. linear_model import LogisticRegression from sklearn. metrics import confusion_matrix lr = LogisticRegression() lr. fit(X_train, y_train) y_pred = lr. predict(X_test) print("Matriz de confusão: \n", confusion_matrix(y_test, y_pred)) ``` ## Interpretação Agora que o modelo está treinado, vamos olhar para a matriz de confusão para identificar a acurácia do modelo de classificação. $$ \text{A melhor classificação acontecerá quando a matriz tiver o maior número na diagonal principal, como visto na caixa vermelha. } $$ ## Análise Nossa regressão logística induzida livre recebe 96% de acurácia, o que nos dá um excelente resultado. Espero que o artigo esteja claro na explicação da aplicação da regressão logística para a predição do valor numérico em uma imagem. # Regressão Logística para Classificação de Imagem Este documento descreve os passos para a utilização da Regressão Logística para classificar imagens usando uma matriz de confusão para a classificação. ## Visão Geral A Regressão Logística é um algoritmo de aprendizado de máquina utilizado para problemas de classificação binária. Neste caso, utilizaremos-a para classificar imagens em duas categorias: zero, um, ou dois. ### Preparação dos Dados Disponemos de dois conjuntos de dados para esta tarefa: `x_treino` e `y_treino` para os dados de treino, e `x_teste` para os dados de teste. A forma de `x_treino` é `(1383, 64)`, e `y_treino` possui 1383 observações porque inclui informações de rótulo para cada dígito. `x_teste` possui uma forma de `(414, 64)`, indicando que há 414 observações no conjunto de dados de teste. ### Treino do Modelo Primeiro, importamos a biblioteca de logística regressiva da scikit-learn e criamos uma instância de Regressão Logística: ```python from sklearn. linear_model import LogisticRegression regressao_logistica = LogisticRegression() ``` Em seguida, treinamos o modelo usando o conjunto de dados de treino: ```python regressao_logistica. fit(x_treino, y_treino) ``` ### Avaliação do Modelo Para testar aprecisão do modelo, utilizamos o método `score`: ```python precisao = regressao_logistica. score(x_teste, y_teste) print("Precisão: ", precisao) ``` ### Matriz de Confusão Uma matriz de confusão é uma tabela que ajuda a visualizar o desempenho de um modelo de classificação. Ela mostra o número de previsões corretas e incorretas para cada classe. Para criar uma matriz de confusão, primeiro importamos as bibliotecas necessárias e executamos a função `confusion_matrix`: ```python from sklearn. metrics import confusion_matrix matriz_de_confusão = confusion_matrix(y_teste, regressao_logistica. predict(x_teste)) ``` A matriz de confusão terá a seguinte estrutura: ``` [[TP, FP], [FN, TN]] ``` Nesta matriz, `TP` representa as previsões corretas positivas (positivos corretamente preditos), `FP` representa as previsões falsas positivas (positivos erroneamente preditos), `FN` representa as previsões falsas negativas (negativos erroneamente preditos), e `TN` representa as previsões corretas negativas (negativos corretamente preditos). ### Visualização de Heatmap Para visualizar a matriz de confusão como um heatmap, podemos utilizar a biblioteca `seaborn`: ```python import seaborn as sns import matplotlib. pyplot as plt sns. heatmap(matriz_de_confusão, annot=True, fmt='d') plt. show() ``` Isto criará um heatmap da matriz de confusão, onde os elementos da diagonal representam previsões corretas, e os elementos off-diagonal representam erros. ## Conclusão A regressão logística é uma ferramenta útil para tarefas de classificação de imagens. Por usar uma matriz de confusão e visualização de heatmap, podemos melhor compreender o desempenho do nosso modelo e identificar áreas para melhoria. Neste exemplo, a regressão logística alcançou uma precisão de 94%. # Documentação Técnica: A Precisão, a Recall e o F1 Score em Classificação Binária O métrico **acurácia** é usado para encontrar a porção dos valores classificados corretamente. Ele nos informa quantas vezes nossa classificadora está certa. É a soma de todos os valores verdadeiros dividido pelo total de valores, o que faz sentido. Entretanto, ele depende do que você está procurando. Você está procurando evitar que qualquer e-mail de spam seja marcado como válido? Você está procurando dirigir pelo lado da estrada e não atingir ninguém? Em outros termos, você está fazendo uma classificação binária onde seu objetivo é classificar um valor como positivo ou negativo e precisará considerar outras métricas. **A precisão** é usado para calcular a capacidade do modelo para classificar valores positivos corretamente. Ele responde à pergunta: Quando o modelo prevê um valor positivo, quantas vezes ele é certo? É o número verdadeiro positivo dividido pelo total de valores previstos positivos. Novamente, isso depende de o que você está procurando. **A recall** é usado para calcular a capacidade do modelo para prever valores positivos de forma eficiente. Ele responde à pergunta: Quando o modelo tem um valor positivo, quantas vezes ele realmente prevê esse valor como positivo? É o número verdadeiro positivo dividido pelo total de valores reais positivos. **A pontuação F1** é a média harmônica do recall e a precisão. É útil quando você precisa levar em conta tanto a precisão quanto a recall. Consideremos dois matrizes de confusão derivadas de dois diferentes classificadores para decidir qual deles funciona melhor. Pode-se calcular: - A **acurácia**: `(TP + TN) / (TP + TN + FP + FN)` - A **precisão**: `TP / (TP + FP)` - A **recall**: `TP / (TP + FN)` - A **pontuação F1**: `2 * (precisão * recall) / (precisão + recall)` ``` Matriz de confusão 1: | true positive (TP) | false positive (FP) | |-------------------|-------------------| | 25 | 4 | Matriz de confusão 2: | true positive (TP) | false positive (FP) | |-------------------|-------------------| | 15 | 10 | ``` Calculemos para o primeiro classificador: - **acurácia**: `(25 + 24) / (25 + 4 + 24 + 1) = 0, 8125` - **precisão**: `25 / (25 + 4) = 0, 8571` - **recall**: `25 / (25 + 1) = 0, 9643` - **pontuação F1**: `2 * (0, 8571 * 0, 9643) / (0, 8571 + 0, 9643) = 0, 8961` Calculemos para o segundo classificador: - **acurácia**: `(15 + 20) / (15 + 10 + 20 + 5) = 0, 75` - **precisão**: `15 / (15 + 10) = 0, 6000` - **recall**: `15 / (15 + 5) = 0, 7500` - **pontuação F1**: `2 * (0, 6 * 0, 75) / (0, 6 + 0, 75) = 0, 6438` Se você tiver um projeto em que o objetivo é realizar uma classificação de positivo ou negativo, você deverá considerar ambas as métricas de precisão e recall para determinar o modelo de classificação mais adequado. Sendo assim, você deverá avaliar os resultados para determinar qual métrica é mais importante para seu projeto, o que fará com que um modelo seja superior a outro. ``` Nota: Neste exemplo, a matriz de confusão foi derivada de um classificador hipotético. ``` Fonte: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html (Nota: Em português de Portugal, a URL seria alterada para [`<https://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html>`_]). # Previsão de Ataques Cardíacos usando Árvore de Decisão Este documento cobre o processo de previsão de ataques cardíacos usando Árvore de Decisão em Python. ## Introdução Neste artigo, utilizaremos o algoritmo de Decision Tree Classifier para prever se um paciente está provável a sofrer um ataque cardíaco ou não. O modelo será treinado usando um conjunto de dados contendo diferentes atributos como idade, sexo, tipo de dor no peito durante descanso, pressão arterial sanguínea ao descanso, colestêrol no soro, açúcar no soro após jejum, resultados do ECG ao descanso, taxa cardíaca máxima, doença anginosa induzida pelo esforço, depressão do segmento ST e o número de maiores vasos (por cores) com quase 50% de obstrução. ## Preparação Primeiro, importemos as bibliotecas necessárias: ```python import numpy as np import pandas as pd from sklearn. model_selection import train_test_split from sklearn. tree import DecisionTreeClassifier from sklearn. metrics import accuracy_score ``` Em seguida, carregue o dados: ```python # Carregue o conjunto de dados df = pd. read_csv('heart. csv') ``` ## Treino e Teste do Modelo de Árvore de Decisão Preprocessamento dos dados: ```python # Crie conjuntos de treino e teste X = df. drop('target', axis=1) y = df['target'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` Inicialize um Decision Tree Classifier: ```python clf = DecisionTreeClassifier() ``` Aproximaremos o modelo: ```python clf. fit(X_treino, y_treino) ``` Realização de previsões: ```python previsoes = clf. predict(X_teste) ``` Calcule a acurácia: ```python acuracia = accuracy_score(y_teste, previsoes) print("Acurácia: ", acuracia) ``` ## Sobre Árvores de Decisão As Árvores de Decisão funcionam classificando diferentes tipos de ataques cardíacos com base em vários atributos de dados de saúde do paciente. Aqui está uma descrição dos termos principais: 1. **Entropia**: Medida de randomness ou inpreditabilidade em de dados. 2. **Ganho de Informação**: Medida da redução de entropia após a separação dos dados. 3. **Nó Foliado**: Carrega a classificação ou a decisão; é o final inesperado para o fundo. 4. **Nó de Decisão**: Tem dois ou mais ramos, nesse ponto dividimos os grupos em diferentes partes. 5. **Nó Raiz**: O nó de decisão mais superior é conhecido como o nó raiz. ## O Processo de Árvores de Decisão 1. Comence com o nó raiz de todos os atributos disponíveis (idade, sexo, tipo de dor no peito durante o descanso, pressão arterial sanguínea ao descanso, colestêrol no soro, açúcar no soro após jejum, resultados do ECG enquanto descansa, taxa cardíaca máxima, doença anginosa induzida pelo esforço, depressão do segmento ST e o número de maiores vasos, por cores, com mais de 50% de obstrução). 2. Calcule a entropia de cada atributo. 3. Escolha o atributo com o maior ganho de informação para partir os dados primeiramente. 4. Repita os passos 1-3 para cada ramo criado até atingir um critério de parada (por exemplo, a profundidade máxima ou quando todos os exemplos pertencem à mesma classe). 5. Nos nós foliados, classifique com base na maioria da classe. ## Conclusão Neste tutorial, você aprendeu a usar Árvores de Decisão para prever ataques cardíacos com base em vários atributos de dados de saúde do paciente. A compreensão de Árvores de Decisão permitirá que você desenvolva modelos que fornecem previsões precisas, ao mesmo tempo que são fáceis de entender e visualizar. Felizes com as previsões! 😊 # Arquivo de Variáveis Separadas por Vírgula em um Spreadsheet Este é um arquivo de texto básico que representa um arquivo separado por vírgula de variáveis (CSV), comumente utilizado em planilhas de spreadsheet. Aqui está o que ele se parece: ``` # Cabeçalho Resultado, Sim, Não, Pontuação de Crédito, Número de Casa # Dados pagamento inicial, último pagamento, pontuação de crédito, número de casa Sim, Sim, 750, 1234 Não, Não, 600, 5678 . . . (Milhares de linhas) . . . ``` É possível abrir este arquivo utilizando uma aplicação de spreadsheet como o Open Office Calc (semelhante ao Microsoft Excel) para um formato mais legível. ## Explorando os Dados usando Python Vamos conectar com estes dados por meio do Python para obter informações: ```python # Importe as bibliotecas necessárias import pandas as pd from sklearn. model_selection import train_test_split # Cargue o arquivo CSV em um DataFrame data = pd. read_csv('seu_arquivo_de_dados. csv') # Imprima a extensão e a forma do dado print(len(data)) print(data. shape) # Imprima as primeiras cinco linhas do dado print(data. head()) ``` Agora, vamos utilizar a biblioteca do `pandas` para explorar os dados: ```python # Separe os dados em características (X) e alvo (y) X = data. values[: , 1: ] y = data. values[: , 0] # Separe os dados para treinamento e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=100) # Construa o Decision Tree Classifier do DecisionTreeClassifier(random_state=100, max_depth=3, min_samples_split=5) clf = DecisionTreeClassifier() # Ajuste os dados ao classificador clf. fit(X_treino, y_treino) # Fazer uma predição usando os dados de teste y_previsoes = clf. predict(X_teste) # Calcule a precisão do modelo do accuracy_score(y_teste, y_previsoes) * 100 precisão = accuracy * 100 print(f'Precisão: {precisão: . 2f}%') ``` Este script treinará e construirá um classificador de árvore de decidir, testará sua precisão e fornecerá a porcentagem de previsões corretas. # Classificação de Frutas utilizando Árvore Aleatória ## Introdução Nesta análise, vamos classificar frutas utilizando uma Árvore Aleatória (Random Forest) algoritmo. Este método funciona excepcionalmente bem ao lidar com dados em falta, o que ocorrerá com uma fruta cuja cor está escura. ## Declaração do Problema Nosso objetivo é prever a espécie de uma fruta utilizando aprendizado de máquina em Python. Vamos ver como isso pode ser feito. ## Implementação em Python ### Carregando Módulos Para iniciar a implementação em Python, precisamos carregar os módulos necessários, que mais importante, serão organizados e aproveitados na exploração dos dados: ```python from sklearn. datasets import load_iris from sklearn. ensemble import RandomForestClassifier import pandas as pd import numpy as np np. random. seed(0) ``` O módulo `load_iris` nos fornece os dados que vamos trabalhar, sendo muito popular por sua histórica significância na aprendizado de máquina. O dado é uma coleção de medidas de flores de espécies de iris setosa, versicolor e virginica. Para uso de Árvore Aleatória, precisamos importar `RandomForestClassifier` do módulo `sklearn. ensemble`. Últimamente, importamos `pandas` e `numpy` porque são módulos fundamentais em python para a manipulação de dados e cálculos numéricos, respectivamente. ### Explorando os Dados Agora que carregamos os módulos, vamos explorar os dados: ```python # Carregando os dados de iris iris = load_iris() # Criando um dataframe pandas df = pd. DataFrame(iris. data, columns=iris. feature_names) # Adicionando a espécie como uma coluna nova df['espécie'] = iris. target # Divisão dos dados em conjuntos de treino e teste treino = df[np. random. uniform(0, 1, len(df)) < 0. 75] teste = df[np. random. uniform(0, 1, len(df)) >= 0. 75] # Divisão das espécies em labels para treino e teste labels_treino = treino['espécie'] labels_teste = teste['espécie'] # Tirando a coluna espécie, uma vez que ela não será útil no RandomForestClassifier treino. drop('espécie', axis=1, inplace=True) teste. drop('espécie', axis=1, inplace=True) ``` No código acima, primeiro carregamos os dados de iris, e criamos um dataframe chamado `df`. Depois, adicionamos a coluna 'espécie' e geramos conjuntos de treino e teste. Por fim, separamos as labels para treino e teste, e tiramos a coluna de espécie porque ela não será necessária no RandomForestClassifier. ### Construção e Treinamento do Modelo Agora que temos os dados preparados, vamos construir e treinar o Classificador de Árvore Aleatória: ```python # Inicializando o Classificador de Árvore Aleatória classificador_random_forest = RandomForestClassifier(n_estimators=100, max_depth=None, random_state=0) # Treinamento do Classificador de Árvore Aleatória no nosso conjunto de treino classificador_random_forest. fit(treino, labels_treino) # Predizado de classes no conjunto de teste previsoes = classificador_random_forest. predict(teste) # Calculando a precisão precisao = np. mean(previsoes == labels_teste) ``` No código acima, inicializamos o Classificador de Árvore Aleatória e definimos seus hiperparâmetros. Depois, treinamos o classificador no nosso conjunto de treino, geramos previsões no conjunto de teste e calculamos a precisão geral. ### Conclusão Em suma, conseguimos classificar as espécies de flores de iris utilizando um algoritmo de Árvore Aleatória. É importante continuar a experimentar com diferentes hiperparâmetros para conseguir o desempenho melhor. # Preparação de Dados para o Modelo do Conjunto de Dados Iris ## Introdução Nesta guia, vamos integrar o código dado ao nosso projeto. Vamos prosseguir colando-o em localização adequada. Antes de executar este código, vamos ter um rápido visado sobre o que está acontecendo aqui: 1. Criamos uma função `def dot head` que imprime as primeiras cinco linhas do conjunto de dados. 2. Adicionamos uma nova coluna etiquetada como 'treino' no final, e criaremos dois dataframes: `treino` e `teste`, representando 75% e 25% dos dados, respectivamente. 3. Para isso, utilizaremos pandas para filtrar os dados com base na coluna 'treino'. 4. Vamos tornar os dados legíveis para humanos convertendo as características em forma legível. 5. Por fim, convertemos a coluna 'espécie' em algo que o computador compreenda - zeros e uns. 6. Após prepararmos os dados, começaremos realmente a prever. ## Preparação dos Dados ### Engenharia de Features Nós começamos por preparar os nossos dados e fazendo as características legíveis para humanos: ```python def Features_human_readable(df): features = df. columns[: 4] # as primeiras quatro colunas são as características df[features] = df[features]. astype('object') # converter colunas em tipo de dado object return df ``` Agora, definamos o nosso dataframe e aplicamos a função `Features_human_readable` para torná-la legível para humanos: ```python df = . . . # Carregue o seu dataframe aqui df = Features_human_readable(df) ``` ### Encoding da Espécie com Etiquetas Agora, convertemos a coluna 'espécie' em um formato que o computador possa compreender: ```python from sklearn. preprocessing import LabelEncoder le = LabelEncoder() y = le. fit_transform(df['espécie']) ``` ### Criação dos Conjuntos de Treino e Teste Com os dados prontos para uso, podemos agora criar os conjuntos de treino e teste: ```python treino = df[df['treino'] == True] teste = df[df['treino'] == False] ``` ### Visualização dos Conjuntos de Treino e Teste Verifique quantities de linhas em cada conjunto: ```python print(f'Quantidade de linhas no conjunto de treino: {len(treino)}') print(f'Quantidade de linhas no conjunto de teste: {len(teste)}') ``` Isto deve imprimir aproximadamente 75% dos dados no conjunto de treino e 25% para teste. ## Arvores Aleatórias Agora que temos os nossos dados prontos, vamos construir o classificador de arvores aleatórias e treiná-lo utilizando os nossos dados preparados: ```python from sklearn. ensemble import RandomForestClassifier clf = RandomForestClassifier() clf. fit(treino. drop('espécie', axis=1), y[treino. index]) ``` Agora, possuimos o nosso modelo treinado e estamos prontos para utilizá-lo para previsões. Pode testar o seu modelo usando a função `clf. predict` no seu conjunto de teste. ### Probabilidade de Previsão Para obter a probabilidade de previsão, utilize a função `predict_proba`: ```python probabilidade_preditcao = clf. predict_proba(teste. drop('espécie', axis=1)) ``` Estas probabilidades podem ajudá-lo a tomar decisões mais informadas com base na probabilidade de cada classe. Pode utilizar limiares para realizar previsões binárias. # Aprendizado de Máquina com o Conjunto de Dados Iris: K-Vizinhos Mais Perto (KNN) Neste tutorial, você aprenderá sobre o algoritmo de K-Vizinhos Mais Perto (KNN), sua utilização, princípios e uso-case previendo o diagnóstico de diabetes usando o popular conjunto de dados de diabetes. ## Pré-requisitos - Uma compreensão básica de conceitos de aprendizado de máquina - Familiaridade com Python e suas bibliotecas de análise de dados, como `pandas` e `numpy` - Jupyter Notebook ou qualquer IDE Python ## Visão geral 1. Introdução ao KNN 2. Compreender o KNN: implementação, parâmetros e escolha de `k` 3. Caso de Uso: Prever Diabetes usando KNN ## 1. Introdução ao KNN *K-Vizinhos Mais Perto (KNN)*, é um dos algoritmos mais simples de aprendizado supervisionado principalmente usado para **classificação**. Ele classifica um ponto de dados com base no que seus vizinhos são classificados. O KNN armazena todos os casos disponíveis e classifica novos casos com base numa medida de semelhança. **Quando precisamos do KNN? ** - Prever se um ponto de dados pertence a uma classe específica - por exemplo, cachorro vs gato. - Os dados estão marcados - temos um grupo de imagens com gatos e cachorros. - O conjunto de dados não contém ruídos. ## 2. Compreender o KNN: Implementação, Parâmetros e escolha de `k` **Implementação** 1. Armazenar todos os casos disponíveis. 2. Para classificar um novo caso, encontre os `k` vizinhos mais próximos. 3. Classeifique o novo caso pelo voto maioritário baseado na classe dos vizinhos privilegiados. **Parâmetros: ** - `k`: o número de vizinhos mais próximos para incluí-los no processo de voto majoritário. - Escolher o `k` certa é essencial para uma melhor precisão (discutido mais tarde neste tutorial). **Escolha de `k`** - Um método comum de escolher `k` é usando raiz quadrada do número de valores que você possui. Se o valor quadrático for par, faça-o parakim amparar o processo de seleção. - Contudo, é importante experimentar com vários valores `k` diferentes para achar o melhor para o seu conjunto de dados. ## 3. Caso de Uso: Prever Diabetes usando o KNN Neste caso, prevemos se uma pessoa terá diabetes ou não usando o popular conjunto de dados de diabetes mencionado no começo. ### Passo 1: Importar Bibliotecas e Carregar o Conjunto de Dados de Diabetes ```python import pandas as pd # Carregar o conjunto de dados de diabetes diabetes_data = pd. read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/diabetes/pima-indians-diabetes.data.csv", header=None) ``` ### Passo 2: Processamento de Dados - Converter as colunas numéricas em tipos de dados apropriados e características. - Dividir o conjunto de dados em características (X) e alvo (y). ```python # Processamento de Dados diabetes_data. rename(columns={i: f'gravida_{i}' for i in range(8)}, inplace=True) diabetes_data. iloc[: , : -1] = diabetes_data. iloc[: , : -1]. astype('float') X = diabetes_data. iloc[: , : -1] y = diabetes_data. iloc[: , -1] ``` ### Passo 3: Implementar o Classeificador KNN - Use a `KNeighborsClassifier` do `sklearn. neighbors` no scikit-learn ```python from sklearn. neighbors import KNeighborsClassifier X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) knn = KNeighborsClassifier(n_neighbors=5) knn. fit(X_treino, y_treino) y_previsto = knn. predict(X_teste) ``` ### Passo 4: Avaliar o Classeificador KNN - Computar métricas de performance como acerto, precisão, revocação e F1-pontuação ```python from sklearn. metrics import accuracy_score, precision_score, recall_score, f1_score print("Acerto: ", accuracy_score(y_teste, y_pred)) print("Precisão: ", precision_score(y_teste, y_pred)) print("Revocação: ", recall_score(y_teste, y_pred)) print("F1-Pontuação: ", f1_score(y_teste, y_pred)) ``` ## Conclusão Neste tutorial, aprendemos os fundamentos do KNN, compreendemos sua implementação e escolha de `k`, e applying its use to predict diabetes in the popular diabetes dataset. Agora que você entendeu como o KNN funciona, você pode experimentar usando-o em outros data-sets e aplicação para melhorar sua compreensão deste fundamental algorítmo de aprendizado de máquina. No próximo tutorial, vamos descer mais para conceitos avançados de aprendizado de máquina, então fique atento! ✨ # Algoritmo KNN (K-Vizinhos mais próximos) para Classificação (Português de Portugal) Conjunto de dados diagnóstico: prever diabetes =============================================== ## Visão Geral O objetivo deste caso de uso é prever se uma pessoa será diagnosticada com diabetes ou não com base num conjunto de dados dado. ## Pré-requisitos - Python e as pacotes necessários - Conjunto de dados em formato CSV ## Configuração do Ambiente Para este projeto, utilizaremos o Anaconda com o Jupyter Notebook como IDE. Pode utilizar qualquer editor de texto de Python preferido, mas o Anaconda fornece um ambiente amigável para esta demonstração. ### Instalação de Pacotes Comece por iniciar o Anaconda Navigator e crie um ambiente único para gerir os pacotes relacionados ao projecto. Pode instalar pacotes utilizando o comando `pip install`. ### Preparação do Projecto 1. Abra o seu Jupyter Notebook e crie um novo notebook. 2. Altere o tipo da primeira célula para Markdown. 3. Insira um novo pedaço de código abaixo dela. 4. Modifique o título do notebook para `KNN para Previsão de Diabetes`. ## Importação de Bibliotecas ```python import pandas as pd import numpy as np # Pacotes de sklearn 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 ``` ## Preparação e Carregamento dos Dados ```python # Carregue o banco de dados com pandas data = pd. read_csv('diabetes. csv') # Verifique a comprimenta do conjunto de dados print(len(data)) # Inspecione as primeiras linhas do conjunto de dados print(data. head()) ``` ## Processamento dos Dados 1. Crie uma lista de colunas onde valores nulos são substituidos por `np. nan`. Isso indica valores faltantes no conjunto de dados. ```python # Lista de colunas com valores faltantes columns = ['pregnancies', 'glucose', 'skin_thickness', 'insulin', 'bmi', 'diabetes_pedigree_function'] # Substitua `0` por `np. nan` data[columns] = data[columns]. replace(0, np. nan) # Trata valores faltantes eliminando a média (média) de cada coluna (excluindo `nans`). data[columns] = data[columns]. fillna(data[columns]. mean()) ``` ## Divisão do Conjunto de Dados ```python # Divida o conjunto de dados em conjunto de dados de treino e de teste X_train, X_test, y_train, y_test = train_test_split(data. drop('outcome', axis=1), data['outcome'], test_size=0. 3, random_state=42) ``` ## Escalonamento Estatístico (Normalização) O escalonamento estatístico garante que as features tenham uma média de 0 e um desvio-padrão de 1, melhorando o desempenho de KNN. ```python # Escalonador Estatístico scaler = StandardScaler() # Ajuste e transforme os dados de treino X_train = scaler. fit_transform(X_train) X_test = scaler. transform(X_test) ``` ## Treino do modelo KNN ```python # Criar o classificador KNN knn = KNeighborsClassifier(n_neighbors=5) # Treine o modelo com os dados de treino knn. fit(X_train, y_train) ``` ## Predição de resultados com o modelo treinado ```python # Prediz os resultados para os dados de teste y_pred = knn. predict(X_test) ``` ## Avaliação da performance do modelo ```python # Calcula a matriz de confusão, F1-Score e Taxa de Erro conf_matrix = confusion_matrix(y_test, y_pred) f1 = f1_score(y_test, y_pred, average='macro') acurácia = accuracy_score(y_test, y_pred) print('Matriz de Confusão: ') print(conf_matrix) print('F1-Score: ', f1) print('Acurácia: ', acurácia) ``` ## Conclusão O algoritmo KNN foi aplicado com sucesso para predizer se uma pessoa terá diabetes utilizando o conjunto de dados dado. Ao entender os dados, a processar e aplicar KNN, obtivemos um modelo de classificação que preve se uma pessoa é provável de ser diagnosticada com diabetes com base nos seus dados. Pode melhorar o modelo ajustando o número de vizinhos e fine-tuning os passos de processamento dos dados. # Análise do Nível de Açúcar em Um Jupyter Notebook (Português de Portugal) Neste documento, temos um passo a passo para analisar níveis de açúcar usando Python e aprendizagem de máquina num Jupyter Notebook. ## Preparando o Conjunto de Dados Antes de prosseguirmos com qualquer processamento, precisamos pré-processar e preparar nosso conjunto de dados. ### Seleção de Dados Primeiro, vamos selecionar as colunas relevantes do nosso conjunto de dados. ``` # Utilizando a biblioteca pandas import pandas as pd # Selecionando colunas df = pd. read_csv('açúcar. csv') # Suponha que o ficheiro CSV seja nomeado açúcar. csv x = df[['localização dos olhos', 'nível de açúcar']] y = df['resultado'] ``` ### Divisão do Conjunto de Dados Em seguida, vamos dividir o conjunto de dados em conjuntos de treino e teste. ``` # Importando train_test_split de sklearn from sklearn. model_selection import train_test_split # Divisão do conjunto de dados X_treino, X_teste, y_treino, y_teste = train_test_split(x, y, testa_tamanho=0. 2, estado_inicial=0) ``` ### Escalonamento dos Dados Depois de dividir o conjunto de dados, iremos escalonar os dados para valores entre -1 e 1. ``` # Importando StandardScaler de sklearn from sklearn. preprocessing import StandardScaler # Escalonando os dados de treino sc = StandardScaler() X_treino_escalonado = sc. fit_transform(X_treino) # Transformando os dados de teste mas não voltando a treinar o escalonador X_teste_escalonado = sc. transform(X_teste) ``` ## Treinamento do Modelo KNN Agora que os dados estão pré-processados, podemos treinar nosso modelo KNN. ``` # Importando KNeighborsClassifier de sklearn from sklearn. neighbors import KNeighborsClassifier # Definindo o modelo knn = KNeighborsClassifier(n_vizinhos=11, p=2, métrica='esfericodist') # Treinamento do modelo knn. fit(X_treino_escalonado, y_treino) # Predizendo a saída y_predito = knn. predict(X_teste_escalonado) ``` ## Avaliação do Modelo Em seguida, vamos avaliar o desempenho do modelo usando uma matriz de confusão e uma pontuação de acurácia. ``` # Importando confusion_matrix de sklearn from sklearn. metrics import confusion_matrix # Calculando a matriz de confusão cm = confusion_matrix(y_teste, y_predito) # Interpretando a matriz de confusão # linhas = previsto # colunas = real ``` ### Matriz de Confusão | | Previsto não Diabético | Previsto Diabético | |---------------|-----------------------|--------------------| | Real não Diabético | TP (Positivo Verdadeiro) | FP (Falso Positivo) | | Real Diabético | FN (Falso Negativo) | TN (Positivo Verdadeiro) | ### Pontuação de Acurácia ``` # Importando accuracy_score de sklearn from sklearn. metrics import accuracy_score # Calculando a pontuação de acurácia acurácia = accuracy_score(y_teste, y_predito) # Impressão da pontuação de acurácia print('Pontuação de Acurácia: ', acurácia) ``` ## Notas de pearcekvv Esta guia está pretendida para ser um ponto de partida simples para compreender como analisar níveis de açúcar usando Python e aprendizagem de máquina num Jupyter Notebook. Existem muitas maneiras de otimizar, expandir e modificar este código para encaixar com requisitos específicos. Titulo Principal: Introdução à criação de um SVM em Python utilizando Jupyter Notebook ========================================================================= Este exemplo não utilizará medidas e dados reais; apenas imagens. Isso é comum em vários algoritmos de aprendizagem de máquina e sua configuração, mas vamos começar a esgotar os mangos com grande entusiasmo. Nós entramos no cenário prático de codificação e, logo em seguida, moverei isso para um editor de python em breve, mas vamos falar um pouco sobre o que iremos abordar primeiro. ###Configuração Na nossa código, abordaremos a configuração da criação do SVM, ou seja, como criar; você encontrará apenas duas linhas de código que criam um SVM, o resto é feito tão rápido que está tudo aqui na página inicial, e irá mostrar-lhe o que isso se parecerá com nossos dados, porque criaremos alguns dados aqui e demonstraremos uma correção dos dois lóbulos. Vamos tratar disto em seguida. Depois disso, avançaremos um pouco mais na nossa ação e iremos mostrar o que acontecerá atrás das telas, mas começaremos primeiro com a configuração do nosso Setup. Gosto de utilizar o Jupyter Notebook do Anaconda, porque é fácil de usar, mas você pode usar o editor de python de sua preferência. Se quiser, irá entrar lá em seguida e veremos o que ele se parece. ###Importações Começamos nosso import, e, em seguida, importamos quatro partes diferentes. Veja abaixo quais são seus nomes e posições: ```python import numpy as np import matplotlib. pyplot as plt from sklearn. datasets import make_blobs from sklearn import svm ``` Esta é uma importação padrão quando você estiver produzindo trabalhos. Os dois primeiros colocamos isso para utilizar numpy e matplotlib para visualização de dados. Matplotlib é um módulo padrão quando você está usando Sklearn. ###Criação de dados Antes de iniciarmos, você precisará instalar o jupyter notebook ou qualquer outro editor de python que desejar utilizar. Com as importações concluídas, criaremos algumas variáveis para começar na nossa criação de dados. ```python X, y = make_blobs(n_samples=40, centers=2, random_state=20) ``` Acima, criamos um array de dados em Python 3. x usando os conhecidos testes de utilização do Sklearn. Aqui, estamos passando dois parâmetros: **n_samples = 40** (quantidade de amostras que deseja-se criar) e **centers = 2** (quantidade de grupos de dados). --- Agora, vamos treinar o SVM em Python com as mesmas orientações que passamos acima. Com menos de 10 linhas de código, conseguiremos treinar o SVM e visualizar nossos dados. ```python # Importando o módulo SVM do Sklearn clf = svm. SVC(kernel='linear', C=1) # Treinamos o SVM apenas com 2 linhas de código clf. fit(X, y) # Para visualizar os dados, adicione as seguintes linhas na parte superior do seu código: import matplotlib. pyplot as plt X, y = make_blobs(n_samples=40, centers=2, random_state=20) # Após treinar o seu SVM, adicione o comando abaixo: plt. scatter(X[: , 0], X[: , 1], c=y) plt. show() ``` Esse código treina um SVM utilizando dois blobs de dados simulados com 40 amostras cada e classificadores únicos. Em seguida, ele utiliza o Sklearn para projetar os dados em um plot de 2D. A classe é representada pelas cores vermelho (blobs azuis) e laranja (blobs vermelhos). Espero que você tenha encontrado este exemplo útil na hora de utilizar o Sklearn para lidar com dados em n-dimensionalidade em Python! # Sobre Support Vector Machines (SVM) ## Introdução Este exemplo demonstra como criar um modelo de aprendizado de máquina Support Vector Machine (SVM) para classificar dados artificiais de crocodilo e aligátor. Nós abordaremos as seguintes tarefas: 1. **Fitando os dados** 2. **Compreendendo Regressão Linear, Bias e Variância** 3. **Conhecendo sobre-ajuste e subajuste** 4. **Regularização** ## Fitando os dados O processo de **fitting** dos dados é definido como plotar uma série de pontos de dados e desenhando a reta mais adaptada aos dados para entender a relação entre as variáveis. Aqui, encontraremos a relação entre o tamanho do corpo e a largura da boca de um crocodilo ou de um aligátor. ## Regressão Linéar, Bias e Variância A **regressão linéar** é utilizada para encontrar a reta mais adaptada aos dados e fornece a relação entre as variáveis. 1. **Bias** Quando um algoritmo é pouco flexível para aprender dos dados, o modelo sobre-simplifica a relação entre variáveis, gerando um erro de validação semelhante ao erro de treinamento. Neste caso, o algoritmo de aprendizado de máquina será demasiado generais para o schema de dados fornecido. 2. **Variância** Quando um algoritmo é altamente sensível a um conjunto específico de dados, ele se baseia muito nos dados de treinamento e não promove uma generalização geral. Estes modelos, normalmente, obtêm erro elevado tanto no treinamento como no teste. ## Sobre-ajuste e subajuste O **sober-ajuste** ocorre quando um modelo é muito complexo e tem erro muito alto no treinamento, enquanto o **subajuste** é resultado de um modelo demasiado simplificado com erro muito alto em validação e teste. ## Regularização A **regularização** ajuda a melhorar o desempenho de um modelo reduzindo as várias repetições e erros, substituindo regularização termos, por exemplo, que protege contra sobre-ajustes. De modo que ao minimizar a função de perda, funciona para proteger contra sobre-ajustes. ## Demonstração rápida Entendendo como usar a SVM em classes de aprendizado de máquina, uma demonstração rápida irá ajudar a ilustrar o esquema e fazer uma análise em profundidade. ```markdown Para melhorar o texto, há outras considerações importantes que devem ser levadas em conta, como a correção de erros de pontuação, gramática, e outras modificações menores. Este texto foi apenas organizado em Markdown e transformado em HTML para simplificar o processo. ### A leitura completa A Wikipedia oferece um [exemplo mais detalhado de Regressão Linear](https://pt.wikipedia.org/wiki/Regressão_linear) e do problema de [sober-ajuste e subajuste](https://pt.wikipedia.org/wiki/Underfit#:~:text=%27Underfit%27-,Ao-,ser%20ou%20subestimando%20os%20dados%20por%20um%20algoritmo%20de%20aprendizagem%20de%20máquinas%2C%20chama-se%20subajuste). ``` # Aprendizagem de Máquina: Sobreajuste e Subajuste ## Sobreajuste O cenário do sobreajuste ocorre quando um modelo de aprendizagem de máquina tenta aprender detalhes juntamente com ruídos presentes nos dados e se ajusta a cada ponto de dados no gráfico. Nesta seção, discutiremos o sobreajuste e suas causas. ### O Que É o Sobreajuste? Quando se fala em sobreajuste, trata-se de um cenário em que o modelo de aprendizagem de máquina tenta aprender detalhes e ruídos e o dado tenta se ajustar a cada ponto de dados no gráfico. Um exemplo disso é: ```bash Se você plotar as suas coordenadas, você vai simplesmente obter o que está ajustado a cada ponto do fluxo de dados. Não há média. Não há dois pontos que poderão ter o mesmo valor y porque se o vento soprar de determinada maneira, a eficiência de seu carro pode variar de acordo com a eficiência da sua carroca ao se mover. Então, haverá variação, e ele diz que não é possível haver variação. A velocidade do carro não pode ser a mesma e ter um eficiência ligeiramente diferente. Assim, como o modelo tem pouca flexibilidade, falha em prever pontos de dados novos e, consequentemente, o modelo recusa todos os pontos de dados novos durante a predição. Isso resulta em um erro muito alto. ``` ### Motivos para o Sobreajuste 1. O dado usado para treinar não foi limpo e contém ruídos, valores arbitrários ou inconsistências. Os valores arbitrários e inconsistências no dado devem serendereçidos, either adjustando as fontes de dados ou preprocessando o dado. 2. O tamanho do dado usado para treinar é insuficiente. Amount Benéfico Resulta em um ajuste de dados pouco satisfatório e pode causar sobreajuste. 3. O modelo é demasiado complexo. Quando colocamos muitas peças juntas e não podemos follow onde elas interagem, temos que voltar e quebrá-las, e descobrir quais se correlacionam e quais não. Um modelo simples que melhor se ajusta nos dados é aquilo que não sobra e não subajusta. ## Subajuste O subajuste é um cenário em que um modelo de aprendizagem de máquina não aprende a relação entre os pontos de dados nem pode prever ou classificar novos pontos de dados. ### O Que É o Subajuste? Um modelo que subajusta os dados pode ter uma contagem pobre tanto nos dados de treinamento quanto na predição em caso de que o modelo não aprenda os padrões e aceite todos os novos pontos de dados durante a predição. ```bash Um exemplo disso é: A eficiência do nosso carro e a nossa linha retratada é muito afastada tanto para os dados de treinamento quanto para os dados de predição. Como o modelo não aprende os padrões, aceita todos os novos pontos de dados durante a predição. Em vez de procurar um padrão geral, aceitamos tudo. ``` ## Regularização A regularização é uma técnica utilizada para calibrar modelos de regressão linear e impedir o sobreajuste ou o subajuste. O objetivo final é minimizar a função de custo ajustada através de técnicas de regularização, tornando mais fácil para nós determinar se um modelo de regressão linear está sobreajustado ou subajustado. Uma tal técnica de regularização para os modelos é a Regressão de Residuos e a Regressão de Lasso. ### Regressão de Residuos A Regressão de Residuos modifica modelos sobre ou subajustados modificando-os pela adição de um prejuízo equivalente à soma dos quadrados dos valores de magnitud dos coeficientes. A função de custo da Regressão de Residuos é: ```scss Custo = Lambda * ∑(w^2) ``` Aqui, Lambda é o prejuízo por erro, e w é a pendentes faceta do gráfico ou linha. ### Regressão de Lasso A Regressão de Lasso é semelhante à Regressão de Residuos a menos que nosotros não somos apenas indo para o valor absoluto, mas sim aos quadrados. Isto ajuda a encorajar os coeficientes dos variáveis a aproximar-se de zero. L'A fonction de custo de Lasso Regression é: ``` Custo = ∑(abs(w)) ``` Estes modelos podem ser implementados em Python usando a biblioteca de Scikit-learn. ``` Vamos usar o Módulo Ridge e o Módulo Lasso para se ajustar os modelos de regressão linear e comparar seus resultados em uma demonstração. ``` # Análise de Dados e Modelagem com Regressão Linear Múltiple e Redução de Dimensionalidade ## Introdução Este tutorial vai conduzir você aplicando um Modelo de Regressão Linear Múltiple e discutir a ideia de Redução de Dimensionalidade. ## Preparação Em primeiro lugar, vamos preparar os conjuntos de treino e teste. Depois disso, vamos impressão a forma do conjunto de treinamento. A finalidade é verificar as formas dos conjuntos de treino e de teste e garantir que elas coincidem para garantir que as conjuntos de dados não sejam inconsistentes. ```markdown # Importar as bibliotecas necessárias import numpy as np import pandas as pd from sklearn. linear_model import LinearRegression from sklearn. ridge import Ridge # Carregar dados data = pd. read_csv("dados. csv") # Dividir dados em conjunto de treinamento e teste x_treino, x_teste, y_treino, y_teste = train_test_split(data. drop("alvo", eixo=1), data["alvo"], test_size=0, 2, randstate=42) # Imprimir a forma do conjunto de treinamento print(x_treino. shape, y_treino. shape) # Saída: (127, 13) (127, ) ``` ## Regressão Linear Múltiple Agora, vamos aplicar o Modelo de Regressão Linear Múltiple e chamá-lo de `lreg`. Vamos ajustar o modelo de regressão linear para `x_treino` e `y_treino`, gerar a previsão no conjunto de teste, e calcular o Erro do Quadrado Médio (EPM). ```markdown # Aplicar Regressão Linear Múltiple lreg = LinearRegression() lreg. fit(x_treino, y_treino) y_preditos = lreg. predict(x_teste) # Calcular o Erro do Quadrado Médio (EPM) epm = np. mean(np. power(y_teste - y_preditos, 2)) print("Erro quadrado médio: ", epm) ``` ## Redução de Dimensionalidade Diminuir o número de variáveis de entrada em um conjunto de dados é importante para tempos de computação menor, interpretação melhor por seres humanos e visualização de dados fácil. Um exemplo de redução de dimensionalidade é a Análise Principal de Componentes (APC). A PCA ajuda a reduzir a dimensionalidade de um conjunto de dados ao mesmo tempo que mantém a interpretação e minimiza perda de informação, permitindo que seja fácil de colocar em 2D e 3D gráficos. ## Exemplo: Análise de Vendas de Peças Automotivas Aqui tem um exemplo de redução de dimensionalidade com um dataset de análise de ordens de peças de um revendedor automobilístico. O dataset contém o artigo, empresa, componente, código da ordem, preço, e quantidade. ```markdown # Exemplo: Análise de Ordem de Vendas em Revendedores Automotivos ordens = pd. read_csv("ordens. csv") # Reduza o número de atributos de cinco para três X = ordens[["artigo", "preço", "quantidade"]] y = ordens["alvo"] # Realizar PCA, reduzir o dado e ajustar modelos lineares e Ridge Regression modelos # (omitido para curtir) ``` Nos termos geral, esse tutorial é na fase descritiva, onde nós descrevemos e processamos os dados. Vamos discutir sobre como limpe- # Análise de PCA: Acompanhamento das Terminologias Importantes e Como Funciona ## Introdução Neste documento, exploraremos as terminologias importantes na Análise Principal de Componentes (PCA) e compreenderemos como funciona a PCA. ### Terminologias Importantes - **Vistas**: A perspectiva pela qual os pontos de dados são observados. Alguém poderá referir-se a diferentes vistas como diferentes perspectivas que eles estão tomando. - **Dimensões**: O número de colunas num conjunto de dados é chamado pelas dimensões desse conjunto de dados. Em um contexto empresarial, poderíamos estar falando de 25, 26, 27 diferentes características. - **Componentes Principais**: Novas variáveis que são construídas como combinações lineares ou misturas das variáveis iniciais. Os componentes principais são importantíssimos. Por exemplo, no contexto de uma flor, poderia ser o tamanho da cor poeta sobre o comprimento do pétalo em vez de colocar o comprimento e o tamanho em separado. Isso é um número único em vez de dois números separados. - **Projeções**: A distância perpendicular entre o componente principal e os pontos de dados. É a linha reta em ângulo direito onde aqueles pontos caem. - **Propriedades Importantes** 1. O número de componentes principais sempre é menor ou igual ao número de atributos. 2. Os componentes principais são ortogonais. 3. A prioridade dos componentes principais diminui ao aumentar os seus números. ### Como Funciona a PCA 1. **Padronização**: O objetivo principal desta etapa é padronizar o intervalo das atributos para que cada um deles esteja dentro de limites semelhantes. Este processo envolve a remoção da média dos valores de variáveis e a escalonamento dos dados em relação à desvio-tendência padrão. 2. **Matriz de Covariâncias Computação**: A matriz de covariâncias é utilizada para expressar a correlação entre qualquer dois ou mais atributos num conjunto de dados multidimensional. A matriz de covariância tem as entradas como a variação e a covariância dos valores de atributos. 3. **Vetores iGene e Valores iGene**: Os vetores iGene e os valores iGene são os valores matemáticos que são extratos da tabela de covariância. Eles são responsáveis pela geração de uma nova conjunto de variáveis a partir do conjunto de variáveis originais, que por sua vez lideram à construção dos componentes principais. 4. **Vetores de Características**: Os vetores de características são uma matriz que tem os vetores iGene dos componentes que decidimos manter como colunas. Aqui, decidimos se devemos manter ou descartar os componentes principais menos importantes. 5. **Exemplo de PCA**: Considere uma matriz `x` com linhas como observações e colunas como variáveis. Encontraremos um espaço espacial com dimensão igual ao número das variáveis. Cada linha da matriz `x` é colocada no espaço espacial de k-dimensões de forma que as linhas na tabela de dados formam uma nuvem de pontos neste espaço. O primeiro componente principal é uma linha que melhor descreve a forma da nuvem de pontos. Cada observação pode ser projectada nesta linha para obter um valor de coordenada ao longo do PC1, que é conhecido como mise. Ao longo de PCA, o computador realiza as seguintes operações para avaliar os componentes principais para um conjunto de dados dado: - **Padronização**: O passo de padronização é padronizar o intervalo das atributos para que cada um deles esteja dentro dos mesmos limites. Este processo envolve a remoção da média dos valores de variáveis e a escalonamento dos dados em relação à desvio-tendência padrão. - **Matriz de Covariâncias Computação**: A matriz de covariâncias é utilizada para expressar a correlação entre qualquer dois ou mais atributos num conjunto de dados multidimensional. A matriz de covariância tem as entradas como a variação e a covariância dos valores de atributos. - **Vetores iGene e Valores iGene**: Os vetores iGene e os valores iGene são os valores matemáticos que são extratos da tabela de covariância. Eles são responsáveis pela geração de um novo conjunto de variáveis a partir do conjunto de variáveis originais, que por sua vez lideram à construção dos componentes principais. - **Vetores de Características**: Os vetores de características são uma matriz que tem os vetores iGene dos componentes que decidimos manter como colunas. Aqui, decidimos se devemos manter ou descartar os componentes principais menos importantes. ### Implementação em Python Nesta seção, demonstraremos a implementação da PCA em Python usando o conjunto de dados cancer. - **Bibliotecas**: Usaremos as seguintes bibliotecas: `matplotlib`, `pandas`, `numpy`, `seaborn`, e `mapplotlib`. - **Dados**: Usaremos o conjunto de dados cancer, que tem 36-35 diferentes características. - **Análise**: Usaremos a análise do conjunto de dados cancer para entender como funciona a PCA. # Análise de Dados de Alta Dimensão com PCA e Scikit-Learn (Português de Portugal) Observamos que visualizar dados de alta dimensão pode ser desafiador. Para superar isso, podemos utilizar Análise Principal de Componentes (APC) para encontrar as primeiras duas componentes principais e visualizar os dados num espaço bidimensional usando um único gráfico de dispersão. Antes de fazer isso, é essencial escalonar os dados. Neste documento, vou guiar você através do uso da APC com Scikit-Learn, especificamente para visualização e escalonamento de dados para uma rede neural. ## Pré-requisitos Para seguir estas instruções, você precisará ter Python e Scikit-Learn instalados. Instale Scikit-Learn com: ``` pip install scikit-learn ``` ## Escalonamento de Dados Antes de aplicar a APC, é essencial escalonar os dados. Embora a escalonagem não sempre seja necessária para a APC, é uma boa prática seguir, especialmente quando se trata de redes neurais. No código seguinte: ```python from sklearn. decomposition import PCA # Suponha que `scaler` seja os dados escalonados gerados aqui pca = PCA(n_components=2) pca. fit(scaler) ``` ## Criação do Modelo APC Crie um objeto APC, defina o número de componentes em 2, pois queremos apenas olhar para duas componentes, e faça o ajuste dos dados ao modelo APC: ```python pca = PCA(n_components=2) pca. fit(scaler) ``` ## Transformando os Dados para as Primeiras Duas Componentes Principais Agora que temos o nosso modelo APC, podemos transformar os dados escalonados para suas primeiras duas componentes principais: ```python xpca = pca. transform(scaler) ``` ## Visualização dos Resultados Aqui está um exemplo de plotagem dos dados transformados: ```python import matplotlib. pyplot as plt fig = plt. figure() plt. scatter(xpca[: , 0], xpca[: , 1], c=y_alvo) plt. title('Gráfico de Dispersão 2D das Primeiras Duas Componentes Principais') plt. xlabel('Componente Principal 1') plt. ylabel('Componente Principal 2') plt. show() ``` Agora que você entendeu os passos básicos para visualizar e escalonar dados de alta dimensão com a APC e scikit-learn, você pode aplicar estas técnicas aos seus dados e modelos específicos. ## Análise do Coronavírus Em uma seção separada, vou discutir brevemente o que é o coronavírus, os sintomas do coronavírus, seu impacto global e medidas de segurança: 1. **O que é o Coronavírus (Covid-19)**: . . . 2. **Sintomas do Coronavírus**: . . . 3. **Impacto Global do Coronavírus**: . . . 4. **Medidas de Segurança**: . . . Após discutir os fundamentos, vou realizar uma análise usando Máquinas de Suporte Vector (SVM) e Regressão Polinomial em Python para prever o número de casos futuros do 28 de Abril ao 17 de Maio. Vou usar dados coletados do 22 de Janeiro ao 27 de Abril. Após analisar o modelo, apresentarei os resultados usando gráficos e gráficos. A análise ser # Análise e Previsão do COVID-19 Este documento fornece uma visão geral de uma análise e previsão do COVID-19, incluindo a visualização de dados, técnicas de aprendizado de máquina e previsões. Comecemos com o número total de casos confirmados diariamente. ## Casos Confirmados Diários - 26 de Abril - Estados Unidos: Aproximadamente 48, 5 mil casos - Rússia: Aproximadamente 6, 0 mil casos - Brasil: Aproximadamente 5, 5 mil casos - Reino Unido: Quase 5, 0 mil casos Nota que o número de casos confirmados é menor que o total de casos devido ao testagem limitada em diferentes países. ## Dívidas Relatadas ao Mundo - Estados Unidos: Mais de 53, 0 mil mortes - Itália: Mais de 29, 0 mil mortes - França: Mais de 28, 0 mil mortes - Reino Unido: Mais de 23, 0 mil mortes - Alemanha: Mais de 6, 0 mil mortes ## Casos de Morte A informação apresentada aqui irá mostrar como construir uma gráfica semelhante para os casos de morte em diferentes países. ## Taxa de Mortalidade A taxa de mortalidade é calculada como a razão entre as mortes confirmadas e os casos confirmados. Como de 26 de Abril: 1. França: Mais de 18. 22% 2. Reino Unido: 13. 69% 3. Itália: 13. 51% ## Números de Testagem do COVID-19 - Estados Unidos: Mais de 5 milhões de testes realizados - Rússia: Mais de 2, 8 milhões de testes realizados - Alemanha: Um número grande de testes realizados - Turquia: Um número grande de testes realizados - Canadá: Um número grande de testes realizados - Índia: Um número grande de testes realizados Cada país está lidando com a pandemia dentro de suas capacidades para garantir que a situação não piora. Muitos países afetados tiveram enquadramentos de bloqueio que ajudou a conter a expansão da doença. ## Bloqueio em países A seguir, mostramos um mapa que mostra o número de dias que algumas nações tiveram um bloqueio parcial ou completo para conter a disseminação do COVID-19. Os dados foram tirados do Departamento de Inteligência de Dados da Unidade de Dados da Ação Integrada de Notícias do Índia, um dos fornecedores de dados líderes na Índia. - Austrália: Mais de 40 dias bloqueados - Índia: Mais de 40 dias bloqueados - Bélgica: Mais de 40 dias bloqueados - Reino Unido: Mais de 40 dias bloqueados - China: Mais de 40 dias bloqueados - Estados Unidos: Mais de 40 dias bloqueados - França: Mais de 40 dias bloqueados - Espanha: Mais de 40 dias bloqueados - Itália: Mais de 40 dias bloqueados ## A Batalha da Índia contra o COVID-19 - Às 5h da tarde de 26 de Abril, os estados mais afetados são: - Maharashtra - Gujarat - Deli - Madhya Pradesh - Uttar Pradesh - Tamil Nadu - O Maharashtra conta com mais de 7, 6 mil casos e o maior número de mortes, que atualmente é de 323. - O Gujarat conta com mais de 3, 0 mil casos e 133 mortes. - Madhya Pradesh conta com 99 mortes. - Há ainda 312 casos sem atribuição aos estados com processamento de rastreamento de contatos. ## Análise da Previsão de Broto de COVID-19 Vamos analisar a expansão da doença COVID-19 em dias futuros em diferentes países ao redor do mundo usando gráficos, gráficos e modelos de aprendizado de máquina em Python. Os conjuntos de dados serão tomados do [Repositório de Dados CSSE da Universidade Johns Hopkins](https://github.com/CSSEGISandData/COVID-19). Nossos dados contém informações de 22 de Janeiro a 28 de Abril. Encourage-se que vá pelas ligações para visualizar os dados e outros recursos. Em seguida, passaremos pelo notebook Jupyter onde já fizemos a implementação do curso e explicarei cada célula de código para ajudar você a entender o que ele faz. Fique atento para nosso vídeo ao vivo. # Análise e Visualização de Dados do Coronavírus Este documento descreve os passos seguidos para analisar e visualizar dados relacionados à disseminação global da pandemia de coronavírus. ## Países Recuperados Usamos a função `list` e a variável `latest_data` para filtrar a lista de países únicos e obter os seguintes países: ``` - Estados Unidos - Espanha - Itália - França - Alemanha - Reino Unido ``` Em seguida, usamos as seguintes linhas de código para encontrar os seguintes dados para cada país: - Casos confirmados - Casos mortais - Casos ativos - Casos recuperados - Taxa de mortalidade Somamos os casos e adicionamos-nas a uma lista vazia, removemos países sem casos, e em seguida ordenamos os países por número de casos confirmados. ## Visualização de Dados Visualizamos os dados usando um mapa de cores graduais para ver a seguinte informação: - Nome do país - Número de casos confirmados - Número de mortes - Número de recuperação Para este propósito, adotamos o azul como gradiente. ## Províncias Usamos a função `list` e a variável `latest_data` para filtrar a lista de províncias únicas: --- Em seguida, em uma célula próxima, encontramos os seguintes dados para cada província de um determinado país: - Casos confirmados - Mortes - Casos ativos - Casos recuperados - Taxa de mortalidade Somamos os casos e adicionamos-nas a uma lista vazia, removemos províncias sem casos, e em seguida ordenamos as províncias por número de casos confirmados. ## Tratamento de Valores Perdidos É importante tratar os valores perdidos ou valores `nan` para evitar dados turbulentos e imprecisos que levem a resultados inadequados. Aqui, estamos tratando de `nan` valores. ## Comparações de Casos no Estados Unidos e Fora dos Estados Unidos Plotamos um gráfico de coluna horizontal para comparar o número de casos nos Estados Unidos e fora dos Estados Unidos. Os casos fora dos Estados Unidos foram calculados sub traindo os casos confirmados dos Estados Unidos dos casos confirmados de todo o mundo. ## Os 10 Países com o Maior Número de Casos Confirmados Encontraremos os 10 países com o maior número de casos e os outros serão categoriados como "Outros". Definimos uma função para plotar gráficos de coluna horizontais para estes países. ## Construindo o Modelo Usando regressão polinomial e máquinas deSuporte Vector, construiremos um modelo para prever o número de casos para os próximos 20 dias. Convertemos todas as datas e casos em uma array numpy e depois dividimos os dados em conjuntos de treinamento e de teste. Usamos a função de features polinomiais e o método fit_transform para transformar nossos conjuntos de treinamento, de teste e de dados futuros. Construimos o modelo de regressão polinomial e predizemos os valores do conjunto de teste. Imprimimos os valores de erro médio absoluto (MAE) e os valores de erro médio quadrado (MSE). Plotamos o gráfico entre o conjunto de teste e os valores do modelo de regressão polinomial previamente. Usando o algoritmo de Regressão de Vetores de Suporte, criamos o regressor de regressão de vetores de suporte e ajustamos nosso conjunto de treinamento. Predizemos os valores para os dados futuros também. Imprimos os valores de erro médio absoluto (MAE) e o erro médio quadrado (MSE) e exibo o gráfico da previsão. ## Visualizações adicionais Plotamos vários gráficos para melhor entender o nosso modelo e nossos dados, incluindo: - Número de casos confirmados sobre o tempo - Número total de mortes por coronavírus sobre o tempo - Número total de casos recuperados - Número total de casos ativos - Casos de coronavírus sobre o tempo com o modelo de SVM - Números de casos confirmados para os próximos 20 dias previamente - Gráfico de linha de mortes versus recuperações - Número total de mortes por coronavírus versus recuperações Também plotamos gráficos para mostrar o número de casos confirmados sobre o tempo, a variação diária mundial de casos mortais de coronavírus e a variação diária mundial de casos de recuperação de coronavírus. # Doença cardíaca pré-visão utilizando Aprendizado de Máquina | Previsão de Doença cardíaca | Simplilearn URL: [https: //www. youtube. com/watch? v=tSBAag6lAQo](https://www.youtube.com/watch?v=tSBAag6lAQo) Idioma: pt-PT bem-vinda a outra série em Aprendizado de Máquina para previsão de doenças. Essa série é patrocinada pela Simplilearn e eu sou a Doutora Juana Thiessen, e aqui vou liderá-la através da série de Aprendizado de Máquina, começando com as bases da ciência de dados fundamentais até modelar os dados e demonstrar como o Aprendizado de Máquina pode ser utilizado para previsão de riscos, quidades em particular do sistema cardiovascular, e como isso está a infectar na forma como ele cardiovascular e outras formas de doenças crônicas estão sendo ajudadas pelo exercício da ciência de dados. Até agora sabemos que a doença cardiovascular é ainda a número um assassina, com mais de 12 milhões de mortes por doença cardiovascular a cada dia. O que já sabemos é que algumas destas mortes são preveníveis, e assim há muito estudo que está acontecendo tanto em laboratório como no campo, e como vamos ver aqui, na área da ciência de dados, isso está ajudando a fazer a diferença. Um dos estudos famosos é o Estudo do Coração de Framingham, que começou já em 1948 e continua até hoje com a terceira geração de participantes. Este estudo foi fundamental na investigação dos Estados Unidos em dados específicos para estudo do coração. Agora foi estendido para estudar outras formas de doenças, mas podemos usar o dado, agora amassado vários milhares de participantes, aplicando técnicas de Aprendizado de Máquina para ajudar-nos a entendermos a doença, como ela está manifestada, quais sintomas da doença são, e em seguida utilizar também para prever a presença de potencial presença da doença em pacientes assintomáticos e guiar alguns tal que eles não desenvolvam a doença. Além disso, o Aprendizado de Máquina tem sido muito útil a praticantes médicos no campo da doença cardiovascular assim como outras doenças se a sua aprendizagem está a começar é a meia batalha; visite o Skillup pela Simplilearn ([link na descrição)](https://skillup.simplilearn.com/web/simplilearn-sg/pt-PT/blogs/aprendizado-de-maquina-com-python) para conhecer mais. ## Quando Começar um Projeto de Aprendizado de Máquina, Tome Estas Cinco Etapas em Conta 1. Adquirir os Dados: A primeira etapa é adquirir os dados ou adquirir os dados. 2. Filtragem e Limpeza dos Dados: Em seguida, filtrar e limpar os dados, semelhante ao filtrar e tremear a farinha ao enforma um Bolo para certificar-se que os dados são exactos e adequados. 3. Transformar os Dados: Às vezes requer transformar os ingredientes de um formato para outro, de maneira semelhante, pode requerer transformar os dados de um formato para outro, como mudar os dados de texto em dados numéricos, por exemplo. 4. Explorar os Dados: Depois de transformar os dados, você explora os dados, onde começa a entender os dados e começa a entender as patamares e tendências nos dados que vão guiar o tipo de modelo de Aprendizado de Máquina que você pode construir. 5. Dividir os Dados: Quando os dados estão num estado adequado, você divide-os, primeiro em X variáveis e variável de y (provavelmente que você esteja a fazer algum tipo de modelo de Aprendizado de Máquina que requer rótulos), e em seguida divide o dado mais, por exemplo, 80/20 ou mesmo 70/30, assim que você pode guardar alguns deles para testar. O primeiro 70% você vai usar para treinar os modelos e o 30% vai usar para testar o desempenho do modelo e avaliar-o, e decisão como e quando se pode fazer alterações se é preciso para melhorar o desempenho do modelo. Enquanto andamos, vamos ver outros passos envolvidos, mas mantenha estas cinco etapas principais em mente para qualquer projeto de Aprendizado de Máquina: adquirir dados, filtrar, transformar, explorar e em seguida dividir os dados antes de começar a modelar. Title: Aquisição e Exploração de Dados usando Python e Markdown # Aquisição de Dados Para modelar ou aprender do dado, é fundamental possuir um dado adequado. Há várias formas de adquirir o dado necessário: 1. Extração do internet 2. Extracção de dados de outras fontes 3. Colecção automática (enques ou outras atividades) 4. Combinação de dados de várias fontes A etapa de aquisição de dados pode ser curta, como nestes casos em que dados disponíveis são utilizados. ## Estudo do Coração de Framingham O Estudo do Coração de Framingham é muito popular e amplamente utilizado. Pode ser obtido do GitHub ou de várias outras fontes. Para acessá-lo: 1. Pesquise no Google "Estudo do Coração de Framingham" para localizá-lo. 2. Faça o download e salve-o no seu computador. 3. Importe-o no seu notebook utilizando as ferramentas necessárias. ## Ferramentas Necessárias - pandas - numpy - matplotlib - scipy - sklearn - seaborn - pyreadstat (se o conjunto de dados estiver no formato sav, isto poderá variar para outros formatos de dados) Após a instalação destes módulos, carregue o conjunto de dados e garanta que ele esteja carregado corretamente no notebook. # Exploração de Dados Quando o dado for carregado, é essencial examiná-lo e garantir que contém a informação necessária. 1. Primeiras cinco linhas: `df. head()` 2. Informação do conjunto de dados: `df. info()` 3. Um olhar mais detalhado ao conjunto de dados: `df. describe()` (depois de aplicar transformações) # Filtragem do Dado A filtragem de dado envolve a remoção de erros, duplicatas ou qualquer dado que não pertença e possa não ser útil no processo de modelagem. Procure valores ausentes e dados inválidos. Filtrou o conjunto de dados baseado nas colunas PID e Tipo de ID, visto que não são úteis para o modelamento. ```markdown df = df. drop(columns=['PID', 'ID_type']) ``` # Valores Ausentes 1. Colunas numéricas: `df. isnull(). sum()` 2. Valores ausentes como uma porcentagem do total: `df. isnull(). sum() / len(df) * 100` # Visualização de Valores Ausentes 1. `msno. bar(df)`: Destaca um gráfico de barras para destacar valores ausentes. 2. `df. corr()`: Dá uma impressão onde os valores ausentes são indicados por espaços em branco. 3. `msno. heatmap(df)`: Um heatmap resume a correlação entre a ausência de dados em diferentes colunas. # Tratamento de Valores Ausentes - Preencha valores ausentes com a média da coluna (por exemplo, para colesterol de lodos no sangue e açucar no sangue rápido) - Elimine os registros que contêm valores ausentes (para colunas com extremamente baixas porcentagens de valores ausentes) # Outras Abordagens para Preenchimento de Dados Ausentes Python e sklearn oferecem várias algoritmos para preenchimento de dados ausentes utilizando a média, a mediana ou o modo, dependendo do tipo de variável. # Exame Por Duplicação 1. Examine as duplicatas avaliando toda a linha: `df. drop_duplicates()` 2. Examine as duplicatas utilizando um subconjunto que contém colunas específicas: `df[subset]. duplicated(). sum()` Depois de processar o dado, examine qualquer valor ou duplicata de dado resistente para garantir que o dado está limpo e pronto para modelagem. ```Markdown # Processo de Aprendizagem de Máquina: Filtro e Transformação ## Filtro Primeiro, vamos discutir o método de filtro utilizado em nossos dados. 1. Procure valores ausentes: Neste caso, removi os números de identificação PID, pois não foram relevantes para nossos modelos. Em seguida, verifiquei por valores ausentes e procedi de maneira adequada. 2. Remova os duplicados: Também tratou duplicados durante o processo de filtragem. [O filtro é crucial pois permite a remoção de quaisquer duplicações, valores ausentes ou incoerências nos dados, aprimorando sua qualidade e garantindo resultados precisos. ] ## Transformação Lembre-se de que os passos no processo de aprendizagem de máquina podem ser fluidos e não há regras fixas. No entanto, a ideia é: 1. Trocar valores em uma forma adequada para modelagem: - Os modelos só podem aceitar valores numéricos, portanto, qualquer texto precisa ser convertido em números, sejam inteiros ou reais. - Poderá ocorrer mapear, onde uma variável contínua é transformada em alguns tipo de grupoamento binário ou grupamento binário. - É importante, particularmente com valores de data, que sejam comumente convertidos no tipo de data em Python para manipulação de série temporal. ### Exemplos de Transformação de Dados - Transforme variáveis categóricas em valores numéricos: - Use a função `pandas. get_dummies()` quando se necessita transformar variáveis categóricas em valores numéricos para inclusão no modelo. - Use a função `. replace()` para substituir valores categóricos pela categoria desejada ou número: - Identifique a coluna com colchetes quadradados, em seguida, utilize o método `. replace()` para incluir as categorias e seus novos valores. [Estes exemplos são apenas algumas transformações de dados básicas; existe um número quase ilimitado de métodos em transformação quando se trata de aprendizagem de máquina. ] ## Exploração de Dados (EDA) A EDA (Exploração de Dados) é uma etapa importante em nosso processo de modelagem. Proporciona insights em tendências e relacionamentos que podem existir em nosso dados. - Análise da distribuição dos valores nas suas variáveis: - Verifique o tipo de distribuição de variáveis (continuas, inteiras ou categoricas). - Compreenda a relação entre as variáveis: - Determine as relações, sejam lineares ou não. - Utilize teste hipotético entre variáveis predictoras ou uma preictora em relação ao resultado final. [As visualizações são necessárias para compreender a informação contida nos seus dados, pois em geral a visualização de números e data frame exclusivamente não vai fornecer todas as informações. ] ``` ## Sobre a Análise Bivariada de Variáveis Neste texto, você indicou diversas regras para reformatar, por favor aprofunde-se na formatação Markdown e adhere ao seguinte estilo: 1. **Títulos e subtítulos: ** Utilize hashes `#` para identificar títulos e subtítulos conforme necessário. 2. **Códigos, negrito e itálico: ** Utilize a marcação Markdown para texto em negrito (`**negrito**`), itálico (`*italico*`), código (```texto```) e código em bloco (````texto de bloco````). 3. **Listas e citas: ** Use para listas (`- ou *`) e traços superiores (`>`) para citas. 4. **Separadores**, preservando URLs: Utilize o traço duplo (---) para separadores. Preserve todas as URLs existentes no texto. 5. **Preserve o conteúdo**: tenha cuidado em alterar termos técnicos inalterados (mesmo que estrambosos), preserve comandos e códigos exatamente como estão e mantenha URLs e referências intactas. Adaptando o texto ao seu estilo desejado, segue o texto reformulado: ## Sobre a Análise Bivariada de Variáveis Aqui começaremos a analisar a distribuição de dados de variáveis relativas a uma característica específica. Desta vez, vamos avançar para um tipo de análise de variedade, especificamente o Buy Variate Analysis. A ideia principal é estudar todas as variáveis, particularmente em relação ao sexo. Estamos movendo-nos da observação do Universo em um tipo de análise à análise do Buy Variate para que possamos obter dados mais detalhados sobre diferentes aspectos, como a idade, o nível de colesterol e a habitude de tabagismo. ### Group by Method Para começar, iremos utilizar o método Group By. Este método cria um **separado** Data Frame para cada categoria em uma variável específica, gerando-nos assim uma visão clara de cada subconjunto. Aqui, estamos trabalhando com o sexo como uma variável específica. Ele dividirá nossa base de dados ou Data Frame em duas categorias -- masculino e feminino (usando a nomeclatura largamente adotada). Em seguida, a função Mean (média) é invocada para cada categoria calculando o valor de cada coluna. Por exemplo: ```markdown | Variável | Sexo | Média | |-------------|------|-----------------------------| | Idade | Masculino| 40. 979 | | | Feminino| 40. 84 | | Colesterol | Masculino| 1. 19 | | | Feminino| 1. 07 | ``` ### Distribuição Bivariada Para analisar a distribuição de nossa variável de destino (points), em relação aos dados sexuais, podemos selecionar esta última e obter a distribuição da variável de destino em relação ao sexo. Por exemplo: ```markdown | Variável | Sexo | Média de Heart Disease | |------------|------|-------------------------| | Points | Masculino| 0. 04 | | Feminino| 0. 0159 | ``` Em adição à análise binária apresentada, é possível plotar nossos dados para visualizar a distribuição da variável de destino em relação ao sexo, como uma forma de suporte visual. Por exemplo: ```markdown import seaborn as sns import matplotlib. pyplot as plt # Avaliando e Explorando Dados Usando Markdown Este documento fornece um passo a passo em como analisar e explorar um conjunto de dados usando Markdown. Enfocaremos nas variáveis categóricas e contínuas, assim como lidar com uma imalance de classe na nossa variável alvo. ## Variáveis Categóricas Começamos por olhar para as variáveis categóricas no nosso conjunto de dados. Com a ajuda de um `loop for`, iteraremos sobre a lista de colunas e realizaremos a análise para cada coluna. ```markdown 1. Usando um loop `for`: Para cada nome de coluna, usaremos-o em nossa `in` instrução, em seguida usaremos o primeiro objeto identificado (`immersion`) para nossa X. Os dados vêm do data frame, e usamos `hue` como a variável alvo, permitindo-nos ver a distribuição de cada variável como preocupa-se o resultado da variável alvo (`doença cardíaca`) é preocupante. ``` . . . (Continue com o texto original) ## Variáveis Contínuas Agora, passamos para nossas variáveis contínuas. Estas são representadas como `floats` no nosso conjunto de dados. ```markdown 2. Gerar um subconjunto do data frame de variáveis contínuas: Para alcançar isso, primeiro iremos descartar todas as categorias que temos considerado como variáveis categóricas usando o `drop()` método. Em seguida, iremos eliminar qualquer variável irrelevante, como a coluna de data. ``` . . . (Continue com o texto original) ## Lidando com a Imalance de Classe Na última vez, lidaremos com a imalance de classe na nossa variável alvo `doença cardíaca`. Como o número de pessoas com doença cardíaca é significativamente menor comparado à outra categoria, os resultados da análise podem não ser claros. ```markdown 3. Balanceando a classe: Para lidar com este problema, vamos utilizar técnicas de sobreamostragem como `SMOTING` para balanciar a `doença cardíaca` categoria. Antes de implementar essa estratégia, primeiramente precisaremos de realizar splitting de dados para as variáveis X (entrada) e y (saída), em seguida, dividi-los em conjuntos de treino e teste. ``` . . . (Resto do texto não está relacionado às alterações) ### Conclusão Final Neste guia, passaramos por um passo a passo pelo nosso conjunto de dados usando Markdown para variáveis categóricas e contínuas. Agora temos um entendimento superior da relação entre as variáveis, e estamos prontos para trabalhar em balanceando a imalance de classe em preparação para gerar nossa modelo de aprendizagem automática. Fique atentíssimo! 🤓 # Análise de Conjunto de Dados de Doença Cardíaca usando SMOTE e Regressão Logística Este documento descreve o processo de utilizar o SMOTE (Técnica Sintética de Superamostragem da Minoridade) para equilibrar o conjunto de dados de doença cardíaca, seguido pelo treinamento e tests de um modelo de Regressão Logística. ## Visão Geral Nesta análise, nosso objetivo é: 1. Superamostrar o conjunto minoritário do nosso dataset usando o SMOTE para gerar observações sintéticas. 2. Carregar o algoritmo SMOTE no nosso dataset. 3. Treinar o modelo sintetizado por SMOTE e obter os recursos. 4. Analisar as dimensões dos novos datasets. 5. Visualizar a distribuição das observações sintéticas. 6. Dividir os datasets em conjuntos de treino e teste. 7. Padronizar os datasets e treinar um modelo de Regressão Logística. 8. Testar o desempenho do modelo usando o conjunto de teste. ## Carregando e Superamostragando Para começar, carregamos o algoritmo SMOTE e criamos uma instância dele: ``` from IMB. learn import SMOTE os = SMOTE() # Carregar o algoritmo SMOTE ``` Em seguida, usamos o método `fit_resample` para treinar o modelo SMOTE e obter os Recursos: ``` X_smote, y_smote = os. fit_resample(X, y) # Treinar o modelo SMOTE ``` ## Analisando as Dimensões do Dataset Agora, vamos ver as dimensões dos novos datasets: ``` print("X: Forma: (88, 60, 18)") # Novos Recursos de X print("Y: Forma: (88, )") # Novos Valores de y ``` ## Visualizando as Observações Sintéticas Para visualizar a distribuição das observações sintéticas, poderíamos criar um gráfico de barras: ``` # . . . (Código para criar um gráfico de barras) ``` Alternativamente, pode-se utilizar a biblioteca SNS (Seaborn) para um gráfico colorido e personalizável: ``` # . . . (Código para criar um gráfico de Seaborn) ``` ## Dividindo o Dataset Em seguida, dividimos o nosso dataset em conjuntos de treino e teste: ``` from sklearn. model_selection import train_test_split X_treino, X_teste, y_treino, y_teste = train_test_split(X_smote, y_smote, test_size=0. 3, random_state=42) ``` ## Padronizando os Datasets Dado que os datasets têm valores de intervalo diferentes, padronizámos-lh: ``` from sklearn. preprocessing import StandardScaler escalador = StandardScaler() X_treino_escalado = escalador. fit_transform(X_treino) # Padronizar X_treino X_teste_escalado = escalador. transform(X_teste) # Padronizar X_teste ``` ## Treinando e Testando o Modelo Agora, podemos treinar e testar um modelo de Regressão Logística: ``` from sklearn. linear_model import LogisticRegression modelo = LogisticRegression() modelo. fit(X_treino_escalado, y_treino) # Treinar o modelo ``` Após o treinamento, testamos o desempenho do modelo usando o conjunto de teste: ``` y_pred = modelo. predict(X_teste_escalado) pontuacao_acurácia = pontuacao_acurácia(y_teste, y_pred) * 100 # Calcular pontuação de acurácia print("Pontuação de Acurácia: {: . 2f}%". format(pontuacao_acurácia)) ``` Com as correções e a formatação em PT-PT, o texto fica: ``` # Análise de Conjunto de Dados de Doença Cardíaca usando SMOTE e Regressão Logística Este documento descreve o processo de utilizar o SMOTE (Técnica Sintética de Superamostragem da Minoridade) para equilibrar o conjunto de dados de doença cardíaca, seguido pelo treinamento e tests de um modelo de Regressão Logística. ## Visão Geral Nesta análise, nosso objetivo é: 1. Superamostrar o conjunto minoritário do nosso dataset usando o SMOTE para gerar observações sintéticas. 2. Carregar o algoritmo SMOTE no nosso dataset. 3. Treinar o modelo sintetizado por SMOTE e obter os recursos. 4. Analisar as dimensões dos novos datasets. 5. Visualizar a distribuição das observações sintéticas. 6. Dividir os datasets em conjuntos de treino e teste. 7. Padronizar os datasets e treinar um modelo de Regressão Logística. 8. Testar o desempenho do modelo usando o conjunto de teste. ## Carregando e Superamostragando Para começar, carregamos o algoritmo SMOTE e criamos uma instância dele: ``` from imblearn. over_sampling import SMOTE os = SMOTE() # Carregar o algoritmo SMOTE ``` Em seguida, usamos o método `fit_resample` para treinar o modelo SMOTE e obter os Recursos: ``` X_smote, y_smote = os. fit_resample(X, y) # Treinar o modelo SMOTE ``` ## Analisando as Dimensões do Dataset Agora, vamos ver as dimensões dos novos datasets: ``` print("X: Forma: (88, 60, 18)") # Novos Recursos de X print("Y: Forma: (88, )") # Novos Valores de y ``` ## Visualizando as Observações Sintéticas Para visualizar a distribuição das observações sintéticas, poderíamos criar um gráfico de barras: ``` # . . . (Código para criar um gráfico de barras) ``` Alternativamente, pode-se utilizar a biblioteca SNS (Seaborn) para um gráfico colorido e personalizável: ``` # . . . (Código para criar um gráfico de Seaborn) ``` ## Dividindo o Dataset Em seguida, dividimos o nosso dataset em conjuntos de treino e teste: ``` from sklearn. model_selection import train_test_split X_treino, X_teste, y_treino, y_teste = train_test_split(X_smote, y_smote, test_size=0. 3, random_state=42) ``` ## Padronizando os Datasets Dado que os datasets têm valores de intervalo diferentes, padronizámos-lh: ``` from sklearn. preprocessing import StandardScaler escalador = StandardScaler() X_treino_escalado = escalador. fit_transform(X_treino) # Padronizar X_treino X_teste_escalado = escalador. transform(X_teste) # Padronizar X_teste ``` ## Treinando e Testando o Modelo Agora, podemos treinar e testar um modelo de Regressão Logística: ``` from sklearn. linear_model import LogisticRegression modelo = LogisticRegression() modelo. fit(X_treino_escalado, y_treino) # Treinar o modelo ``` Após o treinamento, testamos o desempenho do modelo usando o conjunto de teste: ``` y_pred = modelo. predict(X_teste_escalado) pontuacao_acurácia = pontuacao_acurácia(y_teste, y_pred) * 100 # Calcular pontuação de acurácia print("Pontuação de Acurácia: {: . 2f}%". format(pontuacao_acurácia)) ``` Com ainda um `#` a mais antes do Título por convenção do Markdown, e com todas as importações contidas no código completo, o texto fica assim: ``` # Análise de Conjunto de Dados de Doença Cardíaca usando SMOTE e Regressão Logística Este documento descreve o processo de utilizar o SMOTE (Técnica Sintética de Superamostragem da Minoridade) para equilibrar o conjunto de dados de doença cardíaca, seguido pelo treinamento e tests de um modelo de Regressão Logística. ## Visão Geral Nesta análise, nosso objetivo é: 1. Superamostrar o conjunto minoritário do nosso dataset usando o SMOTE para gerar observações sintéticas. 2. Carregar o algoritmo SMOTE no nosso dataset. 3. Treinar o modelo sintetizado por SMOTE e obter os recursos. 4. Analisar as dimensões dos novos datasets. 5. Visualizar a distribuição das observações sintéticas. 6. Dividir os datasets em conjuntos de treino e teste. 7. Padronizar os datasets e treinar um modelo de Regressão Logística. 8. Testar o desempenho do modelo usando o conjunto de teste. ## Importações ```python from imblearn. over_sampling import SMOTE from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler from sklearn. linear_model import LogisticRegression from IMB. learn import SMOTE from scipy import stats import pandas as pd import seaborn as sns import matplotlib. pyplot as plt ``` ``` # Carregando e Superamostragando To begin, we load the SMOTE algorithm and create an instance of it: ```python os = SMOTE() # Load the SMOTE algorithm ``` Next, we use the `fit_resample` method to train the SMOTE model and get the Features: ```python X_smote, y_smote = os. fit_resample(X, y) # Train the SMOTE model ``` ## Analisando as Dimensões do Dataset Now, let's take a look at the dimensions of the new datasets: ```python print("X: Shape: (88, 60, 18)") # New X features print("Y: Shape: (88, )") # New y values ``` ## Visualizando as Observações Sintéticas To visualize the distribution of the synthetic observations, we can create a bar chart: ```python # . . . (Code for creating a bar chart) ``` Alternatively, you can use the SNS (Seaborn) library for a colorful and customizable plot: ```python # . . . (Code for creating a SNS plot) ``` ## Dividindo o Dataset Next, we split our dataset into training and testing sets: ```python X_treino, X_teste, y_treino, y_teste = train_test_split(X_smote, y_smote, test_size=0. 3, random_state=42) ``` ## Padronizando os Datasets Dado que os datasets têm valores de intervalo diferentes, padronizámos-lh: ```python escalador = StandardScaler() X_treino_escalado = escalador. fit_transform(X_treino) # Standardize X_train X_teste_escalado = escalador. transform(X_teste) # Standardize X_test ``` ## Treinando e Testando o Modelo Now, we can train and test a logistic regression model: ```python modelo = LogisticRegression() modelo. fit(X_treino_escalado, y_treino) # Train the model ``` After training, we test the performance of the model using the test dataset: ```python y_pred = modelo. predict(X_teste_escalado) pontuacao_acurácia = pontuacao_acurácia(y_teste, y_pred) * 100 # Calculate accuracy score print("Model Accuracy: {: . 2f}%". format(pontuacao_acurácia)) ``` # Análise de Doença Cardíaca Esta análise tem o objetivo de explorar a correlação entre vários fatores e a ocorrência de doença cardíaca. ## Idade A idade apresenta uma correlação muito forte com a ocorrência de doença cardíaca. Com a aumenta idade, a probabilidade ou a hipótese de uma doença aumenta. ## Colesterol de Baixa Densidade (LDL) O colesterol LDL não apresenta uma correlação forte com a doença cardíaca. ## Colesterol de Alta Densidade (HDL) O colesterol HDL apresenta uma correlação forta com **não** ter doença cardíaca. Com a augmento do HDL, a probabilidade de doença cardíaca diminui. ## Pressão Sistólica do Sangue A pressão sistólica do sangue apresenta uma correlação forte com a presença de doença cardíaca. ## Sexo Existe uma maior probabilidade de doença cardíaca ao passar de feminino para masculino. Variáveis como o estado diabético, fumantes e sexo serão incluídas no modelo para aumentar a precisão. ## Preparação dos Dados Foi criada uma nova DataFrame com a adição de colunas para género, estado diabético e fumante. O conjunto de dados agora consiste em 21 colunas, em comparação com as 19 colunas iniciais. O valor y permanece inalterado. ## Amostragem Superavitada da Minoria A técnica SMOTE (Synthetic Minority Over-sampling Technique) foi utilizada para a amostragem superavitada da classe minoritária. ## Escalonamento dos Dados Os dados foram escalonados usando o StandardScaler para colocar a idade, a pressão sanguínea, e outros valores em termos de sua desvio-típico ou z-score. ## Treino e Avaliação do Modelo Foi criada e treinada uma regressão lógica usando o conjunto de dados escalonado X_treino e Y_treino. Os X_test e Y_test foram escalonados antes de serem aplicados ao modelo. ## Validação Cruzada A validação cruzada foi realizada com k = 10 Darosets. Isso envolve separar o conjunto de dados em treinamento e teste múltiplas vezes, com observações diferentes utilizadas para avaliação durante cada iteração. Isso ajuda a garantir uma avaliação mais robusta do desempenho do modelo. Foi encontrada a média da perda negativa em -0, 47 com uma desvio-típico de 0, 18. O score AUC-ROC para o modelo de regressão lógica foi de 0, 86. ## Avaliação do Desempenho do Modelo O desempenho do modelo de regressão lógica foi avaliado usando a matriz de confusão, o relatório de classificação e a importância das características. A análise de importância das características demonstrou que a idade, colesterol HDL, interação colesterol LDL e interação HDL cholesterol foram os principais contribuidores para o desempenho do modelo. É importante continuar a explorar outras técnicas e modelos para melhorar a precisão e o desempenho da previsão de doença cardíaca. # Curso Integral de Aprendizado de Máquina 2022 | Aprenda Aprendizado de Máquina | Tutorial de Aprendizado de Máquina | SimpliLearn Este vídeo fornece uma visão geral abrangente do Aprendizado de Máquina, explicando seus conceitos e oferecendo experiência prática na construção de modelos de Aprendizado de Máquina. - **Estrutura**: - Organizado em seções claras com cabeçalhos apropriados - Parágrafos são usados para separar ideias - Mantém listas e enumerações - Preserve a hierarquia de títulos - **Conteúdo**: - Correção de problemas de pontuação e ortografia - Termos técnicos restam inalterados - Comandos e códigos são preservados tal qual estão - URLs e referências permanecem intactas **Curso Integral de Aprendizado de Máquina 2022 | Aprenda Aprendizado de Máquina | Tutorial de Aprendizado de Máquina | SimpliLearn** > O aprendizado de máquina é uma ciência de programar máquinas para pensar e agir como humanos sem serem especificamente programadas a fazer isso. Utilizamos o aprendizado de máquina em nossa vida diária sem saber. A detecção de spam no email, a correção ortográfica, até mesmo as recomendações de vídeo do YouTube que você acompanhou aqui são implementados usando aprendizado de máquina. O aprendizado de máquina utiliza algoritmos para aprender tarefas, esses algoritmos são alimentados com dados dos quais eles aprendem a realizar essas tarefas. Isso significa que ao longo do tempo, como mudanças nos dados ocorrem, não precisamos reprogramar nossa aplicação; basta deixá-la encontrar padrões e aprender de novos dados. ## 🔥O Que é o Aprendizado de Máquina? - O aprendizado de máquina é um subconjunto da inteligência artificial (IA) que se preocupa em transmitir inteligência humana para máquinas e em criar máquinas que podem sentir, razonar, agir e adaptar. - O aprendizado profundo é uma subramificação do aprendizado de máquina que está inspirada no funcionamento do cérebro humano. - O aprendizado de máquina nos leva para um futuro onde as máquinas podem aprender e pensar e abriu uma nova variedade de oportunidades de emprego. ### Básicos do Aprendizado de Máquina Neste tutorial, vamos aprender os básicos do aprendizado de máquina, seguir os passos para construir modelos de aprendizado de máquina e aprender sobre vários algoritmos de aprendizado de máquina, como regressão linear, regressão logística, árvores de decisão, máquinas de suporte vector e muitos outros. #### Entendendo o Aprendizado de Máquina - Os humanos aprendem a partir de experiências passadas, e as máquinas seguem instruções. No entanto, as máquinas também podem aprender a partir dos seus dados passados para agir mais rapidamente. -O aprendizado de máquina não é apenas aprender, mas também entender e razonar. #### Algoritmo de Vizinhos mais próximos (KNN) Neste algoritmo de aprendizado de máquina básico, classificamos um ponto de dados desconhecido com base nas maiorias das votos de seus vizinhos mais próximos no conjunto de dados. ### Aprendizado Supervisionado vs Não Supervisionado #### Aprendizado Super # Inteligência Artificial, Aprendizagem de Máquina e Aprendizagem Profunda A Inteligência Artificial (IA) é uma técnica que permite que as máquinas imitam o comportamento humano. Isso é importante já que nos permite medir a eficácia de nossas computações e verificar como elas se comportam ao imitar o comportamento humano. O objetivo é substituir a mão-de-obra humana, torná-la mais eficiente, com linha de produção e precisão melhorados. ## Importância da IA IBM's Deep Blue e personagens em jogos são exemplos da IA. A Aprendizagem de Máquina (AM) é um subconjunto da IA que usa métodos estatísticos para permitir que as máquinas aprendam a partirem de dados obtained. ### Aprendizagem de Máquina Na AM, se você tiver seu input do último tempo e você tiver seus outputs, você os utiliza para melhorar sua próxima preDIção e chegar a uma resposta correta. Exemplos de Am incluem IBM's Watson, o algoritmo de pesquisa da Google, argumentos de spam de e-mail e filtros de spam de e-mail. #### Como Funciona a AM 1. Treinar os Dados: Primeiro, começamos com a treinagem dos dados. 2. Algoritmo de Aprendizagem de Máquina: Depois de ter treinado os dados, passamos ao algoritmo de aprendizagem de máquina, que então processa os dados e faz previsões. 3. Teste: Utilizamos novos dados para testar o que fizemos para garantir que tudo funciona corretamente. 4. Verificando Previsões: Verificamos a nossa previsão e nossos resultados. 5. Re-treinar: Se descobrimos que a previsão não fez um bom job, vamos de volta ao princípio e re-treinaremos o algoritmo. Este processo é iterativo para continuamente melhorar a resposta. ### Tipos de AM Existentem dois principais tipos de aprendizagem de máquina: 1. Aprendizagem Supervisionada 2. Aprendizagem Automático Em aprendizagem supervisionada, temos um conjunto de dados conhecido, como uma quantidade conhecida de maçãs. Um algoritmo de aprendizagem de máquina passa pelo processo, treina um modelo baseado neste conjunto de dados conhecido e faz previsões em dados novos. Em aprendizagem não supervisionada, temos dados não-conhecido, como uma quantidade de fruta e colocamos os dados neste algoritmo de aprendizagem de máquina, que lança então padrões e agrupa coisas semelhantes. ## Pré-requisitos para a AM Para fazer aprendizagem de máquina hoje em dia você precisa: 1. Conhecimento básico de scripting ou de programação. 2. Conhecimento intermediário de estatística. 3. Entendimento de probabilidades, álgebra linear e cálculo intermediário. 4. Conhecimento sobre o manuseamento e limpeza de dados. ## Aplicações da AM 1. Segmentação de imagem: A am pode ser utilizada para localizar diferentes objetos em uma imagem e então cortá-los, por exemplo, enfeites de celulares Google Pixel. 2. Deteção de Placas de Veículo: A am pode detectar placas de veículo em carros para tradução automática. 3. Previsão de Tempo: A am pode prever as condições meteorológicas baseado em dados históricos. 4. Predição de Preços da Ações: A am pode prever preços de ações baseado em tendências históricas. 5. Reconhecimento de Fala: A am pode reconhecer fala e converter em texto. 6. Análise de Sentimento: A am pode analisar o sentimento de texto ou escritos na rede social para determinar o sentimento. 7. Deteção de Atividades Fraudulentas: A Am pode detectar atividades fraudulentas baseado em padrões. 8. Diagnóstico Médico: A am pode ajudar médicos a diagnosticar doenças baseado em sintomas e dados históricos. ## Aprendizagem Profunda A Aprendizagem Profunda é um subconjunto da AM que usa redes neuronais para aprender de dados e realizar tarefas. É associada a ferramentas como redes neuronais, em que o aprendizagem é feito mudando todos os parâmetros internos, o que é difícil para ter severamente humanos para rastrear. A aprendizagem profunda pode chegar a respostas sensíveis para a compreensão humana porque desses parâmetros internos mudam. Exemplos de aprendizagem profunda incluem AlphaGo e reconhecimento de fala natural. ## Conclusão Em conclusão, a IA, a AM e a aprendizagem profunda são ferramentas poderosas que podem ajudar a automatizar tarefas, prever resultados e melhorar nossa compreensão do mundo ao seu redor. Por meio dessas tecnologias, podemos melhorar nossas vidas tornando-as mais eficientes e precisas. --- Corrigi alguns erros de gramática e pontuação, organizamos o texto em seções distintas, formatamos blocos de listas e citações em linha diretamente da formatação Markdown original. # Regressão Linear Simples ## Introdução Este documento fornece uma visão geral da regressão linear simples, enfatizando sua formulação matemática, sua intuição e sua implementação usando o Python. ### Equação da Regressão Linear A forma mais simples de uma equação de regressão linear com uma variável dependente e independente é representada por `y = m \* X + C`. No modelo dado, `y` é a variável dependente, e `X` é a variável independente. A pendente da reta, `m`, é calculada como a diferença entre `Y2` e `y1` dividida pela diferença entre `X2` e `X1`. `C` é o coeficiente da reta, representando onde ela cruza o eixo zero. ### Exemplo: Produção de Colheitas e Chuva Considere um exemplo em que queremos prever a produção de colheitas com base na chuva. Neste caso, a chuva é a variável independente, e a produção de colheitas é a variável dependente. Nós desenharmos uma reta através do meio dos pontos de dados para criar uma formulação matemática para a previsão. A marca vermelha no eixo y representa a produção de colheitas esperada para uma quantidade determinada de chuva, que pode ser estimada olhando para o ponto na reta que corresponde ao valor de chuva determinado. ### Calculando a Linha de Regressão Para calcular a linha de regressão, primeiramente encontramos os médias dos dados de X e Y. Em seguida, computamos a soma de `x^2`, `y^2`, `x \* y`, `x`, e `y` para cada ponto de dados. Usando estes valores, podemos calcular a pendente `m` e o coeficiente `C` usando as seguintes fórmulas: - `m = ((sum(x \* y) - (sum(x) \* sum(y)) / n) / (sum(x^2) - (sum(x)^2) / n))` - `C = ((sum(y) - m \* sum(x)) / n)` ### Valores Previstos e Resíduos Usando a pendente calculada `m` e o coeficiente `C`, podemos prever os valores de `y` para valores correspondentes de `x`. A distância entre os valores reais e os valores previstos é conhecida como resíduos ou erros. A reta de melhor aprazamento deveria ter a menor soma quadrada de estes erros, também conhecida como `e^2`. ### Regressão Linear múltipla Na regressão linear múltipla, possuimos várias variáveis independentes, cada uma com sua própria pendente. A equação torna-se `y = M1 \* X1 + M2 \* X2 + . . . + Mn \* Xn + C`. ### Implementando a Regressão Linear no Python Para implementar a regressão linear no Python, importamos primeiro as bibliotecas necessárias como NumPy, Pandas, Matplotlib, e Seaborn. Em seguida, carregamos e formatamos os dados, resolvemos o problema de regressão linear, e visualizamos os resultados. Aqui há um exemplo de implementação da regressão linear múltipla para prever a lucratividade de uma empresa com base em seus custos de I&D, custos administrativos, custos de marketing, e outros fatores: ```python import numpy as np import pandas as pd import matplotlib. pyplot as plt import seaborn as sns # Carregar dados dados = pd. read_csv('dados_empresa. csv') # Format dados # . . . # Resolver problemas da regressão linear # . . . # Visualizar resultados # . . . ``` # Análise de Dados: Análise de um Arquivo CSV para um Modelo de Regressão Linear Este guia mostra como analisar um arquivo CSV contendo dados de empresas para um modelo de regressão linear. ## 1. Importação de Bibliotecas e Carregamento de Dados Para começar, carregue as bibliotecas necessárias e leia o arquivo CSV. Ajuste o caminho de acordo com o seu setup: ```python import pandas as pd # Ler dados CSV, ajuste o caminho como necessário data = pd. read_csv('1000_companias. csv') ``` ## 2. Compreender os Dados Para trabalhar com os dados, vamos olhar para as primeiras cinco linhas de dados: ```python # Exiba as primeiras cinco linhas de dados data. head() ``` Os dados estão estruturados da seguinte maneira: ``` Gastos R&D Gastos de Administração Gastos de Mercadotecimento Estado Lucros 0 165. 0 136. 897 98. 385 NY 192261. 83 1 210. 1 163. 986 110. 294 CA 234820. 14 2 165. 0 136. 897 98. 385 FL 192261. 83 3 196. 4 147. 586 108. 792 California 208901. 48 4 346. 0 216. 485 148. 170 NY 383612. 42 ``` ## 3. Visualização Para obter uma visão melhor, podemos usar Seaborn para criar uma visualização de dados: ```python # Visualizar os dados import matplotlib. pyplot as plt import seaborn as sns # Seaborn não recomenda usar sns. load_module() sns. set(style='whitegrid') # Atenção para ter um jupyter notebook para exibir a figura. plt. figure(figsize=(10, 8)) sns. heatmap(data. corr(), cmap='coolwarm', annot=True); ``` O código acima criará um arranjo de correlação entre as variáveis no conjunto de dados, possibilitando obter insights sobre suas relações. ## 4. Preprocessamento e Modelo de Regressão Linear Para seguir adiante, preprocessaremos os dados e criaremos o modelo de regressão linear da seguinte maneira: ```python # Importe as bibliotecas necessárias para preprocessamento from sklearn. preprocessing import LabelEncoder, OneHotEncoder # Inicialize o Encodificador de Label e o Encodificador OneHot label_encoder = LabelEncoder() onehotencoder = OneHotEncoder() # Preprocessar a coluna Estado estados = data['Estado']. values estados = label_encoder. fit_transform(estados) onehot_estados = onehotencoder. fit_transform(estados. reshape(-1, 1)) # Combinar o encodificador OneHot dos estados com os dados originais data = pd. DataFrame(data, colunas=data. colunas[: 5]) data['Estado'] = onehot_estados. toarray()[: , 1: ] data. drop(['Estado'], eixo=1, em hely=True) # Crie o modelo de Regressão Linear from sklearn. linear_model import LinearRegression # Divida os dados em conjunto de treino e teste from sklearn. model_selection import train_test_split X = data. drop('Lucros', eixo=1) y = data['Lucros'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, parte=0. 3, setSemilla=0) # Instancie o Modelo de Regressão Linear LR_model = LinearRegression() # Treine o modelo com os dados de treino LR_model. fit(X_treino, y_treino) ``` Agora você pode usar o `LR_model` para predefine o lucro para uma entidade desconhecida com base em seus Gastos de R&D, Gastos de Administração, Gastos de Mercadotecimento e Estado. # Regressão Linear com Python Este tutorial te guiará por meio da criação de um modelo de regressão linear usando Python, explicando cada passo do processo. ## Criação do Modelo de Regressão Linear Começamos primeiro criando uma variável chamada `regressor` e atribuindo-lhe o modelo de regressão linear. Este modelo possui todas as matemáticas construídas, portanto não precisamos memorizar ou computar individualmente. ```markdown regressor = LinearRegression() ``` Em seguida, encaixamos os dados no modelo de regressão linear usando os dados de treinamento (X_train e Y_train). ```markdown regressor. fit(X_train, Y_train) ``` Agora que criamos o nosso modelo de regressão linear, vamos utilizar-lo para fazer previsões. ## Utilização do Modelo de Regressão Linear Usaremos o método `predict` para fazer previsões no conjunto de teste (X_test). ```markdown y_pred = regressor. predict(X_test) ``` No Jupyter Notebook, você pode imprimir o array diretamente: ```markdown print(y_pred) ``` Ou, se você estiver usando uma IDE diferente, você pode fazer: ```markdown print(y_pred) ``` Isso produz 200 respostas, que são as previsões de lucros para as 200 variáveis de teste que mantivemos de lado. ## Calculo das Coeficientes e Interceptos Para calcular as coeficientes e interceptos, você pode utilizar os atributos `coef_` e `intercept_` do objeto `regressor`. ```markdown coeficientes = regressor. coef_ intercepto = regressor. intercept_ ``` ## Avaliação do Modelo Para avaliar o modelo, utilizaremos o valor R², que mede como bem o modelo se encaixa nos dados. ```markdown from sklearn. metrics import r2_score r2 = r2_score(y_test, y_pred) print(f"Valor R²: {r2}") ``` O valor R² é uma medida de como bem o modelo se encaixa nos dados, com um valor mais próximo de 1 indicando um melhor encaixe. ## Regressão Logística A regressão logística é um algoritmo para realização de classificação binária, que é utilizado para prever resultados discretos, como se um carro irá quebrar ou não. Na regressão logística, criamos uma curva de regressão logística, que é uma cálculo de probabilidade. Para determinar o resultado, definimos um limiar, como 0, 5. Qualquer valor abaixo de 0, 5 é considerado 0, e qualquer valor acima de 0, 5 é considerado 1. A regressão logística é diferente da regressão linear porque é utilizada para encontrar resultados discretos, enquanto a regressão linear é utilizada para encontrar valores contínuos. No caso de regressão logística, a variável dependente (Y) é discreta, e o resultado é 0 ou 1. Isso é um cenário comum em problemas de classificação. Para mais informações sobre regressão logística, por favor, consulte [este tutorial](https://www.datacamp.com/community/tutorials/logistic-regression-scikit-learn). # Igual a zero e regressão lógica O valor das probabilidades é igual a 0 quando a probabilidade é igual a zero. Conversamente, quando a probabilidade se torna 1, o valor das probabilidades é 1 dividido por 0, que será Infinito. No entanto, a probabilidade em si se mantém entre 0 e 1. ## Equação de uma reta (Amor) A equação de uma reta (Y) é igual a Beta 0 + Beta 1 * x. Aqui, Beta 0 é o ponto de interceptação da reta e Beta 1 é a inclinação da reta. Se tomarmos o logaritmo de ambos os lados da equação das probabilidades, ficaria algo assim: ``` log(p / (1 - p)) = log(p) - log(1 - p) = Beta 0 + Beta 1 * x ``` O termo `logístico` é derivado do fato de fazermos isso: tomamos o logaritmo de `p / (1 - p)`. Estas são uma extensão da cálculo de probabilidades que já vimos. ## Encontrando o Valor de p Tomando o exponencial em ambos os lados e resolvendo a equação, obtemos a equação de `p` como segue: ``` p = 1 / (1 + e^(-Beta 0 + Beta 1 * x)) ``` Esta é simplesmente a equação da reta, que é igual a `y = Beta 0 + Beta 1 * x`. Esta também se conhece como função de sigmoide e é a equação da regressão lógica. ## Comparação entre regressão linear e regressão lógica * A regressão linear é usada para solver problemas de regressão, onde podemos prever valores contínuos. * A regressão lógica é usada para solver problemas de classificação, onde precisamos prever valores discretos. * As variáveis resposta no caso de regressão linear são contínuas em natureza, enquanto nas regressões lógicas são discretas ou categoríais em natureza. * A regressão linear ajuda a estimar a variável dependente quando há uma alteração na variável independente. * No caso de regressões lógicas, ajudam a calcular a probabilidade ou a possibilidade de um evento ocorrer. ## Aplicação da regressão lógica * A regressão lógica pode ser usada na previsão do tempo para determinar se vai chover ou não. * Pode ser usada para classificar objetos, tais como classificando imagens de animais. * Na saúde, a regressão lógica pode ser usada para encontrar a taxa de sobrevivência de um paciente. ## Regressão Lógica - Exemplo Vemos um exemplo e vejamos como podemos aplicar a regressão lógica para prever o número mostrado na imagem abaixo. Primeiro, treinamos o nosso modelo com um conjunto de treinamento e em seguida o testamos com nosso conjunto de teste para sabermos à que medição nossa regressão se encontra com uma precisão. Vemos a Matriz de Confusão e o mapa de calor para visualizar a precisão. Aqui está um exemplo de Matriz de Confusão: ``` Real 0 1 2 Previsto 0 34 1 0 1 0 37 2 2 0 0 34 ``` A parte mais importante na Matriz de Confusão é que o modelo será mais preciso quando possuir o maior número nas linhas de diagonal. Neste caso, a diagonal possui 34, 37 e 34, o que significa que 34 imagens de número 0, 37 imagens de número 1 e 34 imagens de número 2 foram previstas corretamente. ## Conclusão Neste exemplo, mostramos como aplicar a regressão lógica para prever o número mostrado na imagem abaixo. Treinamos o nosso modelo com um conjunto de treinamento e testamos-o com nosso conjunto de teste para sabermos à que medição nossa regressão se encontra com uma precisão. Usamos a Matriz de Confusão e o mapa de calor para visualizar a precisão. A precisão do nosso modelo foi aproximadamente de 0, 94, o que é muito bom. # Divisão de Dados para o Modelo de Regressão Logística ## Introdução Este documento descreve como utilizar a regressão logística para identificar imagens, mas antes de entrarmos neles, é preciso primeiro entender o que é a regressão logística e o que é um árvore de decisão. ### Regressão Logística A regressão logística é um modelo estatístico utilizado para problemas de classificação binária, onde a variável dependente pode tomar apenas dois valores (1 ou 0). É parte da biblioteca Scikit-learn. **Preparação de Dados: ** Crie dois conjuntos de dados separados para treino (`X_treino` e `Y_treino`) e teste (`X_teste` e `Y_teste`) do seu modelo de regressão logística. Garanta que os valores de entrada (feature em `X_treino` e `X_teste`) sejam idênticos em ambos os conjuntos. As etiquetas do conjunto de treino (`Y_treino`) são usadas para treinar o modelo. **Treino do Modelo: ** Crie uma instância do modelo de regressão logística, então passe o conjunto de dados de treino (`X_treino` e `Y_treino`) para treinar o modelo. ```python from sklearn. linear_model import LogisticRegression # Crie uma instância de regressão logística regressão_logística = LogisticRegression() # Treina o modelo com o conjunto de dados de treino regressão_logística. fit(X_treino, Y_treino) ``` **Teste do Modelo: ** Depois de treinado o modelo, teste-o com o conjunto de dados de teste para determinarmos sua precisão. ```python # Prevê as etiquetas para o conjunto de dados de teste previsões = regressão_logística. predict(X_teste) ``` Calcule a precisão do modelo usando o método `score`. ```python # Verifique a precisão do modelo precisão = regressão_logística. score(X_teste, Y_teste) print(f'Precisão do modelo: {precisão * 100}%') ``` ### árvore de decisão Uma árvore de decisão é um modelo de tipo árvore usado para tomar decisões, onde cada ramo da árvore representa uma decisão possível ou caminho de ação. Consideremos um exemplo de classificação de vegetais de uma bolsa de compras. 1. É vermelho? * Se sim, o diâmetro é maior que 2? * Se sim, é pimentão. * Se não, é provavelmente batata doce. * Se não, pode ser uma fruta de cor roxa como a batata doce. **Vantagens da árvore de decisão: ** * Simples de compreender e interpretar. * Pouca preparação de dados é necessária. * Trata tanto dados numéricos como categorias. * Pode tratar dados não-lineares. **Desvantagens da árvore de decisão: ** * Overfitting: o modelo captura ruído nos dados, buscando soluções para uma instância específica em detrimento de uma solução geral para todos os dados. * Alta variação: o modelo pode ficar instável devido a pequenas variações nos dados. * Uma árvore de decisão complicada tendence a ter baixo viés, tornando difícil para o modelo trabalhar com dados novos. ## Entropia, Ganho de Informação e Termos da árvore de Decisão ### Entropia A entropia é uma medida da randomness ou imprevisibilidade nos dados. Quanto mais desagregados forem os dados, mais alta será a entropia. ### Ganho de Informação O ganho de informação mede a diminuição da entropia após o conjunto de dados ser dividido. A menor o ganho de informação, mais importante a divisão. ### Nó folha Os nós folhas são os pontos finais da árvore de decisão, levando uma classificação ou decisão. ### Nó de decisão Os nós de decisão têm múltiplos ramos, onde estamos partindo o grupo de dados em bases de diferentes condições. ## Conclusão Neste documento, brevemente explicamos a regressão logística e a árvore de decisão. Entendendo estes modelos pode ajudar em projetos de aprendizado de máquina mais eficientes. Para seguir a leitura, saiba mais sobre entropia, ganho de informação, nós folhas e nós de decisão, pois são conceitos fundamentais na árvore de decisão. Aproveite a sua vivência! --- # Árvores de Decisão: Classificação de Animais e Previsão de Repagamentos de Empréstimos ## Introdução São utilizadas para classificar diferentes tipos de animais baseados em suas características usando uma árvore de decisão. O dataset é sujo e possui alto entropimento. Vamos olhar um conjunto de treinamento e tentar classificar diferentes tipos de animais baseados em sua cor, altura e outras características. ### Encenação do Problema - Classificar diferentes tipos de animais baseados em suas características usando uma árvore de decisão. ### Conjunto de Treinamento Neste caso, temos os seguintes animais: - Elefantes - Girafas - Macacos - Tigres Cada animal tem cores e formas diferentes. Vamos ver como podemos dividir os dados. #### Divisão dos Dados Para dividir os dados, precisamos estabelecer condições que maximizem o ganho de informação. O ganho de informação é uma medida da redução do entropimento após a divisão. A fórmula para o entropimento é: ``` Entropismo = - Σ (P(i) * log₂(P(i))) ``` onde: - Σ é a soma da expressão seguinte por todos os tipos de animais `i` - `P(i)` é a porcentagem de um específico animal `i` Calculemos o entropimento para o conjunto de dados corrente: `Entropismo = - [(3/8) * log₂(3/8) + (2/8) * log₂(2/8) + (1/8) * log₂(1/8) + (2/8) * log₂(2/8)]` Entrando com estes valores em um calculador, obtemos um valor de entropismo aproximadamente 0, 571. #### Escolha da Condição Para escolher a condição que nos dá o maior ganho, vamos dividir os dados usando cada condição e encontrar a diferença nos valores de entropismo após a divisão. A condição que nos dá o melhor ganho será usada para fazer a primeira divisão. Neste caso, a condição que nos dá o maior ganho é a cor amarela. #### Construção da Árvore de Decisão Agora que temos a condição, construímos uma árvore de decisão ao dividir os dados baseados na cor amarela. Se a condição é verdadeira (o animal é amarelo), o grupo vai para a branda direita. Se a condição é falsa, vai para a branda esquerda. Após a divisão, o entropismo diminuiu consideravelmente, mas ainda é necessária mais divisão para alcançar um valor de entropismo de zero. tomamos a decisão de dividir as duas ramificações usando a altura como a condição, pois cada ramificação agora contém animais de rótulos únicos. Neste caso, o entropismo atingiu seu valor mínimo. #### Previsão de Repagamentos de Empréstimos (Seção Bônus) Nesta seção, usamos o algoritmo da árvore de decisão em Python para prever o repagamento de empréstimos para clientes. Geramos um enunciado para predizer o repagamento de empréstimos e aplicamos o algoritmo da árvore de decisão em Python. Primeiro, precisamos importar as bibliotecas necessárias e carregar nosso dado: ``` import numpy as np import pandas as pd from sklearn. model_selection import train_test_split from sklearn. tree import DecisionTreeClassifier from sklearn. metrics import accuracy_score # Carregar e renomear o arquivo de dado dados = pd. read_csv('nome_arquivo_completo') ``` Agora, dividimos os dados em treinamento e teste e treinamos o classificador de árvore de decisão: ``` # Dividir os dados X = dados. drop('alvo', eixo=1) y = dados['alvo'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, tamanho_dos_testes=0, 2, semente=42) # Treinar o classificador de árvore de decisão clf = DecisionTreeClassifier() clf. treinar(X_treino, y_treino) ``` Finalmente, fazemos previsões e calculamos a acurácia de nossa modelo: ``` # Fazer previsões y_previsoes = clf. predizer(X_teste) # Calcular acurácia acurácia = accuracy_score(y_teste, y_previsões) print("Acurácia: ", acurácia) ``` Assim, encontramos uma árvore de decisão para classificação de animais e a previsão de repagamentos de empréstimos em Python. Esperemos que gostas! # Previsão de Padrão de Empréstimo usando Árvore de Decisão e Floresta Aleatória ## Introdução Este tutorial demonstra o uso de Árvore de Decisão e Floresta Aleatória para prever se um solicitante de empréstimo vai padrão ou não. ## Explorando os Dados Comecemos por facilitar uma falha mais detalhada nos dados nos quais estamos trabalhando. Temos um conjunto de dados contendo 1. 000 linhas e 5 colunas, incluindo informações como o pagto inicial, o último pagto, pontuação de crédito, número de casa e mais. ``` a frente e colocou uma etiqueta para uma impressão de trabalho aqui dos dados apenas uma impressão simples de estrutura de dados e quando executamos esse e permita que nos apelemos a mais perto dele. . . ``` Nosso conjunto de dados, o pagto inicial está na primeira posição, e vai até o número de casa que está na quinta posição. ## Árvore de Decisão No próximo passo, construiremos e treinarámos nossa árvore de decisão. Para fazer isso, precisamos separar os dados em dois grupos: um para treinamento e outro para teste. ``` . . . sabei que vamos separar os dados. . . e então temos alguns dados na web para testá-lo para ver como boa nossa modelo é. . . ``` Criaremos e treinarámos classificador de árvore de decisão especificado como `clf_entropy`. ``` . . . finalmente precisamos ter ajustado como isso temos nossa clf_entropy que criamos e temos que ajustá-lo então vamos trabalhar com clf_entropy que criamos e ajustamos. . . ``` Agora que criamos e treinamos nosso classificador da árvore de decisão, vamos aplicá-lo e ver o que isso parece: ``` . . . vamos adiante e aplicá-lo e ver o que isso parece. . . vamos ir adiante e fazer uma predição e ver o que isso parece vamos colocar nosso código preditivo aqui. . . ``` ## Acurácia Para avaliar a acurácia de nosso modelo, vamos usar a função score de acurácia do módulo sklearn. metrics. ``` . . . vamos avançar para a próxima etapa vamos tentar tentar ajustar debris justa quão boa modelo temos. . . vamos ir adiante e colar esta aqui e dou um pouco mais de zoom aqui. . . ``` ## Floresta Aleatória A Floresta Aleatória é um algoritmo que funciona construindo várias árvores de decisão, e a decisão final do Floresta Aleatória é escolhida pelo maior número de árvores. ``` . . . por que floresta aleatória Para sempre entender porquê usamos este ferramento sobre outros, o que são benefícios aqui e portanto com a floresta aleatória o primeiro benefício é que não há sobreposição. . . ``` Benefícios da Floresta Aleatória incluem: - Não há sobreposição - Melhor eficiência em grandes conjuntos de dados - Trata dados faltantes bem Em uma floresta aleatória, se uma grande proporção dos dados faltar, ela pode manter a precisão alta fazendo-o construindo várias árvores de decisão separadamente e estimando os dados faltantes de forma efetiva. ## Conclusão Em conclusão, criamos um modelo usando tanto Árvore de Decisão e Floresta Aleatória para prever se um solicitante de empréstimo vai padrão ou não. Usando estes algoritmos de aprendizado de máquina, podemos ajudar o banco a fazer uma decisão informada ao aprová-los pedidos de empréstimo e a estimar a lucratividade com mais precisão. Fique atento para mais tutoriais sobre aplicações de aprendizado de máquina! Formato em português de Portugal com Markdown: Árvore de Decisão para Classificação ===================================== Uma árvore de decisão é uma ferramenta poderosa para problemas de classificação, principalmente quando o conjunto de dados é complexo e as relações entre variáveis não são mais claras. Este guia fornecerá uma introdução à árvore de decisão, se centrando nos conceitos e termos centrais para o entendimento dela. **1. Entropia** --------------- A Entropia é uma medida de imprevisibilidade ou aleatoriedade em um conjunto de dados. Todas as decisões feitas na árvore de decisão são baseadas na entropia. Uma explicação dos outros termos seguirá enquanto descenderemos pela árvore. Entropia Alta: Na presença de alta entropia, a árvore de decisão não será capaz de prever se um objeto pertence a uma classe ou à outra com certeza. Para reduzir entropia, o conjunto de dados precisa ser dividido em subconjuntos menores e mais manejáveis. **2. Ganho de Informação** -------------------------- O Ganho de Informação mede a redução da entropia após a divisão do conjunto de dados. Idealmente, o processo de divisão visa maximizar o Ganho de Informação, resultando em uma classificação mais precisa de objetos baseada na redução da entropia dos subconjuntos. ### Exemplo Com um conjunto de frutas, existiria uma alta entropia devido aos vários possíveis frutas (jamais de macas, uvas e limas). Quando o dado é dividido (por exemplo, com base no colorido), a entropia de cada subconjunto diminui, permitindo classificar facilmente os objetos em questão. ### Cálculo do Ganho de Informação A fórmula para o Ganho de Informação é: ``` Ganho de Informação = Entropia do conjunto pai - (E1 * Probabilidade de conjunto 1 + E2 * Probabilidade de conjunto 2) ``` ### Exemplo Simples de Classificação de Frutas Suponha que temos uma bodega de frutas e que desejamos classificá-las com base em seu colorido e outras características: - Entropia inicial alta, pois o conjunto de dados está "misturado” com várias possibilidades (por exemplo, macas, uvas, limões). - Use o Ganho de Informação para determinar a condição de divisão óptima (por exemplo, colorido ou diâmetro). - Divida os dados com base na condição mais óptima disponível. - Por exemplo, se a condición "diâmetro ≥ 3" for a que fornecer o maior ganho, podemos dividir o conjunto tal que todos os objetos com diâmetro ≥ 3 pertencerão a um conjunto, e aqueles com diâmetro < 3 pertencerão a outro conjunto. - Proceeda o processo de divisão em cada subconjunto, com o objetivo de reduzir a entropia até que uma decisão decisa (nó folha) seja alcançada. O nó-folha transporta a decisão ou classificação, enquanto o nó-decisão é o ponto na qual o conjunto de dados se divide em várias direções. O nó-decisão tem dois ou mais ramificando, baseado em algum medida ou informação proporcionalizada à árvore, e o nó-raiz é o nó-decisão superior ou ponto de construção de árvore à construir. **Estrutura da árvore** Ao construir uma árvore de decisão, certifique-se de: - Cada item tem uma label clara e distinta (por exemplo, colorido da fruta, tipo de fruta). - Exista uma hierarquia de títulos, usando `#` para headings principais e `##` para headings secundários. - Use pontos (`-` ou `*`) para criar itens de lista. - Faça um bom uso de blocos de citações `>` para citações, e de citações se as citas forem importantes. - Preserve todas as URLs e referências existentes. - Crie seções estruturadas e lógica organizadas para facilitar a leitura e entendimento do texto. `: )` ## SVM com Dados em Dois Dimensionais ## Introdução A questão que surpreenderá nosso conjunto de dados será discutida aqui, mas em vez de se parecer como isto: ``` ``` O estereótipo que nosso conjunto de dados nos surpreenderá, mas se parecer com isto: ``` ```markdown Em vez disso, veja uma visualização mais organizada de nosso conjunto de dados como isto: ``` ``` Uma questão surpreenderá será nosso conjunto de dados. Porém, se organizado de forma mais clara, como se segue: ``` Nosso conjunto de dados apresenta dois conjuntos de dados, porém um ocorre uma medida no centro do outro conjunto. Você pode ver aqui onde temos o azul e amarelo e, em seguida, o azul novamente no outro lado de nossa linha de dados. Neste conjunto de dados, não podemos utilizar um hiperplano. Quando vimos dados nesta forma, devemos nos mudar da visão em 1D para uma visão em 2D de nosso conjunto de dados e, para a transformação, utilizamos um método chamado função de kernel. A função de kernel irá transferir o n-dimensional de entrada para uma saída 2D, como podemos ver nesta imagem aqui, a transformação de n-dimensional para 2D faz com que seja extremamente fácil fazer uma reta entre os dois conjuntos de dados. ``` Nosso conjunto de dados mais complexo aparece aqui, como podemos ver: ``` Como representar um SVM para este tipo de conjunto de dados: ```diff Como fazer um SVM para este tipo de conjunto de dados como podemos ver aqui, temos um conjunto de dados em duas dimensões onde os dados estão no meio rodeados pelo dados amarelo fora. Neste caso, separaremos as duas classes, nossos conjuntos de dados e, se desenharmos uma reta no meio, é óbvio que ela não é uma hiperplano ótima lá. Para ser feito isso, precisamos transferir o 2D para um array 3D e quando traduzimos para um array de três dimensões utilizando o kernel podemos ver onde podemos colocar uma hiperplano facilmente através dele e separar facilmente os dados. ``` Usando a transformação para o array 3D do conjunto de dados: ``` Para representar um SVM para este tipo de conjunto de dados: Podemos separar as duas classes, nossos dados sem asterisco e, se desenharmos uma reta no meio, é óbvio que ela não é uma hiperplano ótima lá. Para causar isso, precisamos de transferir o 2D para um array 3D e quando traduzimos para um array de três dimensões utilizando o kernel, podemos ver onde podemos colocar uma hiperplano facilmente através dele e separar facilmente os dados. ``` ## Vantagens do SVM Uma das vantagens do SVM é sua capacidade de lidar com altas dimensões de entrada, conhecida como "vácuo da dimensão". Os vetores de documentos espaçados são um termo-chave para o SVM. ``` Uma vantagem do SVM é a sua capacidade de lidar com alta dimensão de entrada, conhecida como "vácuo da dimensão". Os vetores de documentos espaçados são um dos termos-chave para o SVM. ``` Neste caso, dividimos as palavras e documentos em tokenizados, o que nos permite rodar nossos algoritmos de aprendizagem de máquina deles. Eu tenho visto coisas se movendo até 2, 4 milhões de diferentes token. ``` Isto é uma vantagem do SVM, sua capacidade de lidar com alta dimensão de entrada, conhecida como "vácuo da dimensão". Em nosso caso, dividimos as palavras e documentos em tokenizados, o que nos permite rodar nossos algoritmos de aprendizagem de máquina dos dados. Eu tenho visto coisas se movendo até 2, 4 milhões de diferentes token. ``` Também possuímos um parâmetro de regularização, conhecido como o parâmetro de garantia ou Lambda é um parâmetro que ajuda a determinar se haverá uma tendência para viúda ou sobreformação do dado, se a tendência será excessiva olho para o alto ou se agificará muito para o baixo. O SVM é natural para evitar problemas de sobreformação e viúda que vimos em vários outros algoritmos. ``` O parâmetro de regularização, conhecido como o Parâmetro de garantia ou Lambda, é um parâmetro que ajuda a determinar se haverá uma tendência para viúda ou sobreformação do dado, se a tendência será excessiva e obcecada por alto ou se agrificará muito para baixo. O SVM é natural para evitar problemas de sobreformação e viúda que vimos em vários outros algoritmos. ``` Estas três vantagens do SVM tornam uma poderosa ferramenta aditiva para seu repertório de ferramentas de aprendizagem de máquina. ``` Esta vantagem do SVM, sua capacidade de lidar com alta dimensão de entrada, conhecida como "vácuo da dimensão", torna-o uma poderosa ferramenta aditiva para seu repertório de ferramentas de aprendizagem de máquina. ``` Agora que prometemos o uso de um estudo de caso, vamos iniciar alguns exemplos em Python Programming. Portanto, entraremos em um problema de declaração e começaremos com o zoológico. No zoológico, temos os familiares indo ao zoológico e tem o filho novo indo "pai, é um grupo de crocodilo ou aligátor? " ``` Agora que prometemos o uso de um caso de estudo, entraremos em alguns exemplos em Python Programming. Portanto, entraremos em um problema de declaração e começaremos com o zoológico. Em um zoológico temos os familiares indo ao zoológico e o filho novo indo "pai, é um grupo de crocodilo ou aligátor? " ``` No entanto, isso é complicatedo, teria que diferenciar: entenda que isto é fácil em vários algoritmos e conjuntos de dados para customização. ``` No entanto, isso é complicado, teria que diferenciar: entenda que isto é fácil com vários algoritmos e conjuntos de dados para customização. ``` Neste exemplo, utilizaremos apenas um para ilustrar e é comumente utilizado em vários outros algoritmos e conjuntos de dados. ``` Neste exemplo, utilizaremos apenas um para ilustrar e é comumente utilizado em vários outros algoritmos e conjuntos de dados. ``` Agora em Python, no nosso script estaremos usando o seguinte problema de declaração e começaremos com o zoológico. No zoológico, temos os familiares indo ao zoológico e o filho novo indo "pai, é um grupo de crocodilo ou aligátor? " Isso é possível solucionar com o SVM, além das outras formas de declarar: ``` Em nosso uso, podemos solucionar este problema com o SVM, além das outras formas de fazer a distinção: ``` A diferença é que neste caso, utilizamos o SVM para gerar o rótulo do dominante e o aligátor. Em nosso caso, o supeiro cria "pai" para que possamos passar os dados para o SVM "crocodilo" e "aligátor", para automatizar a diferença. ``` Na Iplication, podemos gerar rótulos de dominante e aligátor com SVM, e neste caso o supeiro cria "pai" para que possamos passar dados para o SVM "crocodilo" e "aligátor", para automatizar a diferença. ``` Observe que neste exemplo, não usamos medidas de dados reais para os dados. Estamos apenas usando isto para ilustrar a implementação e o uso de data e dar uma breve explicação sobre o funcionamento do SVM é comum em vários algoritmos e conjuntos de dados para customização. ``` Observe que neste exemplo, não usamos medidas de dados reais para os dados. Estamos apenas usando isto para ilustrar a implementação e fornecer uma breve explicação sobre o funcionamento do SVM. Isso é comum em vários algoritmos e conjuntos de dados para personalização. ``` Antes de começarmos, veja o código de exemplo em Python para o SVM, onde a função de kernel em linha 6 definida como linear para função de kernel está na linha 5: ``` Primeiro, veja este código em Python: # Python - SVM com Linha Reta from sklearn import svm import numpy as np X = np. array([ [5. 0, 1. 0], [6. 5, 1. 5], [7. 0, 2. 0], [5. 5, 2. 5] ]). T y = np. array([0, 1, 0, 1]) X_3D = np. c_[X, np. ones((X. shape[0], 1))] K = np. zeros((X_3D. shape[0], X_3D. shape[0])) for i in xrange(X_3D. shape[0]): for j in xrange(X_3D. shape[0]): K[i][j] = np. exp(-np. linalg. norm(X_3D[i] - X_3D[j])**2 / 0. 1) clf = svm. SVC(kernel = 'linear') clf. fit(X_3D, y) ``` Você pode testar este código por si mesmo usando os dados fornecidos neste exemplo. ``` Você pode facilmente testar este código por si mesmo usando os dados fornecidos neste exemplo, com os novos dados que lhe fornecidos. ``` Espero que este código seja útil. Se tiver dúvidas, sinta-se à vontade para me perguntar! ``` Espero que este código de exemplo seja útil. Se tiver dúvidas ou precisar de ajuda, entre em contato comigo! ``` # Visualização e Explicação de Classificadores Vetor de Soma (SVM) ## Introdução Neste guia, exploraremos Support Vector Machines (SVM) e visualizaremos os seus resultados usando o Python. Trabalharemos com SVM para separar duas classes de dados, no caso, lagartixas e crocodilos. ## Passos para recriar o modelo 1. **Preparação de Dados** Criaremos nossos dados originais que são idênticos à primeira parte da configuração, e explicarei por que refezemos isso e como não o fazer isso. 2. **Modificação de Dados** Após criarmos os nossos dados originais, adicionaremos as linhas, verificaremos como se assemelham, e as configuraremos de acordo com os requisitos. 3. **Visualização de Dados** Plotaremos todos os dados e apresentaremos uma gráfica com os vectores de apoio e hiperplano que viemos anteriormente durante a teoria exploring-se trás deste SVM. ## Visão geral do código Temos nossos pontos de dados etiquetados em três diferentes áreas, e reformamos-os para o SVM. Em seguida, criamos uma grade de meshi usando comandos de NumPy. Em seguida, criamos um gráfico de mentre usando nossos dados etiquetados. Finalmente, plotamos nossos vectores de apoio usando um gráfico de scatter e configuramos-os para aparecer como linhas onduladas. --- ```python # Modificar Dados . . . (Código aqui para modificar os dados) # Criar Mesh Grid . . . (Código aqui para criar a grade de meshi) # Criar Gráfico de contorno . . . (Código aqui para criar o gráfico de contorno) # Plotar Veictores de Apoio . . . (Código aqui para plotar os vectores de apoio) ``` --- ## Entenda o Código - `plot_svm()` função para criar o SVM, gráfico de scatter e gráfico de contorno. - Utilização do NumPy `meshgrid()` para criar uma grade de dados pontos. - `clf. decision_function()` para encontrar os vectores de apoio e o hipérplano. - `contourf()` para criar gráficos de contorno coloridos, e `scatter()` para adicionar pontos de dados à plotagem. ## Notas adicionais - Neste exemplo, reejecutamos o mesmo código duas vezes para obter o plot desejado, já que a função `plot_show()` apagará a saída do plot e executaremos-a outra vez para visualizar os dados. Você pode omitir as primeiras quatro linhas de código em cada execução para otimização de propósito. ## Algoritmo K-Vizinhos Mais Proximos (KNN) ### Escolha do Fator K O Algoritmo K-Vizinhos Mais Proximos (KNN) é baseado na similaridade de características. A escolha do valor correto de K é um processo chamado ajuste de parâmetros, e é essencial para uma melhor acurácia. #### Explicação * Com `k = 3`, podemos classificar um ponto de dados desconhecido como um quadrado ou não (neste caso, um triângulo). Verificamos os três vizinhos mais próximos. * Se `k = 3`, classificaríamos o ponto desconhecido como um quadrado. * Se `k = 7`, classificaríamos o ponto como um triângulo. * A escolha de K depende da distribuição dos dados. Com variação de K, a classificação do mesmo ponto pode mudar de maneira drástica. #### Escolha de K * O método mais comum para escolher K é utilizar a raiz quadrada de `n`, onde `n` é o total de valores. * Se `n` for par, um valor impar de K é preferível para evitar uma balança igual entre fatores diferentes. ### Quando utilizar o KNN * O KNN pode ser utilizado quando o dado está etiquetado. * Ele funciona bem com conjuntos de dados pequenos a médios. * O KNN é um algoritmo de aprendizado por truque, portanto, não é adequado para conjuntos de dados grandes e complexos. ### Exemplo de KNN em Python Vamos dar uma olhada em um exemplo de KNN em Python usando o caso de uso de "diabetes". ```python # Importar bibliotecas import pandas as pd 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 os dados data = pd. read_csv('diabetes. csv') # Dividir os dados em conjuntos de treino e teste X_treino, X_teste, y_treino, y_teste = train_test_split(data. drop('Outcome', axis=1), data['Outcome'], test_size=0, 3, random_state=42) # Pre-processamento e normalização dos dados scaler = StandardScaler() X_treino = scaler. fit_transform(X_treino) X_teste = scaler. transform(X_teste) # Definir o modelo do KNN e ajustá-lo aos dados modelo = KNeighborsClassifier(n_neighbors=3) modelo. fit(X_treino, y_treino) # Predizer o resultado dos dados de teste y_previsão = modelo. predict(X_teste) # Avaliar o modelo print("Matriz de confusão: ") print(confusion_matrix(y_teste, y_previsão)) print("Score F1: ", f1_score(y_teste, y_previsão)) print("Acurácia: ", accuracy_score(y_teste, y_previsão)) ``` Este exemplo mostra como carregar, pre-processar e treinar um modelo KNN em um conjunto de dados pequeno a médio, e depois avaliar sua performance utilizando métricas como a matriz de confusão, Score F1 e Acurácia. Para facilitar a compreensão deste conteúdo em português de Portugal, um resumo breve é apresentado abaixo. Caso deseje a tradução exata do texto em Markdown, poderá encontrar o resultado detalhado seguindo os comandos ditados no item 2 da solicitação original. ### Resumo do Texto 1. **Preparação dos Dados para Predição de Diabetes** - **Visão geral** - Neste passo, será feita a preparação dos dados para a predição de diabetes. - **Substituição dos valores nulos por `numpy. nan`** - É criada uma lista de colunas necessárias para transformação. - Os valores zeros são substituídos por `numpy. nan`. - **Cálculo da média** - É calculada a média dos dados para as colunas selecionadas. - Os valores `numpy. nan` são substituídos pelas médias de suas respectivas colunas. - **Seleção de linhas para dados de treino e teste** - Dados são divididos em dados de treino e teste. - **Escalonamento dos dados** - Os dados são normalizados. - **Definição do modelo e adaptação ao conjunto de treino** - Criou-se o classificador de K Verdades Mais Proximas (KNN) e foi adaptado ao conjunto de treino. - **Previsão dos dados de teste** - Os resultados da predição para os dados de teste foram obtidos. - **Avaliação do modelo com matriz de confusão** - O modelo foi avaliado usando a matriz de confusão. 2. **Código comandos** ``` # Bibliotecas import numpy as np import pandas as pd from sklearn. model_selection import train_test_split from sklearn. preprocessing import StandardScaler from sklearn. neighbors import KNeighborsClassifier from sklearn. metrics import confusion_matrix # Lendo o conjunto de dados Diabetes dataset = pd. read_csv("pima-indians-diabetes. csv") # Seleção de colunas que não podem ter valor nulo colunas_sem_zeros = ['glucose', 'pressao_sanguineia', 'espessura_da_pele'] # Substituição de valores nulos por 'nan' dataset. replace(0, np. nan, inplace=True) # Calculando a média dos dados a partir das colunas selecionadas dataset[colunas_sem_zeros] = dataset[colunas_sem_zeros]. fillna(dataset[colunas_sem_zeros]. mean()) # Seleção dos conjuntos de dados de forma a criar um conjunto de treino com 80% e um conjunto de teste com 20% X = dataset. drop('classe', axis=1) y = dataset['classe'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=0) # Normalização dos dados sc = StandardScaler() X_treino_normalizado = sc. fit_transform(X_treino) X_teste_normalizado = sc. transform(X_teste) # Criando o classificador e adaptando-o ao conjunto de treino classificador = KNeighborsClassifier(n_neighbors=11, p=2, metric='euclidean') classificador. fit(X_treino_normalizado, y_treino) # Predizendo a classe para os dados de teste y_pred_teste = classificador. predict(X_teste_normalizado) # Avaliando o classificador com matriz de confusão matriz_de_confusao = confusion_matrix(y_teste, y_pred_teste) ``` # Algoritmo de Clustering K-Means Este documento discute o algoritmo de Clustering K-Means, um algoritmo de aprendizado não supervisionado que agrupa dados sem informação etiquetada. ## Visão Geral O Clustering K-Means é um método de partições de dados em clusters distintos, em que cada cluster contém objetos similares em natureza ou características. O termo 'k' denota o número de clusters a serem criados. Neste algoritmo, k deve ser definido pelo usuário. ### Entendendo 'k' O valor de `k` determina o número de clusters a serem formados. Por exemplo, se `k` for igual a 2, haverá dois clusters; se `k` for igual a 3, haverá três clusters, e assim por diante. `k` corresponde, essencialmente, ao número de grupos ou clusters pretendidos para os dados. ### Achar o Valor Óptimo de k Embora especificarmos o número de clusters, existe uma forma de determinarmos o melhor ou ótimo valor de k para um conjunto de dados determinado. Discutiremos esse assunto detalhadamente mais tarde. ### Exemplo: Clustering K-Means em Críquete O Clustering K-Means é utilizado em múltiplos cenários. Considere um exemplo de agrupamento de jogadores de críquete. Suponha estar a receber dados de vários jogadores de várias regiões, e estes dados incluem informações sobre runs feitos e wickets capturados. Nosso objetivo é agrupar estes dados em bateadores e arremessadores. #### Análise de Dados Neste caso, teremos principalmente duas características: runs e wickets. Geralmente, os arremessadores capturam wickets, e os bateadores marcam runs. Há algumas excepções, mas não nos pondemos a centrar nos mesmos por agora. #### Plotando os Dados Supondo que os dados sejam plotados, queremos que os clusters se assemelhem ao segundo diagrama apresentado abaixo: ``` ________ ________ / \ / \ Altos runs \--------/ Baixos runs \ / / ________ ________ ``` Neste exemplo, teremos um cluster que consiste em jogadores com altos runs (bateadores), e outro cluster que contém jogadores com muitos wickets (arremessadores). ### Como Funciona o K-Means Clustering 1. **Inicialização: ** No Clustering K-Means, o algoritmo começa por atribuir k centróides iniciais ao acaso. Estes centróides atuam como pontos iniciais para nossos clusters. Atenção: estes centróides não são necessariamente os "ideais"; eles são apenas pontos iniciais vagos sorteados. 2. **Atribuição de pontos: ** Em seguida, o algoritmo calcula a distância de cada ponto de dado em relação a cada centroide. O ponto de dados é então atribuído ao centroide com maior distância. 3. **Recálculo de Centróides: ** Após os pontos de dados terem sido atribuídos aos seus respectivos centróides, é necessário agora determinar novos centróides para cada cluster. Estes são, efectivamente, as posições centrais do dataset dentro de cada cluster. Os novos centróides são então usados para realocar os centróides iniciais iniciais. 4. **Inação: ** Este processo é repetido até que os centróides não necessitem serem recálculados ou realocados (i. e. , até que o algoritmo converge). O que isso significa que nossa algoritmo já tem convergido, e agora temos os clusters finais. ## Resumo Nesta sessão, você aprenderá sobre os tipos de clustering, o Clustering K-Means, suas aplicações, e diferentes medidas de distâncias usadas no Clustering K-Means. Discutiremos o Clustering K-Means e os seus princípios de funcionamento em detalhe. ### Tipos de Clustering O clustering pode ser principalmente dividido em duas categorias: 1. **Clustering Hierárquico: ** - Clustering Agrupador - Clustering Divisor 2. **Clustering Particional: ** - Clustering K-Means - Clustering Fuzzy C-Means Em seguida, discutiremos Clustering K-Means. ### Medidas de Distâncias no Clustering K-Means O Clustering K-Means é baseado nas medidas de distância para determinar a semelhança entre objetos. Algumas distâncias medidas comumente utilizadas são: - Distância Euclidiana - Distância de Manhattan - Distância Squared Euclidiana Medida - Distância Cosina Medida # Álgoritmo de agrupamento K-Means ## Visão geral Este documento explica o Álgoritmo de Agrupamento K-Means, um método popular utilizado para agrupar pontos de dados baseados na sua semelhança. ### Como funciona 1. **Inicialização**: Escolha K centróides iniciais aleatoriamente. Esses centróides não são os centróides reais, mas apenas pontos usados como um ponto de partida para o algoritmo. 2. **Atribuição de pontos de dados**: Calcule a distância de cada ponto de dados para cada centroide. Atribua cada ponto de dados ao centroide que está mais próximo dele. 3. **Calculo dos centróides reais**: Calcule o centroide real para cada grupo, que é a posição média de todos os pontos de dados atribuídos a esse centroide. 4. **Inovação**: Repita etapas 2 e 3 até que os centróides parmem ou haja poucas mudanças. Nesse momento, o algoritmo já se converteu e temos os nossos grupos finais. ### Método Elbow para determinar o número de clusters (K) ótimo 1. Calcule o soma das distâncias quadráticas dentro (WSS) para vários valores de K (clusters). O WSS é uma medida da dispersão dos pontos dentro de cada grupo. 2. Plote o WSS contra o número de clusters (K) num gráfico. 3. Observe que, ao aumentar o número de clusters, o WSS inicialmente diminui rapidamente. No entanto, após um ponto específico, a diminuição se torna mais lenta. 4. Escolha o valor de K ótimo no "torno" do gráfico, onde a taxa de diminuição se torna extremamente lenta. ### Atribuição de pontos de dados a centróides escolhidos Vejamos um exemplo: temos um conjunto de dados de uma loja de supermercado e queremos saber quantos clusters ele deveria ser distribuído usando o Método Elbow. Com K = 1: O valor inicial de WSS será alto porque todos os pontos de dados são dispersos. Como dividímos em mais clusters, WSS diminui drasticamente, especialmente quando introduzimos um segundo cluster. Após isso, a taxa de diminuição não será tão alta, mas continua a diminuir. Dessa forma, podemos inferir que o valor ótimo de K deve ser 2 ou 3, com um máximo de 4 clusters. Em seguida, aumentando o número de clusters não altera o WSS drasticamente porque se torna estabilizado. ### Atribuição de centróides iniciais e reassociação de pontos de dados 1. Escolha aleatoriamente K centróides e atribua-os aos nossos pontos de dados. 2. Calcule o centroide real para cada grupo, que é a posição média de todos os pontos de dados atribuídos a esse centroide. 3. Recalcule a distância de cada ponto de dados dos centróides reais. Alguns pontos de dados poderão ser reatribuídos se seus centróides atribuídos não forem mais os mais próximos. Esse processo iterativo continua até que os centróides parmem ou converjam. ## Álgoritmo de Agrupamento K-Means em Python 1. Importe bibliotecas necessárias, como numpy, matplotlib, e outras. 2. Carregue dados de um arquivo ou banco de dados. 3. Visualize os dados usando scatter plots para ver as relações entre os pontos de dados. 4. Aplique o Álgoritmo de Agrupamento K-Means, iterando até que se converta. 5. Imprima os grupos finais e os seus centróides. ### Cenário possível: otimiz # Agrupamento K-Means em Python Notebook Este documento fornece um exemplo de como usar agrupamento K-Means em Notebook de Python. Iniciaremos primeiramente demonstrando como gerar dados fictícios e os agrupar usando a biblioteca scikit-learn. depois disso, iremos implementar um algoritmo de agrupamento K-Means básico e mostraremos alguns exemplos reais do uso do agrupamento K-Means. ## Gerando e Agrupando Dados Fictícios Comecemos por importar as bibliotecas necessárias, como numpy e matplotlib. ```python import numpy as np import matplotlib. pyplot as plt from sklearn. datasets import make_blobs from sklearn. cluster import KMeans ``` Agora, criaremos grumos, que são semelhantes a aglomerados. Este é uma recurso útil disponível na scikit-learn que cria aglomerados de conjuntos de dados. ```python # criando aglomerados únicos com 4 aglomerados centroides, rótulos_verdadeiros = make_blobs(n_amostras=300, centers=4, random_state=0, cluster_std=1. 0) ``` Agora, iremos executar a função de agrupamento K-Means padrão fornecida pela scikit-learn. ```python # criando uma instância de agrupamento K-Means e especificando o número de aglomerados (K) kmeans = KMeans(n_clusters=4) # ajustando o modelo (aprendizado) kmeans. fit(centroides) # previsão de rótulos de aglomerado para cada observação rótulos_pred = kmeans. labels_ ``` Por fim, podemos visualizar os aglomerados usando matplotlib. ```python # plotando os aglomerados plt. figure(figsize=(8, 6)) por cada i, c em enumerar(np. únicos(rótulos_verdadeiros)): plt. scattered(centroides[rótulos_verdadeiros == c, 0], centroides[rótulos_verdadeiros == c, 1], label=f"Aglomerado {c}", cmap="Duras") plt. title("Agrupamento K-Means em Dados Fictícios") plt. show() ``` ## Implementando Agrupamento K-Means Aqui está uma implementação básica do algoritmo de agrupamento K-Means. ```python def agrupamento_kmeans(dados, k, max_iter=300): centroides = dados[np. aleatório. escolha(dados. shape[0], k, replace=False)] histórico = [] para em cada _ em range(max_iter): rótulos_cluster = np. argsort(np. min(np. linalg. norm(dados - centroides, eixo=1), eixo=1)) novos_centroides = np. mean(dados[rótulos_cluster], eixo=0) se np. allclose(centroides, novos_centroides, atol=0. 01, rtol=0. 01): break centroides = novos_centroides histórico. append(centroides) retorne centroides, histórico ``` Você pode utilizar esta implementação conhecendo os dados, o número de aglomerados (k) e o número máximo de iterações (max\_iter). ```python # utilizando a implementação de agrupamento K-Means centroides, histórico = agrupamento_kmeans(centroides, 4) ``` ## Usando Agrupamento K-Means em Cenários Reais Nesta seção, iremos ver exemplos de como o agrupamento K-Means pode ser usado em cenários reais. Por exemplo, podemos utilizar ele para compressão de cores em processamento de imagens. ```python # compressão de cores usando o agrupamento K-Means # este exemplo não é mostrado aqui por razões de brevidade ``` Aqui está um link para o exemplo completo com a parte de compressão de cores: [Agrupamento K-Means para Segmentação de Imagens](https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_color_compression.html) Assim é! Esperamos que este documento ajude você a melhor compreender o agrupamento K-Means em Python Notebook. Sinta-se à vontade para fazer melhorias, acrescentar mais exemplos e compartilhar seu conhecimento com a comunidade. # Compressão de Cores Utilizando Clustering K-Means Aprenda a compressar imagens reduzindo milhões de cores para apenas 16 grupos utilizando o Clustering K-Means nesta explicação. Vamos utilizar a versão em mini-lote do Clustering K-Means, que processa dados em pequenas porções, para obter os mesmos resultados do Clustering K-Means regular, mas com um tempo de processamento mais rápido devido ao volume enorme de dados. ## Explicando o processo 1. Dado uma imagem original com várias cores, utilizamos o Clustering K-Means para criar 16 grupos para as cores variáveis. 2. Dado que processar grandes quantidades de dados – no caso, milhões de cores – pode ser demorado, utilizaremos a versão em mini-lote do Clustering K-Means, que processa os dados em pequenas porções. 3. Este abordagem resultará nos mesmos resultados do método de Clustering K-Means regular, mas terá um tempo de execução mais rápido devido ao processamento dos dados em pequenas porções. 4. Após aplicar as novas cores à imagem, podemos comparar e visualizar a imagem original e a imagem compressa para uma melhor compreensão dos resultados. ## Exemplo 1 - Imagem de Flores Aqui, aplicamos a técnica de compressão de cores utilizando o Clustering K-Means a uma imagem de flores. - Imagem Original: `. . . ` - Nova Imagem com Cores Comprimidas: `. . . ` Comparando as duas imagens, é evidente que pouca informação foi perdida, pois a informação de alto nível foi mantida. A imagem pode ser renderizada em um dispositivo menos sofisticado devido à compressão. ## Exemplo 2 - Palácio de Verão na China Neste exemplo, utilizamos a mesma técnica numa imagem de alta definição de cor do Palácio de Verão na China, com milhões de cores e profundidade tridimensional. - Imagem Original: `. . . ` - Nova Imagem com Cores Comprimidas (16 cores): `. . . ` Com a ligeira deterioração da qualidade da imagem, é um compromisso necessário para permitir que dispositivos menos sofisticados manipulem imagens de alta densidade. ## Conclusão Neste tutorial, demonstramos dois exemplos de compressão de cores utilizando o Clustering K-Means e também fornecemos uma visão geral de como implementar o Clustering K-Means utilizando Python. ### Agenda 1. Introdução aos Dados e seus Tipos 2. Dive no Linear Algebra e suas Concepções 3. Cálculo para Aprendizado de Máquina 4. Estatística para Aprendizado de Máquina 5. Probabilidade para Aprendizado de Máquina 6. Demonstrações práticas 7. Matrizes e mais ### Tipos de Dados - **Qualitativo (Categorical)** - Nominal: Utilizado para etiquetar variáveis sem valor medível, como país, gênero, raça ou cor dos cabelos. É algo que você pode marcar como verdadeiro ou falso. - Ordinal: Dados categoricais com uma ordem ou escala, como faixa salarial ou classificação de filmes. - **Quantitativo (Numerical)** - Discreto: Dados numéricos com um valor final que pode ser categorizado, como o número de respostas corretas num teste, corridas de críquete ou pontos num sistema de pontuação. - Contínuo: Dados numéricos que podem assumir qualquer valor numérico dentro de um intervalo, como a pressão de água ou o peso de uma pesso # Álgebra Linear ## Primeira Coluna: Linha 1 Da primeira coluna, **Coluna 1** (em vez de Primeira Coluna), `a12` e é realmente pronunciado como `a11` nesta configuração. Assim, é a linha um, coluna um, `a12` é uma parte da Linha um, coluna dois. E assim por diante. Existem múltiplas maneiras de denotar isso. Vi essas como se fossem, por exemplo, uma letra maiúscula `A` para a linha superior ou uma letra minúscula `a` para a linha superior, ou poderiam ir em muitas outras direções, como a escolha da forma de designação pode ser diferente, mas precisa haver alguma designação para saber qual linha é e qual coluna é. ## Operações Básicas ### Adição Quando se pensa em adição, se tem dois matrizes de **dois por dois**. Basta somar cada número individual nesse matrix e, quando chega ao final, tem a solução. Por exemplo, neste caso, a solução é: ``` 12 10 5 3 ``` Para duas: ``` 14 12 7 5 ``` As mesmas regras se aplicam à subtração. Agora, quando se conta matrizes, precisa verificar as dimensões da matriz, a formação tem muito a ver no programa. ### Multiplicação Quando se olha em multiplicação, chega a uma configuração levemente diferente. Se olharmos no nosso último exemplo, onde estamos como "Por que isto me sempre confunde quando chegamos à álgebra linear e eles não explicam por que multiplicam matrizes". Aqui está a resposta: ``` 1 2 4 3 ``` A multiplicação com este matrix seria: ``` 1 * 2 + 4 * 3 = 6 1 * 3 + 4 * 5 = 14 6 * 2 + 3 * 3 = 21 3 * 5 ``` Se lembrarmos quando voltamos aqui para as nossas equações com múltiplas variáveis, esta é uma equação de dois membros — `ax + by = c`. E isto é uma forma muito rápida de resolver essas variáveis. Isso é o motivo pelo qual tem o Matriz e por que se faz a multiplicação da maneira que se faz. Isto é o producto de, por exemplo: ``` 1 2 4 3 ``` Multiplicado por: ``` 1 2 4 3 ``` Dá-nos uma saída muito prática: `14 23 21 33`. Que pode ser usada e reduzida para uma fórmula de amostra, conforme tivermos suficientes entradas. Quando se trabalha com várias matrizes: - É preciso lembrar que o producto das matrizes é diferente do produto de dois matrizes. Estamos falando sobre multiplicação, estamos falando sobre resolver equações quando se trata do producto. - O transposto de inverter a Matriz é mais comum. Por exemplo, se tivermos `12`, é `12 14`, `8 21` com o transposto. - Claro, também pode-se fazer um inverso, onde se alteram as sinais dos valores ao longo da diagonal principal. Por exemplo: ``` a -22 -12 ``` Vetores: - O vector significa que tem um valor e uma direção. - Na matemática, um matriz de um dimensão foi chamado de vector. Se tiver a eixo X e tiver um único valor, esse valor é ao longo do eixo X e é uma dimensão única. - Se tiver dois dimension, poderiam pensar nela como sendo colocada em um gráfico; pode ter X e pode ter Y. Cada valor denota uma direção e a distância real será a hipotenusa dessa tringlette. Isto pode ser feito com três dimensões (X, Y, Z) e até às dimensões 'n'. Quando se fala de K-means para categorizar e como nominimal. co está perto, estão computando isso com base no teorema de Pitágoras. ## Conclusão Em conclusão, ao trabalhar com a Álgebra Linear em Python, pode-se utilizar o módulo popular 'numpy' para matrizes e outras operações. Aqui está um pequeno demo usando 'numpy': ```python import numpy as np a = np. array([10, 15]) b = np. array([29]) print(a) print(a + b) print(np. dot(a, b)) print(a - b) print(np. dot(a, np. transpose(b))) print(a * 2) print(np. dot(np. eye(2), a)) ``` Esta demonstra adição, subtração, producto, transposto, multiplicação por escalar, e até o producto de uma matriz com um vector. Pode expandir estes exemplos para incluir várias matrizes e operações de vector. ```markdown # Operações em Matrizes e Vetores em Python (Usando SciKit-Learn) ## Operações em Matriz e Vetor Nesta seção, discutiremos a multiplicação de matrizes e vetores usando a biblioteca Scikit-Learn em Python. ### Multiplicação de Matriz por Vetor Podemos realizar a multiplicação de matriz por vetor usando o método `dot()` da função `numpy. matmul()`. ```python import numpy as np from sklearn. decomposition import TruncatedSVD # Criar uma matriz A e um vetor b A = np. array([[5, 10, 15, 20, 25, 30], [35, 40, 45, 50, 55, 60], [65, 70, 75, 80, 85, 90]]) b = np. array([1, 2, 3]) # Realizar a multiplicação de matriz por vetor resultado = np. matmul(A, b) print(resultado) ``` ### Multiplicação de Matriz por Matriz Para realizar a multiplicação de matriz por matriz, podemos utilizamos o mesmo método `dot()`. ```python # Criar duas matrizes C e D C = np. array([[1, 2], [3, 4]]) D = np. array([[5, 6], [7, 8]]) # Realizar a multiplicação de matriz por matriz resultado = np. dot(C, D) print(resultado) ``` ### Transposta de Matriz A transposta de uma matriz pode ser encontrada usando o atributo `T`. ```python # Criar uma matriz A A = np. array([[5, 10, 15, 20, 25, 30], [35, 40, 45, 50, 55, 60], [65, 70, 75, 80, 85, 90]]) # Transpor a matriz A transposta_A = A. T print(transposta_A) ``` ### Matriz Identidade A matriz identidade pode ser criada usando a função `eye()` da biblioteca `numpy`. ```python # Criar uma matriz identidade de tamanho 3 matriz_identidade = np. eye(3) print(matriz_identidade) ``` ### Inversa de Matriz Para calcular a inversa de uma matriz, podemos usar o método `inv()` da biblioteca `numpy`. ```python # Criar uma matriz A A = np. array([[2, 1], [1, 0]]) # Encontrar a inversa da matriz A inversa_A = np. linalg. inv(A) print(inversa_A) ``` ## Cálculo e Aprendizado de Máquina ### Aceleração e Cálculo Nos estudos de cálculo, poderemos calcular a aceleração de um objeto ao tomar o derivativo da sua velocidade em relação ao tempo. ```python import matplotlib. pyplot as plt # Definir uma função para a velocidade def velocidade(t): return t**2 + 3*t + 2 # Definir uma função para a aceleração def aceleração(t): return 2*t + 3 # Mostrar velocidade e aceleração plt. plot(range(10), [velocidade(t) for t in range(10)], label='Velocidade') plt. plot(range(10), [aceleração(t) for t in range(10)], label='Aceleração') plt. legend() plt. show() ``` ### Íntegrais e Cálculo Nos estudos de cálculo, podemos calcular o intervalo sob uma curva ao integrá-la. ```python import scipy. integrate as integrate # Definir uma função para a curva def curva(x): return x**2 # Integrar a curva de 0 a 1 área = integrate. quad(curva, 0, 1) print(área) ``` ### Cálculo Multivariado Nos estudos de cálculo multivariado, trabalhamos com funções que contêm váriaveis. ```python # Definir uma função para uma função multivariada def função_multivariada(x, y): return x**2 + y**2 # Calcular o derivativo em relação a x derivativo_x = 2*x # Calcular o derivativo em relação a y derivativo_y = 2*y # Point-sensitivo ponto = np. array([1, 1]) valor = função_multivariada(ponto[0], ponto[1]) derivativo_ponto_x = derivativo_x. eval(ponto[0]) derivativo_ponto_y = derivativo_y. eval(ponto[1]) # Gradiente gradiente = np. array([derivativo_x, derivativo_y]) print(gradiente) ``` ``` # Gradiente e Minimização ## Começando pelo Primeiro Passo ### Onde começar? Começamos aqui porque o algoritmo começa em `x = 3`, então escolhemos `x = 5` para começar. ### Taxa de Aprendizagem A `taxa de aprendizagem` define quantos passos gráficos a fechar de um lado ou do outro. Aqui vamos nos separar um pouco, pois esses dois são extremamente importantes: - Se estivermos trabalhando com uma precisão em monetária e não convertermos os valores em um float, podemos estar falando de um centavo, que poderia ser a nossa `Precisão`; - Em seguida, vamos precisar estabelecer como parar o algoritmo, para isso definiremos o número total de iterações; ## Precisão A `Precisão` nos diz quando parar o algoritmo. ## Passo de Inicialização `Um passo de inicialização` estabelce o valor inicial para os parâmetros do algoritmo. ### Estabelecendo a Função Gradiente Aqui estamos usando a função gradient `2 * x + 5`. Estabelecida a função gradient, podemos começar a percorrer ela e tentar encontrar uma conclusão para o problema. ## Decisão de Roterar Vamos continuar com o algoritmo enquanto `previous step size` é maior que a `Precisão` e `iterações` for menor que a quantidade máxima definida. Após encontrarmos uma conclusão satisfatória, escreveremos na tela [a solução] (#resultados). ## Referências * [Docs Dot scipy. org](<https://docs.scipy.org>) * [scikit-optimize-minimize](<https://docs.scipy.org/doc/scipy/reference/optimize.minimize.html>) Neste texto, você aprenderá sobre análises estatísticas em Python usando o conceito de tendência central e difusão. Abordaremos o valor médio, média, modal, diferença de intervalo, intervalo interquartil, variância e desvio-padrão, e demonstraremos sua utilização com a biblioteca pandas do Python. ## Tendência Central As tendências centrais são números únicos que fornecem informações sobre o centro de uma distribuição de dados. Vamos abordar o valor médio, média e modal como medidas de tendência central. ### Valor Médio O valor médio é a média de um conjunto de dados. Para calcular o valor médio de um conjunto de dados, soma-se todos os valores e divide-se pelo número de observações. media = soma_total_de_valores / número_de_observações No contexto de uma sala de aula, o valor médio seria a média de notas das alunos. ### Média A média é a pontuação central de um conjunto de dados, quando este é ordenado em ordem crescente. Se houver um número par de observações, a mídia é a média dos dois valores centrais. ### Modal O modal é o valor que ocorre mais frequentemente em um conjunto de dados. É útil quando os dados apresentam uma única pitada. ## Difusão A difusão mede a dispersão ou a variância dos dados. Abordaremos o valor de diferença, intervalo interquartil, variância e desvio-padrão como medidas de difusão. ### Diferença de Intervalo A diferença de intervalo (intervalo de rote) é a diferença entre o valor máximo e mínimo em um conjunto de dados. diferença_de_intervalo = máximo - mínimo ### Intervalo Interquartil (IIQ) O intervalo interquartil é uma medida de dispersão que mede a dispersão estatística de um conjunto de dados. É calculado como a diferença entre o quartil superior e o quartil inferior. Para encontrar os quartis, um conjunto de dados ordenado é dividido em quatro partes iguais. ### Variância A variância é uma medida de como espalhado um conjunto de dados está do seu valor médio. Para calcular a variância, subtraímos o valor médio de cada valor, quadrático o resultado e então dividimos pelo número de observações menos 1. variância = (somatório((valor - média) ** 2) / (número_de_observações - 1)) ### Desvio Padrão O desvio padrão é a raiz quadrada da variância. É usado para medir a dispersão de um conjunto de dados em termos de unidades padrão do valor médio. É uma medida desunitarizada que é frequentemente usada para comparar a variabilidade de diferentes conjuntos de dados. ## Implementação em Python Agora, vamos implementar algumas dessas medidas usando a biblioteca pandas do Python. Vamos trabalhar com um conjunto de dados de salários de uma empresa hipotética. ``` import pandas as pd # Carrega o conjunto de dados salários_dados = pd. DataFrame({ 'Nome': ['Jane', 'Michael', 'William', 'Rosie', 'Hannah'], 'Salário': [70000, 80000, 80000, 189000, 50000] }) # Encontra o valor médio do salário média_salário = salários_dados['Salário']. mean() print(f"Valor médio do salário: {média_salário}") # Encontra a mídia do salário média_salário = salários_dados['Salário']. median() print(f"Média do salário: {média_salário}") # Encontra o modal do salário # Nota: não existe uma função construída em pandas para encontrar o modal, então vamos usar outro método. salários_ordenados = salários_dados['Salário']. sort_values() modal_salário = salários_ordenados[len(salários_ordenados) // 2] print(f"Modal do salário: {modal_salário}") # Encontra a diferença de intervalo min_salário = min(salários_dados['Salário']) max_salário = max(salários_dados['Salário']) intervalo_de_diferença = max_salário - min_salário print(f"Intervalo de diferença: {intervalo_de_diferença}") # Encontra o intervalo interquartil Q1 = salários_dados['Salário']. quantile(0. 25) Q3 = salários_dados['Salário']. quantile(0. 75) intervalo_interquartil = Q3 - Q1 print(f"Intervalo interquartil: {intervalo_interquartil}") ``` Estes resultados dar-lhe-ão as tendências centrais e difusões do conjunto de dados: ``` Valor médio do salário: 91000. 0 Média do salário: 70000. 0 Modal do salário: 50000. 0 Intervalo de diferença: 139000. 0 Intervalo interquartil: 72750. 0 ``` Sua tentativa final seria muito semelhante a isso, com a correção das palavras que não concordavam com o português técnico e a correção em mal links. # Análise de Dados e Estatística Inferencial ## Introdução Bem-vindo à nossa guia sobre análise de dados e estatística inferencial! Nesta seção, discutiremos os conceitos fundamentais da estatística inferencial e exploraremos suas aplicações. ### Importância da Estatística Inferencial A estatística inferencial permite que você faça previsões ou inferências a partir dos dados, permitindo-o a tomar decisões informadas e concluir baseado nos dados observados. Aqui, temos um bom conjunto de dados de classificações de filmes. Imaginemos que temos um grupo de pessoas que assistiram a um filme, e estamos interessados em determinar quantas pessoas gostaram do filme, não gostaram ou não puderam dizer. Suponha que o grupo seja representativo da população geral, podemos inferir a probabilidade das reações de outros espectadores baseado nos dados de amostra. Por exemplo: - Se 55% da amostra gostou do filme, podemos inferir que 55% da população geral também gostaria do filme. - Se 35% não gostou do filme, podemos inferir que 35% da população geral também não gostaria do filme. - Se 10-11%, não puderam dizer, podemos inferir que 10-11% da população geral não teria opinião. ## Estimação de Pontos A estimação de pontos é um processo de encontrar um valor aproximado para um parâmetro da população, como a média ou a média, a partir de amostras aleatórias da população. Considere um exemplo de teste de vacinas para o COVID-19. Um grupo de pessoas é escolhido da população para participar de ensaios clínicos, e os resultados são generalizados para toda a população. Aqui está um diagrama simples para ilustrar o processo: ``` População (Todas as pessoas) | Ensaios clínicos na amostra selecionada | Resultados aplicáveis à população inteira ``` ## Teste de Hipóteses O teste de hipóteses é usado para medir a plausibilidade de uma hipótese de assumção usando dados de amostra. Passos envolvidos no processo de teste de hipóteses são: 1. Formular uma hipótese: Defina a questão ou afirmação que você deseja testar. 2. Escolher o teste adequado: Baseado na sua hipótese, escolha o teste estatístico correto para validar a hipótese. 3. Executar o teste: Coletar e analisar os dados, e computar o estatística de teste. 4. Tomar uma decisão: Comparar a estatística de teste com o valor crítico ou valor p para tomar uma decisão sobre a hipótese. ## Intervalo de Confiança e Valor p O intervalo de confiança é um intervalo de valores dentro dos quais o valor verdadeiro do parâmetro da população é provável de se encontrar com uma certa taxa de confiança. O valor p é uma medida da probabilidade de que o estatística de teste observada ocorrer por acaso se a hipótese nula fosse verdadeira. ## Aplicações da Estatística Inferencial O teste de hipóteses e intervalos de confiança são cruciales em vários campos, incluindo: - Ciências sociais: Enquetes, pesquisas e experimentos - Negócios: Teste A/B, pesquisa de mercado e desenvolvimento de produtos - Medicina: Ensaios clínicos, testes de medicamentos e estudos # Análise de Probabilidades nos Jogos de Futebol de Barcelona ## Probabilidade de Vitória, Derrota e Número de Vitórias A probabilidade de vitória é 0. 75. A probabilidade de perder iguala a um menos P, que iguala a um menos 0, 75, que iguala 0, 25. A probabilidade de que Barcelona perca todas as partidas pode ser calculada colocando os números, resultando em uma chance muito pequena (0, 009765625). A probabilidade que Barcelona vence à pelo menos duas partidas é 0, 0878. ## Probabilidades Acumuladas Calculemos agora as probabilidades acumuladas para cada uma das saídas em que Barcelona vence três ou mais partidas: - `x = 3`: P(x ≥ 3) = 0, 264 - `x = 4`: P(x ≥ 4) = 0, 395 - `x = 5`: P(x ≥ 5) = 0, 89 (Soma das probabilidades acima) Na realidade, a probabilidade de Barcelona vencer a série é muito maior que 0, 75. ## Dados Skew e Z-Score Esta seção faz a discusão sobre como lidar com dados skew e o z-score. ### Z-Score O z-score te informa em quantos desvios padrão um ponto de dados está, medidos em termos de desvio padrão de média. *- Pouco mais de 68% dos resultados são encontrados entre um desvio padrão da média. *- Aproximadamente 95% dos resultados são encontrados entre dois desvios padrão. ### Teorema do Limite Central O Teorema do Limite Central declara que a distribuição das médias de amostras será aproximadamente normalmente distribuída se você tirar amostras aleatórias de grande tamanho da população com um desvio padrão σ e média μ, com superações. ## Probabilidade Condicional A probabilidade condicional é a probabilidade que um evento A ocorre given que se sabe que evento B já ocorreu. Isto é representado pela Teoria de Bayes: `P(A|B) = (P(B|A) \* P(A)) / P(B)` A Teoria de Bayes é uma fórmula importante que trabalha com probabilidades e foi descoberta no século 1800. ### Caso de Uso: Probabilidade de um Cidadão de Ter Doença Pulmonar Devido ao Fumo Suponhamos que: - A probabilidade inicial de um cidadão ter doença pulmonar é 10%. - A probabilidade que um paciente fuma é 15%. - A probabilidade de um paciente fumar mesmo quando ele tem doença pulmonar é 5%. Podemos calcular a probabilidade de um cidadão ter doença pulmonar dado que ele fuma, que é 3, 33. Assim, existe uma chance de 3, 33 de que um fumante sofra de doença pulmonar. ## Código Python Aqui está alguns códigos Python para trabalhar com conjuntos, dicionários e iterações: ```python set_example = {4, 7} print("Meu Conjunto: %r" % (set_example, )) print("Is three no meu conjunto? %r" % (3 in set_example, )) print("Is six no meu conjunto? %r" % (6 in set_example, )) list_example = [1, 2, 3, 4, 4] set_example_list = set(list_example) print("Meu Conjunto a partir da Lista: %r" % (set_example_list, )) # Trabalhar com conjuntos e listas print("Is three no meu conjunto? %r" % (3 in set_example, )) print("Is four no meu conjunto? %r" % (4 in set_example, )) print("Is one no meu conjunto? %r" % (1 in set_example, )) ``` # Divide por Três e Resultados Favoráveis ## Visão Geral Neste exercício, analisaremos o cenário em que dividimos um conjunto de valores por 3 e examinamos o resto. Se o resto é zero, consideraremos isso um resultado favorável. ## Divida e Analise 1. Divida cada resultado por 3 e verifique se o resto é zero. 2. Crie um conjunto destes resultados favoráveis. (Sabemos que não repetirão, este passo não é necessário mas é incluído para precaução. ) 3. Imprima a comprimento do conjunto de resultados favoráveis para saber o que estamos a trabalhar. ## Cálculos de Exemplo Aqui estão alguns exemplos de múltiplos de três para esclarecimento: - 1 + 2 = 3 (dividido por 3 é igual a 1, resto é zero) - 5 + 4 = 9 (dividido por 3 é igual a 3, resto é zero) ## Computação da Probabilidade 1. Compute a probabilidade calculando o comprimento do conjunto de resultados favoráveis e dividindo-o pelo comprimento do espaço de eventos. 2. Imprime a probabilidade calculada para visualização. ## Expansão para Cinco Dados de Dado A mesma análise pode ser aplicada a cinco dados, embora isto resultar em um espaço de eventos mais grande. ## Resultado Favorável para Divisão por Cinco, Mas não por Três 1. Identifique o resultado favorável onde a soma é um múltiplo de cinco mas não um múltiplo de três. 2. Imprima o comprimento do resultado favorável para visualização. 3. Computa a probabilidade dividindo o comprimento do resultado favorável pelo comprimento do espaço de eventos. ## Matriz de Confusão Uma matriz de confusão é uma tabela utilizada para descrever o desempenho de um modelo de classificação num conjunto de dados de teste para os quais as informações verdadeiras são conhecidas. Inclui as seguintes categorias: - Verdadeiro Positivo - Falso Positivo - Falso Negativo - Verdadeiro Negativo A matriz de confusão pode ajudar a avaliar a precisão, a precisão e a revelação de um modelo de classificação. ## Caso de Uso: Predição de Câncer Em um modelo de predição de câncer, podemos utilizar a matriz de confusão para avaliar a precisão, a precisão e a revelação das nossas previsões. Comparando os resultados reais e previsados, podemos determinar o número de falsos positivos e falsos negativos, e utilizar esses números para computar a precisão, a precisão e a revelação. ## Acurácia A métrica de acurácia mede a maior precisão geral dos resultados previsos. ## Precisão A métrica de precisão mede a proporção de casos positivos previsos correctamente. ## Revelação A métrica de revelação mede a proporção de casos positivos reais correctamente previsos. ## Demonstração: Classificador Naivo Bayes O Classificador Naivo Bayes é um simples classificador que supõe que as características são independentes. Usaremos o Classificador Naivo Bayes da biblioteca scikit-learn para nossa demonstração. ## Conjunto de Dados das Redes Sociais Sociais Utilizaremos o Conjunto de Dados das Redes Sociais para a nossa análise. O conjunto de dados inclui o código do utilizador, género, idade, salário estimado e compra (1 para compra, 0 para não compra). ## Pre-processamento e Construção do Modelo 1. Importe as bibliotecas necessárias (numpy, matplotlib, pandas, sklearn). 2. Leia o Conjunto de Dados das Redes Sociais. 3. Imprima a cabeça do conjunto de dados para visualização. 4. Divida o conjunto de dados em conjuntos de treino e teste (split de treino-teste). 5. Realize a normalização dos dados. 6. Crie o classificador Naivo Bayes e aplique o treino para os dados de treino. ```python from sklearn. model_selection import train_test_split from sklearn. naive_bayes import GaussianNB # Importe as bibliotecas necessárias import numpy as np import matplotlib. pyplot as plt import pandas as pd from sklearn. model_selection import train_test_split # Ler o Conjunto de Dados das Redes Sociais dados_rede_social = pd. read_csv('dados_rede_social. csv') # Imprima a cabeça do conjunto de dados print(dados_rede_social. head()) # Defina as características como X e o alvo como y X = dados_rede_social. iloc[: , : -1] y = dados_rede_social. iloc[: , -1] # Divida o conjunto de dados em conjuntos de treino e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 25, random_state=0) # Normalize os dados # Para ser adicionado # Crie o classificador Naivo Bayes e aplique o treino aos dados de treino clf_bayesiano_gausiano = GaussianNB() clf_bayesiano_gausiano. fit(X_treino, y_treino) ``` # Predizendo o Comportamento de Compra: Matriz de Co frustração e Visualização ## Predição Para executar uma predição, seguiremos estas etapas: 1. Ajuste dos dados 2. Previsão 3. Calculo da Matriz de Co frustração ### Ajustando os Dados Primeiro, ajustamos os dados usando nossa classificadora: ``` do python sklearn. linear_model import NaiveBayesClassifier classificador = NaiveBayesClassifier() classificador. fit(X_treino, y_treino) ``` ### Previsão Em seguida, prevemos o conjunto de teste usando a classificadora ajustada: ``` y_preditos = classificador. predict(X_teste) ``` ### Calculando a Matriz de Co frustração Importamos a Matriz de Co frustração do `sklearn. metrics. confusion_matrix` e calculamos a matriz para nossos valores de teste e predito: ``` do python sklearn. metrics import confusão_matrix matriz_confusao = confusão_matrix(y_teste, y_preditos) ``` ### Matriz de Co frustração A Matriz de Co frustração mostra nossos valores reais e previstos baseado no comportamento de compra. A matriz contém estes valores: - VERDADEIRO POSITIVO (TP): Previu uma compra corretamente. - ERRO FALSO POSITIVO (FP): Previu um não-compra como uma compra. - ERRO FALSO NEGATIVO (FN): Previu uma compra como um não-compra. - VERDADEIRO NEGATIVO (TN): Previu corretamente um não-compra. ### Visualizando Resultados Visualizaremos os resultados usando a biblioteca `matplotlib`. Devido à maneira como este código está configurado, você pode possivelmente encontrar um erro com o mapa de cores, pois usamos uma versão mais recente do que foi usada no demo. Aqui está como você pode visualizar a matriz de confusão: 1. Importe as bibliotecas necessárias ``` import matplotlib. pyplot como plt import numpy como np de axes_grid1 import make_axes_locatable da mpl_toolkits. mplot3d import Axes3D ``` 2. Crie nos nostros muchos X e Y (X_treino e y_treino) conjuntos ``` X1, X2 = X_treino[: , 0], X_treino[: , 1] ``` 3. Defina os limites X e Y ``` xmin, xmax = X1. min() - 1, X1. max() + 1 ymin, ymax = X2. min() - 1, X2. max() + 1 ``` 4. Crie o grid e reshape os dados ``` Y, X = np. meshgrid(np. arange(min(y_treino), max(y_treino) + 0. 01, 0. 01), np. arange(min(X1), max(X1) + 0. 01, 0. 01)) ``` 5. Reshape o dados e crie o contorno, grafo de dispersão e mapa de cores ``` Y_reshaped = Y. reshape(-1, 2) X_reshaped = X. reshape(-1, 2) mapa_cores = plt. cm. ListedColormap(["vermelho", "verde"]) ``` ``` Z = classificador. predict(np. c_[X_reshaped, Y_reshaped]) cs = plt. contourf(X, Y, Z, cmap=mapa_cores, alpha=0. 8) cs. cmap. set_under('branco') ``` ``` scatter = plt. scatter(X1[y_treino == 0], X2[y_treino == 0], c='vermelho', marker='s') scatter = plt. scatter(X1[y_treino == 1], X2[y_treino == 1], c='verde', marker='o') ``` 6. Crie os limites e título ``` fig = plt. gcf() fig. autofmt_xdate() plt. xlabel('Salário Estimado') plt. ylabel('Idade') plt. title('Visualização de Matriz de Co frustração – Conjunto de Treino') ``` ### Interpretação do Gráfico O gráfico acima mostra o conjunto de treino. As setas verdes representam compras, e as setas vermelhas representam não-compras. A camada contorneada representa o caminho ideal, de acordo com a configuração do algoritmo de naive Bayes. Algumas setas verdes podem caírem na área vermelha e vice-versa, demonstrando que nosso conjunto de treino não será 100% preciso. ### Resultados do Conjunto de Teste Para visualizar os resultados do conjunto de teste, repete os passos anteriores com o X_teste e y_teste dados. Isso irá permitir que você compare os resultados do treino e teste lado a lado. ### Métricas Uma vez que importe as bibliotecas necessárias do `sklearn. metrics`, você poderá imprimir as métricas (Precisão, Recall, F1 Score, etc. ), gerando o relatório de classificação para os resultados do conjunto de teste: ``` do python sklearn. metrics import relatório_de_classificação print(relatório_de_classificação(y_teste, y_preditos, nomes_alvo=['Não Comprar', 'Comprar'])) ``` ### Exemplo Adicional Para uma explicação mais detalhada de aprendizado reforçado, estratégias, termos específicos e aplicações, veja as seguintes seções: - Introdução ao Aprendizado Reforçado - Estratégias de Aprendizagem Reforçado - Termos específicos do Aprendizado Reforçado - Processo de Decisão de Markov - Exemplo de Aprendizado Reforçado (Xadrez) Referências: - Metricas do sklearn (Matriz de Cofragração): https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics.classification - matplotlib (Ferramentas de Gráfico): https://matplotlib.org/stable/contents.html - Processo de Decisão de Markov: https://en.wikipedia.org/wiki/Markov_decision_process # A Caixa Cheia de Ginásios ou Outros Prêmios: Sumário da Aprendizagem Reforçada Este documento fornece uma visão geral da aprendizagem reforçada, uma técnica de aprendizagem de máquina popular. A aprendizagem reforçada é um método onde um agente aprende a tomar decisões executando ações em um ambiente, com o objetivo de maximizar um prêmio. ## O Ambiente O ambiente é onde o agente interage e toma decisões. No contexto de um jogo, o ambiente poderá ser o tabuleiro do jogo, e a posição atual do agente dentro desse tabuleiro. Para um robô, o ambiente pode ser os arredores físicos e os dados de sensores que recebe. ## Posição Atual e Estado A posição atual é a localização do agente no ambiente. O estado é a conjuntos de características que descrevem o ambiente atual, como a localização do agente, os obstáculos circundantes, ou as recursos disponíveis. ## Ação A ação é uma operação que o agente pode executar no ambiente. Em nosso exemplo de um jogo, a ação poderia ser se mover para uma localização específica no tabuleiro do jogo. Para um robô, a ação poderia ser se mover em uma direção específica, pegar um objeto, ou executar uma função específica. ## Prêmio O prêmio é um método de feedback usado para orientar as decisões do agente. O agente recebe um prêmio quando executa uma ação que o acerta para seu objetivo. O objetivo do agente é aprender uma política que maximize o prêmio. ## Política A política é uma correspondência entre o estado atual e a ação a ser executada. Em outras palavras, ela determina a melhor ação a ser executada dado um estado específico. A política pode ser determinística, onde a melhor ação é sempre escolhida, ou estocástica, onde a melhor ação é escolhida de forma probabilística. ## Processo de Decisão de Markov O Processo de Decisão de Markov (PDM) é um quadro usado na aprendizagem reforçada para modelar a interação entre o agente, o ambiente e o prêmio. Ele é baseado na ideia de que a decisão tomada pelo agente apenas depende do estado atual e do prêmio imediato, e não depende de nenhum estado anterior ou ação realizada anteriormente. ## Apresentação de Aprendizagem Reforçada: Treinamento de um Cão a Fazer Piche Consideremos um exemplo de aprendizagem reforçada onde queremos treinar um cão a fazer piche. Neste caso: - O agente é o cão - O ambiente é a casa ou jardim onde o cão é treinado - A ação é o comando para fazer piche - O prêmio é um alimento para cães Fornecendo alimento como prêmios para realizar a ação desejada, o cão vai aprender a associar o piche com o prêmio, e, eventualmente, vai seguir o comando de forma consistente. ## Exploração e Exploição Os agentes de aprendizagem reforçada combinam exploração e exploração. A exploração refere-se ao tentar novas ações para descobrir politicas melhores, enquanto que a exploração refere-se ao uso da atual política para escolher a ação com o maior prêmio esperado. ## Demo de Aprendizagem Reforçada: Criando um Jogo do Piche a Ponto Neste demo, usaremos aprendizagem reforçada para criar um jogo do piche a ponto. Você jogará contra um modelo de aprendizagem de máquina, utilizando Python e notebook Jupyter. Você pode encontrar o código do demo [aqui](https://github.com/simplylearn-org/reinforcement-learning-tic-tac-toe). *** Este documento fornece uma visão geral da aprendizagem reforçada, uma técnica de aprendizagem de máquina popular. Neste documento, vamos cobrir: 1. O Ambiente 2. Posição Atual e Estado 3. Ação 4. Prêmio 5. Política 6. Processo de Decisão de Markov 7. Apresentação de Aprendizagem Reforçada: Treinamento de um Cão a Fazer Piche 8. Exploração e Exploitação 9. Demo de Aprendizagem Reforçada: Criando um Jogo do Piche a Ponto Além disto, vamos passar por um demo de aprendizagem reforçada, onde usaremos aprendizagem reforçada para criar um jogo do piche a ponto. [Aprendizagem Reforçada: Introdução](https://simplylearn.ai/courses/deep-learning-specialization/course1/module1) fornece um curso completo sobre aprendizagem reforçada, incluindo explicações detalhadas e exercícios interativos. # Aprendizado de Reforço no Tic-Tac-Toe Em resumo, temos um reset da partida que é bem simples. Ele simplesmente vai voltar e resetar a partida pois vai tentar várias coisas enquanto aprende. Isso é feito por tentativas e erros, portanto é necessário reiniciar frequentemente. Além disso, temos a jogada. O número de rodadas (`rounds`) é definido para 100, mas você pode ajustar isso de acordo com sua preferência. Aqui, temos o Jogador Um e o Jogador Dois. Isso não é um humano jogando; isso é um computador jogando a si mesmo, uma das formas mais poderosas de aprender a jogar um jogo ou aprender algo que não é um jogo é ter dois modelos que basicamente estão tentando bater um no outro. Eles sempre estão encontrando e explorando novas coisas. Isso funciona aqui, portanto isso tenta novas coisas, isso derrota isso; já foi visto isso em xadrez, por exemplo, em algumas grandes competições onde tinham dois jogadores de xadrez com aprendizado de reforço. Era uma das maneiras que treinaram um dos melhores algoritmos de xadrez do computador jogando. O sistema escolherá uma ação, tentará algo, e o mais que tenta, mais registramos o hash. Realmente temos um hash do tabuleiro onde o sistema configura o hash, armazenando todas as informações. Quando um deles vence, recebe o recompensa. Em seguida, voltemos e reiniciam e tentamos novamente. A parte divertida vem quando jogamos com um humano. Entraremos aqui e veremos o que isso parece quando você coloca sua própria informação, e ele simplesmente faz o mesmo que fez acima. Dá-lhe uma recompensa por suas ações ou verifica se venceu ou empatou, olha as posições disponíveis, e em seguida, desejamos mostrar o tabuleiro. Imprime o tabuleiro em cada vez. Para integração, isso não é muito excitante, mas o que é excitante aqui é o sistema de recompensa. O sistema de recompensa é realmente o coração deste. Como recompensar os diferentes resultados? A outra questão chave é quando está jogando; ele deve tomar uma ação, portanto o que escolhe por uma ação também é o coração do aprendizado de reforço. Como escolher essa ação? Estas são as questões que estamos tentando responder com aprendizado de reforço hoje. Com nosso ambiente, você pode ver que o ambiente é onde estaremos ou o estado, que é algo como o que está acontecendo. Vamos retornar o estado de acordo com o que acontece. Desejamos avançar nisso e criar nosso agente, que chamamos `Jogador`. Então cada um é `Jogador`, e você pode ver que grande parte da magia está acontecendo lá. Como este jogador está se movendo no tabuleiro? Claro, o tabuleiro, obviamente, retorna um estado que ele pode olhar e uma recompensa. Temos um nome `self-State`, que é uma classe `Jogador`. Quando você diz `class Jogador`, não estamos falando de um jogador humano; estamos falando apenas de um jogador computacional. Isso é interessante, portanto lembre-se, dependendo de o que você está fazendo, existirá um `Decay gama` e uma taxa de exploração. Estas são as coisas que estou falando; como treiná-lo? Como você tenta diferentes jogadas, chega ao fim, a primeira jogada é importante, mas não é tão importante quanto a última. Portanto, você poderia dizer que a # Aprendizado por Reforço: A Chave para a Evolução no Machine Learning e IA O aprendizado por reforço continuará a vencer mais assim que o treinarmos mais, devido ao reforço que acontece ao longo do processo de treinamento prolongado. Este processo é um grande obstáculo para o aprendizado por reforço e, à medida que ele evolui, será um dos pacotes mais poderosos para emergir nos próximos dez ou dois anos. Em verdade, eu iria ir tão longe até a ponto de dizer que é o ferramento de aprendizado de máquina e de inteligência artificial mais importante disponível atualmente. O aprendizado por reforço é capaz de aprender além de uma tabuleira de jogo simples; ele pode aprender em ambientes, tais como a tradução de uma linguagem ou traduzir alguma coisa de uma linguagem para outra. Quando você está em tradução de línguas, muitas coisas são perdidas se você não sabe o contexto e o ambiente em que a tradução se encontra. A capacidade de associar o ambiente e o contexto será essencial para o aprendizado por reforço. ## Tabuleira de jogo de Xadrez Você pode obter uma cópia da tabuleira de jogo de Xadrez para brincar e testar. É divertido jogar e testar diferentes valores. Você pode mudar para o computador da jogada P1 onde nos carregamos a política um para carregar a política dois e apenas ver como varia. Há muitas coisas que você pode fazer no tabuleiro. ## Aprendizado por Reforço: Resumo O aprendizado por reforço é uma ramo do aprendizado de máquina que treina um modelo para atingir uma solução ótima para um problema tirando suas próprias decisões. Analisamos o que faz, analisamos os dados, fazemos decisões e resolvemos problemas. Ele consiste em um ambiente no qual um agente interagirá para aprender e atingir um objetivo ou executar uma ação. Por exemplo, na figura acima, temos um cachorro e a ação igualá-se ao levantamento. Você verá o porquê o aprendizado Q é tão poderoso mas também onde ela se falha. A agente é recompensado se a ação realizada o coloca mais próximo ao objetivo ou o leva ao objetivo. O aprendizado por reforço pode ser dividido se a máquina utiliza um modelo para aprender ou aprende por conta própria. O aprendizado por reforço é model-based, onde o modelo é fornecido e você pode pensar nas redes neurais como os mais comuns utilizados para aprendizado por reforço. Existem certamente uma série de outras opções a disposição, mas você tem uma caixa negra e regressa para trás com o erro e é treinado em função da quantidade do erro que puder ser calculada. No aprendizado por reforço livre de modelo, encontramos a optimização da política e aprendizado Q. O aprendizado Q é uma política de aprendizado por reforço que escolherá a próxima melhor ação dada um estado atual e tem o objetivo de maximizar a recompensa. ## Q-Learning No gráfico de aprendizado de reforço padrão, você tem um agente que executa uma ação, a qual afeta o ambiente e então o ambiente envia uma recompensa ou feedack. O estado é o novo estado que o agente está localizado, tais como o qual está na posição de um tabuleiro de xadrez, onde está num jogo eletrônico ou se você é um robô levando lixo do lado da estrada, qual está na estrada. Como um exemplo de sistema de recomendação # Comércio de Ações e Tabela de Aprendizagem Q Uma questão comum no comércio de ações é decidir se comprar ou vender uma ação. Nesta situação, o estado do mercado pode indica-lhe a considerar uma abordagem específica conhecida como buquetização. Nesta abordagem, qualquer coisa que você preverá ser retornará mais dinheiro do que uma certa quantia será colocada em um buque. Isso ajuda na tomada de decisões quando se trata de uma informação limitada. Você acabará por ter buquetes como: 1. Buque 1 2. Buque 2 3. Buque 3 4. Buque 4 Colocando estes buquetes numa tabela de aprendizagem Q, é possível determinar a melhor ação, ou seja, qual ação comprar. É importante destacar que o comércio de ações pode ser comparado ao jogo, especialmente quando se trata de negociação diária. Na negociação diária, a abordagem tradicional é perguntar se você quer negociar a ação, sim ou não. Esta pergunta pode ser colocada em uma tabela de aprendizagem Q, permitindo que você avance para o próximo nível. A configuração da tabela de aprendizagem Q poderá se parecer assim: ```markdown Estado | Ação | Rewart ``` - Na tabela de aprendizagem Q, você tem o estado ao longo do eixo horizontal e a ação ao longo do eixo vertical. O recompenso para cada ação é listado na célula correspondente. - Se você estivesse usando um ambiente mais conectado, o recompenso seria baseado neste ambiente. Para criar um estado-to-localização, estabeleceremos um dicionário para localização, estado e location-to-estado com itens: ```markdown state_to_localization = { 'Localização 1': 'Estado 1', 'Localização 2': 'Estado 2', 'Localização 3': 'Estado 3', 'Localização 4': 'Estado 4' } ``` Para taxas de aprendizagem: - Estabelecemos as taxas de aprendizagem para aprendizagem do passado em 0, 75, e a taxa de aprendizagem para aprendizagem atual em 0, 9. Depois de definir as variáveis iniciais, criaremos nosso agente: ```markdown class Agente: def __init__(self, gamma, alpha, location_state, rewards, state_to_localization): self. gamma = gamma self. alpha = alpha self. location_state = location_state self. rewards = rewards self. state_to_localization = state_to_localization self. q_learning_table = np. zeros((len(state_to_localization), len(location_state))) ``` Não é possível fornecer o código completo nesta resposta devido à limitação de caracteres, mas em termos de treinamento, tentaremos criar funcionalidades para recompensas e atualizar a tabela de aprendizagem Q: ```markdown class Agente: # . . . (código anterior) def treinamento(self, iterações): recompensas_nova = copy. deepcopy(self. recompensas) estado_final = self. location_state for _ in range(iterações): acao_a_escolher = self. escolha_acao_aleatória() # Atualização da Q-learning formula self. q_learning_table[self. state_to_localization[estado_final]] [self. location_state. index(acao_a_escolher)] += self. alpha * (recompensas_nova[acao_a_escolher] + self. gamma * max(self. q_learning_table[self. state_to_localization[self. escolha_acao_aleatória()]]) - self. q_learning_table[self. state_to_localization[estado_final]] [self. location_state. index(self. local_state)]) # Atualizar o estado_final para a próxima iteração estado_final = acao_a_escolher ``` No próximo posting, abordaremos a Análise Principal de Componentes (PCA) e suas propriedades, terminologia, exemplos seguidos por um demonstrativos de código Python e prática com PCA e sua utilização para redução de dimensões. A redução de dimensões é uma técnica que reduz o número de variáveis de entrada em um conjunto de dados. É particularmente útil ao trabalhar em grandes conjuntos de dados com uma alta quantidade de características mas com uma quantidade limitada de amostras. Ao reduzir dimensões, podemos melhorar o rendimento do modelo, visualização e eficiência de cálculo. Por exemplo, considere um conjunto de dados de pedidos de peças de automóvel (ver tabela a seguir). Este revendedor vende diferentes peças de automóvel de várias marca e possui características como peça, marca, ID do pedido, preço e quantidade. Análise de análise correlação, foi achado que somente três características precisam para prever células futuras: peça, preço e quantidade. Reduzindo o número de características, limpa os dados e permite previsões mais informadas. ```Markdown Pedidos de peças em uma loja de peças de automóveis | Marca | Peça | ID do Pedido | Preço | Quantidade | |-------|--------|--------------|---------|------------| | BPACS | Pneu | OD13546 | $80 | 5 | | ISOMAX | Eixo | OD78457 | $75 | 3 | | BPACS | Pneu | OD84292 | $90 | 4 | ``` Neste exemplo, pode-se ver que o número da peça não parece influir nas rodas compradas, e a loja que compra provavelmente não tem influência também. A remoção dos atributos desnecessários como número da peça e marca limpha os dados e melhora a rendimento do modelo. # Redução da Dimensionalidade dos Conjuntos de Dados: Um Aspecto Importante no Tratamento de Dados ## Um Menor número de Dimensões, Menos Tempo de Processamento A primeira coisa que temos é menos dimensões para um conjunto de dados dando menos tempo de processamento ou treinamento. Isto pode ser especialmente importante se você estiver tentando múltiplos modelos e os está reescrevendo constantemente. Aparentemente, se tiver 7 gigabytes de dados, pode levar dias para passar por todos esses diferentes modelos, então é isto - deveria ser próximo da parte mais importante em termos de redução do nosso conjunto de dados. ### Remoção de Redundância Incialmente, removemos a redundância após remover entradas semelhantes no conjunto de dados. Alguns de nosso modelos pré-processados, como uma rede neuronal, podem dar maior peso a duas entradas de dados semelhantes em comparação a uma, então quando você se livra desta redundância, aumenta o tempo de processamento. Além disso, se você tem múltiplas entradas de dados, o armazenamento necessário para armazená-las é reduzido, então se estivermos commitando este dado em um grupo de dados grandes, provavelmente não enviaremos a empresa que o comprou. Por que apoiaríamos armazenar duas colunas inteiras adicionais ao colocá-lo no nosso grupo de dados? É mais fácil de representar nos gráficos em 2D e 3D. ## Dados Simplificados para uma Melhor Interpretação e Apresentação ### Representação de Dados A minha parte preferida: você está em uma reunião de acionistas e deseja dar uma versão muito boa, clara e simplificada. Você deseja reduzi-la para algo que possa ser absorvido. Auxilia-o a encontrar os recursos mais significativos e deseja o resto, o que também é útil para o processamento posterior e leva a interpretação humana melhor. ### Análise Principal Componente (APC) O que faz o dado fácil de representar é que tem uma maior interpretação. Estamos olhando para a técnica de análise principal componente (APC). APC é uma técnica para a redução da dimensionalidade de conjuntos de dados, aumentando a interpretabilidade, mas ao mesmo tempo minimizando a perda de informação. Tomamos um dado extremamente complexo com várias variáveis e o passamos pela APC. Reduzimos as variáveis, mas pode ser confuso olhar para o resultado: tem várias cores à frente. Então, tomemos um exemplo específico: Imagine que você é pedido que faça uma foto de algumas crianças e acione a melhor câmera para tirar a foto. Aqui nos dizemos, "Aqui parece uma câmera, mas estamos colocando as partes traseiras de muitas cabeças, não muito rostos, então vamos fazer isso aqui". Talvez obtenhamos uma pessoa avançada com um sorriso e muitos das crianças na sala não estão presentes, de modo que tem uma quantidade significante à direita, um espaço em branco. Talvez de novo aqui, teremos a parte traseira de alguém, e lembra-se que a melhor câmera de clicar a foto pode vir da perspectiva inferior-esquerda. Você olha e diz, "De loucos, isso faz sentido; é uma boa configuração de todas as pessoas na foto. " Quando falarmos sobre dados, é só sobre o que pensamos será o melhor. Em vez disso, precisamos de uma fórmula matemática para consistência e uma boa explicação no backend. Um dos projetos de trabalho com que trabalhei foi semelhante ao conjunto de dados da orquídea. Se você já fez o conjunto de dados da orquídea, provavelmente é um dos mais comuns aonde você tem a flor e mede as dimensões dos sépalos e dos pétalas. Em vez de passar pela dimensão e comprimento do sépalo e do pétalo, poderia facilmente fazer a razão do sépalo ao pétalo. Você pode dividir o comprimento do sépalo pelo comprimento do pétalo, e você obtém um único número até onde tinha dois antes - isso se trata das ideias que estão ocorrendo na pré-processamento e olhando o que podemos fazer para levar o dado para um estado extremamente simplificado sedal-petal. Quando olhamos pela semelhança na APC, encontramos a melhor foto ou projeção dos pontos de dados, então olhamos de baixo para eles de um único ângulo. Verificamos que já podemos olhar sobre esses pontos de dados com apenas duas variáveis agora. Lembramos-nós de que usualmente estamos falando de 36 a 40 variáveis em quase todos os modelos de negócio; são geralmente vistos os 26 a 27 diferentes variáveis que havia eles observando. Então, queremos fazer isso é encontrar a melhor posição desses pontos de dados quando combinados e observada de um único ângulo. ## Terminologias Importantes na APC ### Vistas e Componentes Principais Quando falamos sobre vistas, significa a visão a partir da qual os pontos de dados são observados. Você vai ouvir delas dar o nome de diferentes vistas ou até mesmo de especialistas em apresentações da APC que não tem tempo para reduzi-la para algo que pode ser até mesmo entendido pela pessoa média ou acionistas. As dimensões de um conjunto de dados são chamadas de dimensões do conjunto de dados. Falamos de características, dimensões e componentes principais. Os principais componentes são novas variáveis construídas como combinações lineares ou misturas de variáveis originais. A análise principal componente é uma técnica muito importante porque fornece uma maneira de combinar várias variáveis em um conjunto menor, mais fácil de gerenciar, conhecido como os principais componentes. ### Projeções & Propriedades A distância perpendicular entre o componente principal e os pontos de dados é chamada de projeção. O número de componentes principais sempre é menor ou igual ao número de características, o que é comum sentido. Há diversos códigos estranhos que a gente vai encontrar, mas precisamos ser consistentes e pensar em partida profunda em vez de apenas fazer coisas aleatórias. Os componentes principais são ortogonais, o que significa que eles têm um ângulo reto de linha. Quando tornamos o PC1, estamos olhando para como as pontos caem nesta linha, semelhante ao PC2, e desejamos garantir que o PC1 não seja igual ao PC2. Se estiveremos criando vários componentes principais, priority of principal components decreases as their numbers increase, which is important to understand if you're going to create multiple principle components. When we have five different points, each one of those points is going to have less value than just the one point that has everything summarized in it. ### Processo Matemático por Trás da APC Depois de normalização e cálculo da matriz de covariância, utilizamos os vetores i with gene e os valores i with gene, que são gerados da estabilização de vetor de feature, para construir nosso novo conjunto de componentes principais. Lembrem-se de que geralmente falamos de mais de duas características (25-30), portanto, a matriz de covariância deve refletir isso. A matriz de covariância nos informa como as variáveis estão relacionadas. Uma covariância positiva indica que uma variável está diretamente proporcional à outra variável, enquanto uma covariância negativa mostra que o valor da variável uma é inversamente proporcional à variável 2. lembram-nos que positivo e negativo está sempre essencial, se invertido ou não, quando trabalhamos com matrizes. Os valores iodina e os vetores hiémicos são valores matemáticos extratos da matriz de covariância que conduzem à construção dos componentes principais. Os vetores iodina não mudam de direção após transformação linear, enquanto os valores iodina são escalares ou a magnitude dos vetores iodina. No fundo, mantém em mente que a compreensão da APC requer lidar com a matemática que acontece no backend. Fortunatamente, temos ferramentas e recursos disponíveis para ajudá-lo a aprender os fundamentos técnicos por trás da APC. Com uma compreensão profunda da análise APC, poderá fazer decisões informadas sobre seu dado e construir modelos preditivos poderosos. # Análise Principal de Componentes (APC) em Python Este texto analisa o processo de aplicação da Análise Principal de Componentes (APC) a um dataset, utilizando o dataset do câncer como exemplo. O objetivo é reduzir as dimensões dos dados e visualizá-los em um espaço bidimensional. ## Introdução A Análise Principal de Componentes (APC) é 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 componentes principais, linearmente não correlacionados. ## Requisitos - Python 3. 6 (ou versão compatível) - Anaconda Navigator ou Jupyter Notebook - Bibliotecas: matplotlib, pandas, numpy, seaborn, scikit-learn ## Passos ### Carga de Bibliotecas Primeiro, importamos as bibliotecas necessárias para a nossa análise. ```python import matplotlib. pyplot as plt import pandas as pd import numpy as np import seaborn as sns da partir de scikit-learn import PCA ``` ### Importação do Conjunto de Dados do Câncer Utilizamos o conjunto de dados do câncer, que contém 36 características. ```python dados_cancer = pd. read_csv("dados_cancer. csv") ``` ### Visualização dos Dados Visualizamos a descrição do conjunto de dados para compreender sua estrutura. ```python print(dados_cancer. describe()) ``` ### Enginyeria de Características Criamos um novo DataFrame a partir dos dados das características. ```python dados_cancer_features = pd. DataFrame(dados_cancer[dados_cancer. columns]. drop("Target", axis=1)) ``` ### Escalonamento dos Dados É importante escalonar os dados, pois alguns variáveis podem ter valores extrêmos que podem inflar a variação das componentes principais. ```python a partir de scikit-learn importa escalonador escalonador = escalonador(). aptar() dados_cancer_features_escalonados = escalonador. transform(dados_cancer_features) ``` ### Aplicação da APC Criamos o modelo APC. ```python apc = PCA(n_components=2) apc_transformados = apc. fit_transform(dados_cancer_features_escalonados) ``` ### Visualização dos Dados Transformados Finalmente, visualizamos os dados transformados num gráfico de dispersão bidimensional. ```python fig, ax = plt. subplots(figsize=(8, 6)) ax. scatter(apc_transformados[: , 0], apc_transformados[: , 1], c=dados_cancer["Target"]) ax. set_xlabel('Primeira Componente Principal') ax. set_ylabel('Segunda Componente Principal') plt. mostra() ``` ## Interpretação das Componentes As componentes principais são os vetores eigenvectors da matriz de covariância dos dados, e seus valores correspondentes representam a variação explicada por cada componente. Cada observação pode ser projetada nassecessitas components para obter novas variáveis chamadas pontuações. Para interpretar as componentes, utilize o seguinte código: ```python print(apc. components_) ``` Este codigo imprimirá os eigenvectors que compõem as componentes principais. Cada linha representa uma componente-principal e cada coluna corresponde às características originais. Tenha em mente que estes componentes não têm uma interpretação iniciada, como com as técnicas de redução de dimensionalidade como o t-SNE ou o UMAP. ## Conclusão Neste exemplo, demonstramos como utilizar a APC em Python para reduzir a dimensionalidade dos dados e visualizá-los num espaço bidimensional. APC é uma técnica útil para gerenciar dados de alta dimensionalidade, facilitando a busca por padrões e relações nestes dados. # Guia para Compreender a Análise de Dados: Regressão Linhares, Sobrerregimetração, Suberregimetração e Regularização ## Introdução ao DataFrame e Seaborn Heat Map Neste guia de interface, vamos abordar a análise da correlação através do uso de linhares de regressão e do quadro de calor (heatmap) do Seaborn, além de discutir o conceito básico de sobregimetração e suberregimetração no aprendizado de máquina. ### Preparando o DataFrame ```python # Configurando as colunas do DataFrame a igual a nomes de características do cancer # Dumpando o DataFrame com as características selecionadas ``` ### Compreendendo o DataFrame no Seaborn ```python # Fazendo o Seaborn aplicar análise de dados no DataFrame Configuração e Seaborn's Heatmap do DataFrame Composição # utilizando cor de plasma e raio de época fornecido ``` ! [Seaborn Heatmap](https://i.ibb.co/Pb8jNZ1/image.png) ### Correlação entre variáveis e componentes principais O mapa de calor no color bar representa a correlação entre as diferentes características e principal componente. ```markdown - A correlação forte entre características significa que um aumento na variável X está relacionado a um aumento commensurado na variável Y (ex: positiva ou negativa). - Quando a correlação é fraca, um aumento na variável X possui uma correlação pequena com a variável Y (ex: positiva ou negativa). ``` ## Fitting e Entendendo a Linhares de Regressão Nesta secção, vamos discutir o processo de Fitting de dados e explorar conceitos importantes da Linhares de Regressão: ### Processo do Fitting ```markdown - Fitting de dados é um processo de gráficar um conjunto de dados e desenhando a melhor linha reta que passa pelos dados, probando relação entre variáveis. - A "linha reta" é obtida através do Laplace, Linhares de Regressão ou testes de provaentre da matemática e aprendizado de máquina. - De forma simplificada, o Laplace ajusta os pesos das variáveis participantes, enquadrando as variáveis de interesse entre elas. ``` ### Linhares de Regressão - Básico Linhares de Regressão aplica um método para achar uma linha reta que se adequa melhor aos dados, com base em uma correlação entre dois fatores. A linha reta deve ser linear para que possa ser representada de forma precisa. ### O como Linhares de Regressão funciona Além disso, encontrando a linha reta que melhor se adequa aos dados gera um relacionamento entre as variáveis. Este relacionamento pode ser visualizado com um gráfico. ### Tipos de Problemas Regressão Esse tipo de SK da seção descreverá dois problemas de regressão, a saber: 1. Regressão Simple 2. Regressão múltipla ### Regressão Básica A regressão básica é a análise de relacionamento entre 2 variáveis. ### Demonstração Hands-On No próximo passo, você vai avançar através de um experimento Hands-On para adquirir experiência direta no trabalho com regressão e Seaborn. ```markdown - Entrada: Dados - Resultado: Imagens que exibem processo de regressão (fitting) e gráficos ``` ### Bias e Variance Um **Bia** existente em um modelo de aprendizado de máquina significa que o conhecimento incremental é adicionado ao modelo, o que resulta em dados que são progressivamente menos precisos. Enquanto isso, elevada **Variance** significa que um modelo de aprendizado de máquina é muito sensível a uma maior quantidade de ruído nos dados e a suas preferências específicas. No entanto, não apenas as taxas de rácio (diretamente sob o controle do estatístico) dos modelos são de importância, mas também os dados de entrada também afetam diretamente o comportamento do estatístico. ### Sobrerregimetração, Suberregimetração e Regularização A **sobrerregimetração** é um condicionamento modelo em que o modelo se fitting too closely e captura tanto variativa e vísceras limitações nos dados de treino. A **suberregimetração** é o oposto, onde o modelo é muito generoso e por isso não pode gerar bons resultados para gerenciar novos dados. A **regularização** é uma abordagem para melhorar o mapeamento para captares a variabilidade verdadeira nos dados e minimizar a variação recebida. No entanto, as técnicas de regularização restringem a capacidade de modelo de criar partes desafortunadas, que podem ser apagados para gerenciar novos dados adequadamente. Português de Portugal revisto. # Regressão Linear e Regularização ## Introdução à Regressão Linear Neste tutorial, abordaremos a regressão linear e as técnicas de regularização utilizadas para calibrar modelos Lineares de Regressão e minimizar a função de custo ajustada para evitar sobre-ajustamento ou sub-ajustamento. ### Regressão Linear Básica Uma regressão linear simples é um modelo que podemos usar para prever o valor de uma variável dependente `y` baseado em uma ou mais variáveis independentes `x`. Uma vez que nós tenhamos dados, poderíamos obter a equação da reta de regressão linear que melhor se ajusta aos nossos dados. Para demonstrar isso, examinaremos os diferentes tipos de ajuste: ajuste adequado, sobre-ajustado e sub-ajustado. ### Ajuste Adequado Um grafo adequadamente ajustado apresenta uma reta que se approacha os dados sem incluir pontos inexistentes e sem se afastar muito dos dados existentes. Acuradamente ajustar a reta de regressão é a melhor forma de minimizar a distância entre os pontos de dados e a reta de regressão linear. ### Sobre-ajustado Um modelo sobre-ajustado apresenta uma reta que tenta incluir muito perto de cada ponto, criando uma curva ondulante. Este tipo de ajuste é comum quando nós possuímos um número limitado de dados e muitas variáveis independentes. ### Sub-ajustado Um modelo sub-ajustado apresenta uma reta literal que não se ajusta bem aos dados, descrevendo uma direção incorreta. Este tipo de ajuste é comum quando nós possuímos muitos dados e poucas variáveis independentes. ### Regularização Para resolver este problema de sobre ou sub-ajustamento, podemos utilizar regularização. As técnicas de regularização são utilizadas para calibrar modelos de regressão linear e minimizar a função de custo ajustada para evitar sobre-ajustamento ou sub-ajustamento. ### Técnicas de Regularização Existem três tipos de regularização comuns: ridge, lasso e elastic net. Neste tutorial iremos nos concentrar em três técnicas de regularização de ridge e lasso. #### Ridge Regularization A regularização de ridge modifica os modelos sobre- ou sub-ajustados adicionando uma penalidade equivalente à soma dos quadrados (ou o valor absoluto dos coeficientes) das variáveis independentes. A função de custo equivalente à regularização de ridge é: ```markdown cost_function = loss + Lambda * sum(W^2) ``` neste caso, `W` representa as pendentes do gráfico da reta linear. #### Lasso Regularization A regularização de lasso é semelhantes à regularização de ridge, mas em vez de usar a soma dos quadrados ou o valor absoluto dos coeficientes, a função de custo usa os valores absolutos individuais. A função de custo equivalente à regularização de lasso é: ```markdown cost_function = ∑ |individual loss value| + Lambda * sum |W| ``` Em ambos os casos, o valor de `Lambda` representa a penalidade por erros e o `W` representa as pendentes do gráfico da reta linear. Para ilustração, vamos ver como plotar linear regression, ridge regression e a regularização de lasso usando dois pontos no gráfico, em seguida, comparando seus ajustes com todas as nosso dados. ### Ridge Regression em Python Para ilustrar como junto Python, vamos irmos apelhar para o mód # Análise de Dados: Comparação de Modelos de Regressão ## Introdução Nesta análise, comparisonaremos três modelos de regressão: um setup agradável, regressão Lasso, e outro modelo. Nosso foco está no valor "Knox", pois é o coeficiente mais grande e comparamos os resultados entre os modelos. ## Configuração do Modelo de Regressão Configuramos os subplot de gráficos, usando X-bar baseado nas colunas e os coeficientes L do regulador. A equipe adicionou algumas cores atraentes para dar um toque de luxo no gráfico. ``` cor = 'cor X eixo superior este' # Resto do código ``` ### Comparação com o Modelo Existente No primeiro modelo, o valor de Knox é -18. Quando o comparamos com o novo modelo, o valor de Knox é -9, que é metade do valor original. ``` # Código para plotar os gráficos ``` ### Regressão de Lasso Podemos aplicar o mesmo método para o modelo de regressão de Lasso. Aquele já possui o valor de Knox em zero, e o maior coeficiente subsequente é -0, 8. A figura destacada é 22, 73 no modelo original, mas é de 16, 7 neste. ``` # Código para impressão e execução do modelo de regressão de Lasso ``` Quando compararmos os números, encontramos que o primeiro modelo prediçao melhor ao todo, pois o erro quadrado médio no conjunto de teste continua a cair. ## Seleção de Features No contexto de big data, coletamos vastas quantidades de informações. No entanto, não todas as informações nos serão úteis. Alguns atributos podem não contribuir muito para nosso modelo e podem ser descartados. Por exemplo, nos dados de um automóvel antigo, podemos descartar a coluna "Proprietário", pois não contribui para o modelo. Ter muito dados desnecessários pode causar o modelo a ser lento e inpreciso. ### Métodos de Seleção de Features Os métodos de seleção de Features ajudam a diminuir o número de variáveis de entrada aplicando apenas as de relevância e descartando a ruída dos dados. O objetivo é evitar o aprendizado da ruída e sobrecargar o modelo, melhorar a precisão e reduzir o tempo de treino. Temos dois tipos de métodos de seleção de Features: 1. **Seleção de Feature supervisionada** - Este método utiliza a saída de classe de étiqueta para a seleção de Features. Disponhemos de três opções: método intrínseco de wrapping, método filtro e método wrapping. - No método de filtro, as Features são descartadas baseado em sua relação com a saída ou em como elas se correlacionam com a saída. Este método seleciona a melhor Feature utilizando algoritmos de aprendizagem e análise de desempenho. - No método wrapper, dividimos os dados em subconjuntos de dados, treino um modelo utilizando cada subconjunto, adiciona e remove Features, e treina o modelo novamente. Avaliamos cada subconjunto de Features para determinar a melhor para o modelo. - O método intrínseco combina as qualidades de ambos os métodos de filtro e wrapping para criar a melhorsubset. 2. **Seleção de Feature não supervisionada** - Este método não requer rotulagem de saída ou classes para a seleção de Features. É principalmente para aprendizagem não supervisionada, que é um mercado em crescimento. Resumindo, a seleção de Features desempenha um papel cruciantal na análise de dados, pois ajuda a reduzir dados desnecessários, melhora a precisão do modelo e minimiza o tempo de treino. Entende-lo e implementá-lo pode melhorar significativamente os nossos modelos predictivos. ### Exemplo em Python Utilizaremos o Jupyter notebook e Python 3 para implementar a seleção de Features. ```python # Código para a seleção de Features em Python ``` Continuaremos a nossa análise olhando para as estatísticas de seleção de Features. Fique a vontade! # Análise de Precisão de Tiros de Basquete utilizando Seleção de Caracteristicas e Limpeza de Dados Este documento apresenta um processo para análise da precisão de tiros de basquete selecionando características relevantes, limpando dados e removendo informação redundante. ## Introdução Nesta análise, o objetivo é encontrar maneiras de reduzir o número de características e eliminar bias em nossos modelos, com foco na distância, ângulo e tempo restante de um tiro. Além disso, exploraremos a importância da limpeza e filtragem de dados. ## Preparação dos Dados ### Visão Geral Possuímos 25 características, algumas das quais não são relevantes para nossa análise. Falaremos sobre a localização X, localização Y, latitude, longitude, distância, ângulo, tempo restante e outras características selecionadas. ### Limpeza de Dados 1. **Localização X, Localização Y, Latitude, Longitude**: Estas coordenadas podem apresentar pequenas diferenças devido à importação de dados. No entanto, para nosso programa, não desejamos repeti-las. Faremos um plot de dispersão de localização X e localização Y, e outro plot de dados de grama de lat (que provavelmente são longitude e latitude). Em seguida, comutaremos a distância e o ângulo entre estas coordenadas. 2. **ID de Equipe e Nome de Equipe**: Estas informações não são importantes para nossa análise. Poderemos retirá-las. 3. **jogada em conjunto e adversário**: Estas colunas contêm informações duplicadas. Poderemos retirar as colunas duplicadas. 4. **Área de Zona de Jogada, Básica de Zona de Jogada, Redescobrimento de Zona de Jogada**: Estas colunas contêm a mesma informação que distância e ângulo. Poderemos os comparar uns com os outros e retirar a informação redundante. 5. **ID de Tiro, ID de Evento de Jogo, ID de Jogo**: Estas colunas não são necessárias e podem ser descartadas. ## Seleção de Características 1. **Distância**: Calculada usando a fórmula `distância = sqrt((localização X - localização Y)² + (latitude - longitude)²)`. 2. **Ângulo**: Calculada usando a fórmula `ângulo = atan((latitude - longitude) / (localização X - localização Y))`. 3. **Tempo restante**: Jungamos minutos e segundos numa única coluna. ## Análise Realizaremos análise de texto de tweets relacionados à Próxima Eleição Presidencial dos Estados Unidos usando bibliotecas Python. O objetivo é ajudá-lo a compreender como extrair tweets de contas no Twitter, armazená-los em um arquivo CSV e fazer análise de texto. ## Conclusão Esta análise tem o objetivo de reduzir o número de características, eliminar bias e limpar dados na predição de precisão de tiros de basquete. Além disso, fornece uma breve introdução à análise de sentimentos de tweets para a Próxima Eleição Presidencial dos Estados Unidos. Novembro de 2020: Eleições para a Casa Branca e o Congresso ========================================================== As eleições programadas para Novembro de 2020 terão lugar na América do Norte e decidirão o líder do governo dos Estados Unidos durante os próximos quatro anos. Aqui está uma visão geral dos cargos em disputa: * **35 assentos do Senado** da verdadeira cena do Senado dos Estados Unidos * **435 cadeiras da Câmara dos Representantes** da verdadeira cena da Câmara dos Representantes dos Estados Unidos * **A Câmara do Presidente dos Estados Unidos** Ambas as partes políticas, o Partido Republicano e o Partido Democrata, já tiveram eleitos seus respectivos candidatos presidenciais e vice-presidenciais: * **Donald J. Trump** - O atual Presidente dos Estados Unidos, representando o Partido Republicano * **Joseph R. Biden Jr. ** - O 47. º Vice-Presidente dos Estados Unidos e o candidato do Partido Democrata * **Mike Pence** - O Vice-Presidente atual, concorrendo a uma segunda candidatura como vice-presidencialista do Partido Republicano * **Kamala Harris** - Sra. Harris do Senado da Califórnia, escolhida como a companheira de chapa de Joe Biden no dia 11 de Agosto de 2020 ### Resultados das Eleições Presidenciais dos Estados Unidos de 2016 Nas Eleições Presidenciais dos Estados Unidos de 2016, a faixa da Chapa Republicana, composta pelo empreendedor Donald Trump e pelo governador do Indiana Mike Pence, conquistou a vitória sobre a Chapa Democrata composta por ex-ministra dos Negócios Estrangeiros Hillary Clinton e senadora dos Estados Unidos de Virginia Tim Kaine. Donald Trump obteveu um total de **304 votos eleitorais** enquanto Hillary Clinton faturou **227 votos eleitorais**. Um número significativo de estados centrais dos Estados Unidos foram vencidos pelo Partido Republicano. A sorpresa está na vitória representada por Donald Trump com quase 46, 4% dos votos populares comparado a Hillary Clinton que recebeu 48, 5% votos. ### Perspectiva para as Eleições Futuras Em termos de prognostico, as eleições de Novembro de 2020 são altamente favorecíveis tanto ao Partido Democrata quanto ao seu candidato para a Câmara do Presidente, Joe Biden. A ForestGuidance prevê que Joe Biden é favorito para vencer as eleições, com o partido Democrata com uma chance de 96% de vencer as eleições presidenciais e uma chance de 99% de que Joe Biden well aber máis votos. O Partido Democrata também tem uma chance de 75% de manter a maioria na Câmara dos Representantes dos Estados Unidos. #### Perspectiva dos Blogdo Pollsters | Fonte | Previsão | |--------------------------------------|-----------------------| | 538 | Biden favorito a ganhar | | The Economist | Biden ganhará a Câmara do Presidente da América do Norte com uma chance de 96% | | The Guardian | Biden apontado à frente nas pesquisas nacionais| | BBC | Biden apontado como o líder na pesquisa de candidatos presidenciais do United States com 51% | Vamos aguardar o dia 3 de Novembro, como os eleitores americanos decidirem quem será eleito para estar na Casa Branca durante os próximos quatro anos. ### Análise de Sentimento dos Tweets Para compreender a opinião dos utentes que bate nós de Donald Trump e Joe Biden, realizaremos uma análise de sentimento tagando-os em seus tweets. Nossa codificação extrai 5000 tweets para cada candidato, armazenando-os em arquivos CSV separados. Para rodar a análise, você deverá instalar as bibliotecas necessárias, buscar as chaves e índices de autenticação da API twitter e autenticar a próprea API da Twitter. Quando você tiver os dados, abra o Dashbroad no qual a codificação de análise é implementada. Primeiro, importemos as bibliotecas necessárias: ```python import numpy as np import pandas as pd import matplotlib. pyplot as plt import cmapy as cma from textblob import TextBlob from wordcloud import WordCloud import plotly. graph_objects as go ``` Seguido, importaremos os conjuntos de dados usando a função `read_csv()` e cargaremos-os nos separados data frames. ```python Trump_data = pd. read_csv('path/to/Trump_data. csv') Biden_data = pd. read_csv('path/to/Biden_data. csv') ``` Agora, vamos analisar o sentimento dos primeiros 500 tweets de ambos os candidatos usando a função `sentimento` de TextBlob: ```python para tweets em (Trump_data. iloc[: 500]['text'], Biden_data. iloc[: 500]['text']): análise = TextBlob(tweets) Polarity = [análise[i]. sentimento. polarity por i variável em range (len(tweets))] Subjectivity = [análise[i]. sentimento. subjectivity por i variável em range(len(tweets))] print('Polarity para os primeiros 500 tweets de', candidato, 'é: \n', Polarity) ``` Depois de rodar o código acima, você encontrará as pontuações de polariade para os primeiros 500 tweets de cada candidato. Isso fornecerá uma idéia da polariade geral das opiniões de Donald Trump e Joe Biden baseados em seus tweets. # Análise de Sentimentos no Twitter usando Dados Textuais (Em Português de Portugal) Este documento demonstra o processo de análise de sentimentos no Twitter utilizando dados textuais com Python. Nele iremos discutir os passos envolvidos na classificação de tweets, na determinação da polaridade, na criação de visualizações e no entendimento do sentimento público. Também abordaremos uma breve visão geral de perguntas sobre entrevistas de máquinas de aprender. ## Classificação de Tweets e Determinação da Polaridade Nesta seção, vamos guiá-lo através do processo de classificação de tweets e da determinação da polaridade. 1. Primeiro, descartamos todos os tweets neutros ou com polaridade igual a 0 de ambos os dataframes e mostramos as formas. ``` Resultado abaixo, consegui executar o código agora vamos descartar esses lugares que têm polaridade igual a 0 de ambos os dataframes e mostrar a forma dos dataframes. Pode ver que colocamos a condição mencionada e também usamos a função `draft`, portanto, todos os tweets neutros serão apagados. Estou a imprimir a forma do dataframe, aqui vou. ``` 2. Temos definido outra função chamada `balanced_data` que irá ajudá-lo a obter um número igual de linhas e colunas e desfazer a exclusão de uma quantidade especificada de linhas. ``` portanto, a partir dos 5000 tweets, apagou todos os tweets neutros ou desisti de todos os tweets neutros, o resultado final está no seu lugar nos atuais células, definimos outra função chamada `balanced_data` agora esta irá ajudar a obter um número igual de linhas e colunas e desfazer a exclusão de uma quantidade especificada de linhas. ``` ## Visualização de Dados Textuais Em seguida, criaremos algumas visualizações para analisar os dados textuais. - Utilizando a biblioteca de visualização `seaborn`, criamos uma plota de dispersão para o candidato Donald Trump. ``` Agora aqui está a plota de dispersão para o candidato Donald Trump. ``` - Igualmente, criámos uma plota caixa para demonstrar as pontas negativos nos dados. ``` Aqui pode ver que há alguns valores afora-dados. ``` - Também criamos uma plota caixa para o candidato Joe Biden. ``` Agora vou adicionar algumas células abaixo para que possa mostrar esse gráfico de Biden. ``` - Utilizando a função `groupby`, criamos uma tabela transposta para ter uma compreensão melhor dos dados. ``` Agora vamos avançar, vamos encontrar a porcentagem de polaridade dos tweets negativos e positivos. ``` ## Sentimento Público Definimos uma função chamada `polarity_percent` para calcular a porcentagem de polaridade negativa e positiva para os tweets de Donald Trump e Joe Biden. ``` Aqui eu estou chamando a função anteriormente definida e a imprimindo a porcentagem de polaridade para Biden e Trump. ``` ## Visualização do Sentimento Público Criamos uma barra para mostrar a porcentagem negativa e positiva de polaridade para Donald Trump e Joe Biden. ``` Aqui temos uma ótima barra, agora se passar o cursor do mouse pode ver que o candidato Donald Trump teve 27, 825% de tweets positivos e 22, 17 de negativo. ``` ## Palavras Mais Frequentes (Cloud de Palavras) Por fim, criamos um nuvem de palavras para visualizar as palavras mais frequentes em relação aos textos fornecidos. ``` Aqui temos um nuvem de palavras muito b needs! Portanto, na parte superior vê o título que diz "nuvem de palavras para respostas de Twitter de Donald Trump" portanto, pode ver alguns dos termos como "real Donald Trump" depois tem "presidente" "amor" por exemplo, etc ``` ## Perguntas Frequentes em Entrevistas de Máquina de Aprender Esta seção irá ajudá-lo com as perguntas mais frequentes nas entrevistas de aprendizagem de máquina. 1. Quais são os diferentes tipos de aprendizagem de máquina? ``` Há três tipos de aprendizagem de máquina: aprendizagem supervisionada, aprendizagem não supervisionada e de reforço. Na aprendizagem supervisionada, você possui dados históricos e os introduce no modelo para aprender. Em ênfase, use o termo "dados etiquetados". A aprendizagem não supervisionada é quando você não possui este dados etiquetados, portanto o sistema precisa aprender a fazer alguma análise. A aprendizagem por reforço funciona da maneira que tem dois elementos principais: o agente e o ambiente. ``` 2. O que é a overfitting e como para evitá-lo? ``` A overfitting é uma situação em que o modelo aprendia como se tivesse memorizado os dados. É como se estou ensinando um filho a reconhecer frutas e o filho memorizou os dados em vez de compreender o conceito. Pode evitar a overfitting através de técnicas como cruzamento-de-validação, regularização e early stopping. ``` Outros tópicos que podem ser abordados em uma entrevista de aprendizagem de máquina incluem: - Processamento de dados e engineeramento de características - Técnicas de aprendizagem supervisionada e não supervisionada como regressão, classificação, agrupamento, e redução de dimensionalidade - Avaliação e seleção de modelos - Aprendizagem por reforço - Redes Neurais Fundidas (DNN) - Recursos Neurais Recorrentes (RNN) - Aplicações de reforço do aprendizado e teoria do jogo - MISC (Modelos Interpretáveis e Transparentes) A compreensão desses tópicos e o foco na experiência prática irá prepará-lo para suas entrevistas de aprendizagem de máquina. # Introdução ao Treinamento de Aprendizado de Máquina Este exemplo demonstra o processo de treinamento de um modelo de aprendizado de máquina, utilizando a analogia ensinar um menino a reconhecer frutas. 1. **Conjunto de Treino: ** - Você colecta uma cesta de frutas, constituída por maçãs, naranjas e abacaxis. - Você mostra esta cesta ao menino, descrevendo cada uma das frutas individualmente. O menino não estará familiarizado com seis início. Por exemplo, você pode identificar uma maçã como "esta é uma Maçã". Repita este processo até que o conjunto de treino (cesta) esteja vazio. - Durante o processo inicial de treino, o menino fará erros mas, gradualmente, será finga e começará a reconhecer as frutas: "esta é uma Maçã", "esta é uma Naranja" e "esta é um Abacaxi". 2. **Conjunto de Teste: ** - Após o processo de treino estiver completado, o menino encontra uma nova cesta de frutas, algumas das quais não as viu antes (por exemplo, bananas ou jaca). Esta cesta nova é similar ao conjunto de teste em aprendizado de máquina. - Quando o menino encontra frutas familiares do conjunto de treino, elas podem ser reconhecidas com precisão, mas novas frutas poderão apresentar desafios. 3. **Sobrefitu: ** - O sobrefitu pode surgir durante o processo de treino, onde o modelo é capaz de alcançar alta acurácia com o conjunto de treino inicial mas pode apresentar baixa performance quando exposto a dados novos e desconhecidos. Esta queda de performance é referida como alta erro ou baixa acurácia. - Para se evitar o sobrefitu, podemos utilizar técnicas como regularização. A regularização é um método comum utilizado para evitar que o modelo de aprendizagem se concentre apenas nos ruídos, variações ou erros nos dados de treino e se ajuste demais ao conjunto de dados de treino. 4. **Split de Treino e Teste: ** - No aprendizado de máquina, dividimos os dados em conjuntos de treino e teste para avaliar o desempenho do modelo. Uma porção dos dados etiquetados é reservada como o conjunto de teste e é apenas usada depois do modelo ser treinado nos dados restantes, que são o conjunto de treino. - Durante o processo de treino, o conjunto de treino não é apenas passado pelo modelo uma vez, mas várias vezes para garantir que o modelo reconheça e aprendesse os padrões nos dados. 5. **Manipulação de Dados: ** - A manipulação de dadosdepende do projeto específico e do tipo de dados que estão sendo utilizados. - No caso de dados faltantes, uma abordagem seria remover aqueles registros da análise. - Cpimbos menos críticos, onde o esforço necessário para preencher e corrigir os dados faltantes é alto, pode ser uma opção desconsiderar registros afetados. - Em outros casos, preencher os valores faltantes com um valor significativo, como a média de uma determinada coluna, pode ser uma abordagem melhor. 6. **Escolha do Classificador: ** - Em vez de confiar no tamanho do conjunto de treino para decidir o tipo de classificador, é melhor experimentar com vários classificadores e escolher o que funciona melhor para os dados de entrada. **Seção 1: Aprendizado de Máquina** =================================== ## **O que é Aprendizado de Máquina? ** O Aprendizado de Máquina é um campo de pesquisa centrado no desenvolvimento de sistemas que podem aprender a resolver problemas complexos e detectar padrões, sem a necessidade de intervenção humana. Um modelo treinado pode ser utilizado para prever ou calcular resultados futuros com base em informações históricas. --- **Seção 2: Formas de Aprendizado de Máquina** =========================================== ## **Aprendizado Supervisionado** Neste tipo de aprendizado, os dados treinados precisam ser marcados com etiquetas ou rotulados. O modelo deve aprende a identificar as relações entre os dados de entrada e saída. ## **Aprendizado Não Supervisionado** Neste tipo de aprendizado, o modelo deve utilizar manualmente a informação em mmasina de treino. O objeto é que o modelo identifique as relações e a estrutura dos dados por si só, sem rotulagem ou etiquetas. ## **Aprendizado Reforçado** Neste tipo de aprendizado, o modelo é treinado para se adaptar à informação recebida e receber recompensa por acertos. Ou seja, ao longo do tempo, o modelo aprende a produzir saídas corretas e melhorias. --- **Seção 3: Desafios e Melhores Práticas** ========================================= ## **Desafios** * Obtener dados adequados e de qualidade para o treinamento do modelo. * Detectar inconsistências e erros nos dados de treino. * Geração de um modelo que seja eficaz em prever resultados para novos dados. ## **Melhores Práticas** * Remoção de dados inconsistentes ou irrelevantes com o seu modelo de treino. * Divide e faça o cross-validation em grupos de dados para aumentar a performance e a generalização do modelo. * Utilize algoritmos adequados com base nas características e regra de negócio do seu problema. * Realize tuning eoptimização de hiperparâmetros para ajustar e melhorar o modelo de acordo com a sua necessidade. **Nota**: Ao corrigir este texto, foi mantida a organização de seções e sub-seções, além das diferentes formatações de texto. As correções nesta resposta incluem correção de gramática, adição de mais detalhes e a troca de termos para português para Portugal. # Contribuindo para nossa Model: Entendendo a Engenharia de Características e Aprendizado Profundo Nos processos de ciência de dados, frequentemente precisamos decidir se tomar todas as características ou se eliminar algumas delas. Ambos os métodos apresentam vantagens e desvantagens, conforme discutido abaixo. ## Engenharia de Características Quando decidirmos tomar todas as características, lembre-se que a precisão do modelo pode ser afetada. Além disso, deve-se considerar a aspecto computacional, pois muitas características podem fazer o processo bem complexo, especialmente quando se lidar com uma grande quantidade de dados. No reino do aprendizado de máquinas, identificamos manualmente as características que não contribuem para o processo de aprendizado, assim, eliminando essas características desnecessárias. Esta prática é referida como engenharia de características, que é realizada manualmente no aprendizado de máquinas. No caso do aprendizado profundo, onde usamos redes neurais, o modelo determinará automaticamente quais características utilizar e quais não utilizar. Assim, a engenharia de características é também realizada automaticamente no aprendizado profundo. ## Aprendizado de Máquinas vs Aprendizado Profundo A tabela de comparação rápida a seguir mostra uma comparação entre o aprendizado de máquinas e o aprendizado profundo: ### Aprendizado de Máquinas - aprende models para tomar decisões suas próprias baseado em dados anteriores. - funciona bem em sistemas de baixo custo. - requer uma quantidade mínima de dados etiquetados para treinamento. - a maioria das características precisam ser identificadas e codificadas manualmente. - o processo de solução de problemas é feito em partes e então combinado. ### Aprendizado Profundo - utiliza redes neuratonais artificiais. - tipicamente requer uma quantidade maior de dados etiquetados para treinamento. - caracterizado pela uso de redes neuratonais. - o processo de treinamento requer medidas de alto nível devido à necessidade de um alto poder de cálculo. - a engenharia de características é realizada automaticamente. ## Aprendizado Supervisionado de Máquinas - Aplicações Existem muitos exemplos de aprendizado supervisionado, como: - Detecção de spam de e-mail: treine seu sistema para detectar e-mails como spam ou não spam utilizando dados etiquetados. - Diagnóstico em Saúde: treine os modelos para detectar doenças enganando imagens etiquetadas, tais como radiografias, para dentro do modelo. --- ## Aprendizado Semi-Supervisionado de Máquinas Em situações em que obter dados etiquetados não é fácil, pode-se usar o aprendizado semi-supervisionado. O aprendizado semi-supervisionado é um misto entre o aprendizado supervisionado e o não supervisionado, se dando preferência para o aprendizado supervisionado. Esta abordagem se aplica quando uma grande quantidade de dados está disponível, mas não etiquetada. Com técnicas para etiquetar os dados não etiquetados, o modelo então pode ser treinado. --- ## Aprendizado de Máquinas Não Supervisionado - Técnicas No aprendizado de máquinas não supervisionados, as técnicas mais populares são a agrupamento e a associação. A agrupamento é uma técnica na qual objetos semelhantes são agrupados, enquanto a associação é utilizada num cenário comercial para descobrir como itens estão associados. Por exemplo, as pessoas que compram computadores geralmente estão interessadas em mouse e as pessoas que compram pães geralmente estão interessadas em manteiga. --- ## Aprendizado Supervisionado vs Não Supervisionado de Máquinas O aprendizado supervisionado utiliza dados etiquetados para treinar os modelos, enquanto o aprendizado não supervisionado não precisa de dados etiquetados. Diferentes algoritmos estão disponíveis para ambos os tipos. --- ## Aprendizado Indutivo vs Dedutivo de Máquinas O aprendizado indutivo é o processo de aprender a partir de exemplos observados, enquanto o aprendizado dedutivo é o processo de deduzir princípios ou regras gerais a partir num pequeno conjunto de exemplos observados. --- ## KNN vs K-Means Clustering O KNN (k-vizinhos mais próximos) é um processo de classificação que pertence ao aprendizado supervisionado, enquanto o K-means clustering é aprendizado não supervisionado, em que os dados são agrupados em cúpulas baseado nas características. A única característica comum entre eles é a letra K. # Álgoritmo de Classificação por K-Próximos Vizinhos ## Visão Geral O Álgoritmo de Classificação por K-Próximos Vizinhos (KNN) é um algoritmo de aprendizado de máquina utilizado para classificação de dados. Esse algoritmo classifica novos dados com base nos dados mais próximos de uma amostra de dados. ## Entendendo o Algoritmo K-Próximos Vizinhos ### Conceito Básico - K é um número que você pode escolher (por exemplo, K = 3). - Pode dizer que K é igual a 3 se você desejar implementar KNN com K = 3, o que significa que irá performar a classificação com base nos objetos mais próximos. Por isso, é chamado de vizinho mais próximo. - O algoritmo classifica dados novos procurando os três objetos mais próximos no conjunto de dados e determinando sua classe. - Se todos os três pertencerem à mesma classe, o objeto novo será classificado como a classe particular. No entanto, é possível que eles viem de duas ou três classes diferentes. ### Escolhendo o Valor de K - O valor de K pode ser confuso. Devias usar 3, 5, ou 7? - A classificação final varia de acordo com o valor de K. Por exemplo: - Se K = 3, o objeto poderá pertencer a uma determinada classe, mas se K = 5, o objeto pode pertencer a outra classe. ### KNN como um Processo de Classificação em Clusters - K refere-se a clustering K-means, que é um algoritmo de aprendizado não supervisionado para análise de grupos. - O K-means é utilizado para agrupar objetos similares por minimizar a distância entre pontos de dados dentro dos grupos. - Ao especificar K para o clustering K-means, pode escolher qualquer número de clusters. ### Classificador Naivo Bayes - IBASE (Independent and Identically Distributed Bayesian Classifier) é um classificador probabilístico. - Ele faz a suposição de que a presença de uma determinada característica de uma classe não é relacionada à presença de outra característica de outra classe. - Essa suposição pode não ser precisa, pois as características podem ser relacionadas. No entanto, o classificador funciona bem mesmo com essa suposição. ## Aprendizado de Reforço O aprendizado de reforço é um tipo de aprendizado de máquina onde um agente aprende a fazer decisões através de interações com o ambiente para atingir um objetivo. ### Exemplo de Aprendizado de Reforço no Xadrez - O agente é recompensado quando faz movimentos (passos) que o colocam perto do objetivo (ganhar o jogo). - O agente é penalizado quando faz movimentos que o distanciam do objetivo (perder o jogo). - Um sistema pode usar o aprendizado de reforço para jogar um jogo de xadrez procurando pelos movimentos e aprendendo de forma semelhante, sem ter que entender o significado do jogo. ## Escolhendo o Algoritmo de Aprendizado de Máquina para Classificação - Não há um algoritmo de aprendizado de máquina "one-size-fits-all" para classificação. - Você precisará experimentar diferentes algoritmos e escolher o que dá a melhor performance ou acurácia para seu problema específico. - A solução "a prova de tiro" é geralmente necessária para escolher o algoritmo certa para um determinado problema de classificação. ## # Documentação: Exemplos Técnicos e Conceitos ## Previsão e Regressão de Temperatura *Qual será a temperatura amanhã? * Para prever a temperatura, você precisará fornecer um valor como 20 graus, 30 graus ou qualquer outro. Nesse ponto, é utilizado **regressão** de algoritmos. **Exemplo** se você quer previsão de preços de ações, também utiliza-se regressão. ## Construindo um Filtro de Spam *Como criar um filtro de spam? * Essa questão é sobre entender os conceitos e o algoritmo que você usará, assim como a diferença entre os algoritmos de classificação e regressão. A coisa principal aqui é que este problema é um **problema de classificação**, onde você quer saber se um e-mail é *spam* ou não, instruindo o filtro de forma appropriada. Primeiro necessita-se entender **o tipo de problema**, e isto é, certificar-se de que é identificado como o problema de classificação. A **segunda etapa** é escolher o **algoritmo a ser usado**. Enquanto esse é um problema binário de classificação, a regressão logística é uma boa opção, mas é importante lembrar que a melhor opção pode variar de problema para problema. Outras opções podem ser árvores de decisão de decisão ou máquinas de suporte (SVM). Você deverá **listar algumas dessas opções** e depois **testá-las** utilizando os seus dados históricos (dados etiquetados). Divida-os em subconjuntos de treinamento e teste e **treine seu modelo** utilizando um algoritmo que seja apropriado. **Teste cada modelo** para visualizar a qual dá a melhor precisão. **Selecione o modelo melhor** e **implante**-o ou coloque-o em produção. ## Floresta Aleatória *O que é Floresta Aleatória? * A Floresta Aleatória é um **algoritmo de aprendizagem de conjunto** que agrega várias árvores de decisão e usa a votação para identificar a classe final. No caso da Floresta Aleatória, a mesma lógica é utilizada, mas ao invés de usar uma instância, você utiliza várias instâncias e vota para a finalmente classe. ## Escolha do Algoritmo de Aprendizagem de Máquina *Como escolher o algoritmo de aprendizagem de máquina? * A escolha do algoritmo de aprendizagem de máquina depende do problema a ser resolvido. Não existe uma solução de um-tamanho-para-todos, então uma forma de encurtar a lista é considerando se o problema é um problema de classificação ou regressão. No entanto, não será possível escolher o algoritmo exato para um conjunto de dados específico. Você deverá **escolher algumas opções** com base no problema e testá-las com seus dados. **Treine alguns modelos** e **compare erros** ou **precisão** para determinar o algoritmo melhor. ## Compromisso entre Bias e Variância *Explique o compromisso entre bias e variância? * O **compromisso entre bias e variância** é crucial, porque os objetivos dos dois são opostos, razão pela qual deve-se harmonizar-se ou encontrar um compromisso. Quando o bias é alto, os valores pré-preditos estão muito distantes dos valores reais, em enquanto alta variancia faz com que os mesmos sejam instáveis e, em muitos casos, se represidem. É essencial decidir o nível tolerável de seu bias e variância, para garantir que os seus resultados finais sejam consistentes e precisos. ## Precisão e Recorde *Defina precisão e recorde*. A **precisão** é a razão do número de vezes que o algoritmo correto as previsões, dividida pelo número total de responças do algoritmo. A **recorde** é a razão do número de previsões correctas ao número total de casos em que o algoritmo seria esperado ter produzido uma resposta corrente se a previsão tivesse sido idêntica à da verdade. ## Acidental dos Nós de Decisão *O que é o acidental dos Nós de Decisão e por que é necessário? * O **acidental dos Nós de Decisão** é necessário para reduzir o overfitting e simplificar árvores complexas. Simplifica o número de ramos na árvore para evitar o overfitting e evitar as regras para se tornarem muito complexas. ## Regressão Logística *O que é regressão logística? * A regressão logística é uma técnica de classificação, especificamente para classificação binária, usada para prediver a probabilidade de um evento ocorrer. Lembrando que "logística" vem da função logaritmo e o termo em si não tem nenhuma conexão com o logística como entendemos comumente. # Regressão Logística e Algoritmo de K-Vizinhos Mais Proximos A Regressão Logística é utilizada para classificação binária, e o resultado de uma regressão logística é um zero ou um. Ele cálcula uma probabilidade entre 0 e 1, e podemos definir um limiar que varia, frequentemente é 0, 5. Assim, qualquer valor acima de 0, 5 é considerado como 1, e se a probabilidade estiver abaixo de 0, 5, é considerado como zero. Não é necessário que esta seja a única maneira de calcular a probabilidade, mas é uma maneira comum. Baseado no limiar, o sistema define um valor de 0 ou 1, que é uma classificação binária (0 ou 1). Agora, vamos avançar para a questão em torno do algoritmo K-Vizinhos Mais Proximos (KNN): **Explicar o Algoritmo K-Vizinhos Mais Proximos (KNN): ** 1. Primeiro de tudo, o que é o K-Vizinhos Mais Proximos (KNN) algoritmo? É um algoritmo de classificação. 2. Também precisamos mencionar que o K é um número, é um inteiro e é variável. Pode-se definir qual valor o K deve ser (por exemplo, 2, 3, 5, 7), e frequentemente ele é um número ímpar. Técnicamente, ele pode ser par, mas então seria melhor utilizar um número ímpar. 3. Utilizando o valor de K, classificamos objetos. Imaginemos uma diagrama: ``` . . . * Cluster 1 * Cluster 2 * Cluster 3 ``` Suponha que temos três cluster (ou classes) existentes, e agora queremos descobrir para um novo item que veio, em qual classe pertence. Portanto, como o nome sugere, vamos a funcionar encontrando os vizinhos mais próximos (pontos que estão mais perto deste) baseado no valor de K definido. Por exemplo, se K é 5, você encontrará os cinco pontos mais próximos. Se todos os cinco não pertencem à mesma classe, como decidir? Isso exatamente para o motivo que devemos, quanto possível, utilizar um número ímpar de K, para ser mais fácil de atribuir a classe. Neste caso, se existem múltiplas classes, vai com a classe na qual a maioria dos pontos pertence. Isso é basicamente como é decidido. **K-Vizinhos Mais Proximos: ** 1. Identifique o número de vizinhos definidos como K. Por exemplo, K pode ser K = 5. Então, encontramos os cinco pontos mais próximos. 2. Depois, descubra quais são as classes com o maior número de itens dentre esses cinco. 3. Atribua o ponto de dados a essa classe. Já é quase isso que o K-Vizinhos Mais Proximos funciona. Bem-vindo ao este vídeo sobre Mapa de Aprendizado de Máquina 2021 ---------------------------------------------------------------- A Inteligência Artificial (IA) e o Aprendizado de Máquina tiveram sido as palavras-chave mais explodidas em 2020. o Aprendizado de Máquina pode ser uma mudança de carreira interessante para programadores, desenvolvedores e outros profissionais que buscam uma mudança de carreira. Nas últimas poucas anos, o Aprendizado de Máquina e a IA se tornaram um componente crucial em muitas aplicações de negócios populares do mundo. Enquanto abordamos 2021, é um bom momento para nós tomar uma olhada no Mapa do Aprendizado de Máquina para 2021. Neste vídeo, vamos discutir os fundamentos do Aprendizado de Máquina, as habilidades necessárias para se tornar um especialista em Aprendizado de Máquina em 2021, o salário de um Engenheiro de Aprendizado de Máquina e como a Simples Aprendizagem pode ajudar você a se certificar em Aprendizado de Máquina. Saiba mais sobre o Aprendizado de Máquina visitando nosso site [Simples Aprendizagem](https://www.simplylearn.com) e inscreva-se nosso cursos de Aprendizado de Máquina. Fique atento para mais atualizações! ## Top 10 Aplicações da Aprendizagem Máquina | Aplicações da Aprendizagem Máquina e Exemplos | Simplilearn [Transcrição indisponível] --- ## Algoritmos de Aprendizagem Máquina | Tutorial de Aprendizagem Máquina | Algoritmos de Ciência de Dados | Simplilearn [URL](https://www.youtube.com/watch?v=I7NrVwm3apg) Idioma: Português (Portugal) Olá, aqui está Ramon. Sem interromper alguém, Marcelo da Sensação de Água Quente lidera a tabela, tornando-se débito para o clube chamado Caldis e Caules, as aplicações mais comuns em Reação de Linha, Difusão da Secreção, e Olhos Longos. É o que eles são e ele se tornou um monstro. Filmes estão sendo usados para aplicar filtros, e, claro, mas sua casa é. . . palco e tela, e está disponível na internet. Verdanho, dada a profissão de incêndio e plásticos em sua posição no mundo, empresas como a Jucemg Technicolor Academy, Chan Hinton, deveriam certamente utilizar aprendizagem máquina. Você obterá um trabalho doméstico e sentará em casa com sua cabeça em casa, frente ao Player de Mídia Central para os exemplos, como Hemoglobina e estilo Panda-Chuteira, em geral, regiões e fontes de luz de sua vida através de tão muito. Seus Amigos, um vídeo, pipoca balde, lobisomens, aplicação da Aprendizagem Máquina, e o Que está Falta. . . É possível ver Cross e o Velho Mcdonald. . . tipos de mestre em todas as regiões e blocos de seus amigos, em silêncio para. . . Python, da Cor, em uma grande on-line reação, Strike Edition, Edição gratuita, e Força Dragão. Eu sabia que. . . vamos dar início. Vamos começar as aplicações fantásticas de Máquina de que Não Há Mais. . . somente a sua. . . máquina. E eu. . . da indústria PSOL rádio e fechar organização é mais do que apenas um lugar seguro para Places, se então a janela fornece uma maneira de sair deste lugar, aqui neste vídeo, pois aqui é esse amizade, Eu adoro e também morreu e como dizer Chame o filme seguia sem interferir na televisão, mas não gosta que mexa, requerendo ao juiz a mandar um texto do serviço digital Bioware mudar o canal 39, verificado quando sua cabelo precisa análise de imagens de Vida Extrema, e maisi com crise em Lissabon, um corte de filme de corpo-d Generais mêxer em Inteligência Artificial, grandes casas apenas para os Generais e realizando que esta imagem é um jardim e evento divertido de Qualquer Elize Matsunaga 13 e Netflix Simple. Você deve estar ciente de The House of Cards show o CT de análises onde o próximo vídeo de corte dental extrai dados sobre os clientes pet milliós, informação sobre os recursos verdes para o vídeo e uso desta informação para este site eAsset organização foi autorizada pelo juiz especificar-se que te teve tempos como São Paulo – Sensitive Topic. # O Mundo da Geração da Amor ## Alegrias do Amanhecer O Metrô não era menos agradável ao amanhecer. Adoro-o, mas não posso esquecer a Geração da Amor de Você. Você pode utilizar esta resposta para este Semana ao fim do mundo, que olha para fora pelo mundo para você e mostra correlação e poder negro. É uma questão do Ano Special Edition. Durante o Evento Clion 73, encontramos atividades apropriadas para crianças disponíveis durante a Missa. Dentro da igreja em Aveiro, também fizemos o desenhamento da igreja Morna e ele também detém a espada preta de Dama. com. Há uma marca grande de Cães de Amor, RedeTV notícias, e pesquisas comparativas em termos de Informação Sindical. Também acreditamos que Pinguim e seu trabalho possam treinar nós no equipar concha samurai com você. Agradecemos a corrida do dia e a Nação por apoiar nossos propósitos de treino. ## Pressão e Aviso Precisamos ver um Mundo Melhor para criar seu próprio perfil de teste. Por exemplo, se forem um dos Três Tempos e uma Viagem Vermelha pela estrada por suas mãos, podemos prever e avisá-lo. O Mundo do Respeito e da Rodovia da Vitória são lugares em Porto Velho que merecem uma visita por sua beleza de velocidade. Acompanhe-me nesta Ponto. ## Casa Moderna é da Tec Também temos uma casa moderna em Porto Velho que opera com energia solar. Encontre uma equação de Linhas é a coisa melhor a fazer se desejar compreender a Navegação Linear. ## Jogos, Pets, e Mais Há um registro de Rust seu Mundo Perfeito no iTunes. Há também um jogo chamado Dofus com sua classificação geral. Há também ênfase na Fashion de Campo de Neve Make Up Alex Street London. No mundo dos Pontos Desencadeantados, há um processo para calcular a probabilidade, e é necessário garantir que não desista dos cancelamentos. Também existe uma Proposta de Classificação. ## Viagem Espiritual Nós encontramos nosso Caminho Espiritual Within e Beyond através de algumas interessantes desafios. É importante estar consciente da Anima e puxar sua forma para através. O Mundo Assim não é um Bobo. É importante continuar a trabalhar duro e não se esquecer do seu passado. No mundo de Harlem, buscamos nosso estilo moderno. Corremos uma cruz em algumas rampas de teste treme de certa certeza mais rápido. Também tentamos criar a nossa melhor fonte de teste de Mergulhão cole de predicado desses encontrados Across um Blog este Minuto em Cada Um dos Tempos. ## Colaboração e Parceria Grande obrigado ao Gestor de Canais Bei e também Eliseu pela sua apoio e orientação. Somos nossos maiores fãs e trabalhamos duro para melhorar. Esperamos que você goze do Alma e da Espírito de nosso trabalho. Sinta-se à vontade para entrar em contato se tiver alguma pergunta ou sugestão. --- [Link para o Vídeo no YouTube](http://www.youtube.com) [Link para RedeTV Notícias](http://www.redeTV.com) [Link para o Jogo Dofus](http://www.dofus.com) [Link para Fashion de Campo de Neve](http://www.alexstreetlondon.com) # Documentação ## Tabela de Conteúdos 1. [Introdução](#introdução) 2. [Termos Técnicos](#termos-técnicos) 3. [Comandos e Código](#comandos-e-código) 4. [Referências](#referências) --- ## Introdução Este documento apresenta uma visão geral breve de vários conceitos e tecnologias relacionados a um determinado projeto. --- ## Termos Técnicos - **MapReduce**: Um modelo de programação e uma implementação associada para processar e gerar grandes conjuntos de dados com um algoritmo de processamento paralelo e distribuído em cluster. - **Hadoop**: Um *framework* de *software* open-source para armazenamento de dados e execução de aplicações em clusters de hardware de *commodity*. - **Hadoop Distributed File System (HDFS)**: Um Sistema de Arquivos que fornece armazenamento de dados para Hadoop. - **Hive**: Um *data warehouse* e *engine de consulta SQL* construído sobre Hadoop para fornecer resumo de dados, consulta e análise de dados. - **Pig**: Uma plataforma para análise de grandes conjuntos de dados que consiste numa linguagem de programação de alto nível para expressar programas de análise de dados, associada a estruturas para avaliação destes programas. --- ## Comandos e Código A seguir encontram-se alguns exemplos de comandos e código relacionados a Hadoop e à sua ecossistema: 1. **Comandos básicos de HDFS: ** ``` hdfs dfs -put input_file /user/username/output_folder hdfs dfs -ls /user/username/output_folder hdfs dfs -cat /user/username/output_folder/output_file ``` 2. **Comandos de Hive: ** ``` beeline -u jdbc: hive2: //localhost: 10000 -n hansolo -f create_database. hql beeline -u jdbc: hive2: //localhost: 10000 -n hansolo -f create_table. hql beeline -u jdbc: hive2: //localhost: 10000 -n hansolo -f load_data. hql beeline -u jdbc: hive2: //localhost: 10000 -n hansolo -e "SELECT * FROM table_name; " ``` 3. **Comandos de Pig Latin: ** ``` pig -x mapreduce -f script. pig ``` --- ## Referências 1. [Apache Hadoop](https://hadoop.apache.org/) 2. [Apache Hive](https://hive.apache.org/) 3. [Apache Pig](https://pig.apache.org/) --- ## Citações > "Hadoop é um *framework* de computação que permite o processamento distribuído de grandes conjuntos de dados em clusters de computadores. " > (Fonte: Apache Hadoop) > "Hive é um *data warehouse* e *engine de consulta SQL* construído sobre Hadoop. " > (Fonte: Apache Hive) > "Pig é uma plataforma para análise de grandes conjuntos de dados que consiste numa linguagem de programação e infraestrutura. " > (Fonte: Apache Pig) --- ## Conclusão Neste documento, discutimos alguns conceitos básicos e tecnologias relacionadas a Hadoop e à sua ecossistema, incluindo HDFS, Hive e Pig. Além disso, apresentamos exemplos de comandos e código, bem como referências para aprender cada tema. # Seleção de Recursos em Aprendizagem de Máquina **Tabela de Conteúdos** 1. **Introdução** - Importância da Seleção de Recursos - Definição da Seleção de Recursos 2. **Métodos de Seleção de Recursos** - Seleção Básica de Recursos - Seleção de Recursos Supervisionada - Método em Volta intrínseco - Método de Filtro - Seleção de Recursos Não Supervisionada 3. **Método de Filtro** - Entendendo o Método de Filtro - Seleção de Recursos Mais Importantes - Exemplo: Classificador de Livros 4. **Método em Volta** - Entendendo o Método em Volta - Exemplo utilizando Dados de Livros 5. **Método Intrínseco** - Entendendo o Método Intrínseco - Exemplo e Vantagens --- **Seleção de Recursos em Aprendizagem de Máquina | Técnicas de Seleção de Recursos com Exemplos | Simplilearn** [https://www.youtube.com/watch?v=5bHpPQ6_OU4](http://www.youtube.com/watch?v=5bHpPQ6_OU4) Sou o Richard Kersner da equipe do Simplilearn (<www. simplilearn. com>). Certifique-se, vá para a frente hoje! Veremos o que acontece para você, a necessidade da seleção de recursos, o que é seleção de recursos, seleção de recursos de métodos, e estatísticas de seleção de recursos. A necessidade de seleção de recursos para treinar um modelo: Colectamos grandes quantidades de dados para ajudar a aprender melhor. Considere uma tabela que contém informações de carros antigos. O modelo decide quais carros devem ser esmagados para obter peças de reposição. Quando falamos de grandes quantidades de dados, eles guardam tudo, de imagens de gatos favoritos dos pessoais até muito mais dados, mesmo na empresa, eles guardam várias informações sobre as pessoas e as empresas e as corporações. Você precisa ter alguma forma de navegar porque se você tentar correr seus modelos em tudo, você terá modelos torcidos que pode ter problemas. Neste caso, estamos falando de carros e de esmagar, mas não tudo este dado será útil para nós; alguns classes ou partes do dado pode não contribuir requirements significantemente para o nosso modelo e podem ser descartados. Por exemplo, o proprietário do carro ? Em nosso dado, um carro não será esmagado com base no dono anterior. Assim, você sabe que é um pouco um claro - pode ver por que eu me preocupe com quem era o dono do carro, já que ele está no local de descarte e estamos esmagando os carros - não vamos avidamente se importar com isso. Aqui, nos descartamos a coluna de proprietário, pois não contribui para o modelo. Ter muito dados desnecessários pode tornar o modelo lento, e o modelo também pode aprender disso dado irrelevante e inexato. A seleção de recursos é um processo de reduzir o número de variáveis de entrada de modelo usando apenas dados relevantes e descartando o ruído nos dados. Considere a base de dados a seguir em que uma biblioteca deseja doar alguns antigos livros para criar espaço nas prateleiras para livros novos. Queremos treinar um modelo para automatizar esta tarefa. Neste caso, a cor do livro não é relevante e pode ser descartada usando a seleção de recursos. Podemos otimizar nossa modelo de várias maneiras, como a prevenção de aprendizagem de ruído e sobrecarga, melhoria da precisão, e diminuição do tempo de treinamento. A vantagem principal é a prevenção de aprendizagem de ruído e sobrecarga, pois não queremos que ele nos dê uma previsão errada, ou seja, também queremos que esteja em média perto da resposta certa como possível. Adicionalmente, queremos reduzir o tempo de treinamento, pois é um crescimento exponencial em alguns destes modelos; portanto, cada valor additional incrementa no mesmo grau o tempo de treinamento. Agora vamos discutir métodos de seleção de recursos usando uma diagrama que mostra vários métodos usados para seleção de recursos: 1. **Seleção Básica de Recursos** 2. **Seleção de Recursos Supervisionada** - Método em Volta Intrínseco - Método de Filtro 3. **Seleção de Recursos Não Supervisionada** Na seleção de recursos supervisionadas, usamos a classe de saída da função de classificação para seleção de recursos. Se lembrar, investigaram três métodos diferentes: em volta intrínseco, filtro, e método de filtro. No filter method, os recursos são descartados com base em sua relação a saída, como eles estão se correlacionando com a saída. Assim, precisamos encontrar a que recursos estão se relacionando com o desempenho na saída. Considerem o exemplo de um classificador de livros. Aqui, descartamos a coluna de cor base em uma dedução simples. Avançando, vamos discutir o método em Volta. No método em Volta, dividimos nossos dados em conjuntos e treinamos um modelo com isso. Com base no resultado do modelo, adicionamos e removemos recursos e treinamos o modelo novamente. Utilizando o conjunto de dados de livros pelo método em Volta. Usamos um subconjunto diferentes dos recursos para treinar a máquina e ajustar um subconjunto conforme a saída. Aqui, digamos que tomamos o nome e o número de vezes vermelho e rodamos apenas os dois. Verifiquemos o resultado e, se tivéssemos rodado tudo com quatro entradas, poderia ver uma variação diferente. Podemos dizer "Eu sei o que; o estado do livro e a cor realmente não afetam o que estamos procurando. " Utilizando o método em Volta, escolheríamos o nossa conjunto de recursos final com base nos resultados para nosso modelo. Talvez descubram que o nome e o número de vezes vermelho são provavelmente essenciais. Finalmente, o método intrínseco combina o atributos de ambos o filtro e em volta métodos para criar o melhor conjunto. O modelo treinará e verificará a precisão de diferentes conjuntos e selecionará os melhores entre eles. Alguns temas adicionais de Seleção de recursos: fora dos temas abordados aqui - há muito mais a explorar. Encourago você a invistigar profundamente em este tópico interessante e expandir suas conhecimentos. Que tenha uma boa assistência; incite-nos mais! # Resumo Algoritmos de Seleção de Características Este documento fornece uma pequena visão geral de algumas das algoritmos de seleção de características comuns, principalmente em métodos supervisionados. ## Métodos Supervisionados ### Método de Filtro O método de filtro utiliza medidas estatísticas como o Coeficiente de Pearson, CH quadrado e Coeficiente de Novoa para avaliar a relevância das características. Esses métodos são utilizados para determinar a relação entre as características e a variável alvo. ### Método Envelope O método de envelope envolve a seleção de uma subjuntos de características e realiza cálculos recursivamente para encontrar a melhor combinação que resultará no menor valor de erro. Este método é usualmente utilizado com algoritmos genéticos para avaliar e otimizar a seleção de características. ### Método Intrínseco O método intrínseco utiliza a regularização Lasso e árvores de decisão para avaliar e selecionar as características. Algoritmos Lasso são modelos de regressão estándar que determinam como diferentes métodos se encaixam juntos e quais têm o menor erro. O método de árvore de decisão avalia as variáveis de entrada e saída para determinar o melhor modelo de seleção de características baseado na entrada e saída. ## Entradas numéricas e categoricas Diferentes coeficientes de correlação podem ser usados para diferentes combinações de entrada e saída. Por exemplo, o Coeficiente de correlação de Pearson ou o Coeficiente de Rank de Spearman pode ser usado para uma entrada numérica e uma saída numérica. Para uma entrada categórica principal e uma saída numérica, o Coeficiente de correlação de Novoa ou o Coeficiente de Rank Kendall pode ser utilizado. ## Seleção de Características em Python Para demonstrar a seleção de características em Python, utilizaremos o bloco de anotações Jupyter e criaremos um módulo novo de Python 3 chamado `feature_select`. Trabalharemos principalmente com as bibliotecas NumPy, Pandas e Matplotlib. Neste exemplo, analisaremos o desempenho dos dados do jogador de basquetebol Kobe Bryant e selecionaremos as características relevantes para reduzir o viés e dados inúteis. ```python import numpy as np import pandas as pd import matplotlib. pyplot as plt # Carregar os dados data = pd. read_csv('kobe_bryant_data. csv') # Verificar as características disponíveis print(data. columns) # Exibir as primeiras 5 linhas dos dados print(data. head()) # Filtrar características inúteis irrelevant_features = ['nome_equipe', 'data_partida', 'ID_equipe'] data. drop(irrelevant_features, axis=1, inplace=True) # Combinar colunas de tempo restante data['tempo_restante'] = data['tempo_restante_em_minutos'] * 60 + data['tempo_restante_em_segundos'] # Plotar a localização X e Y plt. scatter(data['localização_X'], data['localização_Y']) plt. title('Localização') plt. xlabel('Localização X') plt. ylabel('Localização Y') plt. show() # Computar distância e ângulo data['distância'] = np. sqrt(data['localização_X']**2 + data['localização_Y']**2) data['ângulo'] = np. arctan2(data['localização_Y'], data['localização_X']) * (180 / np. pi) # Filtrar colunas inúteis data. drop(['localização_X', 'localização_Y'], axis=1, inplace=True) ``` Neste exemplo, carregamos os dados, filtramos as características inúteis, combinamos as colunas de tempo restante, calculamos a distância e o ângulo e removemos as colunas localização X e localização Y. Você pode continuar a analisar e selecionar características com base em suas exigências específicas. # Entrevista de Aprendizagem de Máquina: Perguntas e Respostas Aqui está uma lista de perguntas de entrevista comuns em Aprendizagem de Máquina (ML) sobe as quais poderá salir. Nossa intenção é ajudar os candidatos a responderem estas perguntas de forma eficaz e confiante. ## 1. Que tipos existem de aprendizagem de máquina? Existem três tipos de Aprendizagem de Máquina: 1. **Supervisionado: ** utiliza dados históricos etiquetados que um modelo é treinado com eles. É necessário conhecimento dos dados etiquetados para treinar o modelo; 2. **Não Supervisionado: ** os dados não estão etiquetados, sendo que o modelo gera análises e descobre padrões; 3. **Reforçado: ** utilizado para ensinar ao sistema a melhorar em tarefas específicas através do uso de recompensas e punições. Este tipo é primariamente utilizado para treinar sistemas a jogar jogos, como AlphaGo. ## 2. O que é sobre-ajustamento? E como evitará-lo? O ** sobre-ajustamento** é quando um modelo é treinado tão prolongado que aprende os problemas do dado treinamento. Acontece quando o modelo não se adapta a novos dados. É importante evitar este excesso de treinamento para que o modelo possa generalizar em novas dimensões de dados. Para evitar o sobre-ajustamento pode-se considerar: - **Validação de cruzamento: ** divide o conjunto de treino em três partes: treino, análise e teste; - **Redução de características: ** minimizar a complexidade, utilizando o menor número de características possíveis; - **Regularização: ** as características relevantes no modelo receberão um custo pequeno. ## 3. Que são as diferentes fases de aprendizagem profunda? Existem três fases distintas em **aprendizado profundo: ** 1. Apresentação: *aprendizagem representacional*, o modelo é treinado apenas com características centenas representativas com relação aos dados de entrada; 2. Treinamento: ligar pelas conexões rotoras na camada abaixo do nível atual; 3. Adaptação: neste estágio, o modelo é encaminhado para melhorar a sua performance. Podendo assim uma unidade encontrar um peso de parâmetro para o qual se encontre melhor inclinação para o vetor que se encontra na frente dela. Adicionalmente, pode haver estações de supervisão e autogerenciamento opcionais. Foram aplicados vários ajustes nas fases de aprendizagem profunda com o objetivo de superar as limitações, como o overfitting usando redes profundas com múltiplos membros e conexões diretas entre camadas. Espero que este resumo possa ser útil para sua entrevista de Aprendizagem de Máquina. Tenha sorte em sua entrevista! ``` # Entrevista de Aprendizagem de Máquina: Perguntas e Respostas Lista de perguntas de entrevista comuns durante a Aprendizagem de Máquina (ML) que pode servir de auxílio para as respostas a essas perguntas e promover casos práticos e confiantes. ## 1. Quais os diferentes tipos de Aprendizagem de Máquina? Aqui estão os 3 diferentes tipos de Aprendizagem de Máquina: 1. **Aprendizagem Supervisionada: ** é treinado com dados etiquetados antigos; 2. **Aprendizagem Não Supervisionada: ** os dados possuem dados etiquetados ou não e o modelo gera análises; 3. **Aprendizagem Reforçada: ** é utilizado para treinar o sistema a melhorar em tarefas específicas usando feedbacks. ## 2. O que é sobre-ajustamento, e como evitará-lo? O ** sobre-ajustamento** é quando um modelo é treinado tão longo que aprende nossos erros de treinamentos. O modelo não é válido e não pode generalizar a dados desconhecidos. Para evitar o sobre-ajustamento pode-se considerar: - **Validação de cruzamento: ** separação dos dados de treinamento, verificação e teste; - **Redução de características: ** reduzir a complexidade e utilizar apenas o menor número de características possíveis; - **Regularização: ** imposto um valor pequeno aos parâmetros negligenciáveis do modelo. ## 3. Quais as diferentes fases de Aprendizagem Profunda? Existem 3 fases distintas no **Aprendizagem Profunda: ** 1. Apreentação: *aprendizagem representatória* e o modelo recebe centenas de características relevantes; 2. Treinamento: conexão de camadas escritas com uma conexão direta para as camadas abaixo; 3. Adaptação: o modelo é entregue para otimização onde um bloco pode encontrar um peso sensível para o qual melhora durante treinamento. Adicionalmente, pode haver estações de monitorização em série ou de auto-gerência, se for necessário. Várias conferências tem sido feitas nas fases da Aprendizagem Profunda com o objetivo de superar as limitações, como o overfitting utilizando redes profundas com múltiplos membros e conexões diretas entre camadas. ``` # Aprendizado de Máquina: Ajuste de Dados e Superajuste Esta seção explica o ajuste de dados (overfitting) e superajuste (underfitting) no contexto do aprendizado de máquina, e como se evitar o overfitting através do uso de técnicas de regularização. ## Ajuste de Dados (Overfitting) O ajuste de dados ocorre quando um modelo é treinado muito bem com base nos dados de treino, resultando em um modelo que apresenta desempenho muito bom em dados de treino, mas ruim em dados não vistos (dados de teste). > "O ajuste de dados é basicamente um processo em que se treina muito bem, mas que, durante a teste, realmente diminui muito. " ### Como evitar o ajuste de dados Existem várias formas de evitar o ajuste de dados: 1. **Regularização**: A Regularização é a técnica mais comum usada para prevenir o ajuste de dados. Dentro da regularização, existem vários subtipos, tais como a regularização L1 e L2. No caso de redes neurais, uma técnica comum chamada dropout pode ser utilizada como uma forma de regularização. 2. **Paragem Precoce**: Isto é outra técnica em que o processo de treinamento é interrompido antes do modelo começar a ajustar o dado demasiado. 3. **Validação Cruzada**: A utilização de técnicas como a validação cruzada pode ajudar a garantir que o modelo não se ajuste a um subconjunto específico dos dados de treino. ## Superajuste (Underfitting) O superajuste ocorre quando um modelo é demasiado simples para aprender a estrutura subjacente nos dados e apresenta um desempenho ruim tanto em dados de treino como em dados de teste. ## Conjuntos de Treino e Teste no Aprendizado de Máquina Quando se realiza o treinamento do aprendizado de máquina, os dados são divididos em conjunto de treino e conjunto de teste. O conjunto de treino é usado para treinar o modelo, e o conjunto de teste é usado para testar o modelo para avaliar seu desempenho. Durante a fase de treinamento, o modelo aprende com o conjunto de treino para fazer predições. O modelo aprende os padrões e a estrutura dos dados do conjunto de treino ao ajustar o modelo para eles. A fase de teste ajuda a avaliar o desempenho do modelo, especialmente quando é exposto a dados novos, não vistos. Para evitar o ajuste de dados, é importante garantir que o modelo veja os dados de treino várias vezes durante o treinamento enquanto o conjunto de teste é mantido separado e afastado dos dados de treino. Além disso, é essencial escolher uma ratios apropriada para dividir os dados de treino em treino e conjunto de teste. Não há um número fixo para a ratios de divisão; ela pode variantar de acordo com as preferências individuais e o problema específico em mãos. ## Tratamento de Dados Quando se faz face a dados ausentes, é crucial preencher valores ausentes com valores significativos para manter a integridade da análise e obter resultados precisos. Alguns métodos comuns para lidar com dados ausentes: 1. **Imp Method**: Este é quando os valores ausentes são preenchidos com a média da coluna da qual os dados estão ausentes. 2. **Média Ponderada**: Similar ao método de imp, mas aqui a média é ponderada, frequentemente pelas quatro quartis dos dados. 3. **Polinomial Interpolation**: Este é para preencher valores ausentes utilizando uma interpolação de polinômios no espaço dos dados. 4. **Deleção**: Remover observações com dados ausentes pode ser uma opção em situações em que o esforço necessário para preencher os dados ausentes é desproporcional ao tamanho dos dados ausentes ou à importância do conjunto de dados. Formatação: 1. Mantenha todos os elementos Markdown (# ** ` [] () etc) 2. Mantenha a estrutura de títulos e seções 3. Preserve blocos de código sem alterar Conversão: 1. Substitua brasileirismos por termos portugueses 2. Use terminologia técnica portuguesa 3. Mantenha comandos e códigos inalterados 4. Preserve URLs e referências Retorne o texto convertido com toda a formatação Markdown. Corrija e formate este texto: recursos: - [Referência de Sintaxe de Markdown](https://guides.github.com/features/mastering-markdown/) - [Matriz de Confusão](https://pt.wikipedia.org/wiki/Matriz_de_confusão) - [Algoritmos de Aprendizagem de Máquina](https://www.datascience-log.com/aprender-algoritmos-de-aprendizagem-de-maquina/) - [Aprendizagem Profunda](https://www.deeplearningbook.org/) Título: **Explicação e Exemplos de Aprendizagem de Máquina e Aprendizagem Profunda** (Seção 1: Introdução) --- Introdução Neste documento, explicaremos, de uma forma simples e fácil de compreender, como calcular acurácia, o conceito de falso positivo e falso negativo, e os passos envolvidos no processo de aprendizagem de máquina. Além disso, também discutiremos as diferenças entre aprendizagem de máquina e aprendizagem profunda. --- Seção 2: Calculando a Acurácia Calculando a acurácia em si: Para calcular a acurácia, é uma cálculo matemático simples. Você toma os valores da diagonal (soma de verdadeiros positivos e verdadeiros negativos) e divide-o pelo valor total (soma de todos os valores). Por exemplo, imagine que temos a seguinte matriz de confusão: | | Classificado Sim | Classificado Não | |-----|-----------------|-----------------| | Real Sim | True Positive | False Negative | | Real Não | False Positive | True Negative | Entendendo os termos: - **True Positive**: classificado como positivo e realmente positivo - **True Negative**: classificado como negativo e realmente negativo - **False Positive**: classificado como positivo e realmente negativo - **False Negative**: classificado como negativo e realmente positivo Calculando a acurácia: 1. Calcule os valores da diagonal (soma de verdadeiros positivos e verdadeiros negativos) - Na matriz acima, os valores da diagonal seriam 12 (true positives) + 12 (true negatives) = 24 2. Calcule os valores totais (soma de todos os valores) - Na matriz acima, os valores totais seriam 12 + 3 + 1 + 9 + 15 + 10 = 40 3. Divide os valores da diagonal pelo valor total - Acurácia = Valores da diagonal / Valores totais = 24 / 40 = **0. 6** ou **60%** _Obs. : _ - Um valor da diagonal é formado pela intersecção da linha (classificação) e coluna (real). - O conjunto total de dados é calculado somando os valores da diagonal. --- Seção 3: Falso Positivo e Falso Negativo Falso Positivo: Um falso positivo ocorre quando o sistema preve um resultado positivo, mas o resultado real é negativo. Aqui está um exemplo: | | Classificado Sim | Classificado Não | |-----|-----------------|-----------------| | Real Sim | TP | FN | | Real Não | FP | TN | - Na matriz acima, se prever um valor como positivo mas o valor real é negativo, é um Falso Positivo (referido como FP). Falso Negativo: Um falso negativo ocorre quando o sistema preve um resultado negativo, mas o resultado real é positivo. | | Classificado Sim | Classificado Não | |-----|-----------------|-----------------| | Real Sim | TP | FN | | Real Não | FP | TN | - Na matriz acima, se prever um valor como negativo mas o valor real é positivo, é um Falso Negativo (referido como FN). --- Seção 4: Processo de Aprendizagem de Máquina O processo de aprendizagem de máquina pode ser dividido em estas etapas: 1. Entender o problema: Determinar se é um problema de classificação ou regressão. 2. Escolher algoritmos: Escolher alguns algoritmos baseados no tipo de problema. 3. Treinar o modelo: Treinar o algoritmo escolhido usando o conjunto de dados de treino. Isso poderá envolver experimentos para determinar o melhor modelo. 4. Testar o modelo: Verificar a acurácia do modelo usando o conjunto de dados de teste. 5. Colocar em produção: implantar o modelo para produção, onde ele fará previsões com base em novos dados. 6. Verificar e ajustar: Verificar regularmente o desempenho do modelo e ajustar-lo como necessário para garantir que ele permaneça preciso e atualizado. --- Seção 5: Aprendizagem Profunda A aprendizagem profunda é uma parte da aprendizagem de máquina onde redes neurais são usadas para treinamento e classificação. A aprendizagem profunda é caracterizada pelo uso de redes neurais profundas, contendo várias camadas que permitem aprendizado de padrões mais complexos. Na aprendizagem profunda, a parte de engenharia de características é geralmente automatizada pelo modelo. --- Seção 6: Aplicações de Vida Real da Aprendizagem de Máquina A aprendizagem de máquina é amplamente utilizada em muitas indústrias, incluindo desenvolvimento de software, finanças e saúde. Exemplos de suas aplicações incluem sistemas de recomendação, detecção de fraude e diagnóstico médico. Algoritmos de aprendizagem de máquina podem ser usados para processar volumes grandes de dados, encontrar padrões e fazer previsões com base nos dados. # Aprendizagem de Decisão Supervisionada: Exemplos e Aplicações em Negócios Modernos ## Detecção de Spam de Email A aprendizagem de máquina sob supervisão é uma técnica comum no sistema de detecção de spam de email. O objetivo é treinar um sistema para categorizar corretamente os emails como spam ou não-spam. Para concluir este propósito, dados históricos sobre os emails - categorizados como spam e não-spam - são usados. Esta informação etiquetada é fornecida para o modelo, que é então treinado para predizer se novos emails são spam ou não. Este é um exemplo de aprendizagem de máquina sob supervisão porque temos dados etiquetados (emails marcados como spam ou não-spam) utilizados para treinar o modelo. ## Diagnóstico de Saúde Outro exemplo específico de aprendizagem de máquina sob supervisão no setor de saúde é no diagnóstico de enfermidades. Aqui o objetivo é treinar modelos para detectar doenças ou enfermidades em imagens, tais como raios-X ou MRIs. Existem imagens disponíveis, juntamente com etiquetas indicando se a imagem apresenta uma determinada doença ou está limpa. Utilizando esta informação etiquetada, o modelo aprende a predizer a presença de doenças em novas imagens. Este é um exemplo de classificação binária, onde o objetivo é determinar se uma pessoa está doente ou não. No entanto, a classificação múlti-classe também poderia ser utilizada, onde o modelo é treinado para prever o tipo e a gravidade da doença. ## Aprendizagem de Máquina Semi-supervisionada A aprendizagem de máquina semi-supervisionada é um tipo de aprendizagem que se encontra entre aprendizagem sob supervisão e não-supervisionada. Pode ser considerada parte da aprendizagem sob supervisão. Em muitas situações, obter dados etiquetados pode ser difícil e consumidor de tempo. Por exemplo, no diagnóstico de saúde, embora haja milhões de imagens de raios-X disponíveis, elas talvez não estejam etiquetadas, tornando-as difíceis de utilizar para aprendizagem supervisionada. A semi-supervisionada enfrenta este problema utilizando técnicas para etiquetar dados não-etiquetados, criando um conjunto completo de dados etiquetados que possam ser utilizados para treinar um modelo. ## Técnicas de Aprendizagem de Máquina Não-supervisionada As técnicas de aprendizagem de máquina não-supervisionada incluem agrupamento e associação. * **Agrupamento**: Objetos similares são agrupados juntos com base em suas características. * **Associação**: Ligações entre itens são estabelecidas para encontrar padrões, como "as pessoas que comprar TV também comprar um console" num cenário de e-commerce. ## Diferença entre Aprendizagem de Máquina Supervisionada e Não-supervisionada Nesta aprendizagem de máquina sob supervisão, dados etiquetados são utilizados para treinar o modelo. Se os dados não estiverem etiquetados, eles não podem ser utilizados para aprendizagem supervisionada. Nesta aprendizagem de máquina não-supervisionada, não há dados etiquetados, e o modelo aprende padrões nos dados sem orientação explícita. ## Aprendizagem de Máquina Indutiva e Dedutiva A aprendizagem inductiva é o processo de interpretar conhecimento ou aprender de exemplos sem experiência direta. Por outro lado, a aprendizagem dedutiva baseia-se em concluir conclusões com base na sua experiência pessoal. Por exemplo, a aprendizagem inductiva poderá envolver mostrar uma pessoa um vídeo sobre o perigo da parede, enquanto a aprendizagem dedutiva poderá envolver permitir que a pessoa jogue com o fogo e aprender que arde através de erro/erro. ## KNN e K-Means Clustering O K-Nearest Neighbors (KNN) é um método de classificação utilizado na aprendizagem de máquina sob supervisão, ao passo que K-Means Clustering é um método de agrupamento sem etiqueta (ou seja, não-supervisionado). No KNN, a classificação de um objeto é baseada nos seus vizinhos mais próximos. No K-Means Clustering, os objetos são agrupados em k grupos com base na sua similitude. A semelhança, como no K-Means Clustering, é que a letra 'k' é utilizada em ambos os métodos, no entanto, são processos fundamentaismente diferentes. # Classificação e Aprendizado por Reforço Este documento tem como objetivo explicar dois conceitos distintos na aprendizagem de máquina: o Classificador Naive Bayes e o Aprendizado por Reforço. ## Classificador Naive Bayes ### Definição Um *Classificador Naive Bayes* é um classificador baseado em probabilidades que faz certas suposições, como a independência das características, o que pode não ser sempre verdade. Contudo, apesar dessas limitações, o classificador funciona bem sob essas suposições. O termo vier de suposições que ele faz. ### Explicação A presença de uma característica de uma classe não é assumida como relacionada à presença de qualquer outra característica de outra classe. isso pode ser uma suposição fraca ou imprecisa, desde que características podem de fato ser relacionadas. Contudo, o algoritmo funciona bem mesmo com esta suposição, o que é uma boa parte dele. ### Aplicação Uma aplicação comum poderia ser em torno do aprendizado por reforço. O aprendizado por reforço pode ser parafrazeado de várias maneiras: 1. Explique como um sistema pode jogar uma partida de xadrez usando aprendizado por reforço. 2. Explique como um sistema pode aprender a jogar qualquer jogo usando aprendizado por reforço. A melhor maneira de explicar aprendizado por reforço é entender seu conceito e depois ilustrar o processo: - O aprendizado por reforço consiste em um ambiente e um agente. - O agente executa ações para alcançar um determinado objetivo. - O sistema de reward aponta como um carrot e um punho. Se o agente se aproxima da meta, é recompensado. Se ele se aleja, é penalizado. - Para criar um sistema para jogar um jogo como xadrez, o sistema é permitido assistir outras partidas (sejam jogadas por humanos ou por computadores) e depois começar a jogar por si próprio. O sistema aprende visualmente assistindo estas partidas, e o processo geralmente envolve diversas repetições. Outra aplicação do aprendizado por reforço é em carros autônomos. Empresas do setor automotivo usam o aprendizado por reforço para ensinar aos carros a navegar pelas rodovias. ## Escolhendo um Algoritmo de Aprendizado de Máquina ### Definição Quando escolher um algoritmo de aprendizagem de máquina, não existe uma abordagem definitiva para determinar o melhor algoritmo para uma situação específica. No entanto, pode-se usar diretrizes como tipos de problemas (classificação ou regressão) para limitar o número de algoritmos. Nestes algoritmos, não há um algoritmo ideal para todas as situações. Em vez disso, múltiplos algoritmos deveriam ser probados, e o melhor deve ser escolhido based no desempenho e precisão. ## Projetando um Filtrador de Spam ### Definição Projetar um filtrador de spam envolve identificar o tipo de problema (classificação) e escolher um algoritmo appropriado. Devido à natureza binária da saída (spam ou não spam), a regressão logística faz parte do comum. No entanto, vários algoritmos, como árvores de decisão ou máquinas de suporte vector (SVM), podem ser considerados ministrados estes algoritmos na escolha, serão probados e o melhor, deverá ser escolhido a base do desempenho e precisão. # Árvore Aleatória Essa discussão vai se concentrar em entender o Árvore Aleatória, um algoritmo de machine learning popular. ## O Que é Árvore Aleatória? Árvore Aleatória é um líder de ensembles, uma forte técnica que combina vários algoritmos ou modelos. Vamos quebrar isso: 1. **Árvore Aleatória é um Ensemble Learner: ** Os leaders de ensembles são modelos que consistem em vários algoritmos ou vários modelos. No caso da Árvore Aleatória, apesar do algoritmo subjacente ser o mesmo, utilizamos várias instâncias deste. 2. **Múltiplas Árvores de Decisão: ** A Árvore Aleatória utiliza várias árvores de decisão para tomar decisões, especialmente em problemas de classificação. O resultado de cada árvore é combinado por meio de um mecanismo conhecido como votação para encontrar o resultado final. ### Como funciona? Para problemas de classificação, a Árvore Aleatória utiliza um mecanismo de votação. Suponha que você tenha uma floresta de 100 árvores, e cada observação passa por essa floresta. Se 90 das árvores dizem que é zero, e 10 delas dizem que é um, classificamos essa observação como zero, por que a maioria das mesmas votou em seu favor. Para problemas de regressão, em vez de votação, a média ou a média das saídas de todas as árvores é tomada para encontrar o resultado final. Isso também ajuda a reduzir o erro. ### Escolhendo o Algorithm a Direito Não existe um algoritmo para problemas de machine learning padrão. No entanto, você pode no qual reduzir as opções entendendo se é um problema de classificação ou regressão. Por exemplo, se for um problema de classificação, você pode escolher entre os algoritmos de classificação, e desconsiderar os algoritmos de regressão como a Regressão Logística. ### Bias, Variance, e Equilíbrio No aprendizado de máquina, o bias ocorre quando os valores previstos estão muito afastados dos valores reais. Variance ocorre quando os valores previstos estão por todo lugar. Há uma equilíbrio entre o bias e a variance, o que significa que precisamos encontrar uma balança onde os resultados finais são consistentes e precisos. ### Precisão, Recall, e Enfraquecimento da Árvore de Decisão A precisão é `Verdadeiros Positivos / (Verdadeiros Positivos + Falsos Positivos)`, e o Recall é `Verdadeiros Positivos / (Verdadeiros Positivos + Falso Negativos)`. O enfraquecimento da Árvore de Decisão é feito para reduzir a sobreposição e fazer o modelo menos complexo. ### Regressão Logística A Regressão Logística é uma técnica usada para classificação binária. Ela calcula uma probabilidade entre 0 e 1, e podemos definir uma pessoa para classificar a saída como 0 ou 1. ### Algoritmo K-Próximo (KNN) KNN é um algoritmo de classificação. Dado um novo item, ele encontra os k vizinhos mais próximos para classificar o item com base na maioria da classe desses vizinhos. O número de vizinhos, k, é um parâmetro definido pelo usuário. # Aprovação de empréstimos utilizando Aprendizagem de Máquina [Sessão ao vivo com Simplilearn](https://www.youtube.com/watch?v=x2NrPeHSPU0) (português) ## Introdução Bem-vindo todos e boa-vinda a Simplilearn! Hoje, iremos guiá-lo pela demonstração de uma sessão de trabalho prático de implementação de aprovação de empréstimos utilizando Python. Antes de começarmos, certifique-se que a tela está visível e a audio está óculo. Caso sim, digite 'Sim' na secção de comentários. Se houver algum problema, avise-nos na secção de comentários para que possamos solucionar-lhes. Faremos uma pequena pausa para dar tempo às pessoas para se juntarem. Enquanto isso, gostaria de dizer que temos atualizações regulares em múltiplas tecnologias. Se você for um tecnoaficcionado em uma busca contínua das últimas tendências tecnológicas, considerar se inscrever em nossa canal do YouTube e clique no ícone de sino para não perder qualquer atualização da Simplilearn. Muito bem! Agora podemos começar na nossa sessão hoje. Passaremos por: 1. O que é um Sistema de Predição de Empréstimos? 2. Demonstração ao vivo para a realização de Predição de Aprovação de Empréstimo 3. Implementando a Predição de Aprovação de Empréstimo utilizando diferentes algoritmos de classificação ## Sistema de Predição de Empréstimos Um mecanismo chamado Sistema de Predição de Empréstimo oferece uma maneira de solicitar empréstimos e receber notificações quando forem aprovados, baseando-se nos dados fornecidos pelo solicitante. O sistema notifica o solicitante dos empréstimos disponíveis. Tente uma questão! Aqui está uma para você: Qual palavra-chave é usada para funções em Python? - Função - def - punk - define Informe sua resposta na secção de comentários abaixo! ## Demonstração Ao Vivo Iniciaremos primeiramente abrindo um terminal para escrever o comando para abrir Jupyter Notebook. Aqui escreviremos: `jupyter notebook`. Pressione Enter. Agora, essa é a página de abertura do Jupyter Notebook. Clique em "Novo → Python3" para criar um novo arquivo do Python3. Agora, vamos importar algumas bibliotecas principais de Python, as quais ajudarão a criar um Sistema de Predição de Aprovação de Empréstimo: ```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 sklearn. metrics import confusion_matrix, classification_report ``` Agora, vamos importar nossos dados de nosso conjunto de dados. Já possuímos os dados de aprovação de empréstimos. Utilizaremos funções e bibliotecas diferentes em Python. Baixe este conjunto de dados a partir da caixa de descrição abaixo. Aqui escrevemos: ```python df = pd. read_csv('dados_de_approval_de_emprestimos. csv') ``` Agora mostraremos nosso conjunto de dados. Escrevemos: ```python df. head() ``` Agora podemos ver a resumo de nossos dados: ```python df. info() ``` Encontraremos valores faltantes no conjunto de dados usando: ```python df. isnull(). sum() ``` Ultilizaremos o método de interpolação para preencher os valores faltantes: ```python df. fillna(df. mean(), inplace=True) ``` Criaremos uma coluna 'Empréstimo_Valor_Log' utilizando os detalhes 'Empréstimo_Valor': ```python df['Empréstimo_Valor_Log'] = np. log(df['Empréstimo_Valor']) ``` Agora, vamos olhar na distribuição de nossa nova coluna: ```python sns. distplot(df['Empréstimo_Valor_Log']) plt. show() ``` Agora criaremos uma nova coluna 'Total_Faturamento' somando 'Renda_Solicitante' e 'Renda_Co-Solicitante'. Iremos também criar um histograma para o mesmo: ```python df['Total_Faturamento'] = df['Renda_Solicitante'] + df['Renda_Co-Solicitante'] sns. histplot(df['Total_Faturamento']) plt. show() ``` Agora separaremos nossos dados para treinamento e teste utilizando a função train_test_split: ```python X = df. drop(['Status_Empréstimo'], axis=1) y = df['Status_Empréstimo'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 2, random_state=42) ``` Agora padronizaremos nossos dados: ```python escalonador = StandardScaler() X_treino_padronizado = escalonador. fit_transform(X_treino) X_teste_padronizado = escalonador. transform(X_teste) ``` Agora vamos utilizar o Decision Tree Classifier para prever o Status da Emprestimo: ```python from sklearn. tree import DecisionTreeClassifier classificador = DecisionTreeClassifier() classificador. fit(X_treino_padronizado, y_treino) previsoes = classificador. predict(X_teste_padronizado) ``` Agora avaliaremos o desempenho do nosso modelo: ```python from sklearn. metrics import classification_report, confusion_matrix print(classification_report(y_teste, previsoes)) print(confusion_matrix(y_teste, previsoes)) ``` Isso conclui nossa sessão de Predição de Aprovação de Empréstimo utilizando Aprendizagem de Máquina. Esperamos que esta demonstração ao vivo tenha ajudado a compreender o processo. Se tiver alguma dúvida ou precisar de esclarecimentos, sinta-se à vontade para perguntar na secção de comentários abaixo. Obrigado por se juntar a nós hoje! --- Inscreva-se [aqui](https://www.youtube.com/c/simplylearn/) para mais demonstrações como essa uma! * Cookies ajudam a nosso serviço. Ao utilizar nossos serviços, concordamos com o uso desses cookies. Saiba mais * Faça aulas e Inicie sua carreira com [Simplilearn](https://www.simplilearn.com/) # Tutorial de Classificação em Aprendizado de Máquina em Python (Português de Portugal) Este tutorial vai apresentar-lhe a classificação, uma técnica popular no aprendizado de máquina. Vamos abordar termos essenciais, aplicações reais do mundo, algoritmos populares e demonstrações práticas em Python. ## Conteúdos 1. **Introdução** - Definição da Classificação - Terminologia Importante 2. **Aplicações Reais do Mundo** - Sistema de Aprovação de Empréstimos - Filtragem de Spam de Email - Diagnóstico Médico - Reconhecimento Facial 3. **Algoritmos de Classificação** - Regressão Logística - Árvores de Decisão - Floresta Aleatória - Vizinhos Mais Perto do K - Máquinas de Suporte Vector - Métodos Naivos da Baia - Métodos de Ensemble 4. **Demonstrações Práticas** - Exemplo 1: Sistema de Aprovação de Empréstimos - Exemplo 2: Filtragem de Spam de Email - Exemplo 3: Diagnóstico Médico - Exemplo 4: Reconhecimento Facial --- ## Exemplos **Exemplo 1: Sistema de Aprovação de Empréstimos** Neste exemplo, classificaremos solicitantes de empréstimos com base em seus características, previsando se o pedido de empréstimo será aprovado ou não. **Estrutura de Código** ```python # Importar bibliotecas necessárias from sklearn. model_selection import train_test_split from sklearn import preprocessing from sklearn. ensemble import RandomForestClassifier # Preprocessamento dos dados # Divisão dos dados em conjuntos de treino e teste # Treinar e ajustar o modelo # Predizer nos dados de teste # Avaliar a precisão do modelo ``` **Exemplo 2: Filtragem de Spam de Email** Neste exemplo, analisaremos emails para classificá-los como spam ou não spam. **Estrutura de Código** ```python # Importar bibliotecas necessárias from sklearn. model_selection import train_test_split from sklearn import preprocessing from sklearn. naive_bayes import GaussianNB # Preprocessamento dos dados # Divisão dos dados em conjuntos de treino e teste # Treinar e ajustar o modelo # Predizer nos dados de teste # Avaliar a precisão do modelo ``` **Exemplo 3: Diagnóstico Médico** Neste exemplo, diagnosticaremos condições de saúde com base nos sintomas de um paciente. **Estrutura de Código** ```python # Importar bibliotecas necessárias from sklearn. model_selection import train_test_split from sklearn import preprocessing from sklearn. tree import DecisionTreeClassifier # Preprocessamento dos dados # Divisão dos dados em conjuntos de treino e teste # Treinar e ajustar o modelo # Predizer nos dados de teste # Avaliar a precisão do modelo ``` **Exemplo 4: Reconhecimento Facial** Neste exemplo, reconheceremos rostos em imagens, permitindo-nos realizar tarefas como autenticação facial. **Estrutura de Código** ```python # Importar bibliotecas necessárias from sklearn. model_selection import train_test_split # Técnicas em Aprendizagem de Máquina: Classificação de Dados A classificação é um ponto de partida fundamental para muitas tarefas de aprendizagem de máquina, servindo como uma base para separar e organizar dados. Este guia apresenta algoritmos de classificação populares, com um foco na regressão logística. ## Termos e Conceitos Chave 1. **Classificador**: um algoritmo que mapia dados de entrada para uma categoria específica. 2. **Modelo de Classificação**: um modelo que prevê uma classe para os dados de entrada com base no treinamento. 3. **Feature**: uma propriedade individual e mediavel do fenômeno observado. 4. **Rótulo**: características em função das quais os pontos de dados são categorizados em um conjunto de dados. 5. **Grupos**: um grupo de pontos de dados com características em comum. 6. **Classificação binária**: classificação com dois resultados possíveis (por exemplo, verdadeiro/falso, sim/não). 7. **Classificação multi-rotulada**: cada amostra é associada a uma conjunto de rótulos ou alvos. 8. **Classificação multi-classe**: classificação com mais de duas classes, onde cada amostra é associada a uma e somente uma label. ## Algoritmos de Classificação Populares Nesta seção, examinamos algoritmos de classificação populares com um foco na regressão logística. ### Regressão Logística A regressão logística é um algoritmo de classificação amplamente utilizado que modela a probabilidade de uma determinada classe ou evento existir. A saída usa a função logística (sigmóide) para devolver um valor de probabilidade que pode ser mapeado para dois ou mais classes discretas. $$ f(x) = \frac{1}{1 + e^{-x}} $$ Onde $x$ é a equação da reta e $e$ é a exponencial. A função logística (sigmóide) normalmente apresenta uma curva moderadamente S-formada, aproximando-se de zero e um quando o valor de entrada aproxima o infinito negativo e positivo, respectivamente. Isso significa que o intervalo ativo da função sigmóide é bastante pequeno, levando à uma pequena margem de erro. Aqui está um exemplo da função sigmóide em Python: ```python import numpy as np import matplotlib. pyplot as plt def sigmoid(x): return 1 / (1 + np. exp(-x)) x = np. arange(-5. 0, 5. 0, 0. 1) plt. plot(x, sigmoid(x)) plt. xlabel('x') plt. ylabel('Sigmoid (x)') plt. show() ``` **Observação**: Tente a execução do código acima para ver a curva da função sigmóide em ação! # Modelo de Regressão Linear: Demonstração ## Visão Geral Nesta demonstração, mostraremos como usar um modelo de Regressão Linear utilizando um conjunto de dados simples. ### Requisitos - Python - NumPy - Pandas - Matplotlib - Seaborn (Opicional para visualização) - Sklearn (Para carregar conjuntos de dados e classificador de Vizinhos mais próximos K) ### Preparação dos Dados O conjunto de dados utilizado nesta demonstração é um conjunto simples de uma dimensão com 10 linhas de dados e respectivas previsões. O objetivo é prever a resposta correta para cada linha com base no modelo treinado. ```python temos nossos dados que coincidam com estes e estes devem coincidir. Se você colocar em algo com uma forma diferente, irá gerar um erro. Então, se você tem 10 linhas de dados e nove respostas, ele vai gerar um erro, pois precisará de 10 respostas para isso. ``` ### Treinamento do Modelo Começaremos por treinar nosso modelo de Regressão Linear usando as funções incorporadas no Sklearn. ```python do from sklearn. linear_model import LinearRegression # Criar e treinar o modelo de Regressão Linear modelo = LinearRegression() modelo. fit(X_treino, y_treino) ``` ### Análise do Modelo Após o treinamento do modelo, examinaremos o intercepto e os coeficientes do modelo. ```python # Obter o intercepto e os coeficientes intercepto = modelo. intercept_ coeficientes = modelo. coef_ print(f"Intercepto: {intercepto}") print(f"Coeficiente: {coeficientes[0]}") ``` ### Previsão do Modelo Finalmente, utilizaremos o modelo treinado para prever os valores para o conjunto de teste. ```python # Realizar Previsões y_previsto = modelo. predict(X_teste) ``` ### Comparação de Dados Reais e Previsões Revise os dados reais e previsões e analyzede os resultados. ```python # Exibir Dados Reais e Previsões import matplotlib. pyplot as plt plt. scatter(X_teste, y_real, c='r', label='Dados Reais') plt. scatter(X_teste, y_previsto, c='b', label='Previsões') plt. legend() plt. show() ``` ### Avaliação do Desempenho do Modelo Use uma matriz de confusão e relatório de classificação para avaliar o desempenho do modelo. ```python from sklearn. metrics import confusion_matrix, classification_report # Matriz de Confusão matriz_conf = confusion_matrix(y_real, y_previsto) print(matriz_conf) # Relatório de Classificação print(classification_report(y_real, y_previsto)) ``` ### Sendo para o Nearest Neighbors (KNN) Depois de analisar o modelo de Regressão Linear, mostraremos como o Nearest Neighbors (KNN) usando o mesmo conjunto de dados. [Avançar para Demo do KNN](https://github.com/matthewhudsen/ml-explanations/blob/main/knn-demo.md) [Feedback e Pedidos de Melhoria](mailto: hudsenmatthew@gmail. com) --- # Visando Dados Antes de Executar e Feature Original ## Visão Geral Nesta análise, iremos focar em dois colunas dos dados fornecidos. A nossa missão é tornar mais fácil de seguir. Aqui está o dado real: ``` . . . . . . fluxo de dados massivo . . . . . . ``` Os dados incluem várias medidas, mas iremos Instagram apenas os dois colunas de interesse: 1. Área Média 2. Compactação Média ## Solução 1. Utilizaremos um classificador k-Vizinhos Mais Proximos (kNN) com a medida Euclideana: ```python from sklearn. neighbors import KNeighborsClassifier knn_model = KNeighborsClassifier(n_neighbors=5, metric='euclideano') ``` 2. Após criarmos o modelo, o treinamos e testamos: ```python # Dividir dados em conjuntos de treinamento e teste from sklearn. model_selection import train_test_split X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, random_state=1) # Ajustar o modelo knn_model. fit(X_treino, y_treino) ``` 3. Em seguida, fazemos previsões e comparamos os resultados com os dados de teste: ```python y_predito = knn_pred y_teste ``` 4. Por último, visualizamos os resultados ao plotar a área média versus a compactação média: ```python # Exibir os resultados import matplotlib. pyplot como plt plt. scatter(X_teste['Área Média'], X_teste['Compactação Média'], c=y_teste) plt. title('Área Média vs Compactação Média') plt. xlabel('Área Média') plt. ylabel('Compactação Média') plt. show() ``` ## Interpretando os Resultados Após analisar os resultados, identificamos uma divisão clara entre os pontos de dados. No entanto, existem algumas folhas falsas negativas, o que nos prepara preocupação. Em caso de falsa negativa, uma bolha maligna pode ser perdida. Precisamos encontrar uma forma de resolver isso, pois ter falsas negativas, especialmente em casos como o de câncer, não é desejável. ## Máquinas Suportadas por Veктор (SVM) Outro método que podemos utilizar para classificação de dados é as Máquinas Suportadas por Vectors (SVM). O objetivo de um algoritmo de máquina de Suporte Vector é encontrar um hiperplano num espaço de dimensão n que separa os dois tipos de dados. Para compreensão aprofundada de SVM, por favor, consulte a [documentação de Máquina de Suporte Vector](https://scikit-learn.org/pt-pt/stable/modules/svm.html). Este é o recurso de K-Vizinhos Mais Proximos. Para obter mais informações sobre a Máquina de Suporte Vector, vamos examinar este método em análises futuras. # Tutorial de Aprendizado de Máquina: Máquinas de Vectores de Suporte (SVM) e Árvores de Decisão ## Introdução Este tutorial demonstra o uso de Máquinas de Vectores de Suporte (SVM) e Árvores de Decisão em classificação de dados. Vamos abordar os seguintes tópicos: 1. SVM: Kernel Linear, Kernel Polinomial e Kernel RBF 2. Árvores de Decisão ## Máquinas de Vectores de Suporte (SVM) Nesta seção, exploraremos o conceito de SVM e suas aplicações utilizando vários kernels para classificação de dados em 2D. ### Kernel Linear ```markdown Este é um método divertido para usar se você tiver múltiplas colunas. Você pode rapidamente configurar e plotar os dados para visualizar os resultados. Aqui, temos dois anéis formados, e o script nos está gerando estes dados. Isso é dado para dados difícil de adivinhar, pois muitos programas se confundem devido à falta de uma reta direta. No entanto, podemos adicionar planos e diferentes configurações, como mostrado abaixo. Neste exemplo, temos nossos zeros em azul e uns em amarelo. Os pontos de dados são um plotagem de coordenadas x-y. Uma coisa que podemos querer fazer é procurar o min-max setup e executar uma operação print X para ver o dado que estamos produzindo. ``` ### Kernel Polinomial ```markdown Aqui, mudamos o kernel para polinomial e criamos um novo modelo. Quando executamos este código, você pode ver que mudou um pouco. No entanto, ele ainda não se encaixa muito bem com os dados. Isso ocorre pois o polinomial ou o kernel polinomial é adequado apenas para dados onde há um grupo no meio que é uma espécie de dados, enquanto os grupos na periferia são diferentes. ``` ### Kernel RBF ```markdown Agora, vamos ver o Kernel RBF. Desligamos nossa tela e executamos o Kernel RBF. Como você pode ver, o Kernel RBF faz um bom trabalho de dividir o dado. Isso é o que se esperava. Aqui, temos nosso anel interno e um anel externo de dados, e o Kernel RBF encaixa este pacote de dados muito bem. No SVM, ele possui essa característica de organização em suas algoritmos, que é realmente difícil de obter ajuste de métricas de sklearn ou algoritmo k-means. Portanto, à medida que você começa a olhar para estes diferentes algoritmos de aprendizado de máquina, entendendo o seu dado e como ele está organizado é muito importante. Isso faz uma diferença enorme em relação a o que você está calculando e o que você está fazendo com ele. ``` ## Árvores de Decisão As Árvores de Decisão são um algoritmo de aprendizado supervisionado para classificação. Ela cria um modelo que predfiza o valor de uma variável alvo utilizando regras de decisão simples inferidas dos recursos dos dados. Em uma Árvore de Decisão, um nó interno representa recursos ou atributos, a ramificação representa uma regra de decisão, e cada nó folha representa o resultado. Uma das coisas mais divertidas sobre as árvores de decisão é que elas permitem que você veja o que acontece e você pode realmente olhar e dizer por que você foi para direita ou para esquerda, o que foi a opção onde o ponto de quebra ocorreu. Aqui está um exemplo de árvore de decisão que diz se eu dormo ou não em uma noite determinada: ```markdown - Eu preciso dormir? - Não: Vou trabalhar - Sim: - Está chovendo fora? - Sim: Eu vou dormir - Não: Vou trabalhar ``` Em contraste, o algoritmo SVM utiliza métodos matemáticos para encontrar a melhor hiperplano que separa as duas classes máximamente. Ambos os algoritmos possuem suas forças e desvantagens, mas entender o seu dado e como ele está organizado é fundamental na escolha do algoritmo de aprendizado de máquina adequado para sua tarefa. Nesta seção, discutiremos os passos para implementar SVM e Árvores de Decisão utilizando Python e a biblioteca Scikit-learn. ## Conclusão Neste tutorial, exploramos os algoritmos SVM e Árvores de Decisão para classificação de dados. O algoritmo SVM utiliza métodos matemáticos para encontrar a melhor hiperplano que separa as duas classes, enquanto a Árvore de Decisão aprende regras de decisão simples inferidas dos recursos dos dados. Entender o seu dado e como ele está organizado é fundamental na escolha do algoritmo de aprendizado de máquina adequado para sua tarefa. No próximo tutorial, implementaremos SVM e Árvores de Decisão utilizando Python e a biblioteca Scikit-learn. --- Referências: - [Intro à Máquina de Vectores de Suporte](https://民 voyage. svhn. net/svm-tutorial) - [Scikit-learn Árvores de Decisão](https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html) - [Scikit-learn Máquina de Vectores de Suporte](https://scikit-learn.org/stable/modules/svm.html) # Separando Dados e Modelo de Árvore de Decisão com Scikit-Learn ## Introdução Este documentodocumentação descreve o processo de separação de dados e crição de um modelo de árvore de decisão usando Scikit-Learn. Vamos discutir nossa função para separar dados, o uso de um classificador de árvore de decisão com a configuração do Genie, e o cálculo da precisão do modelo. ## Separando Dados Inicialmente, vamos separar os dados no conjunto de treinamento, teste e conjuntos X e y. Usaremos um estado aleatório de 100, um tamanho de amostra de 0. 3 e um método de bifurcação para garantir uma robusta pacote para determinar a precisão. ```python 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=100, stratify=y) ``` ## Modelo de Árvore de Decisão com a Configuração do Genie Na nossa função, vamos criar um classificador de árvore de decisão usando a configuração do Genie. A configuração do Genie é uma das principais critérios oferecidos pela biblioteca Genie para a criação de uma árvore de decisão. ```python from sklearn. tree import DecisionTreeClassifier def criar_modelo_genie(X_treino, y_treino): clf = DecisionTreeClassifier(criterion='gini', random_state=100) clf. fit(X_treino, y_treino) return clf ``` Pode-se também criar modelos com a configuração de entropia e nossa função poderá incluir diferentes configurações de árvores de decisão de acordo com os requisitos, facilitando a teste em vários modelos. ## Prevendo e Calculando Precisão Criamos uma função de previsão que utiliza o modelo criado e cálcula a precisão do modelo sobre os dados de teste. ```python def prever_e_atualizar(clf, X_teste, y_teste): y_previsto = clf. predict(X_teste) from sklearn. metrics import score_precisão, matriz_de_confusão precisão = score_precisão(y_teste, y_previsto) matriz_de_confusão = matriz_de_confusão(y_teste, y_previsto) print('Matriz de Confusão: ') print('\n', matriz_de_confusão) print('Precisão: %. 2f%%' % (precisão * 100. 0)) print('Classificação de Relatório: ') ``` ## Código Principal Juntando tudo isto, temos os passos que lhe estavamos seguindo: ```python from sklearn. datasets import cargar_câncer # Carregar o conjunto de dados de Câncer de Mama cancer = cargar_câncer() X = cancer. data y = cancer. target # Separando os dados X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=100, stratify=y) # Modelo do Genie modelo_genie = criar_modelo_genie(X_treino, y_treino) # Pode haver código para criar modelos com a configuração de entropia aqui # Prevendo e avaliando os modelos print('Resultados com o modelo do Genie: ') prever_e_atualizar(modelo_genie, X_teste, y_teste) # Aqui pode haver código para avaliar outros modelos ``` Este exemplo demonstra o processo de separação de dados, criação de um modelo de árvore de decisão usando a configuração do Genie, a previsão e a validação do modelo com o conjunto de dados de Câncer de Mama. Tenha em mente que você desejará gastar uma parte significativa de seu tempo a importar, limpar e formatar seus dados para que eles funcionem corretamente com os seus modelos. O classificador de árvore de decisão possui algumas boas características, incluindo manipulação de dados ausentes, o que está detalhado nos comentários em todo o exemplo. # Aprendizagem de Máquina e Inteligência Artificial: Q Learning na Aprendizagem por Referência Este tutorial fornece uma introdução ao Q Learning no contexto da Aprendizagem por Referência. ## Sumário 1. [Introdução](#introdução) 2. [Pré-requisitos](#pré-requisitos) 3. [Termos importantes](#termos-importantes) 4. [Etapas do Q Learning](#etapas-do-q-learning) - [Pré-requisito: Inicialização da Tabela Q](#inicialização-da-tabela-q) - [Atualizando valores na Tabela Q](#atualizando-valores-na-tabela-q) 5. [Escolha de Ação](#escolha-de-ação) 6. [Exemplo do Q Learning: Sistema de Recomendação de Anúncios](#exemplo-do-q-learning-sistema-de-recomendação-de-anúncios) 7. [Conclusão](#conclusão) ## Introdução Seja-vindo a Simply Learn! Neste tutorial, abordaremos uma introdução à aprendizagem por referência, o que é o Q Learning, e termos importantes. Também discutiremos as etapas no Q Learning, escolha de ação, e um exemplo do Q Learning: Sistema de Recomendação de Anúncios. ## Pré-requisitos Para seguir este tutorial, deve ter uma compreensão básica das seguintes áreas: - Inteligência Artificial - Aprendizagem de Máquina - Aprendizagem por Referência ## Termos Importantes - Agente: A entidade que interage com o ambiente na aprendizagem por referência para resolver um problema. - Ação: Uma ação executada pelo agente em um estado particular que influencia o ambiente. - Reward: Recompensa positiva ou negativa dada ao agente pela ação executada. - Estado: A posição atual ou situação do agente no ambiente. - Tabela Q: Uma tabela usada para armazenar as previsões de recompensas para cada ação em cada estado que o agente pode estar no. ## Etapas do Q Learning ### Pré-requisito: Inicialização da Tabela Q Inicialize uma tabela Q com todos os valores definidos em zero. Esta tabela representa as previsões de recompensas para cada ação em cada estado que o agente pode estar no. ### Atualizando valores na Tabela Q 1. Escolha uma ação aleatoriamente e execute-a. 2. Atualize os valores na tabela Q com base no novo estado e na ação executada, recompensa recebida e a maior recompensa esperada futuramente, usando a equação de Bellman. 3. Repita o processo até que a tabela Q seja preenchida ou o episódio termine. ## Escolha de Ação Quando se trata de escolher uma ação usando a tabela Q, existem várias fórmulas que podem ser usadas para escolher aleatoriamente uma ação, como o algoritmo epsilon-greedy. Se estiver em dúvida, você pode usar a fórmula padrão fornecida pelo modelo de aprendizagem Q que está usando. ## Exemplo do Q Learning: Sistema de Recomendação de Anúncios Usando o Q Learning, podemos criar um sistema de recomendação de anúncios que sugestiona produtos relacionados ao usuário com base em as suas compras anteriores. A recompensa para este sistema seria concedida se o usuário clicasse no produto recomendado. Consideremos um exemplo onde temos 100 usuários clicando em anúncios. Podemos usar Q learning para determinar a melhor conjunto de anúncios com base nas preferências individuais dos usuários e suas interações com os anúncios exibidos. ## Conclusão Neste tutorial, fornecemos uma introdução à aprendizagem por referência e discutimos o Q Learning, sua importância e etapas envolvidas no Q learning. Também abordamos a escolha de ação e um exemplo de uso do Q Learning em um sistema de recomendação de anúncios. Para obter mais informações sobre a Inteligência Artificial e Aprendizagem de Máquina, visite nossa página web [www. simplylearn. com](http://www.simplylearn.com). Se você gostar deste vídeo, inscreva-se no canal de vídeos YouTube da Simply Learn e marque a luz para ser avisado de novos vídeos. Para outros tutorials de Aprendizagem por Referência, consulte nosso playlist de Q Learning na Aprendizagem por Referência a seguir: - [AI e Aprendizagem de Máquina: Curso Completo: Inteligência Artificial & Aprendizagem de Máquina](https://www.youtube.com/watch?v=wnqkfpCpK1g) - [Q Learning na Aprendizagem por Referência: Exemplo de Q Learning | Aprendizagem de Máquina Tutorial | Simplilearn](https://www.youtube.com/watch?v=tMnc-hhO2jE) Transcrição não disponível. # Ajuste para português de Portugal em Markdown. Preserve todos os elementos de formatação Markdown. --- ## Configuração do Jupyter Notebook Este tutorial irá passar por como configurar um Jupyter Notebook, utilizar o ambiente Python 3 e fazer uma demonstração do algoritmo Q-Learning. ## Configuração do Ambiente 1. Inicie Anaconda e crie um novo ambiente Python 3. 6 se necessário. 2. Abrir o Jupyter Notebook com o ambiente Python 3. 3. Criar um novo notebook e rebatizá-lo como "Aprendiz Q". ## Demonstração de Aprendiz Q ### Importação de NumPy e numpy. array ```python import numpy as np ``` ### Definição dos Estados e Ações Nesse exemplo temos nove Estados (localizações) identificados pela letra `l` acompanhada de um número de um a nove. As ações são apenas o movimento de um Estado para outro. ```python # Estados estados = ['l{}'. format(i) for i in range(1, 10)] # Ações actions = ['{} → {}'. format(state, estado_adjacente) for estado in estados for estado_adjacente in estados if abs(int(state) - int(estado_adjacente)) <= 1] ``` ### Configuração da Tabela de Q-Learning Criar uma tabela de Aprendiz Q onde cada Estado é linha e cada ação é coluna. Inicializar todos os valores para 0. ```python # Tabela de Aprendiz Q q_table = np. zeros((len(estados), len(actions))) ``` ## Rewards As recompensas serão definidas de acordo com a tabela de Q, definido como a recompensa para cada par Estado-ação. Você normalmente faria isto para ajustar ao ambiente ou o problema a que se destinam. ```python # Atribuição de Rewards rewards = { 'l1': {'l1': 0, 'l2': 10, 'l3': 1, 'l4': 1, 'l5': 0, 'l6': 0, 'l7': 0, 'l8': 0, 'l9': 0}, 'l2': {'l1': 0, 'l2': 0, 'l3': 1, 'l4': 1, 'l5': 1, 'l6': 1, 'l7': 0, 'l8': 0, 'l9': 0}, 'l3': {'l1': 1, 'l2': 1, 'l3': 0, 'l4': 0, 'l5': 1, 'l6': 2, 'l7': 1, 'l8': 1, 'l9': 1}, 'l4': {'l1': 1, 'l2': 1, 'l3': 0, 'l4': 0, 'l5': 0, 'l6': 0, 'l7': 0, 'l8': 0, 'l9': 5}, 'l5': {'l1': 0, 'l2': 1, 'l3': 1, 'l4': 0, 'l5': 0, 'l6': 1, 'l7': 1, 'l8': 1, 'l9': 1}, 'l6': {'l1': 0, 'l2': 1, 'l3': 2, 'l4': 0, 'l5': 1, 'l6': 0, 'l7': 1, 'l8': 1, 'l9': 1}, 'l7': {'l1': 0, 'l2': 0, 'l3': 1, 'l4': 0, 'l5': 1, 'l6': # Análise de Mercado de Cestas utilizando Mineração de Regra de Associação | Projetos de Aprendizagem de Máquina 2022 | Simplilearn Ideia: pt-PT Olá, todos! Eu sou M e tambiénזinto-vos nesta aula de laboratório de análise de Mercado de Cestas utilizando Python, socialmente distanciados. Antes de começarmos, espero que a tela esteja clara e a áudio adequada. Se sim, digite "sim" se há algum problema, informe-nos na secção de comentários para que possamos resolver. Se não, favor continue. Existemdependências packages ======================== Neste laboratório, conseguimos encontrar a menor distância entre dois caminhos com base nos próximos requisitos ou recompensas de estado para chegar de ponto A a ponto B e as ações disponíveis. Obrigado, por favor, a sua presença! Para mais informações, visite <www. simplylearn. com> para se certificar e avançar! Se gostou desta sessão, assista hoje ao canal Youtube do Simplilearn e clique aqui para assistir a vídeos semelhantes para aperfeiçoar seu conhecimento. Torne a música mais alta e se certifique! -------------------------------------------------- ### Análise do Mercado de Cestas utilizando regras de Mineração de Associação | Ferramentas de Aprendizagem de Máquina 2022 | Simplilearn URL: <https://www.youtube.com/watch?v=aqsa-gO_aq4> Olá, todos! Este é o laboratório de análise de Mercado de Cestas utilizando python, socialmente distanciados. Antes de começarmos, espero que a tela esteja clara e a áudio adequada. Se sim, digite "sim" se houver algum problema, informe-nos na secção de comentários. Tenha em mente que não é possível assistir ao laboratório neste momento, mas não se preocupe, podemos fazer isso mais tarde. Quando terminar de assistir à análise do Mercado de Cestas, não perca a oportunidade de se especializar em Aprendizagem de Máquina e ligar para a Simplilearn nosso Programa Profissional de Certificação em Aprendizagem de Máquina e Inteligência Artificial para se tornar um líder no campo! Caso tiver dúvidas, procure detalhes no vídeo ou clique em "description" abaixo! ---------- Antes de começarmos, você pode cumprir este pequeno desafio apenas em um minuto! A escolha correta dará ao premium Blog Award 2022! Comente ou envie se tiver uma resposta na secção de comentários! O artigo **"Qual é o melhor idioma para fazer Aprendizagem de Máquina entre Java, C++, C, e python? **" teve interessante a participação! Precisamos saber, qual é o artigo deste mês feito pelo Blog Premium que você gostaria? Escolha um dos tópicos abaixo e comente: * Java ou C++ * C ou python **Desafio: ** Qual é o melhor idioma para Aprendizagem de Máquina? **Resposta: ** python Agora, brace yourself! Aqui é o código para ajudá-lo nos 15 passos: ```python # Importa as bibliotecas necessárias import numpy as np import pandas as pd import matplotlib. pyplot as plt from sklearn. decomposition import PCA import seaborn as sns # Carrega os dados do mercado de cestas de um ficheiro CSV mercado_cestas = pd. read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data", header = None) # Define o título para as colunas mercado_cestas. columns = ["sepal length", "sepal width", "petal length", "petal width", "species"] # Imprime os primeiros 5 linhas dos dados carregados para confirmar print(mercado_cestas. head()) # Prepara os dados para PCA (Principal Component Analysis) PCA = PCA(n_components=2) dados_PCA = PCA. fit_transform(mercado_cestas. drop('species', axis=1)) # Encontra o modelo PCA que melhor se ajusta aos dados PCA. fit(dados_PCA) # Represents os dados PCA num gráfico de scatter plot plt. scatter(dados_PCA[: , 0], dados_PCA[: , 1]) # Marca o gráfico com as espécies de cestas diferentes cores = ['yellow', 'purple', 'orange'] para cada grupo, cor em­: zip(mercado_cestas['species'], cores): índices_a_correr = mercado_cestas[mercado_cestas['species']==group]. index plt. scatter(dados_PCA[índices_a_correr, 0], dados_PCA[índices_a_correr, 1], c=cor) # Mostra o gráfico plt. show() # Encontra o modelo KMeans que melhor se ajusta aos dados PCA kmeans_model = kmeans(dados_PCA, 3) # Adiciona as etiquetas do KMeans ao dataset original de mercado de cestas mercado_cestas['etiquetas_KMeans'] = kmeans_model. labels_ # Salva os resultados de volta num novo ficheiro csv pd. DataFrame({"etiquetas_KMeans": kmeans_model. labels_, "sepal length": mercado_cestas. iloc[: , 0], "sepal width": mercado_cestas. iloc[: , 1], "petal length": mercado_cestas. iloc[: , 2], "petal width": mercado_cestas. iloc[: , 3], "species": mercado_cestas. iloc[: , 4]}). to_csv("mercado_cestas_kmeans. csv", index=False) ``` Espere que este excerto de código te ajude! Depois, você pode usá-lo para explorar dados em granulação e extrair conhecimento útil. Fique Ó off! Boa sorte com o seu projeto! # Análise de Chat de Grupo do WhatsApp Usando Python ## Projetos de Aprendizagem de Máquina 2023 | Simplilearn URL: [https: //www. youtube. com/watch? v=SbX2-o5w5pY](https://www.youtube.com/watch?v=SbX2-o5w5pY) Este tutorial demonstra como analisar chats de grupos do WhatsApp usando aprendizagem de máquina. Antes de começar, confirme que a aparência está visível e que a audio está correta. Aguarde alguns minutos a mais para deixar que outras pessoas se juntem. ## Pré-requisitos - Jupyter Notebook - Conhecimento básico em Python - Importe bibliotecas necessárias: - `import re` - `import collections` - `import wordcloud` - `from PIL import Image, ImageDraw, ImageFont` - `import datetime` - `import pandas as pd` - `import numpy as np` - `import matplotlib. pyplot as plt` ## Definições de Função ### Obter Data e Hora ```python def get_date_time(): pattern = r'\d{4}-\d{2}-\d{2} \d{2}: \d{2}: \d{2}' return re. findall(pattern, input())[0] if re. search(pattern, input()) else None ``` ### Encontrar Autor ```python def find_author(): s = set() for line in input(): line = re. sub(r'[^a-záÀÁããÉÉèéÒóóõÕõÚúç-]', '', line) if len(line) > 2: s. add(line) return list(s) ``` ### Obter Pontos de Dados ```python def get_data_points(is_android): date_time, author, message = get_data_point(is_android) mensagens = [] for line in input(): line = re. sub(r'[^a-záÀÁããÉÉèéÒóóõÕõÚúç-]', '', line) if len(line) > 2 and line ! = '\n': mensagens. append(line) return date_time, author, mensagens def get_data_point(is_android): if is_android: date_time = input() mensagem = re. sub(r'\. [^. ]+\. ', '', input()) else: # Faça similiar processamento para mensagens do iOS aqui pass return date_time, find_author()[0], mensagem ``` ### Contagem de divide ```python def split_count(text): regex = re. compile(r'[\w]+') palavras = regex. findall(text) return {palavra: palavras. count(palavra) for palavra in palavras if palavra} ``` ### Importar Dados - Importar dados de um arquivo e converter para um DataFrame do pandas ## Uso - Execute as funções acima para coletar dados, executar a análise necessária, e visualizar os resultados. Este tutorial fornece uma estrutura básica para analisar dados de chat de grupo do WhatsApp usando Python. Você pode melhorar esse código ao implementar técnicas de análise complexas, visualização de dados, ou integrando modelos de aprendizagem de máquina. # Curso Rápido de Aprendizado de Máquina para Análise de Dados de Grupo do WhatsApp Este tutorial demonstra o processo de análise de um chat de grupo do WhatsApp usando aprendizado de máquina e Python. ## Visão geral Neste curso rápido, você aprenderá a analisar dados de grupos do WhatsApp para obter insights sobre mensagens, autores e horários. Aqui está o que você aprenderá: 1. **Preparação dos dados**: Carga, formatação e pré-processamento do datasets para análise. 2. Análise de mensagens: Extração dos detalhes das mensagens, contagem de mensagens e calculo da contagem de palavras e letras. 3. Análise de autores: Identificação de autores únicos, contagem de mensagens por autor e contagem de palavras e letras por mensagem por autor. 4. Análise dos tempos: Análise de marcas de horário de mensagens para determinar mensagens enviadas às diferentes horas do dia. 5. Geração de Nuvem de Palavras: Criação de nuvem de palavras para visualizar as palavras mais utilizadas no chat do grupo. 6. Análise de autores específicos: Geração de nuvem de palavras para autores específicos. ## Início rápido Antes de entrar no análise, certifique-se de ter os seguintes pré-requisitos instalados: - Python 3. x - Pandas - NumPy - Matplotlib ## Preparação de Dados Primeiro, carregamos o dataset e tomamos uma pequena olhada no dataset: ```python import pandas as pd # Cargar o dataset df = pd. read_csv('whatsapp_group_chat. csv') print(df. head()) ``` ## Análise de Mensagens Agora, contemos a contagem total de mensagens, mensagens com links e mensagens de mídia: ```python print('Total de mensagens: ', len(df)) print('Mensagens com links: ', df['contador_de_url']. sum()) print('Mensagens de mídia: ', df[df['mensagem']. str. contains('Mídia')]. shape[0]) ``` Em seguida, calculemos o número de palavras e letras no dataframe: ```python from nltk. tokenize import word_tokenize, sent_tokenize from nltk. corpus import stopwords # Carregar o conjunto de paradas stop_words = set(stopwords. words('portugues')) # Defina funções def contador_de_palavras(df): total_palavras = 0 for idx, linha in df. iterrows(): mensagens = linha['mensagens'] palavras = word_tokenize(mensagens. lower()) palavras_filtradas = [palavra for palavra in palavras if palavra. isalpha() and palavra not in stop_words] total_palavras += len(palavras_filtradas) return total_palavras def contador_de_letras(df): total_letras = 0 for idx, linha in df. iterrows(): mensagens = linha['mensagens'] palavras = word_tokenize(mensagens. lower()) total_letras += sum([len(palavra) for palavra in palavras]) return total_letras df['contador_de_palavras'] = df. apply(contador_de_palavras, axis=1) df['contador_de_letras'] = df. apply(contador_de_letras, axis=1) ``` ## Análise de Autores Encontraremos autores únicos, autores com o maior número de mensagens e calcularemos a contagem média de palavras por mensagem por autor: ```python import seaborn as sns import matplotlib. pyplot as plt autores = df['autor']. unique() num_autores = len(autores) autores_count = df. groupby('autor')['mensagens']. count(). sort_values(ascending=False) autores_palavras = (df. groupby('autor')['contador_de_palavras']. sum() / df. groupby('autor')['mensagens']. count()). sort_values(ascending=False) autores_media = df. groupby('autor')['mídia']. sum(). sort_values(ascending=False) plt. figure(figsize=(10, 6)) sns. barplot(x=autores, y=autores_count) plt. title('Total de mensagens por Autor') plt. xlabel('Autores') plt. ylabel('Número de Mensagens') plt. show() plt. figure(figsize=(10, 6)) sns. barplot(x=autores, y=autores_palavras) plt. title('Palavras por Mensagem por Autor') plt. xlabel('Autores') plt. ylabel('Palavras por Mensagem') plt. show() plt. figure(figsize=(10, 6)) sns. barplot(x=autores, y=autores_media) plt. title('Mídia por Mensagem por Autor') plt. xlabel('Autores') plt. ylabel('Mídia por Mensagem') plt. show() ``` ## Análise de Tempos Agora, calcularemos o contador de mensagens e o contador de palavras por hora: ```python def hora_do_dia(tempo): return tempo. strftime('%H') df['hora'] = df['tempo']. apply(hora_do_dia) contador_hora = df. groupby('hora')['mensagens']. count(). sort_values(ascending=False) contador_palavras = df. groupby('hora')['contador_de_palavras']. sum(). sort_values(ascending=True) plt. figure(figsize=(10, 6)) plt. plot(contador_hora, label='Contador de Mensagens') plt. plot(contador_palavras, label='Contador de Palavras') plt. xlabel('Hora do Dia (0-23)') plt. ylabel('Contagem Total') plt. legend() plt. show() ``` ## Geração de Nuvem de Palavras Finalmente, geremos uma nuvem de palavras para o conjunto inteiro do chat do grupo e palavras específicas de autores: ```python from wordcloud import WordCloud import io # Gerar a nuvem de palavras para o conjunto inteiro do chat do grupo fig, ax = plt. subplots(figsize=(10, 10)) wc = WordCloud(largura=800, altura=400, fundo='branco', paradas=stop_words, tamanho_fonte_max=100) wc. gera_nuvem_palavras_de_frequencia(df['mensagens']. apply(lambda x: x. lower()). valores_max(). to_dict()) wc. imprime(). savefig('nuvem_de_palavras. png') plt. imshow(wc) plt. axis('off') plt. show() # Gerar nuvems de palavras para autores específicos autores = ['Dr. ', 'Anusha', 'Chandra'] clouds_autores = {} for autor in autores: messagens_autor = df[df['autor'] == autor] clouds_autores[autor] = WordCloud(largura=400, altura=200, fundo='branco', paradas=stop_words, tamanho_fonte_max=50) clouds_autores[autor]. gera_nuvem_palavras_de_frequencia(messagens_autor['mensagens']. apply(lambda x: x. lower()). valores_max(). to_dict()) fig, axs = plt. subplots(len(autores), 1, figsize=(16, 5 * len(autores))) for i, (autor, palavra_nuvem) in enumerate(clouds_autores. items()): axs[i]. imshow(palavra_nuvem) axs[i]. axis('off') axs[i]. set_title(autor) plt. show() ``` Este curso rápido aborda os conceitos básicos de análise de um chat de grupo do WhatsApp usando Python e aprendizado de máquina. Você pode usar estes conceitos e estender-los a seu próprio dataset para explorar padrões e dinâmicas únicas do seu chat de grupo. Boa sorte! # Aprendizado de Máquina: Fundamentos sobre Aprendizado Supervisionado, Não Supervisionado e Aprendizado por Rewards Este texto fornece uma introdução básica ao aprendizado de máquina e a três de suas tipologias principais: aprendizado supervisionado, aprendizado não supervisionado e aprendizado por reforço. ## Aprendizado Supervisionado No aprendizado supervisionado, o modelo é treinado com dados etiquetados. Um exemplo de aprendizado supervisionado em ação pode ser encontrado na identificação da moeda de moedas baseado no seu peso. Aqui, o peso torna-se a característica das moedas, enquanto a moeda torna-se sua etiqueta. O modelo aprende qual característica está associada com qual etiqueta, usando dados etiquetados. ``` Suponha que seu amigo te dê um milhão de moedas de três cotações diferentes (Rupee, Euro e Dirham). Cada moeda tem pesos diferentes (Rupee: 3 gramas, Euro: 7 gramas, Dirham: 4 gramas). Seu modelo preverá a moeda da moeda usando o peso como uma característica. Quando você fornece este dado ao modelo de aprendizado de máquina, ele aprende qual característica está associada com qual etiqueta, por exemplo, ele aprenderá que uma moeda pesando 3 gramas é provável que seja uma moeda de Rupee. Usando este conhecimento, seu modelo pode então prever a moeda de uma nova moeda baseado no seu peso. ``` ## Aprendizado Não Supervisionado O aprendizado não supervisionado envolve treinar o modelo com dados não etiquetados. Um exemplo de aprendizado não supervisionado é agrupar jogadores baseados nos seus dados de desempenho de críquete. Neste caso, o modelo de aprendizado de máquina identifica padrões no dado para criar agrupamentos. ``` Suponha que você tenha um conjunto de dados de críquete de jogadores com seus respectivos placares e vítimas. Quando você fornece este dado não etiquetado ao modelo de aprendizado de máquina, ele procura padrões e traz o dado com as vítimas na eixo x e os placares na eixo y. Após analisar os padrões no dado, você encontrará que existem dois agrupamentos: o primeiro contém jogadores que marcaram muitos placares e tomaram menos vítimas (batedores), enquanto o segundo contém jogadores que marcaram menos placares mas tomaram muitas vítimas (bowlers). A informação importante é que não existiam etiquetas de batedores e bowlers, portanto o aprendizado com dados não etiquetados é aprendizado não supervisionado. ``` ## Aprendizado por Rewards O aprendizado por reforço é um tipo de aprendizado de máquina baseado em recompensas. Ele funciona com o princípio de feedback, onde a máquina aprende por meio de recompensas ou penalidades. ``` Um exemplo de aprendizado por reforço é um sistema que identifica uma imagem de um cachorro e a etiqueta erroneamente como uma gato. Quando dada a informação negativa (dizendo ao sistema que é uma imagem de um cachorro), a máquina aprende com a informação e eventualmente aprende a classificar imagens de cachorros corretamente. ``` ## Diagrama do Modelo de Aprendizado de Máquina Um modelo de aprendizado de máquina recebe entrada, processa-a de acordo com o algoritmo aplicado e produz saída. Se a saída for # Machine Learning e Planeamento Urbano No planeamento urbano, pode te provocar uma dúvida sobre se adicionar uma nova rota de caminhão ou considerar calçadas para bicicletas devido à alta quantidade de ciclistas na região. Isso pode ser uma excelente aplicação do aprendizado de máquina. ## Entendendo o Aprendizado de Máquina O aprendizado de máquina trabalha com dados etiquetados contendo características. Por exemplo, podemos ter um caminhão, carro, motocicleta, ônibus ou bicicleta, e cada um desses é etiquetado. Baseando-se nas etiquetas e comparação das características, a máquina fornece uma resposta: é uma bicicleta, é um caminhão, é uma motocicleta, e assim por diante. Aqui, o modelo examinará as características, como as rodas, o que exigiria mdixo trabalho. No campo do aprendizado de máquina, este processo poderia levantar tempo, especialmente se se tentar analisar cada aspecto individual de um carro. ## Método Tradicional vs Aprendizado de Máquina Profundo O aprendizado de máquina profundo é uma solução para lidar com conjuntos de dados maiores, não etiquetados, usando redes neurais artificiais. Colocamos este conjunto não etiquetado em um modelo de treinamento e a rede neural própria ao criar uma rede neural. As setas nas redes neurais realmente apontam para trás, o que é fascinante, pois funciona colocando uma bicicleta dentro e depois ela vai para trás e diz se é um caminhão que deve ser alterado para bicicleta. Este processo, chamado de backpropagation, permite que a rede neural ajuste os pesos indiretamente e aprenda por este processo. Quando treinamos um modelo de rede neural, depois testamos o modelo usando novos dados. Colocamos os novos dados e dizemos: "Este modelo está funcionando corretamente? Identificou uma bicicleta como uma bicicleta, um caminhão como um caminhão, uma motocicleta como uma motocicleta, e assim por diante? " O aprendizado de máquina profundo é particularmente útil na determinação de quais objetos estão presentes nos dados. ## Determinando Objetos (Aprendizado de Máquina Profundo) Usamos o aprendizado de máquina profundo para determinar quais objetos estão presentes nos dados, como uma imagem de bicicleta. É uma imagem de 28 por 28 pixels, que contém uma grande quantidade de informação. Se tentarmos adivinha qual imagem representa uma bicicleta tentando olhar para cada pixel e tentar figurar seu ambiente, isso seria muito trabalhoso. Isso é algo que os humanos fazem sem mesmo perceber. A imagem é convertida em uma variedade de nós quando entra na rede neural. Existem mais nós do que mostramos aqui, e eles passam por estas diferentes camadas. A rede neural então vem com uma conclusão: "Este é uma bicicleta. " Estes passos são geralmente referidos como a caixa preta mágica porque, ao nos deixarmos passar pelos pesos e todas as matemáticas por trás, parece um pouco complexo. No entanto, é como a magia - você não sabe realmente o que sairá ao olhar para cada um destes pontos e cada uma destas linhas. ## Predição e Decisão (Aprendizado de Máquina) O aprendizado de máquina é capaz de fazer previsões ou tomar decisões baseadas nos dados passados. Isso é essencial para o aprendizado de máquina: estamos olhando coisas baseadas em o que estava lá antes e criando decisões baseadas nisso. Por exemplo, criaria uma decisão sobre se pintar uma bola de areia ou dizer o tempo em Chicago. O que é bom sobre o aprendizado de máquina é sua capacidade de processamento poderoso, resultados rápidos e precisos e a capacidade de analisar grandes quantidades de dados: petabytes e terabytes, o que incómodamente levaria séculos para serem analisados por centenas de pessoas. Em contraste a contratar centenas de pessoas, isso é uma forma utiliza cabal de se mover para o futuro. ## Sistemas de Sistemas de Aprendizado de Máquina Profunda: Semelhanças e Diferenças Os sistemas de aprendizado de máquina profunda pensam e aprendem como os seres humanos, usando redes neurais artificiais. A performance melhora com mais dados, pois mais dados que o aprendizado de máquina profunda recebe, melhor resultados fornece. É escalonável, o que significa que pode ser feito para subir, diminuir, e aumentar o dado que está olhando. As melhores características são selecionadas pelo sistema, e é importante assinalar que o aprendizado de máquina profunda é um subconjunto do aprendizado de máquina, e é uma das mais novas e mais importantes coisas aplicadas a vários paquetes diferentes. Ele usa todas as ferramentas de aprendizado de máquina disponíveis para trabalhar com ele e é rápido de testar devido à sua complexidade. ## Inteligência Artificial, Aprendizado de Máquina e Aprendizado de Máquina Profunda Temos conceitos de inteligência artificial, incluindo três principais componentes: processamento de linguagem natural, aprendizado de máquina e aprendizado de máquina profunda. O aprendizado de máquina é uma abordagem para criar inteligência artificial, enquanto que o aprendizado de máquina profunda é uma ferramenta específica dentro do aprendizado de máquina. É importante destacar que a inteligência artificial é a grande imagem, e podemos ver em aplicativos como a geração de notícias e dispositivos inteligentes em casa. No fim, o aprendizado de máquina profunda na inteligência artificial nos permite fazer mais rápido e eficientemente. Ele compara-se com a experiência humana em either fazendo algo da mesma coisa que um humano ou fazendo alguma coisa melhor que nós e nos fornece com capabilidades processadoras poderosas. Ele aprende com experiências passadas e é programado para chegar a decisões baseado nessas experiências. # Inteligência Artificial: Entendendo Fundamentos e Tipos ## Máquinas Reactivas Minha máquina de lavar roupas é um exemplo de máquina reactiva. Se eu sobrecarregar a mesma de roupas que se aglomeram em um lado, ela adiciona peso automaticamente para reposicionar-se. Isso garante que a máquina de lavar roupas funcione efetivamente com qualquer carga, mantendo as roupas equilibradas durante o ciclo de vórtex. ## Memória Limite na Inteligência Artificial Alguns sistemas de inteligência artificial, como os sistemas de memória limitada, olham para informações passadas que são adicionadas ao longo do tempo. No entanto, esta informação é temporária. Por exemplo, uma rede neural programada para identificar carros processa centenas de imagens, mas não lembra-as todas. Em vez disso, ele aprende a identificar padrões para carros baseadas em estas imagens. ## Teoria do Mundo da Mente Os sistemas de teoria do mundo da mente são capazes de entender as emoções humanas e como elas afetam a tomada de decisões. Estes sistemas alteram seu comportamento com base na compreensão humana. Isso é crucial para a inteligência artificial, pois a capacidade de interagir com os humanos de uma maneira que possamos compreender diferencia-a de apenas um objeto. ## Tipos de Aprendizagem de Máquina ### Aprendizagem Supervisionada Os sistemas de aprendizagem supervisionada preveem os resultados futuros baseados nos dados de passado. Eles necessitam de tanto um input quanto um output serem fornecidos ao modelo para treinamento. Por exemplo, se você tiver centenas de imagens de um bicicleta, o sistema é treinado por alguém que já analisou todas as imagens centenas e as marcou como imagens de bicicleta. O computador aprende com esses exemplos e então pode identificar uma bicicleta em uma nova imagem. ### Aprendizagem Dessupervisionada Os sistemas de aprendizagem dessupervisionada identificam padrões em dados de entrada. Ao tornar os dados mais lidos e organizados, os padrões, semelhanças ou anomalias ficam mais evidentes. Por exemplo, se você olhar para uma imagem e começar a extrair as partes da imagem, a aprendizagem dessupervisionada deixa que o sistema diferencie entre diversos elementos sem ser informado o que são eles. ### Aprendizagem por Recompensa Os sistemas de aprendizagem por recompensa aprendem pelo prêmio e pela castigo. Ajudam a aumentar a eficiência de uma função de ferramenta ou de um programa aumentando o prêmio após um determinado resultado. Em outras palavras, ele aprende de seus erros para melhorar o desempenho no futuro. ## Comparação entre Aprendizagem de Máquina e Aprendizagem Profunda A aprendizagem profunda é uma categoria subordinada de aprendizagem de máquina. Enquanto a aprendizagem de máquina permite que as máquinas tomem decisões baseadas em dados de passado, a aprendizagem profunda utiliza redes neurais artificiais para fazer decisões semelhantes, mas com complexidade adicional. A aprendizagem profunda normalmente requer um conjunto de dados maior para treinar o modelo, comparado à aprendizagem de máquina, que pode funcionar com conjuntos de dados menores. ## Futuro da IA É prevista que a desenvolvimento da inteligência artificial trará significance mudanças em vários setores, incluindo a detecção de crimes antes que aconteçam, ajudares humanoides, aumento da eficiência na saúde, e técnicas de marketing personalizadas. A subcategoria de aprendizagem profunda é prevista para abarcar mais as necessidades dos usuários, levando à criação de assistentes pessoais hyper-inteligentes. ## Aplicações da Aprendizagem de Máquina 1. Assistentes Pessoais Virtuais: Serviços como Google Assistant, Alexa, Cortana, e Siri já se tornaram importante para nossas vidas. Ajudamos a chamar alguém, tocar música, e marcar encontros, entre outras coisas. 2. Previsão de Tráfego: O Google Maps utiliza aprendizagem de máquina para prever as condições de trânsito, auxiliando os usuários a tomar decisões informadas acerca de suas viagens. 3. Personalização Social: A aprendizagem de máquina é utilizada na personalização social para mostrar publicidade objetivada baseadas nos interesses dos usuários. 4. Filtragem de E-mail: O Gmail usa aprendizagem de máquina para filtrar e-mails na spam. 5. Reconhecimento de Imagens: A aprendizagem de máquina é utilizada em sistemas de reconhecimento de imagem, como software de reconhecimento facial. 6. Processamento de Linguagem Natural: A aprendizagem de máquina é utilizada para entender e responder à língua humana de maneira que mimique a conversação humana. 7. Veículos Autonomos: A aprendizagem de máquina joga um papel importante na capacidade dos veículos autônomos de navegar e tomar decisões. 8. Diagnóstico em Saúde: A aprendizagem de máquina é utilizada em sistemas que auxilia os médicos na diagnóstico de doenças e na previsão de resultados tratamentos. 9. Detecção de Fraudes: A aprendizagem de máquina é utilizada para detectar atividades fraudulentas em várias indústrias, incluindo finanças, seguro, e segurança cibernética. 10. Análise Predictiva: A aprendizagem de máquina é utilizada para análise predictiva e tomada de decisões em vários setores, incluindo finanças, marketing e venda. # Filtragem e Detecção de Spam e Fraude em Gmail com Aprendizado de Máquina Este documento discute como o Gmail utiliza algoritmos de aprendizado de máquina para filtrar spam e detectar fraude online. ## Filtragem de Spam em Gmail * O Gmail análisa dados já classificados como spam para identificar características que distinguem spam de e-mails não espamados. * Novos e-mails são passados por vários filtros de spam para determinar se eles são spam ou não. * Os filtros de spam populares utilizados pelo Gmail incluem filtros de conteúdo, filtros de cabeçalhos, filtros negros gerais e mais. ## Detecção de Fraude Online * A fraude online pode assumir várias formas, como az Mediterrâneo scams, fraude em contas falsas e attacks man-in-the-middle. * A rede neuronal feedforward é usada para distinguir transações genuínas de transações fraudulentes através de conversão de saídas em valores hash que se tornam entradas para a próxima rodada. ## Negociações no Mercado de Valores com Aprendizado de Máquina * O aprendizado de máquina é usado amplamente no mercado de valores para índices de mercado como Nikkei. * As rede neuronais de Memória Curta Longa (LSTM) são usadas para classificar, processar e prever dados com atrasos de tempo desconhecidos e de duração desconhecida. * As redes neuronais LSTM ajudam a prever tendências no mercado de valores. ## Tecnologia Médica com Aprendizado de Máquina * O aprendizado de máquina tem melhorado grandemente a tecnologia médica, fazendo com que seja mais fácil diagnosticar doenças. * Pode-se criar modelos tridimensionais para prever lesões no cérebro, assistindo eficazmente com tumores cerebrais, infarto isquêmico, imagem fetal, análise cardíaca e outros. * O aprendizado de máquina vai ajudar em vários campos médicos, como identificação de doenças, tratamento pessoalizado, descoberta de medicamentos, pesquisa clínica e radiologia. ## Tradução Automática * A tradução automática é útil ao encontrar cartazes e escritórios em países estrangeiros. * A tradução automática funciona através do aprendizado sequencial, que é semelhante à tecnologia para rodas de chat. * As redes neurais Convolucionais (CNN) são usadas para reconhecimento de imagens, e a R. O. T. para reconhecimento de caracteres. ## Algoritmos de Aprendizado de Máquina * Esta seção destaca alguns algoritmos de aprendizado de máquina populares que estão sendo atualmente utilizados. * **Regressão Linear**: Utilizado para prever y a partir de x, assumindo uma relação linear entre as variáveis. * **Árvores de Decisão**: Um algoritmo de árvore usado para determinar uma linha de ação baseada nos dados de entrada. * **Máquinas de Suporte Vector (SVM)**: Um algoritmo de aprendizado de máquina usado para tarefas de classificação e regressão. ### Regressão Linear * A regressão linear é um algoritmo de aprendizado de máquina bem conhecido e bem entendido na estatística e na aprendizagem de máquina. * Um modelo de regressão linear assume uma relação linear entre as variáveis de entrada x e a única variável de saída y (y = mx + c). * A regressão linear é útil para prever a distância viajada a partir da velocidade e pode ser aplicada a dados mais complexos. ### Árvores de Decisão * As árvores de decisão representam as ocorrências possíveis de decisões ou reações. * Cada ramo de uma árvore em um algoritmo de árvore de decisão representa uma ocorrência possível de decisão ou reação. * As árvores de decisão são usadas para determinar uma linha de ação baseada nos dados de entrada. ### Máquinas de Suporte Vector (SVM) * A Máquina de Suporte Vector (SVM) é um algoritmo de aprendizado de máquina usado para tarefas de classificação e regressão. * A SVM classifica pontos de dados aplicando o hiperplano que pretende fornecer o maior espaço entre classes. * A SVM pode lidar com dados de alta dimensão, o que a torna útil em conjuntos de dados complexos. Estes algoritmos e os aplicativos de aprendizado de máquina mostram o grande potencial em vários campos, como filtragem de spam, detecção de fraude, negociações de mercado de valores, tecnologia médica e tradução automática. Title: Árvore de Decisão para o Golfe baseado nas Condições Meteorológicas ## Introdução Este documento aborda a criação de uma árvore de decisão para determinar se é um dia adequado para jogar golfe com base nas condições meteorológicas. Discutem-se conceitos de entropia e ganho de informação, o cálculo da entropia e o uso destes conceitos para criar uma árvore de decisão. ## Previsão das Condições de Golfe Estamos realizando um censitamento para determinar se jogar golf é apropriado com base nos requ equilibriumados. A máquina não nos indicará quando jogar golf, mas ela pode fornecer sugestões para o melhor momento para fazer tudo isso. ### Factores que afetam o Golfe Os fatores que influem nas condições do golfe são: 1. Umidade 2. Condições do clima (sol, nuvemos ou chuva) 3. Outros fatores (ona, temperatura, vento) ### Dividindo os Dados e Árvores de Decisão Quando lidamos com dados complexos, é importante saber como dividir os dados e tomar decisões corretas. Por exemplo, ao estudar o câncer, podem haver 36 medidas de células cancer tide-slides. Como escolhermos como dividir aqueles dados e é a árvore de decisão correta? ### Entropia e Ganho de informação Para responder a essa questão, precisamos calcular entropia e ganho de informação. #### Entropia A entropia é uma medida de randomness ou impureza nos dados. Deve ser baixa para minimizar confusão e caos. #### Ganho de Informação O ganho de informação é uma medida da redução da entropia após o dado ser dividido, ou redução da entropia. Deve ser elevada para adquirir o máximo de informação possível da divisão. #### Cálculo da Entropia A entropia é calculada com a fórmula: ``` entropia(classe-alvo do conjunto de dados) = entropia(jogar golf) = -(p * log2(p) + n * log2(n)) ``` Onde: - `p` é a probabilidade de jogar um jogo de golf - `n` é a probabilidade de não jogar golf ### Exemplo: Cálculo da Entropia Suponha que temos um conjunto de dados com 14 dias, e em cinco deles jogamos golf. A nossa `p` valor é 5/14, e nossa `n` valor é 9/14. Inserindo esses valores na fórmula, obtemos um valor de entropia de 0. 94 para o conjunto de dados inteiro. ### Ganho de Informação Para calcular o ganho de informação, subtrairmos a entropia de cada atributo (por exemplo, clima, temperatura, umidade, vento) da entropia total. O atributo com o maior ganho de informação é o que queremos dividir. ### Construindo a Árvore de Decisão A árvore de decisão é construída primeiro dividindo os dados com base no atributo com o maior ganho de informação. Podemos continuar a dividir cada nó sub-atra-los com o maior ganho de informação até que tenhasmos o melhor ajuste ou fit. ### Exemplo: Árvore de Decisão Nossa árvore de decisão poderá parecer assim: 1. Clima: Sol, nuvem, ou chuva - Clima: Sol - Ventoso: Não jogar golf - Não ventoso: Jogar golf - Clima: Nuvem - Continuar a dividir se desejado - Clima: Chuva - Não jogar no chuva mas jogar se levemente nuveado ### Suporte Vector Machines (SVM) Suporte Vector Machines (SVM) é um algoritmo de classificação amplamente utilizado. Cria uma linha divisória que divide as classes da forma possível mais melhor. O objetivo é escolher um hiperplano com a maior margem possível entre a linha de decisão e o ponto mais próximo dentro do conjunto de treino. #### Exemplo de SVM Suponha que tenhamos um conjunto de dados etiquetado de amostra em que trabalhamos altura e peso para homens e mulheres. Um ponto nouvo chega, e queremos saber se será homem ou mulher. Desenhamos uma linha para classificar a individual, mas se a linha de decisão for confusa ou pouco precisa, precisamos escolher um hiperplano com a maior margem. ### Classificando receitas de Muffin e Pasteletes Usando SVM Para Classificar receitas de muffin e cupcake usando SVM em Python, faremos: 1. Definir o problema: Classificar receitas de muffin e cupcake 2. Examinar o Conjunto de dados: Examinar diferentes receitas com á-ceite, leite, açúcar, manteiga, ovos, pó de amidas, sumo de laranja e sal para determinar se é uma receita de muffin ou de cupcake. 3. Código a solução em Python: Usando Python e várias bibliotecas, podemos escrever o código para classificar as receitas como muffins ou cupcakes. # Anaconda e Jupyter Notebook Utilize o Anaconda e o Jupyter Notebook para este projeto. O Anaconda Navigator possui várias ferramentas úteis após você entrar. Depois de abrir o Anaconda Navigator, é possível alterar ambientes. Neste caso, iremos utilizar o ambiente de Python 3. 6. Embora a versão não seja muito relevante, tipicamente eu me mantendo nas versões 3x, pois são atualmente mantidas (exceto se você tiver um projeto específico que requer a versão 2x, como a versão 2. 7, que é usualmente utilizada por sua maioria em versão 2). Quando encontrarmos o nosso editor de Jupyter Notebook, podemos ir em frente e criar um novo arquivo. Neste caso, estamos a trabalhar numa comparação de SVM (Suppor Vector Machine) entre Muffins e Bolo-de-chocolate. Começaremos com os pacotes necessários para análise de dados: ``` import numpy as np import pandas as pd from sklearn. svm import SVC import matplotlib. pyplot as plt import seaborn as sns ``` O pacote `numpy` trabalha com arrays numéricos, e frequentemente é abreviado como `np`. O Pandas cria uma ótima tabela de dados, que é mais como uma planilha de Excel com colunas, indexadores e várias formas de se referenciar e facilmente visualizar os dados. Também utilizamos o Support Vector Machine no pacote `sklearn` para o nosso modelo de machine learning. Para visualizar o nosso dado, usaremos Matplotlib e Seaborn: ``` sns. set(font_scale=1. 2) # define a escala de fuente do Seaborn ``` Dado que estamos a trabalhar em um Jupyter Notebook, precisamos da linha a seguir para nossa visualização matplotlib inline: ``` %matplotlib inline ``` Agora, vamos carregar o nosso dado de um ficheiro CSV (Values Separados por Vírgula) chamado 'bolo_de_chocolate vs muffins'. Vamos utilizar o Pandas para ler o CSV: ``` receitas = pd. read_csv('bolo_de_chocolate vs muffins. csv') ``` Ao carregar o dado, podemos o representar com Seaborn: ``` sns. lmplot(x='flour', y='açúcar', data=receitas, hue='tipo', palette='Set1') ``` O comando `sns. lmplot` ajuda a criarmos gráficos correlinhos. Estamos utilizando as variáveis 'flour' e 'açúcar' para plotar os dados, com a variável 'tipo' determinando as cores para os barrigudos e muffins. A paleta 'Set1' é usada para mostrar os cores. Agora, vamos formatar ou pré-processar nosso dado para o preparar para o Support Vector Machine: ``` # Cria a etiqueta de tipo etiqueta_de_tipo = pd. get_dummies(receitas['tipo'], drop_first=True) # Seleciona as características das receitas (excluindo a coluna do tipo) caracteristicas_de_receitas = receitas. iloc[: , 1: ] ``` Aqui, convertemos a coluna de 'tipo' em uma variável de matrizes one-hot codificadas utilizando a função `pd. get_dummies`. A variável `caracteristicas_de_receitas` contém todas as outras características das receitas, excluindo a coluna de 'tipo'. Agora estamos prontos para treinar o nosso SVM modelo: ``` modelo = SVC(kernel='linear') modelo. fit(caracteristicas_de_receitas, etiqueta_de_tipo) ``` Neste caso, criamos o nosso modelo com o classificador de Support Vector (`SVC`) no `sklearn` pacote, com um kernel linear. Depois de criarmos o modelo, utilizamos a comando `fit` para treinar o modelo. Título: Modelo de Máquina de Vegetais Valerosos (SVM) para Classificar Bolo de Muffin e Cupcake com Farinha e Açúcar ======================================================================= Neste tutorial, demonstraremos como utilizar Máquinas de Vegetais Valerosos (SVM) para classificar dados, utilizando um conjunto de dados simples contendo apenas farinha e açúcar, para determinar se uma receita é para um muffin ou um cupcake. Esta série de ciência de dados tipicamente exigiria uma splite de dados mais complexo, mas, para fins deste exemplo, manteremos-o simples. Comecemos pela preparação dos dados: ``` colocamos as ingredientes que, no caso, limitamos apenas a farinha e açúcar. O tipo é muffin ou cupcake? ``` Em seguida, faremos o split dos dados em conjuntos de treino e teste: ``` Agora, separá-lo em dados de treino e dados de teste. Em séries de ciência de dados mais complexas, gostaríamos de dividir em terços, onde um terço é usado para alterar entre o treino e o teste. Há todo tipo de coisas que entram nisso, e ele se torna extremamente complicado quando chegamos a nível de alto escalão, mas para este pequeno conjunto de dados, não vamos fazer isso hoje. ``` Após treinar o modelo, encontramos um erro devido a problemas de capitalização: ``` . . . Vamos corrigir isso realmente rápido, capitalizando SVC. Descobri que tive feito com letra minúscula, classificador de vetores suportados. Tudo pronto. ``` Agora que o erro foi corrigido, podemos continuar: ``` Vamos andar adiante e executá-lo e você verá que ela imprime toda essa informação que aparece automaticamente. Esses são os valores de parâmetro padrão do modelo, você percebe que alteramos o núcleo para linear, e aqui tem o nosso núcleo linear no exibido. Existem outras opções diferentes que você pode modificar, mas neste caso, não necessitamos mudar nenhum delas. ``` Agora que o nosso modelo foi ajustado, vamos explorar um pouco e visualizar nossos resultados: ``` Em seguida, vamos examinar um pouco nossa modelagem treinada um pouco mais e iremos isso para poder exibi-lo em uma gráfica. Vamos ir atrás do plano separador e vamos dizer que usaremos um `w` aqui. Vamos fazer `model. coef_[0]` e que é que é isso de novo? Estamos mexendo com a modelagem, portanto, já tivemos uma previsão e treinamento, então esta é uma coisa matemática que estamos olhando agora. E, portanto, o `w` representa dois diferentes coeficientes . . . ``` O texto restante contém várias equações e códigos em bloco que estão corretamente formatados, então permanecerão sem alteração. Por último, vamos criar uma função para prever se uma receita é de muffin ou de cupcake dados valores de farinha e açúcar: ``` Vamos criar uma função para prever muffin ou cupcake. Tenho meus recipes arrancados da internet, e eu queria ver a diferença entre um muffin e um cupcake, portanto, precisamos de uma função para processar isso. Então é a sua definição da função: `def muffin_ou_cupcake(farinha, açúcar): ` Lembrando que estamos apenas usando farinha e açúcar hoje. Não estamos usando # Algoritmo de Clustering K-Means ## Visão Geral O Algoritmo de Clustering K-Means é um algoritmo de aprendizado não supervisionado utilizado para agrupar dados em `k` clusters distintos e não sobrepostos. Esse processo continua até que as centróides se mantenham estáveis e as posições se tornem estáticas. Neste documento, discutiremos os passos envolvidos no Algoritmo de Clustering K-Means e demonstraremos um exemplo de sua aplicação. ## Passos 1. **Escolha o número de clusters (k): ** O utilizador define o número de clusters que quer prosseguir a gerar. Envie-se o método do punho para determinar um valor adequado de `k`. 2. **Atribuir centróides aleatórios aos clusters: ** Inicialize as centróides aleatoriamente ou selecione-as de acordo com critérios específicos (por exemplo, os pontos centrais dos dados). 3. **Computar a distância dos objetos aos centróides: ** Calcule a distância de cada objeto aos centróides, usando a fórmula de distância Euclideana ou outros métodos. 4. **Formar novos clusters: ** Grupe os objetos de acordo com a menor distância aos centróides, formando novos clusters. 5. **Calcular centróides dos novos clusters: ** Calcule os novos centróides para cada cluster calculando as médias das posições dos objetos dentro de cada cluster. 6. **Repetir passos 3-5: ** Iterar repetidos amplamente os passos 3-5 até a convergência, significando que as centróides não mudam ou o número de iterações chega a um limite máximo. ## Exemplo Para ilustrar o Algoritmo de Clustering K-Means, consideremos um conjunto de dados que contém sete individuos e suas notas em dois tópicos (a e b): ``` Assunto | Tópico A | Tópico B --------|---------|--------- Assunto 1| 2 | 2 Assunto 2| 3 | 4 Assunto 3| 1 | 5 Assunto 4| 4 | 3 Assunto 5| 5 | 1 Assunto 6| 6 | 6 Assunto 7| 7 | 7 ``` Tome os dois pontos mais distantes como os centróides iniciais, por exemplo, o assunto 1 e o assunto 7. Atribua cada ponto para o cluster mais próximo baseado na distância e cálcula os novos centróides. Repeça este processo até a convergência. ## Escolhendo o número de clústers adequado O valor adequado de clusters (k) pode ser encontrado utilizando o método do punho, que consiste em plotar a soma das distâncias médias (WSS) para diferentes valores de k. O valor adequado de k corresponde ao ponto no gráfico onde a sua convecção muda radicalmente (o "punho"). ## Estudo de caso Neste Estudo de Caso, demonstraremos como aplicar o Algoritmo de Clustering K-Means para agrupar automóveis por marca utilizando recursos tais como a potência, cubic lines, marcas e anos. Usamos o conjunto de dados "cars" que contém informação sobre três marcas de carros: Toyota, Honda e Nissan. Ajudado pelo Jupyter notebook, podemos importar e procesar os dados, aplicar o Algoritmo de Clustering K-Means e analisar os resultados. # Documentação Técnica: Preprocessamento de Dados com Pandas ## Introdução Este documento detalha o processo de preprocessamento de dados usando a biblioteca Pandas, com um foco na conversão de valores strings em numéricos, na eliminação de valores nulos e no uso do método do Barão para encontrar o número ótimo de grupos em algoritmo de agrupamento k-médias. ## Conversão de Valores de String em Númerico Ao trabalhar com um conjunto de dados, uma falha pode ocorrer posteriormente durante o processamento dos dados, causando o erro "não é possível converter string em um valor numérico". Este erro emerge quando os valores de string foram gravados incorretamente. Neste caso, usaremos a função `convert_objects` em Pandas para converter os dados em um valor numérico. ```python # Converter valores de string em numéricos com pandas df = pd. read_csv('dados. csv') # Carregue seus dados df = df. convert_objects(convert_numeric=True) # Convert attended to numeric ``` . . . Continue com as seções seguintes desse trecho de código sem alterações . . . ## Eliminação de Valores Nulos A eliminação de valores nulos é crucial em qualquer processo de preprocessamento de dados. Em muitos casos, as pessoas encontram valores nulos somente ao trabalhar com becos de dados pequenos, e precisam se retornar para fazer o processo de eliminação. ```python # Eliminar valores nulos no dado df = df. dropna() # Descartar qualquer linha com valores nulos ``` . . . Continue com as seções seguintes desse trecho de código sem alterações . . . ## O Método do Barão O método do Barão é uma técnica gráfica utilizada para encontrar o número ótimo de grupos no algoritmo de agrupamento k-médias. A seguir está um exemplo de uso do método do Barão para encontrar o número ótimo de grupos: ```python # Importar as bibliotecas necessárias import numpy as np import matplotlib. pyplot as plt from sklearn. cluster import KMeans # Carregar seus dados usando pandas df = pd. read_csv('dados. csv') # Aplicar o método do Barão para encontrar o número ótimo de grupos wcss = [] para i em range(1, 11): kmeans = KMeans(n_clusters=i, init='k-means++', max_iter=300, n_init=1, random_state=0) kmeans. fit(df) wcss. append(kmeans. inertia_) # Desenhar o gráfico do método do Barão plt. figure(figsize=(10, 6)) plt. title('Método do Barão') plt. xlabel('Número de grupos') plt. ylabel('WCSS') plt. plot(range(1, 11), wcss) plt. show() ``` Este código itera entre o intervalo de 1 a 10 (sim, sinta-se à vontade para ajustar o intervalo de acordo com seu conjunto de dados) e computa a WCSS (Soma dos Quadrados dos Distâncias entre cada membro do grupo em um centroídeo). O número ótimo de grupos é o ponto onde a linha do gráfico de WCSS do Barão bixa (ou o braço). Neste código, estamos também usando o objeto `KMeans` do pacote `sklearn. cluster`, que é parte da biblioteca scikit-learn. ## Agrupando os Dados Ao encontrar o número ótimo de grupos, podemos prosseguir com a agrupagem dos dados: ```python # Aplicar o algoritmo de agrupamento k-médias ao conjunto de dados kmeans = KMeans(n_clusters=3, init='k-means++', max_iter=300, n_init=1, random_state=0) kmeans. fit(df) ``` . . . Continue com as seções seguintes desse trecho de código sem alterações . . . ## Definindo características e Treinamento do Modelo Após a agrupagem, podemos definir os atributos e treinar o modelo usando os dados agrupados: ```python # Definir características e treinar o modelo X = df[['coluna1', 'coluna2']] # Substitua as colunas pelos nomes das colunas que você utilizou y = kmeans. labels_ # Obtenha rótulos de grupos ``` # Análise em Clusters com K-Means: Dados de Carros ## Introdução Neste tutorial, vamos aprender a realizar análise em clusters utilizando o algoritmo K-Means em um conjunto de dados que contém informações sobre marcas de carros. ## Preparação dos Dados Comecemos importando as bibliotecas necessárias: ```python import numpy as np import pandas as pd import seaborn as sns import matplotlib. pyplot as plt # Para gráficos inline (se não estiver usando o Jupyter Notebook, você pode precisar ajustar isso) plt. ion() ``` Em seguida, carreguemos os dados. Neste exemplo, os dados estão armazenados em um arquivo CSV chamado "dataforp2. csv". Se você quiser acessar o conjunto de dados diretamente, você pode deixar uma solicitação nos comentários do YouTube ou visitar o [Simply Learn](https://simplylearn.info) website. ```python data = pd. read_csv("dataforp2. csv") ``` Vamos olhar os primeiros alguns registros dos dados para entender sua estrutura: ```python data. head() ``` Este conjunto de dados contém várias características (como raio, textura, perímetro, área, lisura, concavidade e simetria) para cada marca de carro, com o objetivo de agrupar marcas de carros semelhantes. ## Realizando Análise em Clusters com K-Means Primeiro, vamos normalizar os dados para melhorar a qualidade dos resultados dos clusters. ```python from sklearn. preprocessing import StandardScaler scaler = StandardScaler() scaled_data = scaler. fit_transform(data. drop('diagnosis', axis=1)) ``` Agora, podemos aplicar o algoritmo K-Means ao dados normalizados. Vamos agrupar os dados em 3 grupos (i. e. , K=3). ```python from sklearn. cluster import KMeans kmeans = KMeans(n_clusters=3, random_state=42) kmeans. fit(scaled_data) ``` Depois que o modelo for treinado, podemos recuperar as etiquetas de cluster para cada marca de carro. ```python data['clusters'] = kmeans. labels_ ``` Agora, vamos visualizar os resultados: ```python # Plotando o gráfico de dispersão com centróides plt. scatter(scaled_data[: , 0], scaled_data[: , 1], c=kmeans. labels_, cmap='viridis') centroids = kmeans. cluster_centers_ plt. scatter(centroids[: , 0], centroids[: , 1], marker='X', s=300, color='amarelo') plt. title('Clusters de Marca de Carro') plt. xlabel('Feature 1') plt. ylabel('Feature 2') plt. show() ``` Você deverá ser capaz de ver três clusters distintos de marcas de carros no gráfico, com centróides claramente separados. ## Regressão Logística A regressão logística é outro algoritmo de aprendizado de máquina que se concentra em classificar dados em duas ou mais classes. Neste exemplo, vamos utilizar regressão logística para classificar se um tumor é maligno ou benigno. ### O Algoritmo de Regressão Logística Para problemas de classificação binária, a regressão logística ajusta uma função sigmoide ao dados. Esta função tem a forma: ```math p = \frac{1}{1 + e^{-(mx + c # Análise de Dados com Python: Conjunto de Dados de Câncer de Mama Este tutorial vai lhe guiar a analisar o Conjunto de Dados de Câncer de Mama usando Python e diversas bibliotecas como Seaborn, Pandas e Scikit-Learn. ## Visão Geral Neste tutorial, vamos: 1. Visualizar o conjunto de dados usando Seaborn e obter uma visão rápida da distribuição das características. 2. Verificar se existem valores nulos no conjunto de dados. 3. Divide o conjunto de dados em conjuntos de treinamento e teste para o treinamento e teste do modelo. 4. Criar e treinar um Regressão Logística usando Scikit-Learn. 5. Avaliar o modelo treinado usando métricas de classificação. ## Visualizando o Conjunto de Dados Primeiro, vamos carregar o conjunto de dados usando Pandas: ```python import pandas as pd data = pd. read_csv('breast-cancer-wisconsin. data. txt', header=None) data. columns = ['id', 'diagnóstico', 'raio_média', 'textura_média', 'perímetro_média', 'área_média', 'lisura_média', 'compactação_média', 'concavidade_média', 'ponto concavo_médio', 'simetria_média', 'dimensão_fracal_média', 'raio_dispersão', 'textura_dispersão', 'perímetro_dispersão', 'área_dispersão', 'lisura_dispersão', 'compactação_dispersão', 'concavidade_dispersão', 'ponto concavo_dispersão', 'simetria_dispersão', 'dimensão_fracal_pior', 'textura_pior', 'perímetro_pior', 'área_pior', 'lisura_pior', 'compactação_pior', 'concavidade_pior', 'ponto concavo_pior', 'simetria_pior', 'dimensão_fracal_pior'] # Dropping a primeira linha, que contém os nomes dos atributos data. drop(data. index[0], axis=0, inplace=True) ``` ### Diagrama de dispersion de adultos Vamos criar primeiramente um diagrama de dispersion usando Seaborn para visualizar a distribuição da primeira e da segunda colunas: ```python import seaborn as sns import matplotlib. pyplot as plt sns. jointplot(x='raio_média', y='textura_média', data=data, kind='reg') plt. show() ``` ### Mapa de calor Agora, vamos criar um mapa de calor para visualizar as correlações entre as características: ```python sns. heatmap(data. corr(), annot=True, cmap="coolwarm") plt. show() ``` ## Verificando os Valores Nulos Para verificar se existem valores nulos no conjunto de dados, podemos usar Pandas: ```python data. isnull(). sum() ``` Certifique-se de que não existam valores nulos no dataset. Caso existam, trate-os de maneira adequada. ## Divisão do Conjunto de Dados Agora, vamos divider o conjunto de dados em conjuntos de treinamento e teste: ```python from sklearn. model_selection import train_test_split X = data. drop('diagnóstico', axis=1) y = data['diagnóstico'] X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` ## Treinamento e Ajuste do Modelo Vamos agora criar e ajustar um Regressão Logística usando Scikit-Learn: ```python from sklearn. linear_model import LogisticRegression modelo = LogisticRegression() modelo. fit(X_treino, y_treino) ``` ## Avaliação do Modelo Caso finalmente, vamos avaliar o modelo treinado usando métricas de classificação: ```python from sklearn. metrics import classification_report y_preditos = modelo. predict(X_teste) print(classification_report(y_teste, y_preditos)) ``` Este tutorial fornece um ponto de partida para a análise do conjunto de dados de câncer de mama usando Python. Você pode explorar de maneira mais aprofundada diferentes modelos, técnicas de preprocessamento de dados e engenharia de características para melhorar o desempenho do modelo. # Árvore de Decisão Aleatória para Aprendizado Máquina Antes de entrar no assunto, vamos primeira olhar para algumas aplicações para Árvore de Decisão Aleatória. Atualmente, este poderoso ferramental se utiliza em diversas aplicações, entre as quais: 1. **Sensação Remota**: Por exemplo, em dispositivos Enhanced Thermal Mapper (ETM), muito comuns em sátellites. Eles podem ver além do espectro humano, capturando imagens da superfície da Terra com maior precisão e tempo de treino menor em comparação com muitos ferramentais de aprendizagem automática. 2. **Detecção de Objetos e Detecção Múlti-classe de Objetos**: Utiliza algoritmos de Árvore de Decisão Aleatória para tarefas como classificar carros, ônibus e outros objetos, proporcionando uma detecção melhor em ambientes complexos. 3. **Consola de Jogo – Connect**: Esta plataforma utiliza uma Árvore de Decisão Aleatória como parte de sua funcionalidade. Ela rastrea movimentos corporais e os recria no jogo. ! [Connect](https://www.intersewlabs.com/wp-content/uploads/2020/08/Connect-Game-Demo-Blog-Post-thumbnail-700x379.jpg) *Neste caso, o movimento do utilizador (por exemplo, Elvis Presley dançando) é gravado. A plataforma Connect regista o movimento e marca o utilizador baseado na precisão. * 4. **Rastreio de Movimentos Corporais**: A plataforma utiliza uma classificador de Árvore de Decisão Aleatória para identificar partes corporais como mãos, pés e interpretar os movimentos. Dados esta informação, é utilizada para avaliar o jogo com base na precisão do utilizador nos seus movimentos. *Para entender por que utilizamos este ferramental em detrimento de outros, vamos explorar os seus benefícios: * *- Sem sobreajustamento*: Quando se utiliza várias árvores, o risco de sobreajustamento é reduzido, o que significa que o conjunto de dados é adaptado tão perto de о que temos como amostra que pegamos em todas as pet equipaggiamenti sensitivi. Em vez de prever os dados gerais, você está prevendo a coisa estranha, a qual não deseja. *- Alta eficiência em bancos de dados elevados*: A Árvore de Decisão Aleatória produz predictões de alta precisão em um mundo atual de dados, onde entretta le lucciola durante la nottata. *- Avaliação de Dados Faltantes*: A Árvore de Decisão Aleatória mantém a precisão em uma taxa de dados faltantes elevada. Isto é particularmente útil ao lidar com dados com inconsistências provenientes de diferentes áreas. *Vamos explorar mais a teoria da Árvore de Decisão Aleatória e o floresta de decisões aleatória. * *A Árvore de Decisão Aleatória, ou floresta de decisões aleatória, é um método que opera construindo várias árvores de decisão. A decisão do maior número de árvores é tomada pela floresta de decisões como a decisão final. * *Uma árvore de decisão é uma árvore em forma de diagrama que determina uma acção determinando possíveis decisões e seus efeitos. * *A Árvore de Decisão Aleatória utiliza os seguintes conceitos-entropia*: - Entropia: Tudo no qual se baseia uma árvore de decisão e como ela faz esta decisão é baseado na entropia, que é uma medida da randomidade ou imprevisibilidade nos dados de conjunto. - Ganho de informação: A medida da redução na entropia após o conjunto de dados ser dividido. - Nó de folha: Carrega a classificação ou decisão. - Nó de decisão: Tem dois ou mais ramos e faz uma decisão sobre qual ramal a árvore deve seguir com base em alguma medida ou informação fornecida à árvore de decisão. *Em termos mais simples, a Árvore de Decisão Aleatória é um kit de ferramentas que construi várias árvores de decisão, cada uma fazendenada determinar uma acção com base nos dados dados. A opinião maioritaria dos árvores determina a decisão final. * # Visão geral e análise de flores de Iris usando Python ## Pré-requisitos: Entenda os fundamentos do Random Forest e aprendizado de máquina Use esta guia se desejar experimentar com Random Forest e aprendizado de máquina usando Python ao analisar e prever a espécie de algumas flores de Iris. Os dados de flores de Iris foram investigados desde 1936, e foram primeiramente apresentados à comunidade de aprendizado de máquina por [Ronald Fisher](http://www-history.mcs.st-and.ac.uk/Biography/Fisher.html), que mediu uma variedade de partes específicas da flor, como comprimento do sépalo, largura dos sépalos, etc. , e, com base em medidas, conseguiu prever com precisão a espécie que as flores poderiam pertencer! Observação: Este Guia assume que você compreenda os fundamentos do Random Forest e aprendizado de máquina. ## Passos a seguir antes de implementar o código final Python: 1. Carregar os módulos necessários; 2. Explorar/Visualizar nosso dados; e 3. Implementar as previsões usando o classificador Random forest dentro de Python. ## Carregamento de dados para especificações de flores de Iris Para carregar os arquivos de dados necessários, utilizamos a função `load_iris()` do módulo `sklearn. datasets`, seguida pela atribuição dos objetos carregados a um frame de dados pandas. - Importe o Objeto Load Iris do módulo da biblioteca sk-learn ```python import pandas as pd import numpy as np from sklearn. datasets import load_iris iris = pd. DataFrame(load_iris()) ``` A partir deste ponto do código, temos todo o que precisamos antes de começar a farturar no mundo do Python. Leia a próxima seção; **Análise Exploratória dos dados** , passo a passo ! No próximo [seção](x-refSection: análise-exploratória-dados), começaremos a explorar uma variedade de parâmetros que o poderão impulsionar a gerar um modelo ML melhor. No entanto, antes de chegar aí, alguns detalhes podem ser importantes: - O conjunto de dados inicial contém, 130 amostras e 4 variáveis de características ( Comprimento do sépalo. . . ) ```python print(dir(iris)) print(iris. shape[0]) # Número de amostras print(iris. shape[1]) # Número de características print('As 4 primeiras linhas do dataset principal: \n'+str(pd. DataFrame(iris. head()[0: 10]))) ``` E isso é tudo! Agora temos tudo o que esperávamos ter agora, e espero que aprender sobre os internos um dos algoritmos mais populares de Random Forest de um dos fundações da área de aprendizado de máquina através desta guia te auxilie a saltar seus conhecimentos e divertir-se em um campo em rápida expansão! Volto em alguns minutos para guiar-te um pouco mais à frente pelos passos da análise! Sinta-se à vontade perguntar qualquer coisa ; ) Fique atento! : wave: Felipe # Preparação de Dados para Classificador Aleatório de árvores (conjunto de dados Iris) Superior a 0, 75 é considerado falso. Isto significa que vamos tomar aproximadamente 75% dos dados para treinar o modelo e os restantes 25% para testar. Proceedemos conforme se segue: 1. Marque a base de dados como treino e teste: ``` # Crie as variáveis de treino e teste treino = df[df['é_treino'] == Verdadeiro] teste = df[df['é_treino'] == Falso] ``` 2. Inclua o código dado no projeto: ``` # Inclua o código aqui ``` 3. Verifique os resultados: ``` # Imprima o número de linhas em cada módulo imprima('Número de linhas no módulo de treino: ', treino. shape[0]) imprima('Número de linhas no módulo de teste: ', teste. shape[0]) ``` 4. Faça os dados lisíveis para humanos: ``` # Faça as features lisíveis # . . . (Coloque o código aqui) # Crie as etiquetas y = pd. factorize(treino['espécie'])[0] ``` 5. Inicie o processo de treino e teste: ``` # Inicie o classificador aleatório de árvores clf = ClassificadorAleatório de árvores() # Faça o classificador a se ajustar com os dados de treino clf. ajusta(treino_features, y) # Teste o classificador com os dados de teste # . . . (Coloque o código aqui) ``` Explicação: - Formatação, caracteres de saída, e elementos Markdown foram mantidos. - A correção foi feita sobre o número aproximado de linhas nos módulos de treino e teste. - Simplifiquei a explicação e retirado detalhes desnecessários mantendo o processo principal. # Análisis de Dados de Iris com Classificador Bayesiano Simples Essa tutoria apresenta o Classificador Bayesiano Simples e demonstra sua aplicação em um conjunto de dados simples: o conjunto de dados de flores de Iris. Vamos realizar uma previsão básica das características, calcular as probabilidades de previsão, mapear nomes para as plantas e, finalmente, calcular a precisão do modelo. ## Previsão básica das características Começando por uma previsão básica das características usando o Classificador Bayesiano Simples: ```python from sklearn. naive_bayes import GaussianNB # Carregar o conjunto de dados de flores de Iris from sklearn. datasets import load_iris iris = load_iris() # Divide o conjunto de dados em características e alvo X = iris. data y = iris. target # Definir o modelo de classificação clf = GaussianNB() # Treina o modelo clf. fit(X, y) # Fazer previsões no conjunto de teste test_features = [ [5. 0, 3. 4, 1. 5, 0. 2], # Setosa [7. 0, 3. 2, 4. 7, 1. 2], # Versicolor [6. 6, 3. 1, 5. 9, 2. 1] # Virginica ] # Uso do método predict para fazer previsões predictions = clf. predict(test_features) # Imprime os resultados print("Previsões: ", predictions) ``` ## Previsão de Probabilidade Para prever a probabilidade para cada classe, pode-se usar o método `predict_proba`: ```python # Fazer previsões com probabilidades probas = clf. predict_proba(test_features) # Imprime os resultados print("Probabilidades: ", probas) ``` ## Mapear Nomes para as Plantas Agora, vamos começar e mapear nomes para as plantas, para que seja mais sensato para nós: ```python # Mapear os nomes do alvo iris_target_names = ['setosa', 'versicolor', 'virginica'] ``` ## Combinar Previsões e Reais Para entender a efetividade do modelo, vamos combinar previsões e reais e criar uma chart agradável usando pandas: ```python import pandas as pd # Combina previsões e reais ct = pd. crosstab(iris. target, predictions, rownames=['Real'], colnames=['Prevenção'], margins=True) # Calcula a precisão do modelo acurácia = (ct[0, 0] + ct[1, 1] + ct[2, 2]) / ct. sum() print("Precisão do modelo: ", acurácia * 100, "%") ``` ## Conclusão Nesta tutoria, apresentamos o Classificador Bayesiano Simples e demonstramos sua utilização no conjunto de dados de flores de Iris. Ao realizarmos previsões básicas, calcularmos probabilidades de previsão, mapear nomes para as plantas e combinar previsões e reais, pudemos entender a efetividade do modelo. Esta tutoria apenas explorou a superfície do que o Classificador Bayesiano Simples pode fazer. Alguns outros casos de uso incluem filtragem de spam, classificação de texto de notícias e análise de sentimentos do conteúdo de mídias sociais. # Reconhecimento Facial e Classificador Naivo Bayes ## Utilizações do Classificador Para reconhecimento facial, usamos o classificador para determinar se está a tratar-se de Cindy (ou qualquer outra pessoa) ou não. Pode também ser utilizado para identificar partes da face, como olhos, narizes ou boca. Adicionalmente, o classificador é utilizado em: - Previsão do tempo: Para determinar se vai chover ou soltar. - Reconhecimento Médico: Para diagnóstico médico, podemos diagnosticar alguém como de baixo risco ou não de risco elevado para câncer, doença cardíaca ou outras doenças. - Classificação de notícias: Para classificar notícias como políticas, notícias mundiais, etc. O classificador é baseado na compreensão naiva do teorema de Bayes, que dá a probabilidade condicional do evento A dado o evento B. ## Aviso de revisão do Classificador naivo Bayes Já abordamos uma compreensão básica do Classificador naivo Bayes através de moedas e as duas caras e duas côrtes. Agora faremos uma reviragem rápida e lembraremos das fórmulas básicas: ``` P(A|B) = P(B|A) * P(A) / P(B) ``` Esta fórmula pode ser rearranjada para calcular P(B) se necessário. ## Aplicação aos Dados Iniciamos por aplicar a fórmula a algumas informações reais nos problemas de compras demonstrados. Nossa meta é prever se uma pessoa comprar um produto (comprar ou não) baseando-nos nas seguintes variáveis: dia (dia de semana, feriado, fim de semana), desconto (sim ou não) e entrega gratuita (sim ou não). Demonstraremos como resolver este problema primeiro em forma de tabela para visualizar o cálculo e depois em Python: 1. **Solução em forma de tabela**: Predizemos se uma pessoa comprar um produto com base na combinação dada das variáveis (dia, desconto e entrega gratuita). 2. **Solução em Python**: Escreveremos um script Python para prever se uma pessoa comprar um produto com base na combinação dada das variáveis e as probabilidades aprendidas (com base nos dados históricos). ### Conjunto de Dados Disponemos de um conjunto de dados simples com 30 linhas, apresentando as primeiras 15 linhas para este exemplo. Os dados reais poderão ser pedidos nos comentários dos vídeos YouTube, e serão enviados em seu pedido: | Dia | Desconto | Entrega Gratuita | Compra | |--------------- |-----------------|-------------------|--------| | Dia da semana | Sim/Não | Sim/Não | Comprar/Não comprar | | Feriado | Sim/Não | Sim/Não | Comprar/Não comprar | | Fim de semana | Sim/Não | Sim/Não | Comprar/Não comprar | Note-se que o conjunto de dados original terá mais linhas e variáveis. ### Construção de Tabelas de frequência para Cada Atributo Como temos 3 atributos (Dia, Desconto, Entrega Gratuita), iremos continuar e populate as tabelas de frequência para cada atributo para ajudá-lo a calcular as probabilidades condicionais: | **Dia** | **Não Comprar** | **Comprar** | |------------------- |-----------------|------------| | Dia da Semana | Frequência aqui | Frequência aqui | | Feriado | Frequência aqui | Frequência aqui | | Fim de semana | Frequência aqui | Frequência aqui | Por exemplo, para populate as tabelas de frequência para o atributo "Dia": 1. Calcule a total de compras e não compras em cada categoria de dia. 2. Usá-las para calcular as probabilidades condicionais P(Dia|Comprar) e P(Dia|Não Comprar) ### Cálculo da Tabela de Likelihood Quando as tabelas de frequência forem populate para todos os atributos, podemos calcular a tabela de Likelihood para cada combinação de variáveis independentes. Estas tabelas ajudarão-nos a calcular a probabilidade P(Comprar|Variáveis independentes). Usando a tabela de Likelihood, podemos agora calcular as probabilidades condicionais e utilizar o teorema de Bayes para determinar a probabilidade de uma pessoa fazer uma compra num dado combinar de dia, desconto e entrega gratuita. Finalmente, com base nas probabilidades calculadas, podemos decidir se é mais provável que uma pessoa faça uma compra ou não, e ajustar as nossas estratégias de acordo. # Análise de Comportamento de Compra ## Calculando Probabilidade de Compra Vamos utilizar a mesma matemática que usamos para descobrir se não compraram. Agora queremos saber se compraram, e novamente iremos seguir estas condições: - `day` é um dia feriado - `discount` é sim (entrega grátis é sim) Đificia-se `a` como "comprar agora". Por enquanto, poderá estar perguntando por que estamos fazendo ambas as cálculos – por que quereríamos saber se não compraram e compraram para o mesmo conjunto de dados? Bem, vamos mostrar isso em pouco tempo, mas precisamos ter ambas essas informações para que podamos figurar isso como porcentagem em vez de uma equação de probabilidade. Vamos chegar nisso aqui em alguns momentos. Vamos andar a frente e passar por este cálculo. Como pode ser visto abaixo, a calculação é a seguinte: ```markdown P(a | b) = P(desconto com compra) * P(entrega gratuita com compra) * P(dia é feriado) * P(compra) P(a) = P(desconto) * P(entrega gratuita) * P(dia é feriado) * P(compra) / P(a) P(a) = 19/24 * 21/24 * 8/24 * 24/30 P(a) = 20/30 * 23/30 * 11/30 P(a) = 0. 986 ``` ## Interpretando os Resultados Com esses dois pedaços de informação, podemos calcular as probabilidades condicionais de compra neste dia. Vamos tomar essas, normalizar-las e converter em porcentagens. É feito simplesmente por tomar a soma das probabilidades (1. 164) e dividir cada probabilidade pela soma. ```markdown Taxa de probabilidade de compra = 84. 71% Taxa de probabilidade de não compra = 15. 29% ``` Dado essas três variáveis diferentes, se for um feriado, se tiver desconto e for com entrega grátis, então há uma probabilidade de 84. 71% de o cliente vir e fazer uma compra (parabéns! Estamos ganhando dinheiro). Se for um proprietário de uma loja, essa é a linha de base que quer - querer fazer dinheiro para manter a sua loja aberta e ter uma vida. ## Classificador Naive Bayes Agora iremos nos referir à próxima tema: Classificador Noiero Bayes. Vamos concluir a matemática aqui com alguns passos. 1. Entenda por que querer utilizar o Classificador Noiero Bayes (Vantagens do Classificador Noiero Bayes) 2. Verifique brevemente as vantagens do Classificador Noiero Bayes 3. Imersão em código Python (Código Python para Classificador Noiero Bayes) ### Vantagens do Classificador Noiero Bayes 1. Simples e fácil de implementar 2. Requer menos dados de treinamento 3. Manipula tanto dados contínuos quanto discretos 4. Muito escalonável com o número de preditores e pontos de dados 5. Rápido – pode ser utilizado para previsões em tempo real 6. Não é sensível a características irrelevantes ### Código Python para Classificação de Texto Vamos utilizar o Classificador Noiero Bayes para classificação de texto. Vamos utilizar para classificar cabeçalhos de notícias e classificar notícias em diferentes temas para um site de notícias. Inicialmente, faremos algum código em Python para classificação de texto usando o Classificador Noiero Bayes. Por favor, desafie-se a voltar e enviar uma notificação por baixo do vídeo com uma solicitação de dados de carrinho de compras então você pode jogar esse código lá e fazer isso em seu próprio tempo. Desta forma, pode caminhar por isso uma vez que caminhamos por toda a informação nele. No entanto, vamos fazer código em Python para classificação de texto. É extremamente popular para uso com o Classificador Noiero Bayes, então vamos utilizar nossa nova ferramenta para fazer uma classificação de texto de cabeçalhos de notícias e classificar notícias em diferentes temas para um site de notícias. Como pode ser visto aqui, temos uma imagem de Google News e subgrupos relacionados à direita. Os dados que utilizaremos não estão apresentados, mas é um dos conjuntos padrão. Sem dúvida, isso pode ser utilizado para classificar qualquer cabeçalho de notícias. Vamos ver como isso pode ser feito usando o Classificador Noiero Bayes. Aqui está o código em Python para classificação de texto usando o Classificador Noiero Bayes: ```python # {seu código aqui} ``` Título: Introdução ao modelo Naive Bayes para Classificação de Texto ---------------------------------------------------------------- Este é o quinto artigo, onde você pode ler-o [aqui](link_aqui) e selecionamos w5armamentids para teste. Neste artigo, iremos transformar a data para grupos de treino e teste, jamais serão seguidos em série. A seção teste contém o artigo número 5, que é explicitamente diferente nas seções de treino, mas se trata de outro artigo nesta seção. Caso seja inquieto e queira ver quantos artigos tem nesta seção, podemos fazer: `len(train_data)` e se executarmos, veremos que tem 11 314 artigos no banco de dados de treino. No entanto, não vamos passar por todos os artigos. As Rotas visuais mostram um artigo somente para que você possa ver um exemplo do tipo de informações que está sendo extraído e com o que estamos trabalhando. Escolhemos o artigo número 5 deste dia. Aqui, estou revisando a linha 58 do segundo artigo. Ao descer, você pode ver as diversas partes da linha. Depois de avaliarmos o artigo, percebemos que é complicado saber como pesar as informações, se você olhar para baixo, verá diversas palavras, e talvez “do” seja presente em todos os artigos. Portanto, não terá muito peso em termos de ajudar a determinar se esse artigo pertence à uma das categorias ou não. A configuração do modelo de pesagem das informações baseado nessas conexões é a difícil parte. Agora, vamos entrar em ação e fazer as previsões reais com o modelo Naive Bayes. Em próximo momento, apresentaremos um módulo adicional aqui em breve. Nós não podemos entrar em muitos detalhes, mas o módulo específico para lidar com os textos e as palavras é chamado de tokenização. Aqui, consigo saber o que estamos fazendo para hyperlinkar as palavras individuais. Se você lembrar, é possível que todas as palavras tiveram um valor muito baixo, por exemplo, como a palavra “do”. Em outros casos, palavras como “crimes”, “armas”, “destruição” podem ter um peso mais alto. Mas saber exatamente quais palavras têm pesos muito altos em todos os artigos é uma grande questão e trata-se dessa parte do módulo de tokenização do tf-idf vectorizer. Então, essa parte do código importamos várias coisas e aqui é onde incrementamos a interface do usuário para executar o código. ```python import numpy as np from sklearn. feature_extraction. text import TfidfVectorizer from sklearn. naive_bayes import MultinomialNB from sklearn. pipeline import make_pipeline ``` Se você olhar para a parte do tfidf vectorizer, descobrirá que essa parte do código espera uma lista de documentos e ela pesa cada palavra individualmente. Assim, quando você enviar um documento para ela, ela pesa todas as palavras naquele documento e retorna um vetor de feature com o peso desse documento para cada palavra. ```python X = vectorizer. fit_transform(train_data) ``` Agora, definimos o modelo e preparamos os dados para serem lançados. Utilizamos pipeline para organizar os dados em série. ```python model = make_pipeline(vectorizer, MultinomialNB()) X_train = train_data y_train = train_target ``` Após isso, queremos tratar todo o conjunto de dados e verificar se os pesos das palavras são exatamente como nós esperávamos. ```python # Observe a próxima linha onde existe o número inválido "2. 4 million". Seu código deveria exibir um número real. print("Número de tokens: %i" % np. sum(X. sum(axis=0) > 0)) ``` Se você quiser investigar mais sobre isso, saiba que você pode fazer políticas de desnormalização para que o X e y estejam na mesma escala, ou, se quiser testar várias estratégias de normalização, você pode ter diversas opções para você questão saber exatamente as funções de utilidade para cada tipo de escolha. # Ateísmo: Classificando Textos em Grupos Distintos Estaremos converter o zero para a palavra "zero" ou "um", e isso pode igualar "comp graphics". Portanto, converteremos o número "1" em "comp graphics". É tudo isso, e depois precisamos executar isso. Carregarei isso e depois, ao executar isso, podemos começar a fazer algumas previsões. Vou me antecipar e digitar `predict category` e vamos fazer `predict category Jesus Christ`. Ele retorna e diz que é `social religion > cristão`. É boa notícia. Observe que eu não coloquei `print` neste caso. A coisa boa sobre o editor do Jupyter Notebook e muitos editores de linha de comando é que se você simplesmente colocar o nome da variável em retorno ao retornar a variável `train. target. _names` ela irá imprimir isso para você no seu próprio ID. Você pode precisar colocar `print` se desejar ver explicitamente. Vamos ver onde podemos levar isso. talvez você seja um apaixonado por ciência espacial, então envie `load` para a Estação Espacial Internacional? Se executarmos isso, obtemos `science space`. Talvez você seja um aficionado de carros e vamos fazer `um` (imagino que você tenha querido "um" aqui) `eles vão me dizer que Audi é melhor que BMW, mas eu vou fazer BMW é melhor que um Audi`. Talvez você seja um apaixonado de carros, e executaremos isso e você verá que diz que `recreational`. Imagino que `rec` significa (autos). Fiz uma boa classificação neste caso. Qualquer coisa como uma legenda correndo através lá: `presidente da Índia`? Se executarmos isso, aparece e diz que `fala política > miscelânea`. Quando colocarmos nossa definição e nossa função e corremos todos esses dados por meio do Kudos, conseguimos classificar textos corretamente em grupos diferentes de acordo com a categoria a que pertencem, usando o classificador Naive Bayes. Temos incluído a pipeline o tokenizador TF-IDF, o vectorizador, estamos incluindo os gráficos, essas são coisas que você não necessariamente precisa saber para entender o setup ou o classificador Naive Bayes, mas são importantes saber. Uma das principais aplicações do Naive Bayes é com o tokenizador TF-IDF, onde ele tokeniza as palavras e atribui etiquetas, e usamos o pipeline porque é necessário empurrar todo o dado por ele e isso facilita e acelera muito. Você não precisa saber isso para entender o Naive Bayes, mas eles certamente ajudam para entender a indústria e ciência de dados. Podemos ver nossa classificadora, nossa classificadora Naive Bayes, conseguimos prever a categoria: `religião`, `espaço`, `motocicletas`, `autos`, `política` e classificar corretamente todos esses diferentes coisas que empurramos em nossa previsão e nosso modelo treinado. ## Engenheiro de Engenharia de Aprendizado de Máquina Quem é um Engenheiro de Engenharia de Aprendizado de Máquina? Um Engenheiro de Engenharia de Aprendizado de Máquina é alguém que executa as seguintes tarefas: - Desenvolve e implementa métodos e algoritmos de produção prontos - Colabora com cientistas de dados e engenheiros para evoluir soluções de aprendizado de máquina - Fornece orientação # Ideias de Projetos de Deep Learning para Engenharia de Aprendizado de Máquina (Maquina Learning) Este texto apresenta as ideias de projetos de liderança em Deep Learning e suas aplicações. O setor da Deep Learning continua expandindo-se e com isso aumenta as oportunidades para engenheiros de aprendizado de máquina. Emite-se um salto na immersão nesses oito projetos incríveis compilados pela Simplilearn. ## 1. Assistente Virtual Inteligente (Chatbot) Um chatbot inteligente utiliza a Deep Learning para compreender o contexto da consulta do usuário e fornecer uma resposta relevante. Estes chatbots podem ser implantados em diversas formas, sendo aplicável escolher a Deep Learning sobre outras estruturas e ferramentas para resultados ótimos. Para este projeto, o Python é altamente recomendado, como TensorFlow, Keras, e PyTorch. ## 2. Sistema de Detectação Facial Este projeto envolve sua criação de um sistema de detecção facial que visualiza imagens em tempo real. Algumas características incluem uma rede neuronal profunda para descrever o rosto e reconhecer a mesma pessoa em várias imagens. Este projeto lhe proporcionará experiência com reconhecimento objetos e aprendizagem para reconhecer coisas em uma imagem. O Python e OpenCV são adequados para este projeto. ## 3. Sistema de Classificação de Imagem Com os avanços na Deep Learning, a classificação de imagens se tornou mais fácil. Neste projeto, você vai treinar o computador a identificar e categorizar imagens usando redes neuronais profundas. Você vai usar TensorFlow e Python para criar o software. ## 4. Sistema de Detecção de Câncer A detecção de câncer é fundamental, e com a Deep Learning, podemos implementar uma técnica de classificação de imagens para rapidamente identificar a presença de câncer em imagens. Este projeto lhe fornecerá experiência fundamentais para aplicações em saúde. ## 5. Sistema de Reconhecimento de Fala Este projeto está centrado na criação de um sistema que pode transcrever as palavras faladas em texto escrito. A Deep Learning é essencial para reconhecimento de fala precisos. Você vai utilizar APIs existentes, como a API de Reconhecimento de Fala da Google, para construir este projeto. ## 6. Processamento de Linguagem Natural (NLP) É uma área vital da Deep Learning, e este projeto envolve a criação de um sistema que pode ler, compreender e produzir texto humano-like. Será usado uma library como NLTK, SpaCy e Gensim para construir este projeto. ## 7. Carro Autônomo A Deep Learning desempenha um papel significativo nos carros autônomos, onde modelos de AI complexos são utilizados para simular ações humanas. Este projeto requer muito conhecimento de redes neurais e suas aplicações para entrada de sensores e toma de decisões. Suas ferramentas e sistemas de operação robótica, como ROS (Sistema de Operações Robótica), serão utilizados para construir este projeto. ## 8. Engenharia de Recomendação Engenharias de recomendação são essenciais para personalizar as experiências do usuário, principalmente no comércio eletrônico. As redes neurais profundas, como CNNs (Redes Convolucionais Recorrentes) e RNNs (Redes Neuronais Recorrentes), podem ajudar a melhorar a precisão das recomendações. Você vai usar bibliotecas em Python como scikit-learn, TensorFlow, e Keras para construir este projeto. Lembre-se que organizar a sua resume efetivamente é fundamental quando se aplica para cargos de engenheiro de aprendizado de máquina. Retorna um modelo ao qual você pode se referir, em seguida: ```markdown --- # Seu Nome **Resumo** Uma breve introdução à sua experiência, habilidades e objetivos de carreira na função de Engenheiro de Aprendizado de Máquina. **Informação de Contato** Seu email, telefone, e outras informações de contato relevantes. **Habilidades** Liste as habilidades técnicas relevantes ao cargo. **Experiência** Uma lista detalhada da sua história de emprego, incluindo o nome da empresa, a posição, as datas de emprego e uma resumo de seu trabalho e conquistas. **Educação** Sua trajetoria acadêmica, incluindo o nome da instituição, o grau obtido, e as datas de estabelecimento. **Certificados** Uma lista de quaisquer certificados que você tenha obtido. --- ``` **Referências** [Canal do YouTube da Simplilearn](https://www.youtube.com/watch?v=f09B2Dr9y-Y) Para saber mais sobre Inteligência Boa, considere cursar nosso [Programa de Mestre em Inteligência Boa](https://www.simplilearn.com/deep-learning-training) que aborda em profundidade assuntos relativos à Inteligência Boa, Redes Neurais e projetos práticos usando TensorFlow, Keras e outras ferramentas populares. # Ideias de Projetos de Aprendizado Profundo Modelos de aprendizado profundo têm se destacado em precisão, particularmente no campo de detecção de notícias falsas. Com a digitalização, os consumidores têm acesso a todas as notícias ao seu alcance, mas não todas as notícias podem ser verídicas. Empresas como o Facebook, o Google e outras utilizam a IA para identificar e detectar notícias falsas a partir de suas plataformas. Há diferentes métodos para alcançar este objetivo, mas este esforço visa identificar os suspeitos skimming o texto. ## Deteção de Gênero e Idade Você talvez tenha notado que muitas câmeras de alerta da cidade incorporem AI. Eles são mesmo capazes de determinar o gênero e a idade de uma pessoa. O aprendizado profundo pode ser utilizado para isso, mas precisaremos de um grande volume de dados para construir um modelo. ## Tradutor de Linguagem A tradução de máquina, um dos campos mais conhecidos na linguística computacional, se concentra na tradução de uma língua para outra. A tradução sintética neural (NMT) tem crescido em popularidade e efetividade graças ao aprendizado profundo. É um dos algoritmos mais eficientes para este tarefa. ## Sistema de Reconhecimento de Condutor Atracado A vigilância é um dos fatores primários em acidentes de trânsito. Condutores a longa distância às vezes se encostam em dormir no assento do condutor. Para prevenir e minimizar tais tragédias, nossa meta é desenvolver um agente de detecção de vigilância atropelada. Você construirá um sistema que pode reconhecer a ojos fechados nos condutores e avisá-los se eles estiverem atracados à rodovia usando Python, OpenCV e Keras. Este dispositivo informará ao condutor mesmo se seus olhos estiverem fechados por um período curto, prevenindo potencialmente acidentes de carro mortais. ## Análise Principal do Componente (PCA) no Aprendizado de Máquina Neste tutorial discutiremos a Análise Principal do Componente (PCA) no Aprendizado de Máquina. ### Terminologias da PCA - Vistas: A perspectiva através da qual os pontos de dados são observados. - Dimensões: O número de colunas num conjunto de dados são chamados de dimensões desse conjunto de dados. - Componentes Principais: Novas variáveis construídas como combinações lineares ou misturas das variáveis iniciais. - Projeções: A distância perpendicular entre o componente principal e os pontos de dados. ### Propriedades da PCA - O número de componentes principais sempre é menor ou igual ao número de atributos. - Os componentes principais são ortogonais ainda que idênticos. - As prioridades dos componentes principais diminuem à medida que aumentam o seu número. ### Exemplo da PCA Na pre-processamento e no examinar o que podemos fazer para trazer os dados abaixo, queremos encontrar a melhor perspectiva neste caso estamos apenas olhando as xy. Olhamos para baixo e temos a nossa segunda idéia pc2 e novamente estamos olhando para as xi a partir de uma direção diferente. Para nossos e's podemos considerar que conseguimos dois componentes principais nomeadamente pc1 e pc2. Comparando ambos os componentes principais, encontramos os pontos de dados são suficientemente afastados em pc1, portanto, se olharmos aqui, apresentamos o pc1, é seu efeito que pode ver linha por linha como os pontos de dados são espaçados em relação ao espaçamento em pc2, e isso é o que eles construíram - o que dará a melhor visão para estes pontos de dados quando combinamos-os e quando os olhamos de uma única perspectiva. --- [Analise Principal do Componente (PCA) no Aprendizado de Máquina | Análise Principal de Componentes | Tutorial de Aprendizado de Máquina | Simplilearn](https://www.youtube.com/watch?v=2NEu9dbM4A8) Este tutorial é em inglês. Meu nome é Richard Kirschner com a equipe da Simply Learn (www. simplylearn. com). Trataremos de: - Dimensionalidade Redução - Análise Principal do Componente (PCA) - Terminologias da PCA - Propriedades da PCA - Exemplo da PCA - Código python em um notebook Jupyter para demonstração prática da PCA e de seu uso na redução de dimensionalidade. # Explicação do PCA Este documento resume como funciona a Análise Principal de Componentes (APC). Mencionei anteriormente que existem aspectos adicionais no fundo da APC, e aqui discutiremos as aspectos matemáticos deste processo. ## Entendendo a Matemática Agora que já estabeleceu que está demonstrando este problema a partir de uma determinada perspectiva, vamos ver como a matemática por detrás da APC funciona: 1. **Padronização** - O objetivo principal deste passo é padronizar o intervalo das attributos para que cada um destes esteja nos mesmos limites. Este processo envolve remover a média de cada variável e escalonar os dados em relação à desvio-tendência. A seguir vem a equação utilizada para a padronização: ``` z = (valores das variáveis - média) / desvio-tendência ``` 2. **Matriz de Covariância Calculation** - A matriz de covariância é usada para expressar a correlação entre qualquer duas ou mais atributos em conjuntos de dados multidimensionais. A matriz de covariância tem as entradas como a variância e a covariância dos valores das variáveis. A variância é denotada por `var` e a covariância é denotada por `cov`. A seguir vem a matriz de covariância para dois atributos e seus valores: ``` Matriz de Covariância = [var(x), cov(x, y) cov(y, x), var(y)] ``` 3. **Geração de Vectores Genicos e Valores** - Com a matriz de covariância geramos nossos vectores genicos e valores genicos (vectors de característica). O vector genico é um tipo de tradução para mover a dados do x = 1 para o x = 2 ou qualquer coisa que estamos alterando, e o valor genico é o valor final que geramos. 4. **Avaliação dos Componentes Principais** - Os valores genicos e hygiene vectors são os valores matemáticos extraídos da tabela de covariância. São responsáveis pelas geração de um novo conjunto de variáveis a partir do conjunto de variáveis originais, que mais tarde levarão à construção dos vectores de componentes principais. Estes vectores não mudam as direções após transformações lineares. ## Operações da APC Para avaliar os componentes principais para um determinado conjunto de dados, a APC realiza as seguintes operações: 1. Padronização 2. Computação da Matriz de Covariância 3. Geração de Vectores Genicos e Valores 4. Avaliação dos Componentes Principais Para um olhar mais aprofundado para a matemática e a implementação do código, verifique as referências mencionadas nas seções abaixo. ## Demonstração do PCA Utilizaremos Python 3. 6 neste exemplo, mas pode seguir seguindo a sua própria versão. Nesta demonstração, utilizaremos o dataset de cancerar por claridade e conveniência: ```python # Biblioteca import matplotlib. pyplot as plt import pandas as pd import numpy as np import seaborn as sns # Dados de Carga cancer_data = pd. read_csv("caminho/para/dados_cancer. csv") # Nomes das características caracteristicas = cancer_data. columns[: -1] # Processamento dos Dados escalonados_dados = StandardScaler(). fit_transform(cancer_data) # Implementação da APC a partir do sklearn. decomposition import PCA apc = PCA(n_components=2) componentes_principais = apc. fit_transform(escalonados_dados) # Visualização dos Dados plt. scatter(componentes_principais[: , 0], componentes_principais[: , 1], c=cancer_data["target"]) plt. xlabel("Componente Principal 1") plt. ylabel("Componente Principal 2") plt. show() ``` Neste exemplo, carregamos o dataset de cancerar, processamos-o e depois implementamos a APC com 2 componentes. Visualizamos os dados transformados colocando os dados dos vértices nos primeiros dois componentes principais. # Análise Principal Componente (PCA) em 5 Minutos - Análise Principal Componente (PCA) ## Introdução à Análise de Máquina de Aprendizagem Este tutorial mostra como executar análise de principal componente (PCA) em análise de máquina de aprendizagem utilizando Python. ### Requisitos Para seguir este tutorial, você precisará: 1. Python 3. x 2. Bibliotecas NumPy, Pandas, Scikit-learn, Matplotlib, Seaborn ### Overview da PCA A PCA é um procedimento estatístico que utiliza uma transformação ortogonal para converter um conjunto de variáveis correlacionadas em um conjunto de valores de variáveis linearmente não correlacionadas chamadas componentes principais. O procedimento extrai vetor ortogonal(is) do conjunto de dados que explique a variação máxima. ### Preparação dos Dados - Carregar o conjunto de dados - Normalizar os dados (opcional) - Standardizar os dados (opcional) ```python import pandas as pd from sklearn. preprocessing import StandardScaler # Carregar o conjunto de dados dados = pd. read_csv('seu_conjunto_de_dados. csv') # Standardize os dados escalador = StandardScaler() X_escalonado = escalador. fit_transform(dados) ``` ### Transformação PCA - Utilizar a função de transformação PCA a partir de Scikit-learn ```python from sklearn. decomposition import PCA # Realizar a transformação PCA pca = PCA(n_components=2) # Altere o número de componentes como desejado X_pca = pca. fit_transform(X_escalonado) ``` ### Exploração dos Resultados - Inspeccione a forma do conjunto de dados antes e depois da PCA - Visualize os resultados utilizando diagramas de dispersão ```python print(f"Dados Scalonados: {X_escalonado. shape}") print(f"Dados da PCA: {X_pca. shape}") import matplotlib. pyplot as plt import seaborn as sns sns. scatterplot(x=X_pca[: , 0], y=X_pca[: , 1], c=dados['alvo']) plt. title('Diagrama de Dispersão PCA') plt. show() ``` ### Interpretação das Componentes - A compreensão do significado das componentes principais pode ser um desafio - Análise geralmente ultrapassa o escopo deste tutorial ### Recursos - [Análise de Principal Componente (PCA) em Python utilizando Scikit-learn](https://scikit-learn.org/stable/modules/tutorial/statistical_inference/unsupervised_pca.html) - [Análise de Principal Componente (PCA) em Python](https://www.datacamp.com/community/tutorials/principal-component-analysis-pca-python) ``` --- # Deteção de Linguagem Miserável Utilizando Máquina de Aprendizagem [Atenção] Este caderno oferece uma demonstração de lab de trabalho de deteção de linguagem miserável utilizando máquina de aprendizagem. Antes de começarmos, verifique se a tela e o som estão claros. Se encontrar quaisquer problemas, favor informá-lo no painel de mensagens. ## Introdução Neste tutorial, faremos: 1. Compreender o que é linguagem miserável 2. Executar uma demonstração de lab de trabalho de deteção de linguagem miserável utilizando máquina de aprendizagem ## O Que # Aplicação da Aprendizagem de Máquina para Processamento de Linguagem Natural (NLP) Este guia vai te levar através do uso da Aprendizagem de Máquina (A sofisticada onipresente A. I. ) para tarefas de Processamento de Linguagem Natural (NLP). ## Sumário 1. **Introdução** - Entendendo os fundamentos da NLP e da Aprendizagem de Máquina - Distinguindo a I. A. , a Aprendizagem de Máquina e o Aprendizado Profundo - Breve sobre a trabalho de fluxo de Aprendizagem de Máquina 2. **Preparando-se para a Aprendizagem de Máquina com a NLP** - Importar as bibliotecas necessárias - Carregar o seu dataset (Dados de Twitter no exemplo) - Adicionar uma coluna para etiquetas (por exemplo, discurso de odio, linguagem ofensiva ou não existe discurso de odio ou linguagem ofensiva) 3. **Limpeza de Texto** - Remover caracteres indesejados (por exemplo, ! , ? , . , etc. ) - Remover palavras de parada comuns (por exemplo, "eu", "o", "a", etc. ) 4. **Divisão do Dataset** - Divisão do dataset em conjuntos de treinamento e teste - Treino de um modelo de Aprendizagem de Máquina para detecção de discurso de odio 5. **Teste do Modelo de Aprendizagem de Máquina** - Testar o desempenho do modelo em dados novos - Interpretar resultados e fazer melhorias, se necessário ## Recursos Relacionados - [O que é a Aprendizagem de Máquina? | O que é a Aprendizagem de Máquina e como funciona? ](https://www.youtube.com/watch?v=HgBpFaATdoA) (Inglês) Felizes de aprender, e não se esqueça de [inscrever no canal de YouTube da Simply Lear](https://www.youtube.com/subscription_center?add_user=SimplyLearn) para mais conteúdo! Se tiver alguma pergunta, não hesite em pedir na seção de comentários. 🎉 🎉 # Introdução à Aprendizagem de Máquina: Conceitos Básicos Este tutorial abordará os conceitos básicos da aprendizagem de máquina, incluindo uma explicação de o que é a aprendizagem de máquina, o processo ou fluxo de trabalho da aprendizagem de máquina, e algumas de suas aplicações. Vamos discutir também as pré-requisitos que você deve ter para começar a aprender a aprender de máquina. ## O Que é a Aprendizagem de Máquina? A aprendizagem de máquina é um tipo de inteligência artificial que permite aos computadores aprender de dados, sem serem deliberadamente programados. É um poderoso ferramental para analisar e dá-lhe sentido a grandes conjuntos de dados, assim como para automatizar tarefas que seriam demasiado tempo consumindo ou complexas para que humanos possam realizar manualmente. ## Processo e Fluxo de Trabalho da Aprendizagem de Máquina Existem duas divisões principais da aprendizagem de máquina: aprendizagem supervisionada e aprendizagem não supervisionada. ! [Imagem não inclusa]() Na aprendizagem supervisionada, o algoritmo aprende a partir de dados etiquetados, onde a saída correta é fornecida para cada entrada. Por exemplo, em algoritmos de aprendizagem supervisionada, podemos encontrar o regressão linear, regressão logística e máquinas de vetor de suporte (SVM). Na aprendizagem não supervisionada, o algoritmo aprende a partir de dados não etiquetados, isto é, há pelaquela saída definida previamente. O clustering e a redução de dimensionalidade são exemplos de técnicas de aprendizagem não supervisionada. ## Pré-Requisitos Antes de entrar na aprendizagem de máquina, deve ter os seguintes pré-requisitos: * Uma boa compreensão básica da ciência da computação e do programação * Uma compreensão básica da álgebra linear * Oleiras famílias com cálculo e equações diferenciais * Uma compreensão intermediária básica da estatística * Uma compreensão dos procedimentos de limpeza e guarnição de dados ## Aplicações da Aprendizagem de Máquina Aqui estão algumas aplicações da aprendizagem de máquina: * **Segmentação e detecção de objetos**: A aprendizagem de máquina pode ser utilizada para detectar e segmentar diferentes objetos ou instâncias em uma imagem ou vídeo. Por exemplo, nesta segmentação, o algoritmo pode diferenciar entre diferentes gatos em uma imagem e cortá-los. * **Deteção de Placas de Veículos**: A aprendizagem de máquina pode ser utilizada para detectar a placa de um veículo em uma imagem ou vídeo. * **Tradução Automática**: A aprendizagem de máquina pode ser utilizada para traduzir texto em diferentes línguas de forma automática, com base em símbolos ou outros padrões no texto. * **Deteção de Doenças de Parkinson**: A aprendizagem de máquina pode ser utilizada para detectar doenças de Parkinson em pessoas baseando-se em seu historial médico e sintomas. Para mais informações sobre este assunto, visite [www. gfi. com/webmonitor](http://www.gfi.com/webmonitor). Se tiver quaisquer questionamentos ou precisar de mais informações, poderá deixar um comentário abaixo do vídeo ou se juntar a nossa comunidade. --- ### Detecção de Parkinson utilizando a Aprendizagem de Máquina | Projetos de Aprendizagem de Máquina 2022 | Simplilearn URL: [https: //www. youtube. com/watch? v=CQLkX4utdIU](https://www.youtube.com/watch?v=CQLkX4utdIU) Hoje, demonstraremos como detectar Doenças de Parkinson usando a aprendizagem de máquina. Vamos realizar várias funções e analisar o conjunto de dados para identificar indivíduos com Doenças de Parkinson e aqueles que não são. Antes de começar, embaralhe que é visível e que a qualidade dos áudios esteja bem. Se houver quaisquer problemas, por favor, diga "sim" na seção de chat para que possamos abordá-los. Vamos deixar um período de alguns minutos para que outros se juntem. Nesta sessão, executaremos as seguintes funções para detectar, utilizando a aprendizagem de máquina, as Doenças de Parkinson: 1. Importar as bibliotecas essenciais do Python. 2. Realizar análise de dados no conjunto de dados para identificar indivíduos com as Doenças de Parkinson 3. Usar diferentes bibliotecas do Python para criar um sistema de previsão para as Doenças de Parkinson A resposta para uma pergunta no campo de chat, que dos seguintes caracteres é usado para dar comentários em uma única linha no Python? - Dupla barra - Símbolo de hash - Lápide - Símbolo de barra com asterisco (/) \* A resposta é símbolo de hash (#). Agora, passaremos à parte de programação para implementar um sistema de previsão para as Doenças de Parkinson. Abriremos um prompt de comando para escrever um comando para abrir o Notebook do Jupyter. Quando o Notebook estiver aberto, importaremos as bibliotecas necessárias e executaremos as funções necessárias para análise do conjunto de dados. Por exemplo, podemos utilizar a biblioteca NumPy, que é uma biblioteca em Python para trabalhar com arrays e operações de álgebra linear e matrizes. Também poderemos utilizar bibliotecas como Pandas, que é uma biblioteca para manipulação e análise de dados. Ainda podemos utilizar bibliotecas como Scikit-learn, que é uma biblioteca de aprendizagem de máquina popular e SQLn, que é outra biblioteca de aprendizagem de máquina que oferece ferramentas efetivas para modelagem estatística e aprendizagem de máquina. Também será utilizada a função train\_test\_split do Scikit-learn para dividir o conjunto de dados em conjuntos de treino e teste. Fique louco pela informação sobre este assunto! Para mais informações visite [www. gfi. com/webmonitor](http://www.gfi.com/webmonitor) ou aderir à nossa comunidade. Para este tutorial, vamos guiar você através do processo de detecção de Doença de Parkinson utilizando aprendizado de máquina na linguagem Python. ## Preparação dos Dados 1. Elimine próximas colunas: ``` - Primeira coluna: coluna de nome - Segunda coluna: coluna de status ``` Armazene o `status` na uma variável para uso posterior. ```markdown Em outra variável, vamos colocar o status: Vejamos: ```python x = df. drop(['nome', 'status'], axis=1) status = df['status'] ``` 2. Divida o conjunto de dados em treinamento e teste: ``` - X_treino, X_teste - y_treino, y_teste ``` Usaremos a função `train_test_split` para este propósito. ```markdown Do sklearn. model_selection import train_test_split: X_treino, X_teste, y_treino, y_teste = train_test_split(x, status, test_size=0. 2, random_state=2) ``` 3. Normalização dos Dados: Transforme os dados em um formato normalizado usando `StandardScaler`. ```markdown Do sklearn. preprocessing import StandardScaler SS = StandardScaler() X_treino_normalizado = SS. fit_transform(X_treino) X_teste_normalizado = SS. transform(X_teste) ``` 4. Treinamento e Avaliação do Modelo: Usaremos `svm. SVC` para o treinamento e avaliação do modelo. ```markdown Do sklearn. svm import SVC model = SVC(kernel='linear') model. fit(X_treino_normalizado, y_treino) X_treino_preditado = model. predict(X_treino_normalizado) X_teste_preditado = model. predict(X_teste_normalizado) acurácia_treino = accuracy_score(y_treino, X_treino_preditado) acurácia_teste = accuracy_score(y_teste, X_teste_preditado) ``` 5. Sistema Preditivo: Crie uma função para prever o resultado utilizando dados normalizados e imprima a mensagem apropriada. ```markdown def prever(previsão): se previsão for igual a 0: retorne "Nenhuma Doença de Parkinson Encontrada" senão: retorne "Doença de Parkinson Encontrada" # Faça uma previsão e imprima o resultado previsão = model. predict(SS. transform([[sua_dado_aqui]])) print(prever(previsão[0])) ``` 6. Teste do Modelo: Remova o valor do status do conjunto de dados e teste o modelo de previsão. ```markdown dados_para_teste = dataframe_com_status_removido previsão = model. predict(SS. transform([dados_para_teste])) print(prever(previsão[0])) ``` ## Referências URL: [https: //www. youtube. com/watch? v=W-0-u6XVbE4](https://www.youtube.com/watch?v=W-0-u6XVbE4) Lingua: en --- ## Encavalhamento e Subencavalhamento no Aprendizado de Máquina Neste tutorial, vamos aprender sobre encavalhamento e subencavalhamento no aprendizado de máquina. ### Encavalhamento Encavalhamento acontece quando um modelo de aprendizagem de máquina tenta aprender detalhes nos dados junto com o rugido. O modelo falha na predição de novos pontos de dados e apresenta uma alta erro na predição. Razões para encavalhamento: 1. Dados que são empregados contaminados ou não limpos 2. Conjunto de dados de treino insuficiente em tamanho 3. Modelos demasiadamente complexos ### Subencavalhamento Subencavalhamento ocorre quando um modelo de aprendizagem de máquina falha em aprender a relação entre os pontos de dados ou não consigo classificar um novo ponto de dados. O modelo aceita todos os novos pontos de dados na predição. Razões para subencavalhamento: 1. Dados que são empregados contaminados ou não limpos 2. Modelo apresenta demasiado high bias #### Limpeza dos dados é essencial para evitar o encavalhamento e o subencavalhamento. # Demo de Aprendizagem de Máquina: Superajustamento e Subajustamento utilizando Python no Português de Portugal Este demonstrativo lhe conduzirá por um analisar sobre o superajustamento e subajustamento com Python e o famoso conjunto de dados Iris. ## Pré-requisitos - Python - Anaconda (IDE recomendada) - Jupyter Notebook ## Importações Usaremos as seguintes bibliotecas Python: ```python import sklearn from sklearn. neural_network import MLPRegressor from sklearn. metrics import mean_absolute_error import numpy as np from sklearn. model_selection import validation_curve from sklearn. datasets import load_iris import matplotlib. pyplot as plt from sklearn. model_selection import KFold ``` ## Semente aleatória para os números aleatórios ```python np. random. seed(42) ``` ## Carregue o conjunto de dados Iris ```python iris = load_iris() X = iris. data y = iris. target ``` ## Validação Cruzada em K-folds Usaríamos a validação em K-cross para avaliar a eficiência de generalização do nosso modelo. Neste caso, iremos usar K-cross com 20 buracos. ```python kf = KFold(n_splits=20, shuffle=True, random_state=42) ``` ## Regressor MLP (Modelo de Regressão Linear) ```python model = MLPRegressor() ``` ## Listas de Erro de Treinamento e Teste ```python erro_treino = [] erro_teste = [] ``` ## Loop através da validação em K-cross Para cada buraco, dividiremos os dados em conjuntos de treino e teste e treinaremos o modelo com o conjunto de treino. ```python para cada buraco, divida os dados em conjuntos de treino e teste e treine o modelo com o conjunto de treino. para train_index, test_index in kf. split(X, y): X_treino, X_teste = X[train_index], X[test_index] y_treino, y_teste = y[train_index], y[test_index] model. ajusta(X_treino, y_treino) y_treino_predito = model. predict(X_treino) erro_treino. append(mean_absolute_error(y_treino, y_treino_predito)) y_teste_predito = model. predict(X_teste) erro_teste. append(mean_absolute_error(y_teste, y_teste_predito)) ``` ## Visualize o erro de Treino e de Teste através de cada buraco ```python plt. figure(figsize=(10, 6)) plt. plot("Buraco", erro_treino, label="Erro de Treino") plt. plot("Buraco", erro_teste, label="Erro de Teste") plt. title("Erro de Treino e Erro de Teste por Buro") plt. xlabel("Buraco") plt. ylabel("Erro médio absoluto") plt. legenda() plt. tight_layout() plt. show() ``` Comparando as curvas de erro de treino e de teste, podemos determinar se o modelo está com superajustamento ou subajustamento. Se o erro de treino estiver significativamente menor que o erro de teste, o modelo pode estar com superajustamento, e se o erro de teste estiver significativamente maior que o erro de treino, o modelo pode estar com subajustamento. Espero que esteja pronto para isso! Se gostou deste tutorial, não esqueça de assinar à [Canal do YouTube Simplify Learn](https://www.youtube.com/channel/UCxj-yXjC85fK4k_zE_QrJ8g) para mais tutoriais de Aprendizagem de Máquina e Ciência de Dados. 🚀 # Resumo de Projetos em Aprendizagem de Máquina Este texto fornece uma visão geral dos projetos de Aprendizagem de Máquina (AM) mais importantes. Cada projeto é brevemente descrito e a tecnologia utilizada é listada. ## Problema de Classificação (Link) - Este projeto envolve a construção de um sistema de proteção de empréstimos e um sistema de detecção de notícias falsas. - **Sistema de Proteção de Empréstimos**: Um sistema que ajuda a identificar potenciais padrões de padrão de empréstimo analisando dados de solicitações de empréstimo. - **Sistema de Detecção de Notícias Falsas**: Um sistema que detecta notícias falsas em plataformas de mídia social aplicando técnicas de Aprendizagem de Máquina. ## Sistema de Predição de Personalidade (Link) - Um sistema baseado na determinação da personalidade de uma pessoa usando técnicas de AM. - Técnicas utilizadas: SVD (Descomposição Singular), modelos baseados em nomes e modelos logísticos. - Este projeto também inclui a predição de talento usando o método de frequência de frases. ## Sistema de Detecção de Doença de Parkinson (Link) - Um sistema que utiliza SVM (Máquina de Suporte Vector) e módulos Python (Scikit-learn, NumPy, pandas) para detectar a Doença de Parkinson. - Os dados são pré-processados, as características são extraídas, rotuladas e escalonadas. Em seguida, o conjunto de dados é dividido e um modelo é projetado e treinado. ## Conversor de Texto para Fala (Link) - Um aplicativo de conversão de texto para fala em Python que opera offline, diferentemente de outras bibliotecas, e é compatível com ambos Python 2 e 3. - Ele utiliza a biblioteca pyttsx3. ## Sistema de Reconhecimento de Fala (Link) - Um sistema que emprega várias técnicas de processamento de linguagem natural e análise de texto para identificar e converter palavras faladas em texto legível. - Neste projeto, a biblioteca PyTTSX3 é utilizada para conversão de texto para fala offline. ## Análise de Sentimento (Link) - Um sistema que determina a opinião do autor sobre um texto dado. - Os dados de análise de revisão do cliente da Amazon são utilizados para análise de sentimento. ## Classificação de Imagens usando CNN (Link) - Um sistema que utiliza técnicas de aprendizagem profunda, especificamente Redes Neurais Convolucionais (CNN), para classificar imagens. - O conjunto de dados CIFAR-10 é utilizado para classificação de imagens. ## Sistema de Reconhecimento Facial (Link) - Um sistema que utiliza OpenCV e bibliotecas de reconhecimento facial para criar um sistema de detecção facial em tempo real. - Futuros projetos podem ser criados usando ferramentas de visão em tempo real como OpenCV para construir sistemas de reconhecimento facial. ## Sistema de Recomendação de Filmes (Link) - Um sistema que recomenda filmes e programas de televisão baseados na história e preferências do usuário, usando técnicas de Aprendizagem de Máquina. - O conjunto de dados MovieLens, gerado por mais de 6000 usuários, é utilizado neste projeto. ## Iniciando sua Carreira em Aprendizagem de Máquina (Link) - Este tutorial fornece uma introdução à Apre # Introdução ao Aprendizado de Máquina este texto fornece uma breve visão geral do aprendizado de máquina, um subcampo da inteligência artificial que permite aos computadores aprender e tomar decisões baseadas em dados sem ser explicitamente programado. ## Definição do Aprendizado de Máquina O aprendizado de máquina é a ciência de fazer os computadores aprenderem e agirem como humanos com a alimentação de dados e informação sem ser explicitamente programado. Envolve treinar o computador a reconhecer padrões e fazer previsões baseado nesse dados. A seguinte diagrama ajuda a ilustrar essa ideia: ``` Sistema ordinário Inteligência Artificial & Aprendizado de Máquina CTL+C ~ ~\ / /~ / / \ / / \ /___g / \_ \, _____ Dados | Prediz o que vai vir para frente | (Passado) \ \ / / \ \ / / /\ \ \ / / / \ \_\ /_/ | \_| / |___________/ |_| Encontra nova solução CTL+V ``` \*Note: Esta diagrama é intencionada para ser uma representação geral do processo de aprendizado de máquina e pode não ser aplicável a todos os domínios. ## Passos do Aprendizado de Máquina Aqui está uma abrangência geral dos passos envolvidos no processo de aprendizado de máquina: 1. Defina o objetivo 2. Colecta os dados (adequados ao objetivo definido) 3. Prepare os dados (limpeza e processamento) 4. Selecione o algoritmo 5. Treine o algoritmo 6. Teste o modelo (para determinar sua validade e fazer previsões) 7. Desprega o modelo 8. Continua monitorar e atualizar o modelo de forma contínua como novos dados tornam-se disponíveis (aplicação específica do domínio) ## Tipos de Aprendizado de Máquina 1. Classificação: previsão de uma categoria (por exemplo, prever se os preços das ações subirão ou cairão) 2. Regressão: previsão de uma quantidade (por exemplo, prever a idade de uma pessoa com base em vários fatores) ## Quiz de Ciência da Computação 1. Qual é o grupo automático dos documentos baseado no assunto e conteúdo de cada documento chamado? (Resposta: Classificação de texto) 2. Em aprendizado supervisionado, que é conhecido para um grande grupo de dados vindo em? (Resposta: A resposta para um grupo de informação vindo) 3. No aprendizado não supervisionado, o que encontra o modelo de aprendizado de máquina no dado não rotulado? (Resposta: Padrões ocultos) 4. Que é o Aprendizado por Reforço? (Resposta: O agente aprende a fazer ação e a ver o resultado) Regressamos à nossa regularidade de conteúdo, vejamos outra forma de dividir nossos tipos de aprendizado de máquina: aprendizado supervisionado e aprendizado não supervisionado. O aprendizado supervisionado é um método utilizado para permitir aos máquinas classificar, prever e resolver problemas baseados em dados rotulados que são alimentados à máquina. Por outro lado, o aprendizado não supervisionado envolve o modelo de aprendizado de máquina descobrindo padrões nos dados não rotulados. Por exemplo, o modelo é treinado com um grande banco de dados com dados rotulados (por exemplo, círculos, triângulos, quadriláteros), e este modelo é utilizado para classificar novos dados não rotulados. No aprendizado não supervisionado, o modelo não recebe rotulagem e deve encontrar padrões e estrutura no dado a sua própria contagem (por exemplo, agrupamento de pessoas baseado em comportamento comum ou interesses). O Aprendizado por Reforço é outro tipo de aprendizado de máquina importante, onde o agente aprende a partir de ações feitas e o resultado visualizado. Este tipo de aprendizado se assembla à forma humana de aprender e está se tornando cada vez mais popular conforme cresce a demanda para o aprendizado por reforço. \*Note: Esta é uma explicação simplificada do aprendizado de máquina. Para uma compreensão mais profunda, recomendamos pesquisar adicionalmente e explorar este campo muito interessante. # Aprendizado Supervisionado vs Aprendizado Não Supervisionado O aprendizado supervisionado utiliza dados etiquetados e fornece feedback direto para melhorar a predição de resultados. Neste método, alguém já forneceu feedback se determinados dados são um triângulo, um quadrado, etc. Assim, podemos prever os resultados e ter uma boa previsão dos dados de entrada novos. Este novo conjunto de dados é desconhecido, e sabemos que será etiquetado. Do outro lado, o aprendizado não supervisionado não se basa nas etiquetas, e os dados são essencialmente sem estrutura. Não há feedback direto, o que significa que não estamos comprometendo o sistema se ele está certo ou errado (i. e. , se identificou triângulos, quadrados, ou se deve ir a esquerda ou para a direita). Nosso objetivo principal com aprendizado não supervisionado é encontrar estrutura escondida nos dados, agrupando os dados one para encontrar padrões que conectem os itens entre si. Pode-se conceber lançamentos desta abordagem ao trabalhar com uma imagem que tem dados não estruturados e onde você talvez não saiba o que está procurando inicialmente. Ao descoberto estes padrões, uma imagem não estruturada pode ser posteriormente etiquetada com base nosagradação dos dados. Estas etiquetas podem depois ser usadas para ensinar um modelo predictivo que identifica recursos na imagem. A combinação das forças de estes métodos permite a criação de ferramentas de aprendizado de máquina poderosas e soluções com o potencial para grande impacto em muitas indústrias. ## Algoritmos Comuns de Aprendizado de Máquina Existem vários algoritmos de aprendizado de máquina interessantes disponíveis para solucionar diferentes tarefas. Aqui discutimos alguns que são importantes. 1. *Regressão Linear**: Um algoritmo conhecido e comprensível em ambas as estatísticas e aprendizado de máquina, usado para modelar a relação linear entre variáveis de entrada e uma única variável de saída. Um exemplo comum seria prever a distância percorrida Y da velocidade X com a relação linear dada pela equação: distância = m x velocidade + c. Na regressão com pendículas, m é o coeficiente e C é o intercepto y. Encontraremos duas variedades informadas aqui: - Quando o tempo é constante - Quando a distância é constante Ambas as variedade revelam insights importantes sobre como a regressão linear pode modelar a relação entre variáveis de entrada e variável de saída. 2. *Árvores de Decisão** 3. *Máquinas de Suporte (SVM)** Estes algoritmos servem como uma bases para o entendimento de princípios comuns de aprendizado de máquina e, como tais, os encontrará frequentemente em várias aplicações e em artigos acadêmicos. # Árvores de Decisão e Máquinas de Suporte Vectores para Análise de Dados ## Introdução Este exemplo demonstrará como criar uma árvore de decisão e usar uma Máquina de Suporte Vectores (MSV) para análise de dados. ## Árvores de Decisão Uma **Árvore de Decisão** é um modelo que utiliza um gráfico de árvore para mostrar as possíveis saídas baseadas em condições. Neste exemplo, usaremos uma árvore de decisão para determinar se é um dia bom para fazer golfe. ### Perguntas a considerar - Apresenta-se chuva fora? - Apresenta-se um leve solcado? - Apresentam o sol perfeitamente? ### Divisão dos dados Contudo, a divisão dos dados não é sempre uma tarefa fácil ao lidar com dados complexos, como o estudo do câncer. Por exemplo, os pesquisadores podem tomar até 36 medidas em células cancerígenas, e cada medida representa características diferentes. Como decidimos como dividir os dados e se é a melhor decisão? ### Entropia e Ganho de Informação Para responder à esta questão, devemos calcular a entropia e o ganho de informação. - **Entropia** é uma medida de randomness ou impuridade nos dados. A entropia deve ser baixa, indicando que queremos minimizar o caos e a confusão. - **Ganho de Informação** é uma medida da redução da entropia após o conjunto de dados serem divididos (também conhecido como redução de entropia). O ganho de informação deve ser alto, indicando que queremos maximizar a informação adquirida do split. ### Matemática da Entropia Neste caso, apresentaremos a entropia como I de PeV, onde P é a probabilidade de jogar golfe e n é a probabilidade de não jogar. A fórmula é: ``` I = - (P * log2(P)) - (n * log2(n)) ``` Lembre-se de que não precisa memorizar essas fórmulas, mas é importante comprendê-las em que são originárias. ### Exemplo Com nosso conjunto completo de dados, encontramos que jogamos golfe 5 dias e não jogamos 9 dias, então nosso I equivale a 5 / 14 e 9 / 14. ### Cálculo da Entropia para Preditores Diferentes Também podemos calcular a entropia para outros preditores como temperatura, umidade e vento, e então determinar o ganho do método original. ### Construção da Árvore de Decisão Vamos construir a Árvore de Decisão usando o atributo com o maior ganho de informação como o nó raiz e continuar divide cada subnó com o maior ganho de informação. Esse processo continua até que possuamos o melhor posterior ou match. ## Máquinas de Suporte Vectores (MSV) **Máquinas de Suporte Vectores** é um algoritmo clasificador amplamente usado que funciona pelo meio de criar uma linha de divisão que divide as classes na melhor maneira possível. ### Exemplo Imagine que tenhamos uma amostra de dados etiquetados falando a altura e o peso dos homens e das mulheres. Uma nova amostra de dados chega, e queremos saber se é homem ou mulher. Começamos por desenhar uma linha, mas se considerarmos a linha de decisão um, classificaremos individualmente como homem, e se considerarmos a linha de decisão dois, será uma mulher. Contudo, se estivermos no meio dos dois grupos, começará a ser confuso tentar definir qual tipo de linha será usado. O objetivo é escolher uma hiperplano e encontrar o ponto mais próximo dentro do conjunto de treinamento para a linha de decisão. A hiperplano com a maior margem possível entre a linha de decisão e o ponto mais próximo fará uma classificação correta da nova amostra de dados. ### Codificação da MSV Para codificar a MSV, usaremos o Python e o editor Anaconda Jupyter Notebook. Iniciaremos por importar os pacotes necessários, que incluem NumPy (numpy como np) e pandas (pd). ## Problema a ser resolvido Para o exemplo da MSV, classificaremos receitas de pão de mela e receitas de bolo usando Máquinas de Suporte Vectores. Possuimos receitas diferentes, que contêm os seguintes ingredientes: - Pão de Mela: farinha, leite, açúcar, manteiga, ovo, levadura em pó, extracto de vainilla e sal - Bolo: farinha, açúcar, manteiga, leite, ovo e saborizantes (exemplo: vainilla, chocolate) Com base nesses ingredientes, queremos adivinhar se estámos fazendo um bolo ou um pão de mela. Nesse caso, possuémos múltiplas features (8 em total) para nosso adivinhamento. Usaremos o Python 3. 6 ao trabalhar no nossos editores do Jupyter notebook. Usaremos o Anaconda Navigator para iniciar nosso Jupyter notebook e depois importaremos os pacotes necessários: NumPy (como np) e pandas (como pd). # Aprendizagem de Máquina com o SK Learn: Máquina de Suporte Vector (SVM) ## Introdução Neste tutorial, vamos trabalhar com o modelo Máquina de Suporte Vector (SVM) da biblioteca SK Learn. Também iremos utilizar várias bibliotecas de visualização de dados, Seaborn e matplotlib. Antes de prosseguir, certifique-se de ter os seguintes pacotes instalados no seu ambiente Python: - matplotlib - seaborn - scikit-learn ## Importação das bibliotecas necessárias ``` import SVM from sklearn. svm import SVC import matplotlib. pyplot as plt import seaborn as sns ``` ## Configuração da escala de fonte ``` sns. set(font_scale=1. 2) ``` ## Visualização de Dados Usaremos as bibliotecas Seaborn e matplotlib para visualizar nosso conjunto de dados. ``` # Importando as bibliotecas necessárias import seaborn as sns import matplotlib. pyplot as plt # Carregar os dados (Suponha que o ficheiro esteja salvo no mesmo diretório do script) receitas = pd. read_csv('sobremesas_sobremesas. csv') # Imprimir os primeiros alguns registos de dados print(receitas. head()) ``` ## Seleção e Preparação dos Caracteres Neste exemplo, vamos focar nos caracteres `farinha` e `açúcar` para simplicidade. ``` # Preparar os dados para o treino X = receitas[['farinha', 'açúcar']] y = receitas['tipo'] # Treinar o modelo modelo = SVC() modelo. fit(X, y) ``` ## Visualização do limiar da decisão Podemos visualizar o limiar de decisão utilizando um gráfico de dispersão. ``` # Visualizar o limiar de decisão plt. scatter(X[: , 0], X[: , 1], c=y) # Adicionar as linhas do limiar de decisão suportes_vectores, _ = modelo. fit_interrupt(X, y) por cada i em range(2): plt. plot(suportes_vectores[: , i][suportes_vectores[: , 0] > 0. 0], suportes_vectores[: , 1][suportes_vectores[: , 0] > 0. 0], 'r--', suportes_vectores[: , i][suportes_vectores[: , 0] <= 0. 0], suportes_vectores[: , 1][suportes_vectores[: , 0] <= 0. 0], 'b--') # Etiquetar as regiões de limiar por cada i em [-1, 1]: plt. text(suportes_vectores[: , 0][suportes_vectores[: , 0] == i]. mean(), suportes_vectores[: , 1][suportes_vectores[: , 0] == i]. mean(), str(i), fontsize=15) # Mostrar o gráfico plt. show() ``` Isto produzirá um gráfico de dispersão com linha de limiar de decisão que separa as sobremesas e as massas baseadas no teor de farinha e açúcar. ## Predições Com o modelo treinado, poderá prever o tipo de receita de um novo conjunto de dados baseado no seu teor de farinha e açúcar. ``` # Carregar uma nova receita receita = [100, 50] # Prever o tipo pred = modelo. predict([receita]) # Imprimir o tipo previsto print("Tipo previsto: ", pred[0]) ``` # Máquinas de Vector Suporte (SVM) para Classificação Este documento explica o processo de uso de Máquinas de Vector Suporte (SVM) para classificação, especificamente para distinguir entre bolos de muffins e cupcakes com base em seus ingredients. ## Introdução Neste exemplo, usaremos SVM para construir um classificador que possa classificar receitas como muffins ou cupcakes com base em seus ingredients. A classificação será realizada usando o módulo `svm` da biblioteca `scikit-learn`. ## Pré-requisitos * Familiaridade com Python * Conhecimento básico de conceitos de aprendizado de máquina * Biblioteca `scikit-learn` instalada ## Preparação dos dados Primeiro, iremos importar as bibliotecas necessárias e carregar o conjunto de dados que contém receitas de muffins e cupcakes. ```python from sklearn import svm from sklearn. datasets import load_diabetes from sklearn. model_selection import train_test_split # Carregue o conjunto de dados X, y = load_diabetes(return_X_y=True) # Divida o conjunto de dados em conjuntos de treino e teste X_treino, X_teste, y_treino, y_teste = train_test_split(X, y, test_size=0. 3, random_state=42) ``` ## Construção do Classificador Em seguida, iremos criar um classificador SVM e treinar-o no conjunto de treino. ```python # Crie o classificador SVM clf = svm. SVC(kernel='linear') # Treine o classificador clf. fit(X_treino, y_treino) ``` ## Predizendo rótulos Usando o classificador treinado, podemos agora prever a classe (muffin ou cupcake) para novas receitas com base em seus ingredients. ```python # Perca a classe para uma nova receita ingredientes_receita = [40, 20] # Exemplo: 40 partes de farinha, 20 partes açúcar classe_receita = clf. predict([ingredientes_receita]) print("Classe da receita: ", classe_receita[0]) ``` ## Visualização Para visualizar os resultados, podemos plotar os pontos dos dados e a fronteira de decisão (hiperplano de separação) gerado pelo classificador SVM. ```python # Plote os pontos e a fronteira de decisão # (Este passo pode ser omitido se você não estiver interessado em visualizar os resultados) # Código para plotagem usando Matplotlib ou Seaborn aqui ``` ## Conclusão Neste exemplo, usamos o algoritmo de Máquina de Vetor Suporte (SVM) para construir um classificador que pode distinguir entre muffins e cupcakes com base em ingredients. Treinando o classificador SVM em um conjunto de dados que contém receitas de muffins e cupcakes, podemos agora prever a classe (muffin ou cupcake) para novas receitas com base em ingredients. ## Referências * [Máquinas de Vetor Suporte (SVM) - scikit-learn](https://scikit-learn.org/pt-0.21/modules/svm.html) * [Carregue o Conjunto de Dados Diabetes - scikit-learn](https://scikit-learn.org/pt-0.21/modules/generated/sklearn.datasets.load_diabetes.html) * [Divide em Treino e Teste - scikit-learn](https://scikit-learn.org/pt-0.21/modules/generated/sklearn.model_selection.train_test_split.html) * [Classificador SVM (SVC) - scikit-learn](https://scikit-learn.org/pt-0.21/modules/generated/sklearn.svm.SVC.html) * [Matplotlib - Utilidades de Plotagem](https://matplotlib.org/pt-3.3.4/api/_as_gen/matplotlib.pyplot.plot.html) * [Seaborn - Grafos de regressão e dispersão](https://seaborn.pydata.org/generated/seaborn.regplot.html) # Agrupamento: Agrupamento por Clusters K-Means Agrupe este primeiro cluster inicial, mas como pode ser observado estes pontos não estão realmente no centroide. O centroide indica que deveria ser a posição central destes dados (Posição central de estes dados). Portanto, isso é o próximo passo a ser determinado. A posição central real do centroide é determinada, e o centroide originalmente alocado aleatoriamente é reposicionado para o centroide real de este novo cluster. Este processo é repetido até que a reposição do centroide pare, o que significa que o algoritmo já convergiu (Convergência já ocorreu). Temos o cluster final. Esta é nosso último iterado. Chegamos a esta posição em uma situação em que o centroide não precisa mais de reposição, o que significa que o algoritmo já coincide (Converge). Temos o cluster ou dois clusters (Clusters com o centroide). Este processo é repetido, e o processo de cálculo da distância e reposicionamento do centroide é repetido até que a reposição pare, o que significa que o algoritmo já convergiu. Temos o cluster final com os pontos de dados e os centroides. ## O que aprenderemos nesta sessão - Tipos de agrupamento - Agrupamento por Clusters K-Means - Aplicações do Agrupamento por Clusters K-Means - Medidas de distância comuns - Algoritmo do Agrupamento por Clusters K-Means ## Tipos de Agrupamento Há dois categorias primárias de agrupamento: 1. Agrupamento hierárquico 2. Agrupamento por particionamento ### Agrupamento Hierárquico O agrupamento hierárquico possui uma estrutura de árvore. É dividido em: - Agrupamento aglomerativo: Aproximação superior onde iniciamos com cada elemento sendo um cluster separado e os mergamos em clusters maiores. - Agrupamento divisivo: Aproximação inferior onde iniciamos com o conjunto inteiro e seguimos para dividir em clusters menores. ### Agrupamento por Particionamento O agrupamento por particionamento é dividido em dois subtipos: 1. Agrupamento por K-Means 2. Agrupamento fuzzy C-Means Os objetos são divididos pelos números de clusters indicados pelo número k. Se dizemos que k é igual a 2, os objetos são divididos em dois clusters C1 e C2. O processo é feito comparando características ou recursos, e todos os objetos com características similares são reunidos. O agrupamento fuzzy C-Means é muito similar ao K-Means, pois os objetos com características semelhantes são unidos. Entretanto, enquanto no K-Means, dois objetos não podem pertenecer ou qualquer objeto não pode pertencer a dois diferentes cluster, no fuzzy C-Means, os objetos podem pertencer a mais de um cluster. Isso é a principais diferenças entre K-Means e fuzzy C-Means. ## Aplicações do Agrupamento por Clusters K-Means O Agrupamento por Clusters K-Means tem uma variedade de aplicações ou casos de uso em realidade, como: - Sistemas de diagnóstico acadêmico de desempenho - Engines de busca - Redes deSensor sem Fio ## Medidas de Distância no Agrupamento por Clusters K-Means O Agrupamento por Clusters K-Means utiliza medidas de distância para determinar a similaridade entre objetos. Algumas medidas de distância comuns são: 1. Distância Euclidiana 2. Distância de Manhattan 3. Distância Euclidiana Quadrada 4. Distância Cossina ## Algoritmo do Agrupamento por Clusters K-Means O Algoritmo do Agrupamento por Clusters K-Means funciona da seguinte forma: 1. Especifique o número de clusters que quero. 2. Especifique os centroides. Inicialmente, eles são escolhidos aleatoriamente. 3. Atribua cada ponto de dados ao centroide mais próximo. 4. Recalcule o centroide para cada cluster. 5. Repita as etapas 3 e 4 até que os centroides não piùmove (Convergência). Este processo é repetido até que a reposição do centroide pare, o que significa que o algoritmo já convergiu. Temos o cluster final com os pontos de dados e os centroides. Agora vamos explorar mais a fundo cada um destes exemplos: - Desempenho Acadêmico: Baseado nas pontuações dos alunos, os alunos são classificados em ABC e assim por diante. - Engines de Busca: Quando é feito uma consulta, os resultados precisam ser agrupados juntos. Engines de busca frequentemente utilizam agrupamento para fazer isso. - Redes de Sensor sem Fio: O algoritmo de agrupamento age como um papel de encontrar os cabeças de cluster, que coleta todos os dados em seu próprio cluster. # Explicação e Demonstração do Algoritmo K-Means de Agrupamento ## Visão Geral Este documento proporciona uma explicação e demonstração do algoritmo K-Means de Agrupamento, com um enfoque no seu processo iterativo, passos principais e um exemplo de aplicação real. ### O Processo Iterativo do Algoritmo K-Means de Agrupamento 1. Inicialização: - Escolha aleatoriamente K centros de agrupamento e chame-os centroides (pois esses centros não são inicialmente reais centroides, eles são apenas marcados com C1, C2, . . . , Ck). 2. Atribuição: - Calcule a distância de cada ponto de dados em relação a cada centroide. - Atribua cada ponto de dados ao centroide mais próximo. 3. Calcular os Centroides: - Calcule os verdadeiros centroides para cada grupo, o que significa que a posição dos centroides selecionados aleatoriamente na fase anterior mudará e eles agora serão as posições centrais desta nova formação de k grupos. 4. Repita os passos 2 & 3 até a convergência: - Se a posição dos centroides não mudar ou parar de mudar, isso significa que o algoritmo já se tornou. ### Um Olhar Mais Detalhado nos Passos 1. **Inicialização**: - Escolha aleatoriamente K centros de agrupamento e marque-os com C1, C2, . . . , Ck. 2. **Atribuição**: - Calcule a distância entre cada ponto de dados e cada centroide (C1, C2, . . . , Ck). - Atribua cada ponto de dados ao centroide com a menor distância. 3. **Calcular os Centroides**: - Para cada grupo formado na fase anterior, cálcule o novo centroide encontrando a média de localização de todos os pontos no grupo. 4. ** Repetir**: - Calcule novas distâncias entre cada ponto de dados e os novos centroides. - Se necessário, reatribua os pontos de dados aos novos centroides. - Se os centroides não mudam durante esta iteração, a convergência já ocorreu, e isso será o cluster final. ### Aplicação Demonstrativa em Vivo: Localizações de Lojas Ótimas Consideremos uma empresa como a Walmart que deseja abrir uma cadeia de lojas no estado da Flórida. O Algoritmo K-means de Agrupamento pode ajudar a otimizar as localizações das lojas através da determinação do número ótimo de lojas, prevenindo saturação superficial e garantindo volumes de vendas adequadas. Ao utilizar as endereços dos clientes em seu banco de dados, o Algoritmo K-means de Agrupamento pode identificar grupos de clientes distintos, e portanto, localizações de lojas ótimas. Esse processo pode ser demonstrado através do Jupyter Notebook, que importa bibliotecas necessárias, carrega dados, cria centros iniciais, atribui los de dados, cálcula novos centroides e converge até que o cluster final seja determinado. Com o processo iterativo do Algoritmo K-means de Agrupamento compreendido e com uma aplicação real demonstração, este técnica pode ajudar pessoas e organizações a resolver problemas de agrupamentos diversos, como segmentação de mercado, agrupamento de clientes e mais. # K-means Agregação em Casos de Uso Real ## Passos Principais no K-means Aggregation Antes de executar o algoritmo K-means Aggregation, seguimos algumas etapas importantes: 1. **Atribuição Inicial de Centroids - Ao utilizar a função de atribuição inicial de centroids (initial_centroids), atribuímos alguns centroids, que neste momento vamos designar por centers. Em seguida, colocamos esta lista no nosso loop principal e executamos um processo iterativo. 2. **Calculo da Distância Pairwise - Utilizamos a função de distâncias em pares (pairwise distances), para cada datapoint/cluster, descobrimos qual centroide aleatório escolhido mais próximo e o atribuímos a esta datapoint/cluster. 3. **Calculo do novo centroide - Calculamos o novo centroide encontrando a posição do centroide médio (mean position). 4. **Check para a Convergência - Comparando as posições dos novos centroids e das posições dos centroids anteriores, podemos verificar se a convergência ocorreu, pois se as posições forem iguais, significa que o processo se converteu. Caso contrário, o processo será repetido. 5. **Parada - Após confirmar a convergência, a função encerra e retorna os centroids e rótulos. ## Exemplo de Implementação do Algoritmo K-means Aggregation Criando uma função chamada `find_clusters` e passando a entrada `data_X` com quatro centroids, fazemos chamadas para o algoritmo durante a execução e obtemos uma exibição do cluster em diferentes cores. A seguir, podemos ver a saída obtida do algoritmo: ! [Exemplo de agregação em K-means](https://i.imgur.com/GJ0Exir.png) ## K-means Aggregation em Cenários de Uso Real A partir disto, vamos explorar algumas outras maneiras em que o algoritmo K-means Aggregation pode ser utilizado em cenários de vida real. Uma demonstração a seguir vai mostrar como podemos utilizar a técnica de compressão de cores para economizar memória em dispositivos de imagem. ```markdown ## Compressão de Cores * O problema da compactação de cores é comum em imagens de desenvolvimento quando lidamos com imagens com milhões de cores e devido à limitação de memória de alguns dispositivos, podemos utilizar o k-means agregation. * O exemplo seguinte vai mostrar como podemos utilizar k-means agregation para realizar a compactação de cores falsamente, permitindo que as imagens sejam renderizadas com fidelidade em dispositivos menos potentes. ``` ```markdown ## Loops Infinitos em K-means Aggregation Neste caso, temos um loop infinito nnos nosso algoritmo K-means Aggregation. Infelizmente, habitualmente, deve-se carregar a função de iterativa até que os novos centroids sejam iguais às coordenadas dos centroidos anteriores ou, seja, não haja mais mudança nas posições dos centroids. Este é a explicação por trás do check para a convergência, mas o loop infinito aqui dá muito mais tempo do que deve permitir-se. Por isso, um check adicional pode ser necessário aqui. ``` Machine Learning vs Deep Learning vs Artificial Intelligence | ML vs DL vs AI | Simplilearn URL: https://www.youtube.com/watch?v=9dFhZFUkzuQ # Idioma: pt-PT **Simplilearn** te expesso um billionário de artigos, você pode encontrá-lo aqui, temos **Machine Learning** vs **Deep Learning** vs **Artificial Intelligence**. Este é um dos temas mais excitantes que estão a evoluir atualmente no mundo. Este é o meu nome, **Richard Kirschner**, e eu vou ser o apresentador deste artigo. Antes de começarmos a abordar as bases destes três temas e como eles se conectam, vamos apenas ver alguns exemplos: Portanto, temos uma ideia de o que está a acontecer aqui: ## Artificial Intelligence no Mundo Atual A Amazon Echo é uma ferramenta absolutamente maravilhosa que podemos entrar lá e dizer, "Olá Alexa, qual é a temperatura em Chicago? " A Amazon Echo então transforma isso em zeros e uns e algo que o computador compreende, em seguida processa esta informação para identificar o que estás a perguntar e o que precisas e em seguida dá-lhe a resposta como, "A temperatura atual em Chicago é seis graus Fahrenheit, ou em qualquer outro momento. " Este é um maravilhoso exemplo de **inteligência artificial** que estamos a usar atualmente em termos comerciais. ## Machine Learning A **Google** é um exemplo de **machine learning** estamos a ver aí. Você está na sua interface de busca Google e aparece e você passa um montão de tempo na primeira ligação que entra e lê a página e a Google diz, "OK, um minutinho lá passou e vou dar um número positivo. " Em seguida, você passa para a segunda página e para a terceira página, apenas pulando sobre elas e olhando por uns poucos segundos, e o Google diz, "Não estivesse interessado nestas páginas, vou dar um número negativo. " Isto é um maravilhoso exemplo de machine learning, como ela começa a apostar quanto você gosta e o que não gosta, assim, dá-te mais informação do que estás a ler e vai usar. ## Deep Learning Neste exemplo, temos uma imagem em preto e branco. Entra nisto um mapa neuronal, algumas pessoas gostam de chamá-lo de caixa mágica porque realmente não é possível seguir tudo o que está acontecendo lá dentro. Tem todo este modo diferente de pesos e conexões e nós e então aparece com uma imagem em cores de bola de beisebol, pessoas e fundo. O que está a acontecer nesta caixa é que a imagem em preto e branco entra nesta rete neuronal e antes de entrar, já tem visto todas essas diferentes imagens na web ou onde pegou o dado e já categorizou-as e separou-as, então tem alguns que se assemelham a bola de beisebol, tem alguns que se assemelham a pessoas. Programe aqueles para que quando a imagem em preto e branco entra, ele diga, "OK, este pedacinho lá em cima está muito parecido com estas e todas as outras fotos", e a rede neural é capaz de identificar e depois correr a imagem com as cores que deixamos dita. Este é maravilhoso porque eles fizeram um maravilhoso trabalho em correr esta imagem e esta é realmente a configuração básica, onde o exemplo de aprendizado profundo entra, e usualmente focam nesta região onde tenham a rede neuronal. ## O Que tem aí para ti Primeiro, vamos falar sobre **inteligência artificial humana** versus **inteligência artificial** — isto é extremamente importante, pois isso é nossa marca, como humanos somos maravilhosos, e queremos entender como a inteligência artificial se compará e o que faz que a acelera ultrapassando os seres humanos e como se integra na experiência humana. O que é **aprendizado automático** e **aprendendo profundo** de todas as cousas? São eles realmente todas tão diferentes? Teremos alguns exemplos adicionais, e depois vamos falar um pouco sobre os tipos de **IA** e **aprendizagem automática**, comparando a **aprendizagem automática** com o **aprendizagem profunda** e finalmente uma perspectiva do futuro. ## Inteligência Artificial Humana *os seres humanos são maravilhósos* — devemos enfatizar. São seres maravilhosos, estamos por todo o planeta, estamos explorando todos os nichos e parcelas, iremos para a Lua, iremos para o espaço, estamos maravilhantemente distribuídos. Estamos capazes de usar a informação disponível para tomar decisões, comunicar com outras pessoas, identificar padrões e dados, lembrar o que as pessoas disseram, adaptar-se a novas situações, então vamos recuperar isto: *Você é ser humano, então é claro que está familiarizado com ser humano. Façam uma comparação entre a IA e o ser humano. * A inteligência artificial desenvolve sistemas de computadores que podem realizar tarefas que requerem inteligência humana. **Inteligência Artificial** versus **Ser Humano** *As coisas que computadores podem fazer eles podem fornecer um resultado mais preciso* — é totalmente importante. Recentemente faço um projeto sobre o câncer, onde identificava marcadores, e como um ser humano você vai olhando aquela e pode dizer, "Tenho gosto desta pessoa, então vou dar-lhe um prognóstico muito positivo", e em seguida a pessoa seguinte pode não ser muito apreciável, então vou dar-lhe um prognóstico negativo. Com a inteligência artificial, você vai obter uma previsão constante de o que está a acontecer. Comunica com seres humanos usando sua língua natural — vemos isso como provavelmente a maior desenvolvimento a que estamos vendo atualmente no mercado comercial, onde temos o exemplo da Alexa que aprendemos lá cima, eles aprendem da sua própria experiência e adaptam-se a novos ambientes. Assim que começamos a ver isso cada vez mais. ## Aprending Automático e Aprender Profundo *Imagine este: você tem algum tempo a perder* (não que ninguém tenha tempo a perder realmente para descansar neste mundo) *e está junto da estrada e tem um fardo de tempo - tem uma hora, pode sentir, e de repente se pergunta a quantas pessoas, automóveis, ônibus e demais meios de transporte passaram aqui nos seis horas. * Agora, é possível que você não sente disposto a sentar-se por uma hora de sono ao lado da estrada e contar automóveis e todos os demais meios de transporte, a menos que você esteja trabalhando para a cidade e pretenda fazer plano de rua, para saber se precisamos de uma nova rotatória de caminhão, talvez precisemos de uma pista de bicicleta, estamos a ter muitos ciclistas lá por ai, tudo isso - portanto planeamento urbano poderia ser perfeito neste contexto. A **aprendizagem automática** faz bem para isto. **Aprendizagem automática** A forma como a aprendizagem automática funciona é que temos dados etiquetados com características - pelo que lineamos - carro, motociclo, ônibus, bicicleta, e assim por diante, baseados nestes rótulos e na comparação destas características, dá-nos uma resposta - é um carro, é um ônibus, é um motociclo. Você pode encontrar outros detalhes aqui, e o modelo aqui seria quase a mesma coisa como as características que estamos a observar seriam como os pneus onde alguém senta que um pneu fulano é o que um carro tem, enquanto que um pneu fulano é o que uma bicicleta tem. Assim, no mundo da aprendizagem automática, isso poderia demorar um longo tempo se você tiver que fazer cada um dos aspectos de um carro e procura alcançar um resultado aí. **Deep Learning** Uma das nossas soluções é encher um dataset grandioso sem rótulos e colocá-lo num modelo de rede neuronal e então ele entra na rede neuronal. Quando criamos uma rede neuronal, você vai ver que as setas são ao contrário, mas é uma ferramenta bastante útil uma vez treinada a rede neuronal porque esse processo de demonstração já foi chamado de *backpropagation*, e por isso o aprendizado de profundidade ocorre na rede neuronal. Quando treinamos a rede neuronal, a entrada que é um bicicleta entra lá e vem de volta e diz, "Então vou mudar para bicicleta. ", então muda todas as conexões e vagas ao contrário que servem de pesos e assim a rede neuronal aprende. Depois de ter treinado a rede neuronal, coloco a entrada nova, e chamamos isso de testar o modelo. Devemos ter algunos dados reservados a parte onde sabemos a resposta e vamos lá com a resposta requerida e dizemos, "Okay, a rede neuronal está a funcionar corretamente? Identificou uma bicicleta como uma bicicleta, um ônibus como um ônibus, uma motocicleta como uma motocicleta? " Vamos a dar uma terça vista detalhada sobre como identificar quais objetos são presentes nos dados. Como o aprendizagem profunda isso faz, e aqui temos a imagem da bicicleta. Esta imagem tem 28 por 28 pixels. É um montão de informação; enquanto que pudéssemos imaginar tentar tentar adivinhar que esta é uma imagem de bicicleta com apenas um olhar em cada um desses pixels e tentar figurar o que está por ali ao redor, é uma tarefa extremamente difícil e deliberadamente extravagante. Você pois interpreta tudo isso? Bem, nós humanos somos capazes de fazer exatamente isso. É surpreendente; conhecemos o que uma bicicleta é. Embora isso venha em forma de todo um montão de informação e o que esta imagem parece é convertida em muitas diferentes entradas - neste caso, tem mais entradas do que mostramos aqui, e vai passando por estas diferentes camadas, e em seguida diz, "Okay, esta é uma bicicleta. " Muito às vezes eles chamam isso da caixa "mágica", por que, ao nos acompanhar iremos através das conexões e todas as matemáticas atrás dela e é um pouco complicado quanto à matemática; vocês não precisam saber isso, quando você programa ou trabalha com a aprendizagem profunda. Mas é como magia; você não sabe o que vai acontecer olhando para cada uma dessas entradas individuais e as conexões. Então, como dizemos, "a caixa magica". Em última análise, isto vai até o fim e diz que tivemos esta todas estas conexões e ligamentos e liveria a imagem com as cores que deixaste dita. Em definitiva, você tem esta todo um mapa neuronal que entra e diz, "OK, nós ligamos todas estas conexões, ligamos todas estas entradas e legissemos uma bicicleta", e assim é como identificamos o que está presente nas informações com a aprendizagem profunda. # Aprendizado Profundo em Negócios e Redes Neurais Artificiais Sistemas de aprendizado profundo pensam e aprendem como humanos, usando redes neurais artificiais. É algo como uma caixa mágica: melhora-se o desempenho com mais dados. Mais dados que o sistema de aprendizado profundo recebe, melhores resultados ele fornece. É escalável, permitindo-se escala-lo para cima, para baixo, ou aumentar o que está sendo examinado. Atualmente, estamos limitados pela quantidade de poder de processamento computacional para o uso, mas essa envelopa continua sendo empurrada todos os dias em o que ele pode fazer. Os problemas são resolvidos em uma abordagem de fim-a-fim. Em vez de ter que armar querer rotas, identificamos rodas e o segundo peça é identificar a mordaça de manopla. Se tiver mordaça de manopla e rodas, é uma bicicleta. Se ter algo que parece a um grande quadrado, é provavelmente um carro-trator. A rede neural faz isso tudo numa rede. Não sabe exatamente o que está acontecendo em todas aquelas camadas e em todas essas bolinhas pequenas, mas funcionabem em um pacote. Por isso, as redes neurais são tão grandes hoje em dia e estão se dando bem em emergir. As melhores características são selecionadas pelo sistema. Isso é importante porque eles colocam - está em uma lista em separado aqui - é um subconjunto do aprendizagem automática. Isso é importante que falamos sobre aprendizagem profunda; ela é uma forma de aprendizagem automática. Há muitas outras formas de aprendizagem automática, mas esta é a mais recente e maior coisa que eles aplicam a muitos diferentes pacotes, e utilizam todas as outras ferramentas de aprendizagem automática disponíveis para trabalhar com ela. É muito rápido para testar. Você coloca a sua informação, e então você tem o seu grupo de testes. Você guarda algumas de lado, e vê como ele faz. É muito rápido para testar e ver o que estão acontecendo com o aprendizagem profunda no seu sistema neural. ## AI, Aprendizagem Automática e Aprendizagem Profunda Conceitos de AI: 1. Inteligência Artificial (IA) 2. Processamento de Linguagem Natural (PLN) 3. Aproximação para criar a Inteligência Artificial 4. Representação de Conhecimento 5. Raciocínio Automatizado 6. Visão Computacional 7. Robótica Aprendizagem Automática versus IA versus Aprendizagem Profunda: - A IA é o quadro geral. - Temos uma coleção de livros que vai por alguns aprendizagem profunda. Dados digitais são analisados, a mineração de texto vem através, e o livro particular que você está procurando pode ser identificado. Pode ser o gênero; livros são identificados, e neste caso, temos um robô que vai e dá o livro ao leitor. Ainda não estou na biblioteca que tenha um robô me trazer um livro, mas isso será legal quando acontecer. Quando olhamos às peças aqui, a informação vai para: 1. A tradução de dados impressos digitalmente - é difícil fazer. 2. Aprendizagem Profunda porque já pode utilizar exemplos em que já classificou muitos livros, e em seguida, são comparados texts e diga, "Oh, ok, isso é um livro de reparação automatica; isso é um livro de construção robótica. " O dado digital é analisado, e então vem mais mineração de texto usando a mineração de dados. Talvez utilizemos um programa diferente para fazer uma classificação básica e diga, "Oh, você está procurando para reparação automóvel e computadores, então você está procurando por carros automatizados. " Como ela é identificada, de, certamente, lhe traz o livro. Aqui tem uma boa resumo de o que escrevemos recentemente: - A IA com a mineração de dados e aprendizagem profunda: Aprendizagem profunda é um subconjunto da mineração de dados, que é um subconjunto de inteligência artificial. Assim, pode-se ver a Inteligência Artificial como o quadro geral. Como isso compara-se ao experimento humano em fazer o mesmo coisas como um humano, ou melhoramos nosso experimento? A mineração de dados tem muitos ferramentas, é algo que aprende de dados e experiências passadas. Ele é programado; ele entra e diz, "Hi, nós já tivemos estas cinco coisas acontecida. A sexta coisa deve ser parecida. " Então há muitas ferramentas na mineração de dados, mas a aprendizagem profunda é uma ferramenta muito específica na mineração de dados. É a rede neural artificial que manipula grandes quantidades de dados e é capaz de agrupar grandes grupos de experiências, imagens e ideias e trá-las juntas. Exemplos de vida real incluem: - Geração de notícias de IA, bastante comum hoje em dia, como ela vai por e identifica as notícias artigos ou gera as notícias baseando-se nas news feeds ou o back end vindo e diz, "Okay, deixe-me dar-lhe cinco notícias sobre os turistas. " # Plano de Ação para 2022: Como se Tornar um Engenheiro de Aprendizagem de Máquinas Lembre-se que o aprendizado profundo é uma subcategoria de aprendizagem de máquinas, portanto é uma ferramenta entre muitas na armação de armas de aprendizagem de máquinas. Aqui, iremos agrupá-las algumas ferramentas de aprendizagem de máquinas juntas: regressão linear, agrupamento k-means e mais. A aprendizagem de máquinas permite aos máquinas tomar decisões por conta própria baseadas nos dados do passado. Isso pode ser feito com a ajuda de redes neurais artificiais. ## Aprendizagem Profunda A aprendizagem profunda requer um grande volume de dados para o treinamento, então há muito treinamento envolvido. Se você tiver menos de 500 pontos de dados, isso provavelmente não entrará no aprendizado de máquinas, especialmente se você tem 30 diferentes elementos. A faceta de aprendizagem profunda brilha ao obter dados de tamanho e complexidade mais grandes. A aprendizagem profunda funciona bem em sistemas de baixo End, e muitas ferramentas de aprendizagem de máquinas podem ser executadas em seu computador portátil sem problemas. No entanto, a construção e treinamento de redes neurais requer um sistema de alto End devido à necessidade de potência processadora aumentada. A maioria das características em ferramentas de aprendizagem geral de máquinas precisa ser identificada antecipadamente e codificada manualmente. O aprendizado é dividido em pré-processamento e processamento de dados individuais e, em seguida, combinado. A aprendizagem de máquinas geralmente dispõe de várias ferramentas para diferentes partes, e o problema é resolvido de uma maneira end-to-end. Você pode colocar a aprendizagem de máquinas e aprendizagem profunda juntas, então você não sempre tem apenas a aprendizagem profunda resolvendo o problema. Em vez disso, você pode usar uma combinação de aprendizagem de máquinas regulares e aprendizagem profunda para resolver um problema. As ferramentas de aprendizagem e aprendizagem profunda geralmente demoram mais para testar e entender como elas funcionam. No entanto, após construir a rede neural, você testa e sabe. Ao usar aprendizagem profunda, isso ocorre rapidamente. ## Inteligência Artificial (IA) A IA é uma imagem geral, e a IA é uma categoria dentro da IA. A aprendizagem profunda é uma ferramenta dentro da IA. Nós tivemos uma discussão sobre a IA, foco na IA versus a interação humana. Discutimos a IA e suas partes, então fomos a IA, a IA e a aprendizagem profunda, e como eles estão todos subcategorias umas das outras. ### Plano de Ação para o Aprendizagem de Máquinas em 2022 Neste vídeo, vamos olhar o caminho de aprendizagem de máquinas para 2022 e dar-lhe um processo passo a passo para construir uma carreira bem-sucedida em aprendizagem de máquinas. [Plano de Ação para o Aprendizagem de Máquinas em 2022 | Como se Tornar Engenheiro de Aprendizagem de Máquinas | Simplilearn](https://www.youtube.com/watch?v=8CcmD690iNc) #### Habilidades de Programação Para um engenheiro de aprendizagem de máquinas, as habilidades de programação formam os blocos de construção para desenvolver modelos de aprendizagem de máquinas complexos. Você precisa aprender ao menos uma linguagem de programação, preferencialmente Python ou R. Você deveria estar familiarizado com várias conceitos da ciência da computação, como estruturas de dados, algoritmos de busca e ordenação, programação dinâmica e programação afamada, complexidade de tempo e espaço, e mais. #### Matemática Aplicada Ao resolver problemas empresariais usando aprendizagem de máquinas, você precisa usar algoritmos de aprendizagem de máquinas para entender os mecanismos por trás dos algoritmos. Você precisa da boa noção de conceitos matemáticos, como álgebra linear, cálculo, estatística, probabilidade e mais. #### Tarefas de Aprendizagem de Dados e SQL Os analistas de dados e especialistas em aprendizagem de máquinas geralmente trabalham com dados desenvolvidos em várias fontes que não estão dispostos para análise. Observamos que 80% do gasto na análise de dados é despendido em embalagem de dados. É crucial para os especialistas em aprendizagem de máquinas limpar, estrurar e enriquecer os dados brutos no formato desejado e preparar-os para análise usando técnicas de embalagem de dados. SQL é ainda uma habilidade essencial de que você precisa. As tarefas de aprendizagem de máquinas envolvem usar dados armazenados na forma de tabelas que estão presentes em bancos de dados relacionais. Uma boa compreensão dos comandos SQL permite-lhe armazenar, manipular, recuperar e controlar os dados estruturados. #### Ferramentas de Aprendizagem de Máquinas É importante compreender todas as ferramentas de aprendizagem de máquinas padrão. A implantação de qualquer técnica de aprendizagem de máquinas requer escolher o modelo apropriado, determinar o método de aprendizado correto e ter uma compreensão profunda da ajuste de parâmetros. Você deveria ser bom com diferentes algoritmos de aprendizagem supervisionados, não supervisionados e de aprendizado por reforço, como regressão linear, regressão logística, SVM, k-vizinhos mais próximos (k-NN), árvores de decisão, k-means agrupamento e mais. descrição abaixo Se você gostou deste vídeo, considere inscrever-se no canal de Youtube de Simplilearn e clique [aqui](https://www.youtube.com/watch?v=wMHhlZbsusY) para assistir vídeos semelhantes. Altere o volume e obtenha certificado! --- ## 🔥Top 5 Motivos para Aprender Aprendizagem de Máquina | Porque Você deve Aprender Aprendizagem de Máquina Aprender Aprendizagem de Máquina em [Simplilearn](https://www.youtube.com/watch?v=wMHhlZbsusY) A partir da introdução da inteligência artificial, surgiu uma infinidade de oportunidades em diversas indústrias, por exemplo, a criação de assistantes simples como Siri e Alexa a desenvolvimento de armas de ataque militares. A inteligência artificial permeou todos os domínios, transformando o impossível em realidade. O ponto inicio da Inteligência artificial está no seu ápice, e isto é o momento perfeito de entrar nos oportunidades de carreira mais lucrativas e construir uma carreira com sucesso e recompensas duradouras. A integração da inteligência artificial e da Aprendizagem de Máquina tornou-se imersivo em nossas vidas diárias que é quase impossível se imaginar um mundo sem ele. Aprendizagem de Máquina revolucionou o modo de fazer as coisas hoje, por meio de sistemas mais avançados e elevação da qualidade do produto. Isto levou a uma demanda em crescimento contínuo para profissionais com conhecimentos em inteligência artificial, aprendizagem de máquina e processamento de linguagem natural. As empresas como Google, Nike, EA, Shell e muitas outras estão ativamente recrutando profissionais da aprendizagem de máquina e oferecendo envolves de salários que você não pode recusar. A média salarial de engenheiro de aprendizagem de máquina no Índia está em torno de 15 lakhs por ano enquanto a média salária básica de engenheiro de aprendizagem de máquina nos EUA está em torno de 250, 000 anua. Para engenheiros aspirantes em aprendizagem de máquina procurando treinamento online e certificações de universidades de TG e em colaboração com especialistas indústrias líderes, o [Programa de Certificação Profissional de Simplilearn em Inteligência Artificial e Aprendizagem de Máquina da Universidade Purdue em colaboração com IBM](https://www.simplilearn.com/artificial-intelligence-machine-learning) deve ser uma opção excelente. Mais detalhes podem ser encontrados usando o link na caixa de descrição abaixo. **Porque a Aprendizagem de Máquina é uma das Habilidades Mais Valiosas para 2023 e além** *O que é a Aprendizagem de Máquina e Porque é Importante? * A Aprendizagem de Máquina pode ser descrita como um subconjunto da Inteligência Artificial que envolve a criação de máquinas inteligentes que aprendem de experiências sem programação explícita. É um método de criação de modelos analíticos que usa processamento e análise de dados para encontrar padrões e tomadas de decisão informadas com pouca ou nenhuma intervenção humana. A aprendizagem de máquina tornou-se integral a várias segmentos empresariais graças às rapidas avançadas tecnológicas e é amplamente usada para melhorar as operações empresariais, processos de fabricação, campanhas de marketing, e satisfação de clientes. O benefício primário da aprendizagem de máquina é a automação, que economiza tempo e dinheiro ao manter a qualidade dos produtos e serviços. Algumas das aplicações mais importantes da aprendizagem de máquina incluem a detecção de fraude online, serviço ao cliente em tempo real e a filtragem sem fio, além de previsão do tempo e do tráfego. A aprendizagem de máquina evoluiu ao ponto em que é previsto tornar-se o futuro, e é difícil ver isto ao aumento dos números de empresas que incorporam soluções de aprendizagem de máquina na sua infraestrutura. Estas oportunidades de carreira na área estão aumentando a um ritmo incrível e apresentam crescimento inédito. Se ainda não estiver decidido em pensar na aprendizagem de máquina como uma carreira, aqui estão 5 motivos por que você deve: 1. A aprendizagem de máquina oferece melhores oportunidades de carreira. O mercado de aprendizagem de máquina foi valorizado em 15, 44 bilhões de dólares em 2021 e prevê-se que cresca a partir de 21, 17 bilhões de dólares em 2022 até 209, 91 bilhões de dólares em 2029 com taxa média anual de crescimento de 38, 8% entre 2022 e 2029. Estas estatísticas mostram que a aprendizagem de máquina está atualmente a ser a estrela brilhante do setor da tecnologia e Enterprises, com soluções de Inteligência Artificial e Aprendizagem de Máquina se estendendo para quase todos os segmentos, incluindo saúde, educação, e-commerce, Logística e muitos outros como a tecnologia avança, esta aberte chance para Engenheiros de aprendizagem de máquina, cientistas de dados, especialistas em mineração de dados, e engenheiros de dados em várias Indústrias. Portanto, se você quer ser um dos profissionais mais valiosos da indústria, você deve aprender aprendizagem de máquina. 2. As vagas de emprego em aprendizagem de máquina trazem grandes cheques. Sim, as vagas de emprego em aprendizagem de máquina podem trazer grandes cheques, mas o valor têxtil real varia amplamente dependendo de fatores tais como localização, experiência com nível da indústria, e responsabilidades cônicas. Em geral, a habilidade de aprendizagem de máquina é um recurso altamente solicitado no atual mercado de software, e especialistas com competências neste campo são altamente demandados. Salários em vagas de emprego de aprendizagem de máquina são hábeis em média, mas em comparação com outros cargos de desenvolvimento de software ou de análise de dados, geralmente são maiores e podem variar de torno de ₹80, 000 até aproximadamente ₹250, 000 por ano ou mais, com uma maior número de empresas prontas pagar mais alto para atrair e manter talentos. 3. As vagas de emprego em aprendizagem de máquina são frequentemente postadas e projetadas para continuar crescendo. As vagas de emprego em aprendizagem de máquina têm sido altamente solicitadas nos últimos anos devido ao aumento do volume de dados gerados por muitas empresas e o crescente precípio da necessidade de especialistas competentes capazes de analisar e fazer sentido a esse dado usando técnicas de aprendizagem de máquina. Algumas das cargos em aprendizagem de máquina incluem engenheiro de aprendizagem de máquina, que é responsável pelo design, construção e manutenção de modelos de aprendizagem de máquina, cientistas de dados responsáveis por coletar, analisar e interpretar conjuntos de dados complexos para identificar padrões e insights que possam informar decisões empresariais, e pesquisadores de inteligência artificial responsáveis por explorar e desenvolver novos algoritmos e tecnologias. 4. A aprendizagem de máquina amplia seu conhecimento e eficiência. Estudar sobre a indústria e desenvolver os competências relevantes aproximará sua base de conhecimento, mas também lhe fará um grande ativo para qualquer firma. Você pode aplicar sua conhecimento em aprendizagem de máquina para melhorar as operações empresariais por meio de automação, serviço ao cliente em tempo real e, obvia, economia. Ademais, a possuir competências em aprendizagem de máquina permite-lhe se mover à frente da carreira a um ritmo mais acelerado que seus pares e se destaca de maneira competitiva no mercado laboral. 5. A aprendizagem de máquina ajuda a entendermos melhor os clientes. A tecnologia e as soluções de aprendizagem de máquina têm a capacidade de mergulhar nos dados de clientes para entender as necessidades únicas de cada segmento de clientes, prefeedições e aflições. Como isto resulta, as empresas podem desenvolver produtos, serviços, ofertas e táticas de marketing altamente personalizadas para atender às necessidades específicas de cada grupo de clientes. Isto resulta em relacionamentos a longo prazo com clientes satisfeitos, que tem efeito significativo na ROI da empresa. Quem for capaz de usar as ferramentas e soluções de aprendizagem de máquina para cumprir este objetivo é um ativo valioso para qualquer empresa. # Engenharia de Dados e Aprendizagem de Máquina: Guia ## Engenharia de Dados Seu próximo passo é aqu rally aquires skills em engenharia de dados, pois eles são essenciais para analisar e processar seus dados assim que os obtiver. Aqui estão os três passos principais na engenharia de dados: 1. **Pre-processamento de Dados** - Isso consiste em todas as etapas necessárias antes que os dados possam ser processados pelo algoritmo de aprendizagem de máquina (ML) que você tem. Estas incluem: limpeza, análise, correção e consolidação dos dados. 2. ETL (Extrair, Transformar, Carregar) - É necessário saber como extrair dados da internet ou servidor local. - É necessário saber como transformar os dados, pois não todas as formas de dados podem ser aceitas pelo programa, portanto você precisa converter os dados no formato aceito pelo programa. - É necessário saber como é carregado dados para its programa. 3. **Sistemas de Gerenciamento de Bancos de Dados (DBMS)** - É essencial ter conhecimento sobre software de gerenciamento de bancos de dados ou DBMS. Você precisa estar bem versado com MySQL, Oracle e NoSQL. ## Aprendizagem de Máquina Após ter dominado a engenharia de dados, seu próximo passo é aprender a algorithmos ML. Eles podem ser divididos em duas categorias: - **Aprendizagem Supervisionada de Máquina: ** - Algoritmos de classificação: todos os algoritmos, exceto o linear regressão, que é utilizado para determinar se um dado particular cai ao passo de uma determina categoria. - **Aprendizagem de Máquina Não-supervisionada: ** - Algoritmos de agrupamento: clusterização ao nível do k, agrupamento hierárquico e a priori (algoritmo de associação). São utilizados para classificar dados em grupos baseados em determinados atributos especiais - O linear regression, por outro lado, cai sob os algoritmos de regressão, que é utilizado para prever um número específico. ## Recursos de Aprendizado - Para mais informações, veja o nosso [Canal Aprender Simplesmente](https://www.simplylearn.com). - Vá para as listas de reprodução e encontre um conjunto dedicado de listas de reprodução que falam sobre a Aplicação de Máquina. Aí você encontrará vídeos sobre vários assuntos de Aplicação de Máquina, incluindo: - Aplicações de Máquina vs Aprendizagem Profunda vs Inteligência Artificial - Aplicação de Máquina com Python - Clusterização ao nível do k, Árvores de Decisão e mais - Para a aprendizagem avançada, você pode explorar alguns algoritmos como Redes Neurais Convolucionais, Redes Neurais Recurrentes e Redes de Memória Longa. Temos um vídeo detalhado que falando sobre os conceitos de Aprendizagem Profunda. - Depois de dominar estes algoritmos, você precisa aprender a selecionar o algoritmo correto para seu problema, criar um bom modelo com um ou mais algoritmos, e então continuar a melhorar e otimizar o modelo para obter a precisão máxima. - Para uma leitura adicional, você pode passar pelo GitHub, onde tem mais de 21. 000 repositórios sob Aplicação de Máquina. Você também pode recriar fatos publicados de pesquisa acadêmica, adicionando à sua experiência de trabalhar com Aplicação de Máquina. ## Frameworks de Aplicação de Máquina A aprendizagem de Aplicações de Máquina pode facilitar a vida dos desenvolvedores e usuários simplificando o lado complexo de Aplicação de Máquina e tornando disponível para todos. - **TensorFlow**: Isto é o framework mais usado de Aplicação de Máquina e é usado para ambos a Aplicação de Máquina e Aprendizagem Profunda. É uma biblioteca de software open-source que realiza cálculos numéricos com grafo de dados. Google Translate é um dos casos de uso mais populares do TensorFlow. - **Theano**: Isto ajuda você a definir, otimizar e avaliar expressões matemáticas. Foi desenvolvido na Universidade de Montreal e possui Lasagne, Blox e Keras como suas bibliotecas mais populares. - **Biblioteca de Aplicação de Máquina de Spark**: Este é o componente de máquina de código aberto da Spark Apache e oferece bibliotecas para aplicação de máquina, que são construídas sobre RDDs ou Conjuntos Distribuídos de Dados Resilientes. Ele é extremamente bom na oferta de computação iterativa e oferece desempenho de algoritmo muito alto. - **Scikit-Learn**: Isto fornece uma ampla gama de algoritmos de aplicação de máquina supervisionada e não supervisionada. É desenvolvido sobre bibliotecas existentes como NumPy, SciPy, e Matplotlib. Iniciou-se como um projeto de Verão da Google e agora possui mais de 23. 000 comentários no GitHub. ## Oportunidades de Emprego em Aplicação de Máquina - De acordo com o gráfico, antes de 2015, a aplicação de máquina era menos popular do que big data e computação na nuvem, mas isso mudou drasticamente. Agora, um engenheiro de máquina de aprendizagem ganha cerca de $114. 000 por ano, indicando que as organizações estão prontas para investir quase que ilimitadamente em pessoas com conhecimentos de conceitos de aplicação de máquina. - Você pode facilitar o processo de aprendizado usando o Certificado de Aplicação de Máquina da Aprender Simplesmente. O curso fornece 36 horas de treinamento orientado a professores, 25 exercícios de mãos-vivas e aplicação prática de 15 algoritmos de Aplicação de Máquina. Ajuda-o a dominar os conceitos de aprendizado supervisionado e não supervisionado. Além disso, introduz-o aos técnicas de processamento de dados de aprendizagem de máquina, regressão, classificação e mais. Se você quer tomar o primeiro passo para se certificar e andar à frente, clique no canto superior à direita imediatamente. - Com isso, terminamos esse vídeo. Espero que você tenha achado isso informativo e útil. Agradeço pela assistência, e fiquem atentos para mais de Aprender Simplesmente! ## Subscrição e Informações Adicionais - Se você gostou deste vídeo, inscreva-se no canal do YouTube da Aprender Simplesmente. - Para assistir a vídeos semelhantes, clique [aqui](https://www.youtube.com/channel/UCpEVdZLEeBV2Ky7oUwjiQkQ). - Para maior informação sobre se certificar e irem à frente, clique [aqui](https://www.youtube.com/watch?v=U0oRChvZNzE&list=PL3E......). - Fiquem atentos para mais de Aprender Simplesmente! 