├── 2019_2.md ├── 2020_1.md ├── 2020_2.md ├── 2023_1.md ├── 2024_2.md ├── README.md ├── atividades └── 2019.2 │ ├── CharRec │ ├── CharRec_Gabriel_Leonardo_Samuel.md │ ├── Deep Learning_Leandro_Tobias.pdf │ ├── Identificação de letras usando Multilayer Perceptron - Lucas Gualberto.md │ ├── LucasFigueredo_NN.md │ ├── Relatorio IV - CharRec (Luis Fernando Tavares).docx │ ├── Relatorio_Jorge_e_Severino.md │ ├── Relatorio_Reconhecimento_de_Caracteres_Igor_Rony_Thatiana.pdf │ ├── Relatrio4-Vilson.pdf │ ├── char_rec_bruno_guedes_spinelli.md │ ├── maciel_barbosa.md │ └── modelo_de_relatorio.md │ ├── MLP │ ├── Leandro_Tobias.pdf │ ├── Leonardo_e_Gabriel_MLP.md │ ├── Lucas_e_Luis.md │ ├── Relatorio I - MLP (Luis Fernando Tavares).docx │ ├── Relatorio_Alysson_Lima_MLP.md │ ├── Relatorio_Igor_Rony_Thati_MLP │ ├── Relatorio_Samuel_Amico_MLP.md │ ├── Relatório MLP - Vilson.pdf │ ├── Relatório_Michel.md │ ├── mlp_bruno_guedes_spinelli.md │ ├── modelo_de_relatorio.md │ ├── relatorioLOP_Severino_e_Jorge.md │ ├── relatorioMLP - JoaoMarcos.md │ └── relatorio_sistema-LOP_Lucas-Gualberto.md │ ├── SOM │ ├── Análise_do_perfil_ de_aprovacao_com_SOM-Lucas_Gualberto.md │ ├── Lucas_Figueredo_SOM.md │ ├── Relat_Jorge_e_Severino.md │ ├── Relatorio_Michel.md │ ├── Relatório III - SOM (Luís Fernando Tavares).docx │ ├── RelatórioSOMAprovacaoLOP.pdf │ ├── Relatório_SOM_Alysson_Lima.pdf │ ├── SOM_Gabriel_Leonardo_Samuel.md │ ├── SOM_Leandro_Tobias.pdf │ ├── SOM_Lucas_Gualberto.md │ ├── Vilson - Rede SOM.pdf │ ├── modelo_de_relatorio.md │ ├── relatorioSOM-JoaoMarcos.md │ ├── relatório SOM - Luis Felipe Vanin.mdown │ └── som_bruno_guedes_spinelli.md │ ├── SVM │ ├── Leandro_Tobias2.pdf │ ├── Lucas_e_Luis2.md │ ├── MacielBarbosa.md │ ├── PoseEstimation_Gabriel_Leonardo_Samuel.md │ ├── Relatorio II - SVM (Luis Fernando Tavares).docx │ ├── Relatorio_SVM_Alysson_Lima │ ├── Relatório - SVM_Igor_Rony_Thatiana.pdf │ ├── Relatório SVM - Vilson.pdf │ ├── Relatório_Michel_SVM.md │ ├── modelo_de_relatorio.md │ ├── relatorioSVM-JoaoMarcos.md │ ├── relatorio_SVM_Severino_e_Jorge.md │ └── relatorio_pose_estimation_Lucas-Gualberto.md │ └── trabalhos_finais │ ├── Babycry-Leandro_Tobias.pdf │ ├── Detecção de objetos_Igor_Rony_Thatiana.pdf │ ├── Identificacao_de_movimentos_com_SOM_SVM.md │ ├── Lucas e Vanin.pdf │ ├── README.md │ ├── Relatorio - Teacher Sensor (Luis Fernando Tavares).pdf │ ├── RelatórioFinal_JoãoMarcos_Michel.md │ ├── Relatório_Projeto_NLP_Twitter_Alysson_Lima.pdf │ ├── Relatório_RF_(Leonardo&Gabriel).md │ ├── TCC__Hardcode (2) (1).pdf │ ├── Vilson-Perfis-de-Reprovacao.pdf │ ├── reconhecimento_facial_(bruno_guedes_spinelli).pdf │ └── trabalho_final_Jorge_e_Severino.md ├── atividades_2018_2.md ├── aulas ├── arvore_decisao.md ├── cnn.md ├── deep_learning.md ├── introducao.md ├── k_means.md ├── mlp.md ├── nlp.md ├── regressao.md ├── som.md ├── svm.md └── texto │ └── atributos_categoricos.md ├── cronograma_2020_2.md ├── cursos_online.md ├── dados ├── 50_Startups.csv ├── Banco de Dados 22.csv ├── Churn_Modelling.csv ├── Corrida_PRF_2023_Resultado.csv ├── Credit_Card_Applications.csv ├── Dados_Produtores_de_Leite_Com_Classes[V2].csv ├── DataBaseLop.csv ├── DataBaseLopDescription.txt ├── Distancias_Pessoas.csv ├── IMG_20190927_105514.jpg ├── Iris.csv ├── LucroFilmes.csv ├── Mall_Customers.csv ├── ODB2013originalcorrigido.csv ├── PWMxVelocidade.csv ├── README.md ├── Restaurant_Reviews.tsv ├── Resultados_Strava_2_CSV2020_2023.csv ├── Salary_Data.csv ├── Social_Network_Ads.csv ├── Tweets_Mg.csv ├── WA_Fn-UseC_-HR-Employee-Attrition.csv ├── altura_x_peso.csv ├── aluguel_residencial.csv ├── alunos_didatico.csv ├── antihorario002.txt ├── antihorario003.txt ├── antihorario004.txt ├── avaliacoes_tripadvisor_paprica.csv ├── census.csv ├── compra_casa_didatico.csv ├── crescimento_populacional.csv ├── customer segmentation data.csv ├── dados produtores lucielly.csv ├── diabetes.csv ├── didatico_dados_pessoas_e_notas.csv ├── heart_disease_uci.csv ├── horario002.csv ├── horario003.csv ├── horario004.csv ├── horas_estudos_x_notas.csv ├── house_prices.csv ├── housing.csv ├── limpo1.csv ├── loan_data.csv ├── lop_submissao_semana.csv ├── metricas_lop.csv ├── milsa.csv ├── notasECT_LoP_v2.csv ├── notas_ECT_LoP_s1_v2.csv ├── obitos_covid.csv ├── perfil_notas_sem_identificacao.csv ├── perfil_notas_sem_identificacao.txt ├── perfil_notas_sem_identificacao_col_resum.csv ├── perfil_politico.csv ├── perfil_politico2019.csv ├── perguntas_e_respostas.tsv ├── pib_regioes_brasil.csv ├── pop_brasil.csv ├── preco_casas.csv ├── salario_x_experiencia.csv ├── segmentation data.csv ├── teste1.csv ├── teste2.csv ├── ultrassom_simples_radar_1.csv ├── ultrassom_simples_radar_1_reduzida.csv ├── xor_3.csv └── zoo.csv ├── entrega_trabalho_final_2020.md ├── guias └── Perceptron │ ├── Perceptron.py │ ├── README.md │ ├── and.jpg │ └── iris_data.csv ├── modelo_de_relatorio.md ├── noticiais.md ├── outras_referencias.md ├── regeressao_linear └── regressao_linear_simples.ipynb ├── relatorio_ml.md ├── relatorio_ml_vc.md └── roteiro_trabalho_final.md /2019_2.md: -------------------------------------------------------------------------------- 1 | # Machine Learning 2 | Conteúdo de apoio sobre Machine Learning da disciplina de tópicos avançados em informática 3 | 4 | ## Jupyter Notebooks 5 | * Regressão Linear Simples, http://bit.ly/2KBTkUf 6 | * Regressão Linear Múltipla, http://bit.ly/2nBOcGx 7 | * MultiLayer Perceptron, http://bit.ly/2MI9kZQ 8 | * SVM Linear, http://bit.ly/2Ov7vgh 9 | * SVM RBF, http://bit.ly/2OBRHsk 10 | * K-Means, http://bit.ly/2zqY8JI 11 | * SOM, http://bit.ly/2Ps3xWA 12 | * SOM - Numbers, http://bit.ly/2ysYJcb 13 | * SOM - Notas LoP e do primeiro semestre - http://bit.ly/2m6c8UI 14 | * Deep Learning MNIST, http://bit.ly/2z8VCqY 15 | * Deep Learning MNIST - Rede Convolucional, http://bit.ly/2A6PfUD 16 | * Introdução a NLP - http://bit.ly/2po0h6i 17 | * Clonagem de Comportamento em carros autônomos, http://bit.ly/2QHMSlF 18 | 19 | ## Slides de Aula 20 | * Introdução, https://docs.google.com/presentation/d/1Xo6pl8EECIBfA97d-EH0-DQSwM7YtZQ0WM2w85zs5ZI/edit?usp=sharing 21 | * Regressão Linear I, https://docs.google.com/presentation/d/1qR5GZ4ROHnccPOhPlj2NBC5cALZzrF5dIUwF6GslbAY/edit?usp=sharing 22 | * Regressão Linear II, https://docs.google.com/presentation/d/1ksbUXVsP08Vrm5mPW7etzpUSaRL3bN1lRDQEpWhcgSU/edit?usp=sharing 23 | * MLP, https://docs.google.com/presentation/d/1NMgV4Jh-T7PhK_bLV3J7KUse8vN_PkU5rGKLbfxQ_cs/edit?usp=sharing 24 | * SVM, https://docs.google.com/presentation/d/1GOUeqNpZ3CRtTUaksxMwZ_rl6EBt350g-emA4FKPwnc/edit?usp=sharing 25 | * SOM, https://docs.google.com/presentation/d/1PV1jTA0cJ1PdoGM1TY0I0wQtEP8aINI1MSJXpgpxgCQ/edit?usp=sharing 26 | * CNN, https://docs.google.com/presentation/d/19U5ITVHzKa-kdX4L5l3D6WBTai04o0EaHygz-jkzwZc/edit?usp=sharing 27 | * Introdução NLP, https://docs.google.com/presentation/d/1xLG54cyWgnPve4uiRM_ybXfumwht2CuM0t2ycIBsdkU/edit?usp=sharing 28 | 29 | ## Começando com Python 30 | 31 | * Material produzido pelo grupo de estudos em Ciência de Dados, https://github.com/Natalnet/GCiD/tree/master/Codes/Basic%20Module 32 | 33 | ## Links Interessantes 34 | * Curso de Introdução a Deep Learning com PyTorch, https://classroom.udacity.com/courses/ud188 35 | * Interagindo e visualizando uma linha de regressão linear, https://s3.amazonaws.com/codecademy-content/programs/data-science-path/line-fitter/line-fitter.html 36 | * Excelentes tutoriais sobre aprendizado de máquina, https://matheusfacure.github.io/tutoriais/ 37 | * Tutorias de python e machine learning, https://github.com/cs-ufrn 38 | * MLP para fins didáticos em C++, https://github.com/orivaldosantana/mlp 39 | * colah's blog, http://colah.github.io/ 40 | * Deep Learning Book, http://www.deeplearningbook.org/ 41 | * Página web com lições sobre TensorFlow, https://learningtensorflow.com/ 42 | * Github sobre K Means Clustering de Siraj Raval, https://github.com/llSourcell/k_means_clustering/blob/master/kmeans.py.ipynb 43 | * Brilliant, https://brilliant.org/courses/machine-learning/?tour=true 44 | * Geeks for Geeks, https://www.geeksforgeeks.org/genetic-algorithms/ 45 | * Deep Natural Language Processing course offered in Hilary Term 2017 at the University of Oxford, https://github.com/oxford-cs-deepnlp-2017/lectures 46 | * Introdução a CNN, https://mlnotebook.github.io/post/CNN1/ 47 | 48 | ## Referências 49 | 50 | * Livro Neural Networks and Deep Learning, http://neuralnetworksanddeeplearning.com/ 51 | * Livro Hands-On Machine Learning, https://github.com/ageron/handson-ml 52 | * Livro Dive into Deep Learning, http://d2l.ai/index.html 53 | * Livro Deep Learning, https://www.deeplearningbook.org/ 54 | * Super Data Science, https://www.superdatascience.com/machine-learning/ 55 | * Scikit-learn, http://scikit-learn.org/ 56 | * Super Data Science - Convolutional Neural Networks, https://www.superdatascience.com/blogs/the-ultimate-guide-to-convolutional-neural-networks-cnn 57 | * A Tutorial on Support Vector Machines for Pattern Recognition, https://www.di.ens.fr/~mallat/papiers/svmtutorial.pdf 58 | 59 | ## Links de Dados 60 | * Dados abertos UFRN, http://dados.ufrn.br/organization/ufrn 61 | * Kaggle data sets, https://www.kaggle.com/datasets 62 | 63 | ## Cursos Onlines 64 | 65 | * Introdução a _Machine Learning_, Udacity, https://classroom.udacity.com/courses/ud120 66 | * Introdução a Deep Learning com PyTorch, https://classroom.udacity.com/courses/ud188 67 | * Machine Learning - Udemy, https://www.udemy.com/machinelearning 68 | * Deep Learning - Udemy, https://www.udemy.com/deep-learning-com-python-az-curso-completo 69 | * Machine Learning - Google, https://developers.google.com/machine-learning/crash-course/ 70 | * Machine Learning - Coursera, https://www.coursera.org/learn/machine-learning 71 | * Elements of AI, https://course.elementsofai.com/ 72 | * The Complete Self-Driving Car Course - Applied Deep Learning - Udemy, https://www.udemy.com/applied-deep-learningtm-the-complete-self-driving-car-course 73 | * Introduction to Python, https://www.datacamp.com/courses/intro-to-python-for-data-science 74 | 75 | ## Exercícios 76 | * Implementação do perceptron, https://github.com/ect-info/ml/tree/master/guias/Perceptron 77 | 78 | ## Canal de Comunicação 79 | * Para compartilhamento de conhecimento entre os estudantes: https://discord.gg/jzKN8kx 80 | 81 | ## Bibliografia 82 | 83 | * GÉRON; **Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems**. O’REILLY, 2017. 84 | * MITCHELL; **Machine Learning**, Publisher: McGraw-Hill Science/Engineering/Math, 1997. 85 | * NEGNEVITSKY; **Artificial Intelligence: A Guide to Intelligent Systems**, Second Edition, Publisher Addison Wesley. 86 | * HAYKIN; **Neural Networks and Learning Machines** (3rd Edition), Publisher: Pearson. 87 | * JOSHI; **Artificial Intelligence with Python**, Packt Publisher, 2017. 88 | * BISHOP; **Pattern Recognition and Machine Learning**, Springer, 2006. 89 | * RUSSELL, STUART; NORVIG, PETER; **Inteligência Artificial**, 3. edição, Prentice Hall. 90 | * BRAGA; CARVALHO; e LUDERMIR; **Redes neurais artificiais: teoria e aplicações**, 2007 91 | 92 | 93 | -------------------------------------------------------------------------------- /2020_1.md: -------------------------------------------------------------------------------- 1 | 2 | # _Machine Learning_ 3 | Conteúdo de apoio sobre Machine Learning da disciplina IMD0188 4 | 5 | ## Menu 6 | 7 | * [Referências Bibliográficas](https://github.com/ect-info/dpia/blob/master/Bibliografia.md) 8 | * [Referências de Cursos Online](https://github.com/ect-info/ml/blob/master/cursos_online.md) 9 | * [Outras Referências](https://github.com/ect-info/ml/blob/master/outras_referencias.md) 10 | * [Material de Aula](https://github.com/ect-info/ml/blob/master/2020_1.md#material-de-aula) 11 | * [Atividades](https://github.com/ect-info/ml/blob/master/2020_1.md#atividades) 12 | 13 | 14 | ## Canal de Comunicação 15 | * Para compartilhamento de conhecimento entre os estudantes: https://discord.gg/Sa2zvvw 16 | 17 | ## Material de Aula 18 | Estes formulários registram a participação nas aulas assínscronas. 19 | 20 | ### Introdução ao Aprendizado de Máquina 21 | * [Vídeos e Form: Introdução ao Aprendizado de Máquina](https://forms.gle/XQFTKRAzzp5QbCs68) 22 | * [Vídeos e Form: Aprendizado de Máquina - Exemplos](https://forms.gle/17xb4qcNzrcRA3gN9) 23 | * [Vídeos e Form: Introdução ML - Principais Conceitos](https://forms.gle/A8fpDgvEv7A8YPFv7) 24 | * [Slides: Conceitos](https://docs.google.com/presentation/d/1UKK1HW9Wfh-q2qqAloiJYp179EVMw5GuVu3Yzphefgw/edit?usp=sharing) 25 | 26 | ### Breve introdução sobre Regressão Linear 27 | * [Vídeos e Form](https://forms.gle/QWaVAi71GBTnjNYK8) 28 | * [Slides](https://docs.google.com/presentation/d/1iELBYui_t5S_FNhsOZkqm_a1xvHtOW17QbGeLYWAr-s/edit?usp=sharing) 29 | * [Código utilizado no vídeo](https://colab.research.google.com/drive/1cnvCdgxz0eHWzSSjKrMPD1LLj5VE21rv?usp=sharing) 30 | * [Exercício](https://colab.research.google.com/drive/1Ije_CQ1uywwhaQU9bnDEiSmS0b9AJq1E?usp=sharing) 31 | * [Desafio](https://colab.research.google.com/drive/1cY0xY7G8hh6OLBndI7_M5i48ZBqdSBA7?usp=sharing) 32 | 33 | ### Breve introdução sobre Multilayer Perceptron 34 | * [Vídeos e Form: MLP Parte 1](https://forms.gle/VopVYaFesompVMgn8) 35 | * [Vídeos e Form: MLP Parte 2](https://forms.gle/YbRqcxQT5nDbjYzj9) 36 | * [Exemplo de código: Perceptron](https://colab.research.google.com/drive/1jbFCvifaAou19mlu2pI3Rso8DoMow_zl?usp=sharing) 37 | * [Slides](https://docs.google.com/presentation/d/1oIzH-SNbJ3_4vYZdt_IZQi3537BUJKsvio_oV8c8Bnc/edit?usp=sharing) 38 | 39 | ### Introdução sobre Suport Vector Machine (SVM) 40 | * [Vídeos e Form: SVM](https://forms.gle/vzFZXatdThDe9LdH8) 41 | * [Exemplo de código: SVM Linear](https://colab.research.google.com/drive/1VYmZBcf2FHmz_gwPRxllxwoy0nTaU8X9?usp=sharing) 42 | * [Slides](https://docs.google.com/presentation/d/19mAI5sjOWURpzuKpoFjbjmCkjUXUysU_kysfbksmVAg/edit?usp=sharing) 43 | 44 | ### Introdução sobre _Deep Learning_ 45 | * [Vídeos e Form: _Deep Learning_](https://forms.gle/U2zfJ4n7AmSA3tp5A) 46 | * [Slides: _Deep Learning_](https://docs.google.com/presentation/d/1pxztvhuOc36D76cDW86oj8nGZAIlQSEn2GZJE0GzGLw/edit?usp=sharing) 47 | * [Exemplo de código: MLP - Exemplo sobre se um cliente deixa um banco](https://colab.research.google.com/drive/1NndIE2zvup_aWqSG06JR7i6_WxXQ-xMU?usp=sharing) 48 | * [Exemplo de código: Reconhecimento de caracteres escritos a mão](https://colab.research.google.com/drive/1gGi-n3vAJkjdEKMYLZkSCXoDhyRS1tSJ?usp=sharing) 49 | 50 | ### Introdução sobre K-Means 51 | * [Vídeos e Form: K-Means](https://forms.gle/XrCfUvuvtXtwAua56) 52 | * [Slides](https://docs.google.com/presentation/d/1hzeAFwgHNZ7pr_POzd4_2lXUgOz_vrVfuhjxl6tbBCs/edit?usp=sharing) 53 | * [Exemplo de código: perfil de clientes de uma loja](https://colab.research.google.com/drive/15Q-gTih7v2f5pYc64xQa2ytzX2gisX0q?usp=sharing) 54 | 55 | ### Introdução sobre Rede SOM 56 | * [Vídeos e Form: Rede SOM](https://forms.gle/uYQti6kABLtL2g659) 57 | * [Slides](https://docs.google.com/presentation/d/1vGS--E6VbtohvVkUo23GM-0MsL-EMTnxAXKcSHiomLI/edit?usp=sharing) 58 | * [Exemplo de código: visualizar os perfis de alunos da Escola de Ciência e Tecnologia da UFRN](https://colab.research.google.com/drive/1PX9YlNGx_pjgesMsnhyjrXI-nsuJOdWI?usp=sharing) 59 | 60 | ### Introdução sobre Rede Neural Convolucional 61 | * [Form e vídeos](https://forms.gle/YCYBFEwggpJtugy48) 62 | * [Código: reconhecimento de números escritos à mão](https://colab.research.google.com/drive/1gd9aB82vSHAEb_nHV0wJJZU4-gSfPbHN?usp=sharing) 63 | * [Slides](https://docs.google.com/presentation/d/1KTPsi2Y4U63cuNUoCh32sd3VJfyYf6MA7NT3fHucboM/edit?usp=drivesdk) 64 | 65 | ### Atividades 66 | 67 | #### Uso de regeressão 68 | * Monte sua equipe 69 | * Faça uma cópia do exemplo: "Base de dados de aluguel" ([clique aqui para acessar](https://colab.research.google.com/drive/1N2tsSSG18GhNsSxHKfE61WAGzZaf9Mww?usp=sharing)) 70 | * Complete o código de exemplo seguindo as instruções 71 | 72 | ## Exemplos 73 | * Implementação do perceptron, https://github.com/ect-info/ml/tree/master/guias/Perceptron 74 | 75 | 76 | ## Bibliografia Básica 77 | * GÉRON; **Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems**. O’REILLY, 2017. 78 | * MITCHELL; **Machine Learning**, Publisher: McGraw-Hill Science/Engineering/Math, 1997. 79 | * NEGNEVITSKY; **Artificial Intelligence: A Guide to Intelligent Systems**, Second Edition, Publisher Addison Wesley. 80 | * HAYKIN; **Neural Networks and Learning Machines** (3rd Edition), Publisher: Pearson. 81 | * JOSHI; **Artificial Intelligence with Python**, Packt Publisher, 2017. 82 | * BISHOP; **Pattern Recognition and Machine Learning**, Springer, 2006. 83 | * RUSSELL, STUART; NORVIG, PETER; **Inteligência Artificial**, 3. edição, Prentice Hall. 84 | * BRAGA; CARVALHO; e LUDERMIR; **Redes neurais artificiais: teoria e aplicações**, 2007 85 | 86 | 87 | -------------------------------------------------------------------------------- /2024_2.md: -------------------------------------------------------------------------------- 1 | # _Machine Learning_ 2 | Conteúdo de apoio para a disciplina de Aprendizado de Máquina - ECT3694 3 | 4 | ## Menu 5 | 6 | * [Referências Bibliográficas](https://github.com/ect-info/dpia/blob/master/Bibliografia.md) 7 | * [Referências de Cursos Online](https://github.com/ect-info/ml/blob/master/cursos_online.md) 8 | * [Outras Referências](https://github.com/ect-info/ml/blob/master/outras_referencias.md) 9 | * [Material de Aula](#material-de-aula) 10 | * [Avaliações](#avalia%C3%A7%C3%B5es) 11 | * [Cronograma](https://docs.google.com/spreadsheets/d/1opRug-pP-RKPnnFLWNsYMxz8UIagM5mkPorGV4YrSZo/edit?usp=sharing) 12 | 13 | ## Canal de Comunicação 14 | * Para compartilhamento de conhecimento entre os estudantes: https://discord.gg/mp8aPyh 15 | 16 | ## Compreendendo o Perfil da Turma 17 | * O objetivo deste formulário é conhecer o perfil da turma para melhoras as metodologias de ensino / aprendizagem. 18 | * Gostaria que todos os alunos preenchessem [este formulário](https://docs.google.com/forms/d/e/1FAIpQLScOZAQApPriAo39Kg20AaPjR1SQdh3v1nUnH4jgjbefl6AEwQ/viewform?usp=sf_link) 19 | 20 | # Material de Aula 21 | 22 | ## Introdução ao Aprendizado de Máquina 23 | * [Clique aqui.](aulas/introducao.md) 24 | 25 | 26 | ## Aprendizado Supervisionado 27 | ### Regressão 28 | #### Regressão Linear 29 | * [Clique aqui.](aulas/regressao.md) 30 | 31 | 32 | ### Classificação 33 | #### Árvore de Decisão 34 | * [Clique aqui.](aulas/arvore_decisao.md) 35 | 36 | #### Multilayer Perceptron (MLP) 37 | * [Clique aqui.](aulas/mlp.md) 38 | 39 | #### Suport Vector Machine (SVM) 40 | * [Clique aqui.](aulas/svm.md) 41 | 42 | #### _Deep Learning_ 43 | * [Clique aqui.](aulas/deep_learning.md) 44 | 45 | #### Rede Convolucional 46 | * [Clique aqui.](aulas/cnn.md) 47 | 48 | ## Agrumapamento 49 | ### K-Means 50 | * [Clique aqui.](aulas/k_means.md) 51 | 52 | ### Rede SOM 53 | * [Clique aqui.](aulas/som.md) 54 | 55 | ## Modelos para Texto 56 | ### Processamento de Linguagem Natural (NLP) 57 | * [Clique aqui.](aulas/nlp.md) 58 | 59 | ## Avaliações 60 | 61 | ### Atividades Avaliativas (Previsão) - Unidade I 62 | * Prever o lucro de uma startup 63 | * Previsão de compra de um produto 64 | * Reconhecimento de dígitos escritos a mão 65 | * Perfil de clientes de uma loja 66 | * Análise de perfil de estudantes 67 | * Reconhecimento de faces 68 | * Sistema de perguntas e respostas 69 | * Dados de saúde do governo Federal 70 | 71 | 72 | 73 | ### Atividades Avaliativas - Unidade II 74 | * Projeto final 75 | * Apresentação 76 | 77 | ### Atividades Avaliativas - Unidade III 78 | * Projeto final 79 | * Relatório 80 | 81 | ### Trabalho Final 82 | Escolha de um problema relacionado ao trabalho do estudante ou área de interesse. Site para obter bases de dados: https://www.kaggle.com/ 83 | 84 | ## Bibliografia Básica 85 | * PROVOST, Foster & FAWCETT, Tom. **Data science para negócios: O que você precisa saber sobre mineração de dados e pensamento analítico de dados**. Alta Books, 2016. 86 | * VANDERPLAS, Jake. **Python data science handbook: Essential tools for working with data.** " O'Reilly Media, Inc.", 2016. 87 | * MÜLLER, Andreas C.; GUIDO, Sarah. **Introduction to machine learning with Python: a guide for data scientists.** " O'Reilly Media, Inc.", 2016. 88 | * GÉRON; **Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems**. O’REILLY, 2017. 89 | * MITCHELL; **Machine Learning**, Publisher: McGraw-Hill Science/Engineering/Math, 1997. 90 | * NEGNEVITSKY; **Artificial Intelligence: A Guide to Intelligent Systems**, Second Edition, Publisher Addison Wesley. 91 | * HAYKIN; **Neural Networks and Learning Machines** (3rd Edition), Publisher: Pearson. 92 | * JOSHI; **Artificial Intelligence with Python**, Packt Publisher, 2017. 93 | * BISHOP; **Pattern Recognition and Machine Learning**, Springer, 2006. 94 | * RUSSELL, STUART; NORVIG, PETER; **Inteligência Artificial**, 3. edição, Prentice Hall. 95 | * BRAGA; CARVALHO; e LUDERMIR; **Redes neurais artificiais: teoria e aplicações**, 2007 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | ### Introdução sobre Rede SOM 105 | * [Vídeos e Form: Rede SOM](https://docs.google.com/forms/d/e/1FAIpQLSemMYcbVnQgDOYMIEB9M_uaK2RSLciTqzgdIZtwAn2vB_KQsA/viewform?usp=sf_link) 106 | * [Slides](https://docs.google.com/presentation/d/1vGS--E6VbtohvVkUo23GM-0MsL-EMTnxAXKcSHiomLI/edit?usp=sharing) 107 | * [Exemplo de código: visualizar os perfis de alunos da Escola de Ciência e Tecnologia da UFRN](https://colab.research.google.com/drive/1PX9YlNGx_pjgesMsnhyjrXI-nsuJOdWI?usp=sharing) 108 | 109 | ### SOM 110 | * [Aula prática: introdução à rede SOM - Visualização de Dados](https://youtu.be/-mEn7puBD84) 111 | * [Código](https://colab.research.google.com/drive/1S-aMgBqFe9OgGdjURrWs86l7LaHLRuRJ?usp=sharing) 112 | 113 | ### Prátrica com SOM 114 | * [Vídeo: Análise de perfis e desempenho em LoP](https://youtu.be/RFi62fy17tY) 115 | * [Código: Análise de perfis e desempenho em LoP](https://colab.research.google.com/drive/1lVfiGPf1yyDx7Zv_AUrS4o3bgO0E0EzH?usp=sharing) 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | ### Introdução sobre Processamento de Linguagem Natural (NLP) 124 | * [Slides: NLP ](https://docs.google.com/forms/d/e/1FAIpQLScSCcux1V-fKBrYJAC_p_tqMSSSIIzvqPOU2Po59p6XiMnSmg/viewform?usp=sf_link) 125 | * [Form e vídeos](https://forms.gle/UAbKYR8AesufY6q38) 126 | * [Código: Análise de sentimentos ](https://colab.research.google.com/drive/1n80Us6FJZ74XyYIyl8iiqbSyIBapk9Yj?usp=sharing) 127 | 128 | ### Processamento de Linguagem Natural 129 | * [Aula prática - parte 1: Introdução à Processamento de Linguagem Natural](https://youtu.be/ZnGC0tQLjNM) 130 | * [Código](https://colab.research.google.com/drive/1otpdkZhfhBwJrU6jD8pvtQAzzsrn-lGo?usp=sharing) 131 | * [Aula prática - parte 2: Introdução à Processamento de Linguagem Natural](https://youtu.be/gcbeEvpwCZ0) 132 | * [Código](https://colab.research.google.com/drive/1eJRivNcV_ZdqJqEoX9WhcnusV2-sRKm1?usp=sharing) 133 | 134 | 135 | 136 | #### Extras 137 | 138 | ##### Uso de regeressão 139 | * Monte sua equipe 140 | * Faça uma cópia do exemplo: "Base de dados de aluguel" ([clique aqui para acessar](https://colab.research.google.com/drive/1N2tsSSG18GhNsSxHKfE61WAGzZaf9Mww?usp=sharing)) 141 | * Complete o código de exemplo seguindo as instruções 142 | 143 | ## Exemplos 144 | * Implementação do perceptron, https://github.com/ect-info/ml/tree/master/guias/Perceptron 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Semestres 2 | 3 | * [2024.2](https://github.com/ect-info/ml/blob/master/2024_2.md) 4 | * [2023.1](https://github.com/ect-info/ml/blob/master/2023_1.md) 5 | * [2020.2](https://github.com/ect-info/ml/blob/master/2020_2.md) 6 | * [2020.1](https://github.com/ect-info/ml/blob/master/2020_1.md) 7 | * [2019.2](https://github.com/ect-info/ml/blob/master/2019_2.md) 8 | -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/Deep Learning_Leandro_Tobias.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/CharRec/Deep Learning_Leandro_Tobias.pdf -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/Identificação de letras usando Multilayer Perceptron - Lucas Gualberto.md: -------------------------------------------------------------------------------- 1 | # Identificação de letras usando Multilayer Perceptron (MLP) 2 | 3 | ## Introdução 4 | 5 | A base de dados utilizada para esse trabalho é composta de 117 imagens de cada letra do alfabeto da língua portuguesa. 6 | O objetivo principal de utilização dessa base de dados é identificar, dada uma letra qualquer, que letra do alfabeto 7 | a imagem fornecida contém. 8 | 9 | ## Metodologia 10 | 11 | O modelo de machine learning (ML) usado para a classificação das letras foi o MLP. Para entender melhor o funcionamento desse modelo é impressindível aprender sobre a ML da qual ele é derivado, o Perceptron. Esse funciona de uma maneira semelhante a um neurônio, onde os dentritos recebem o estimulos elétrico, esses estímulos são processados pelo núcleo do neurônio e depois transmitidos através dos axônios para os dentritos de outra célula nervosa. A sinapse que é a passagem dessa informação de uma célula para outra por meio dos neurotransmissores é regulada pela quantidade desses neurotransmissores presentes em cada terminação dos neurônios. Tal funcionamento é abstraido para o Perceptron em forma de pesos (neurotransmissores) que regulam unidades (neurônios) que podem possuir diferentes funções de ativação. O Multilayer Perceptron difere da Perceptron quanto ao número de camadas existentes. No Perceptron existem apenas 2 camadas, onde uma é de entrada e outra é de saída. Já na MLP além das camadas de entrada e saída existem camadas escondidas que podem tem números variados de unidades. A MLP usada para esse trabalho foi configurada com 4 camadas, sendo a de entrada uma camada de convolução2D que passa 30 filtros de 5 por 5 numa matriz de 28 por 32 por 1 e ativação 'relu'. A segunda camada também de revolução de 15 filtros de 3 por 3 e ativação 'relu'. A terceira camada e a única camada escondida utilizada para esse trabalho foi composta de 500 neurônios com ativação 'relu'. Por fim a última camada com 26 camadas e ativação 'softmax'. 12 | 13 | ## Códigos 14 | 15 | * Mostrar trechos de códigos mais importantes e explicações. 16 | 17 | ## Experimentos 18 | 19 | * Descrever em detalhes os tipos de testes executados. 20 | * Descrever os parâmentros avaliados. 21 | * Explicar os resultados. 22 | 23 | 24 | -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/Relatorio IV - CharRec (Luis Fernando Tavares).docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/CharRec/Relatorio IV - CharRec (Luis Fernando Tavares).docx -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/Relatorio_Jorge_e_Severino.md: -------------------------------------------------------------------------------- 1 | # Reconhecimento de caracter escrito à mão 2 | #### JORGE LUÍS GURGEL FERNANDES
3 | #### SEVERINO MIGUEL DO NASCIMENTO NETO

4 | 5 | ## Introdução 6 |

7 | O presente relatório tem como propósito, descrever o desenvolvimento de um programa que reconhece um caracter escrito a mão por meio de uma rede neural. 8 | 9 | ## Metodologia
10 |

11 | Para cumprir com o nosso objetivo, utilizamos a linguagem Python e, através dela, a rede neural Multilayer Perceptron(MLP), em conjunto com a base de dados que foi disponibilizada em sala de aula. 12 | 13 | ## Base de dados 14 | A base de dados consiste em um conjunto de arquivos de imagens com caracteres escritos à mão, este serão usados como ferramenta de treinamento para o funcionamento do código. 15 |
16 | 17 | ## Passo à passo:
18 | 19 | ### Trechos principais: 20 | Trecho em que foi inserida as devidas bibliotecas e base de dados manipulada: 21 |
22 | 23 | ```py 24 | import os 25 | import numpy as np 26 | import cv2 27 | from sklearn.model_selection import train_test_split 28 | import matplotlib.pyplot as plt 29 | from keras.models import Sequential 30 | from keras.layers import Dense 31 | from keras.optimizers import Adam 32 | from keras.utils.np_utils import to_categorical 33 | ``` 34 |
35 | 36 | Após descompactar os arquivos foi utilizado uma instrução com a finalidade de identificar as imagens [images] e os rótulos [labels], armazenado em duas matrizes 37 | 38 | ```py 39 | images = [] 40 | labels = [] 41 | def traverse_dir(path): 42 | for file_or_dir in os.listdir(path): 43 | abs_path = os.path.abspath(os.path.join(path, file_or_dir)) 44 | print(abs_path) 45 | if os.path.isdir(abs_path): # dir 46 | traverse_dir(abs_path) 47 | else: # file 48 | if file_or_dir.endswith('.jpg'): 49 | image = read_image(abs_path) 50 | images.append(image) 51 | labels.append(path[len(path)-1]) 52 | 53 | return images, labels 54 | ``` 55 |
56 | 57 | Após isso, o código manipula as imagens deixando-as em tons de cinza e inverte as suas cores, com o propósito de facilitar a identificação do caracter, para inseri-los nos vetores de imagens e rótulos. 58 |
59 | 60 | ```py 61 | def read_image(file_path): 62 | image = cv2.imread(file_path) 63 | # converte para tons de cinza 64 | gray_scale = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 65 | # inverte a cor 66 | image = cv2.bitwise_not(gray_scale) 67 | return image 68 | 69 | 70 | def extract_data(path): 71 | images, labels = traverse_dir(path) 72 | images = np.array(images) 73 | 74 | return images, labels 75 | ``` 76 |
77 | 78 | Na trecho abaixo selecionamos o valor de 25% para teste, restando 75% para o treinamento. 79 | 80 | ```py 81 | X_train, X_test, y_train, y_test = train_test_split(images, labels_enc, test_size=0.25, random_state=1) 82 | ``` 83 | 84 | 85 | 86 |
87 | 88 | Depois manipulamos os parâmetros do treinamento com a finalidade de obter uma maior acurácia. 89 | 90 | ```py 91 | history = model.fit(X_train, y_train, validation_split=0.1, epochs=250, batch_size = 80, verbose = 1, shuffle = 15) 92 | ``` 93 | 94 | Finalmente obtivemos uma acurácia de 61%. 95 | 96 | ## Teste 97 | 98 | Para realizar o teste com o código desenvolvido, carregamos uma imagem aleatória de um caracter escrito à mão para que o código faça o tratamento da imagem e reconhecimento desse caracter. 99 | 100 | ### Exemplo: 101 | 102 | carregamento da imagem: 103 |
104 | 105 | 106 | imagem tratada e predição: 107 |
108 | 109 | 110 | 111 | 112 | ## Conclusão
113 | 114 |

115 | Percebe-se que uma acurácia de 61% não é suficientemente bom, dado que poucos teste obtiveram sucesso, mas isso se deu devido ao banco de dados insuficiente e falho, para um processo com essa complexidade, seria necessário uma base de dados maior e consequentemente mais completa. 116 | 117 |

118 | 119 | -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/Relatorio_Reconhecimento_de_Caracteres_Igor_Rony_Thatiana.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/CharRec/Relatorio_Reconhecimento_de_Caracteres_Igor_Rony_Thatiana.pdf -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/Relatrio4-Vilson.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/CharRec/Relatrio4-Vilson.pdf -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/maciel_barbosa.md: -------------------------------------------------------------------------------- 1 | # Reconhecimento de Letras com CNN 2 | ## Introdução 3 | 4 | A equipe é composta apenas por mim. 5 | O objetivo é identificar a letra presente em uma imagem. Para isso foi utilizada uma base de dados composta por 127 6 | exemplos de cada letra, totalizando 3302 imagens. 7 | 8 | ## Metodologia 9 | 10 | O desevolvimento da atividade pode ser dividida em 3 etapas: preparação dos dados, treinamento e teste. Na preparação, 11 | a base de dados é convertida para um formato adequado para o treinamento. No treinamento é definida a configuração da CNN e feita 12 | a compilação do modelo. 13 | No teste é verificado a saída de alguns exemplos. 14 | 15 | ## Códigos 16 | 17 | Definição do modelo: 18 | ``` 19 | model = Sequential() 20 | model.add(Conv2D(32, (5,5), input_shape=(28,32,1), activation='relu')) 21 | model.add(MaxPooling2D(pool_size=(2,2))) 22 | model.add(Conv2D(64,(3,3), activation='relu')) 23 | model.add(MaxPooling2D(pool_size=(2,2))) 24 | model.add(Dropout(0.2)) 25 | model.add(Flatten()) 26 | model.add(Dense(500, activation='relu')) 27 | model.add(Dense(num_classes, activation='softmax')) 28 | model.compile(Adam(lr=0.01), loss='categorical_crossentropy', metrics=['accuracy']) 29 | ``` 30 | 31 | ## Experimentos 32 | 33 | Os resultados dos testes não foram satisfatórios. Acredito que seria mais bem sucedido caso houvesse uma melhor distribuição dos 34 | datasets de validação para cada tipo de letra. 35 | ### Base de dados 36 | * Caracteres escritos a mão, https://drive.google.com/open?id=1B4fy3Nqy9AoEnC2MuuPaCstcrJ-FZstW 37 | 38 | -------------------------------------------------------------------------------- /atividades/2019.2/CharRec/modelo_de_relatorio.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | * Apresentar os membros da equipe. 6 | * Descrever o problema. 7 | * Descrever a base de dados. 8 | 9 | ## Metodologia 10 | 11 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 12 | * Explicar as etapas do treinamento e teste. 13 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 14 | 15 | ## Códigos 16 | 17 | * Mostrar trechos de códigos mais importantes e explicações. 18 | 19 | ## Experimentos 20 | 21 | * Descrever em detalhes os tipos de testes executados. 22 | * Descrever os parâmentros avaliados. 23 | * Explicar os resultados. 24 | ### Base de dados 25 | * Dígitos escritos a mão, https://drive.google.com/open?id=1MQ799fvtrs6pXNI3aDB2otEpdg9N-E7H 26 | * Caracteres escritos a mão, https://drive.google.com/open?id=1B4fy3Nqy9AoEnC2MuuPaCstcrJ-FZstW 27 | 28 | -------------------------------------------------------------------------------- /atividades/2019.2/MLP/Leandro_Tobias.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/MLP/Leandro_Tobias.pdf -------------------------------------------------------------------------------- /atividades/2019.2/MLP/Relatorio I - MLP (Luis Fernando Tavares).docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/MLP/Relatorio I - MLP (Luis Fernando Tavares).docx -------------------------------------------------------------------------------- /atividades/2019.2/MLP/Relatorio_Alysson_Lima_MLP.md: -------------------------------------------------------------------------------- 1 | # Previsão de situação de aprovação de aluno com uso de MLP 2 | ## Introdução 3 | A atividade foi desenvolvida por Alysson Rafael Oliveira de Lima. Trata-se da necessidade de ter uma previsão o mais cedo possível da probabilidade de reprovação de um aluno, para que seja tomada alguma providência de acompanhamento, para tentar reverter a reprovação. Para isso foi fornecido uma base de dados da turma de Lógica de Programação, da Escola de Ciências e Tecnologia, da UFRN nos períodos de 2017.2 até 2019.1, contendo informações sobre notas de prova, quantidade de questões feitas na prova, quantidades de exercícios submetidos a cada semana dentre outros dados extraídos durante o período. 4 | 5 | ## Metodologia 6 | Para esse experimento foi utilizado o modelo de Machine Learn Multilayer Perceptron - MLP. O perceptron multicamadas é uma rede neural semelhante à perceptron, porém com mais de uma camada de neurônios em alimentação direta, sendo composta por camadas ligadas entre si por sinapses com pesos. 7 | Para o desenvolvimento da rede neural foi utilizado a linguagem de programação Python e o modelo de classificação “**Sequential**” da biblioteca Keras. 8 | Os dados foram divididos em 80% para treinamento e 20% para testes. 9 | Como a proposta é prever a situação de aprovação do aluno com menos tempo possível para que seja realizada alguma intervenção, os atributos foram analisados e escolhidos de acordo com a precedência temporal durante o semestre. Foram realizados vários testes com diferentes quantidades de atributos, chegando a alcançar o melhor resultado, 83% de acertos, utilizando os seguintes atributos: 10 | 11 | * **notaProva1** - nota da primeira prova; 12 | * **qsub1** - quantidade de submissões da lista 1; 13 | * **qsub2** - quantidade de submissões da lista 2; 14 | * **qsub3** - quantidade de submissões da lista 3; 15 | * **qsubp1** - quantidade de questões submetidas para a prova 1; 16 | * **igualACeml123** - quantidade de submissões em que o aluno acertou 100%. 17 | 18 | A rede neural foi construída utilizando 3 níveis. Como camada de entrada um nível com 6 dimensões e 6 unidades de neurônios e função de ativação ‘**relu**’. O segundo nível da rede foi incluído com 15 neurônios e também com a função de ativação ‘**relu**’. A camada de saída foi incluída com uma unidade apenas e com a função de ativação ‘**sigmoid**’. 19 | Para o treinamento da rede, após alguns testes, foi definido o valor 2 para o “**batch_size**” e o valor 40 para “**epochs**”, gerando assim os resultados apontados. 20 | 21 | ## Códigos 22 | 23 | Os níveis definidos para a rede MLP. 24 | ```py 25 | # Adicionando a camada de entrada e o primeiro nível 26 | classifier.add(Dense( activation = 'relu', input_dim = 6, units = 6, kernel_initializer = 'uniform')) 27 | # Adicionando o segundo nível 28 | classifier.add(Dense( activation = 'relu', units = 15, kernel_initializer = 'uniform' )) 29 | # Adicionando a camada de saída 30 | classifier.add(Dense( activation = 'sigmoid', units = 1, kernel_initializer = 'uniform')) 31 | ``` 32 | 33 | A configuração do treinamento: 34 | ```py 35 | # Treinando a rede 36 | classifier.fit(X_train, y_train, batch_size = 2, epochs = 40) 37 | ``` 38 | 39 | ## Conclusão 40 | Através do uso do modelo de rede neural Multicamadas Perceptron, juntamente com os atributos selecionados dos dados fornecidos e das configurações escolhidas para o treinamento da rede foi possível obter uma previsão razoável dos discentes da disciplina de Lógica de Programação. Sendo possível com 83% prever a situação do discente já na primeira unidade e assim haver tempo hábil para poder interferir e analisar formas para que seja possível evitar a reprovação do mesmo. 41 | -------------------------------------------------------------------------------- /atividades/2019.2/MLP/Relatorio_Igor_Rony_Thati_MLP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/MLP/Relatorio_Igor_Rony_Thati_MLP -------------------------------------------------------------------------------- /atividades/2019.2/MLP/Relatório MLP - Vilson.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/MLP/Relatório MLP - Vilson.pdf -------------------------------------------------------------------------------- /atividades/2019.2/MLP/Relatório_Michel.md: -------------------------------------------------------------------------------- 1 | # Previsão de Aprovação do Discente em LOP com MLP 2 | 3 | ## Introdução 4 | 5 | O documento presente foi desenvolvido pelo bacharelando em Ciência e Tecnologia com ênfase em Computação Aplicada da Universidade Federal do Rio Grande do Norte (UFRN), Michel Nunes. 6 | Tráta-se da necessidade de uma previsão de situação de risco de um aluno na disciplina de Lógica de Programação da Escola de Ciência e Tecnologia baseada no seu desempenho nas primeiras semanas no curso. 7 | A base de dados foi disponibilizada pelo professor Orivaldo Vieira e é composta com diversos campos que registram dados como: Notas das provas da primeira e segunda unidades; Quantidade de questões em cada prova; Quantidade de questões feitas por cada discente; Quantidade de questões submetidas em cada lista de exercícios; Dentre outros atributos relevantes à análise. 8 | 9 | ## Metodologia 10 | 11 | O modelo de _machine learning_ utilizado foi o MultLayer Perceptron (MLP), que é o método de criar uma rede neural artificial no qual utiliza-se de um estímulo que iniciará uma atualização de parâmetros até atingir o critério de parada. Cada atualização passa pela regra de correção de erros, procurando diminuí-los a cada iteração. Sendo assim, de fato, o modelo aprende com os testes escolhidos. 12 | Foi utilizada a classe train_test_split da biblioteca sklearn.model_selection para realizar o treinamento e teste, onde 20% (vinte por cento) dos dados foram escolhidos para o teste. 13 | Os atributos foram selecionados com o palpite de que a aprovação do aluno na disciplina depende do seu aprendizado e seu aprendizado depende da sua prática, já que se trata de uma disciplina onde a prática é o que leva ao sucesso. Considerando a quantidade de exercícios propostos, a primeira unidade possui informações suficientes para uma análise de risco. 14 | 15 | ## Códigos 16 | ```py 17 | # CONFIGURANDO A CAMADA DE ENTRADA COM TRÊS NEURÔNIOS, MAIS TRÊS NA CAMADA ESCONDIDA 18 | classifier.add(Dense( activation = 'relu', input_dim = 3, units = 3, kernel_initializer = 'uniform')) 19 | 20 | 21 | ### UMA CAMADA ESCONDIDA COM SEIS NEURÔNIOS 22 | classifier.add(Dense( activation = 'relu', units = 6, kernel_initializer = 'uniform' )) 23 | 24 | 25 | ### CAMADA DE SAÍDA - APENAS UMA SAIDA 26 | classifier.add(Dense( activation = 'sigmoid', units = 1, kernel_initializer = 'uniform')) 27 | 28 | ### Ajuste do RNA ao conjunto de treinamento 29 | classifier.fit(X_train, y_train, batch_size = 5, epochs = 40) 30 | ``` 31 | ## Experimentos 32 | 33 | Os parâmetros avaliados foram as notas da primeira prova, a quantidade de submissões de questões da lista até a primeira prova e a quantidade de submissões até a primeira prova as quais o aluno acertou 100%. 34 | ```py 35 | # Parâmetros de entrada e saída 36 | X = dataset.iloc[:,[2,17,20]].values 37 | y = dataset.iloc[:, 11].values 38 | 39 | ### Saída 40 | Taxa de acerto: 41 | 0.8333333333333334 42 | ``` 43 | ## Conclusão 44 | De acordo com a saída apresentada, o modelo de machine learning utilizado tem 83% de chance de prever a aprovação de um aluno na disciplina de LOP avaliando seu desempenho na primeira unidade (parâmetros). 45 | -------------------------------------------------------------------------------- /atividades/2019.2/MLP/modelo_de_relatorio.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | * Apresentar os membros da equipe. 6 | * Descrever o problema. 7 | * Descrever a base de dados. 8 | 9 | ## Metodologia 10 | 11 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 12 | * Explicar as etapas do treinamento e teste. 13 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 14 | 15 | ## Códigos 16 | 17 | * Mostrar trechos de códigos mais importantes e explicações. 18 | 19 | ## Experimentos 20 | 21 | * Descrever em detalhes os tipos de testes executados. 22 | * Descrever os parâmentros avaliados. 23 | * Explicar os resultados. 24 | -------------------------------------------------------------------------------- /atividades/2019.2/MLP/relatorioLOP_Severino_e_Jorge.md: -------------------------------------------------------------------------------- 1 | # USO DE MLP PARA PREVISÃO DE POSSÍVEL REPROVAÇÃO NA DISCIPLINA DE LOP 2 | 3 | ## Introdução 4 |

O grupo é composto por Jorge Luís e Severino Miguel. 5 | O presente relatório visa resolver o problema de uma possível situação de risco de reprovação de um aluno com o uso de uma base de dados e a ferramenta Multilayer Perceptron, para que possam ser tomadas medidas para prevenir esta reprovação. 6 | Para que seja possível realizar esse processo, utilizamos uma base de dados coletada pelos professores de LOP da Escola de Ciências e Tecnologia da UFRN, de 2017.1 até 2019.1

7 | 8 | ## Metodologia 9 |

Utilizamos a linguagem de programação python para desenvolver os códigos e dentro dessa linguagem a ferramenta escolhida foi o Multilayer Perceptron, que trata-se de uma rede neural com várias camada de neurônios em alimentação direta. 10 | Esse tipo de rede é composta por camadas de neurônios ligadas entre si por sinapses com pesos. Com isso, aplicamos a função StandardScaler, da biblioteca Sklearn.preprocessing, fizemos os testes com 25% dos dados , restando 75% para treino. 11 | Por fim, para realizar o experimento, selecionamos os dados que foram extraídos no período da primeira unidade 12 | (de 2017.2 até 2019) e aplicamos o algoritmo com a finalidade de obter uma previsão sobre a situação de algum aluno em um tempo hábil e com isso ser tomado alguma medida à respeito.

13 | 14 | ## Códigos
15 | 16 | ### Trechos principais: 17 | 18 | ```py 19 | #Selecionando quantidade de parâmetros de entrada, primeira camada escondida 20 | classifier.add(Dense( activation = 'relu', input_dim = 6, units = 20, kernel_initializer = 'uniform')) 21 | 22 | #Segunda camada escondida 23 | classifier.add(Dense( activation = 'relu', units = 20, kernel_initializer = 'uniform' )) 24 | 25 | #Camada de saída 26 | classifier.add(Dense( activation = 'sigmoid', units = 1, kernel_initializer = 'uniform'))” 27 | ``` 28 | ```py 29 | #Ajuste do treinamento 30 | classifier.fit(X_train, y_train, batch_size = 5, epochs = 60) 31 | ``` 32 | #### Link para código fonte:
33 | CLIQUE AQUI

34 | 35 | 36 | 37 | ## Experimentos 38 | 39 | ### Parâmetros manipulados: 40 | * notaProva1 : Nota da prova, unidade 1 41 | * questoesFeitasProva1 : Quantidade de questões feitas na prova, unidade 1 42 | * qsub1: Quantidade de submissões das listas correspondente (seja lab ou exercício 1) 43 | * qsub2: Quantidade de submissões das listas correspondente (seja lab ou exercício 2) 44 | * qsub3: Quantidade de submissões das listas correspondente (seja lab ou exercício 3) 45 | * igualACeml123: Quantidade de submissões em que o aluno acertou 100% 46 | 47 | 48 |

Através da manipulação dos dados, conseguimos prever uma estimativa de 84% das situações finais, podendo assim ajudar de uma forma mais eficiente os alunos na obtenção de um melhor rendimento acadêmico.

49 | -------------------------------------------------------------------------------- /atividades/2019.2/MLP/relatorioMLP - JoaoMarcos.md: -------------------------------------------------------------------------------- 1 | # Previsão de aprovação de alunos usando MLP 2 | 3 | ## Introdução 4 | Este trabalho foi desenvolvido por João Marcos Viana Silva, com orientação do prof. Orivaldo Santana. 5 | A atividade tinha como objetivo conseguir prever logo nas primeiras semanas, com uma margem considerável de aceitação, 6 | a aprovação ou não de um aluno da disciplina de Lógica de Programação, ministrada na Escola de Ciências e Tecnologia da UFRN. 7 | Com isso, seria possível orientar melhor os alunos em situação crítica, para que o prognóstico possa ser revertido, 8 | além de conseguir uma análise mais efetiva sobre quais atributos do aluno mais impactam numa eventual aprovação. 9 | A base de dados utilizada foi gerada e disponibilizada pelo professor e equipe do Sistema LoP, 10 | nela estão contidas dezenas de atributos relacionados a resolução de questões por parte dos alunos que cursaram a disciplina no período entre 2017 e 2019, como quantidade e notas. 11 | 12 | ## Metodologia 13 | O modelo utilizado para o desenvolvimento do algoritmo foi o Multilayer Perceptron (MLP), cuja estrutura deriva do Perceptron convencional. A arquitetura do MLP é baseada no próprio cérebro humano, inspirando-se em estruturas como dentritos e neurônios, formando assim as chamadas Redes Neurais Artificiais. Esse tipo de rede neural é constituída por pelo menos três camadas. A primeira delas é a camada de entrada, responsável por captar os dados iniciais e processa-los, aplicando atributos que chamamos de pesos, gerando assim como saída um número real para cada componente. Como toda rede neural está conectada, as saídas da camada de entrada serão utilizadas como entradas na segunda parte do modelo. O nível intermediário das MLPs se dá nas camadas escondidas, as quais recebem as saídas da camada inicial e repetem o seu procedimento, processando os dados, corrigindo os pesos e gerando novos valores. Ao final, os valores gerados nas camadas escondidas passam por uma regra de propagação, o que efetivamente classificará cada dado, gerando como resposta o resultado da previsão. 14 | 15 | A cada interação dos dados com as camadas o algoritmo vai tentanto corrigir os erros e ajustar os pesos para aproximar cada vez mais o valor daquele considerado o ideal, que representa a classe do qual ele pertence. Sendo assim, é necessário que a rede neural interaja com uma série de dados antes de ser capaz de realizar sua previsão mais embasada. Esse processo é chamado de treinamento. Somente após isso, o algoritmo estará hábil para realizar os testes, onde classificará dados que não teve contato previamente, checando assim sua acurácia. 16 | Para nossa atividade 75% dos dados foram usados para o treinamento da rede neural, enquanto os 25% restantes foram reservados para os testes. 17 | 18 | Devido a imensa quantidade de dados e atributos na base de dados do sistema LoP, fez-se necessário realizar uma espécie de filtragem manual, selecionando um grupo de atributos que julgamos ter mais influência na previsão. Assim, o processo se torna mais rápido e mais eficiente, já que o algoritmo não precisa analisar dados que podem não ter influência alguma na aprovação ou não do aluno. Além disso, o objetivo do trabalho é ter um diagnóstico para o aluno já na primeira unidade, enquanto ainda há tempo para uma mudança de postura. Então, não é viável utilizar dados referentes a metade final do semestre. 19 | 20 | Após uma série de testes, os atributos que mais se mostraram relevantes foram: 21 | * **notaProva1** - Referente a nota do aluno na primeira prova; 22 | * **igualACeml123** - Quantidade de submissões em que o aluno atingiu 100% de acerto; 23 | * **subListaExer45** - Quantidade de submissões do aluno nas listas de exercícios durante as semanas 4 e 5. 24 | 25 | Analisando tais atributos, podemos concluir que a nota da primeira prova é o mais forte indicador do desempenho do aluno, seguido pela quantidade de quetões certas nas primeiras listas, o que indica que alunos com mais acertos nas listas tendem a ter melhor desempenho. Por fim, a quantidade de submissões durante a quarta e quinta semanas, geralmente o período da primeira avaliação, revela o quanto o aluno está se preparando. 26 | 27 | ## Códigos 28 | A atividade foi desenvolvida integralmente na linguagem Python, utilizando as bibliotecas Pandas e Keras. 29 | 30 | *

Seleção de atributos

31 | ~~~ python 32 | #notaProva1 33 | #igualACem123 34 | #subListaExer45 35 | X = dataset.iloc[:,[2,20,48]].values 36 | y = dataset.iloc[:, 11].valuesse( activation = 'relu', units = 6, kernel_initializer = 'uniform' )) 37 | ~~~ 38 | As colunas 2,20 e 48 correspondem respectivamente a notaProva1, igualACeml123 e subListaExerc45. 39 | 40 | *

Separação Treinamento/Teste

41 | ~~~ python 42 | # Splitting the dataset into the Training set and Test set 43 | from sklearn.model_selection import train_test_split 44 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 45 | ~~~ 46 | 25% dos dados reservados para a fase de testes. 47 | *

Criação das Camadas

48 | ~~~ python 49 | #Adicionando a camada de entrada e a primeira camada escondida 50 | classifier.add(Dense( activation = 'relu', input_dim = 3, units = 3, kernel_initializer = 'uniform')) 51 | 52 | #Adicionando segunda camada escondida 53 | classifier.add(Dense( activation = 'relu', units = 6, kernel_initializer = 'uniform' )) 54 | 55 | #Adicionando camada de saída 56 | classifier.add(Dense( activation = 'sigmoid', units = 1, kernel_initializer = 'uniform')) 57 | ~~~ 58 | Acima podemos ver que foram usadas três atributos para entrada (**input_dim = 3**), e três neurônios na camada (**units = 3**). 59 | Já na segunda camada escondida, seis neurônios foram setados, enquanto a camada de sáida é formada pela propagação 'sigmoid'. 60 | 61 | *

Treinamento

62 | ~~~ python 63 | # Fitting the ANN to the Training set 64 | classifier.fit(X_train, y_train, batch_size = 10, epochs = 60) 65 | ~~~ 66 | O treinamento foi realizado em 60 épocas, ou seja, repetido 60 vezes, enquanto o **batch_size = 10** 67 | 68 | ## Experimentos 69 | *

Matriz de Confusão

70 | ~~~ python 71 | Matriz de Confusão: 72 | [[43 7] 73 | [13 49]] 74 | Taxa de acerto: 75 | 0.8214285714285714 76 | 112 77 | ~~~ 78 | A matriz de confusão representa a quantidade de valores para os quais o algoritmo obteve um resultado de **43 Verdadeiros Positivos e 49 Verdadeiros Negativos**, correspondentes aos acertos e **7 Falsos Positivos e 13 Falsos Negativos**, totalizando uma taxa de acerto de **82%** 79 | 80 | Com isso, o resultado obtido pela rede neural baseada em MLP com os parâmetros utilizados pode ser considerado satisfatório. O valor de 82% não é tão considerável quanto poderia ser. Entretanto, considerando o ruído da base de dados aliado a complexidade do problema, torna o resultado bom, capaz de dar um diagnóstico rápido para o aluno. Além disso, vários valores diferentes foram testados para as variáveis do modelo, concluindo assim que a quantidade de épocas e neurônios utilizada foi mais eficente. 81 | 82 | -------------------------------------------------------------------------------- /atividades/2019.2/MLP/relatorio_sistema-LOP_Lucas-Gualberto.md: -------------------------------------------------------------------------------- 1 | # Multilayer Perceptron do sistema LOP 2 | 3 | ## Introdução 4 | 5 | O sistema LOP consiste de um site elaborado pela equipe de professores e alguns aluno da Escola de Ciências e Tecnologia (ECT). Essa aplicação tem como objetivo facilitar tanto a vida dos alunos, reunindo várias listas de atividades que são auto corrigidas dando um feedback imediato que aponta onde estão os erros de acordo com vários casos de teste, quanto a vida dos professores, que conseguem ter um tempo de correção de atividades e avaliações bastente reduzido e além disso monitorar a utilização do sistema pelos alunos, podendo fazer uma analise com os dados de turmas, comparar com turmas anteriores entre outras possibilidades. A base de dados usada para esse trabalho foi gerada a partir de dados extraidos desse sistema desde listas de exercícios e laboratório, notas de avaliações, médias, quantidade exercícios feitos por semana, etc. O objetivo geral a ser alcançado é utilizar esses dados para prever a situação de aprovação ou reprovação do aluno da maneira mais rápida possível para que possam ser tomadas medidas ainda durante o semestre para que o aluno possa reverter a situação de reprovação eminente. 6 | 7 | ## Metodologia 8 | 9 | O modelo de machine learning (ML) usado para a previsão da situação de aprovação ou reprovação dos alunos é o Multilayer Perceptron. Para entender melhor o funcionamento desse modelo é impressindível aprender sobre a ML da qual ele é derivado, o Perceptron. Esse funciona de uma maneira semelhante a um neurônio, onde os dentritos recebem o estimulos elétrico, esses estímulos são processados pelo núcleo do neurônio e depois transmitidos através dos axônios para os dentritos de outra célula nervosa. A sinapse que é a passagem dessa informação de uma célula para outra por meio dos neurotransmissores é regulada pela quantidade desses neurotransmissores presentes em cada terminação dos neurônios. Tal funcionamento é abstraido para o Perceptron em forma de pesos (neurotransmissores) que regulam unidades (neurônios) que podem possuir diferentes funções de ativação. A Multilayer Perceptron difere da Perceptron quanto ao número de camadas existentes. No Perceptron existem apenas 2 camadas, onde uma é de entrada e outra é de saída. Já na MLP além das camadas de entrada e saída existem camadas escondidas que podem tem números variados de unidades. 10 | A MLP usada para o sistema LOP foi configurada com 3 camadas, sendo a de entrada com duas dimensões e a camada escondida com oito unidades, em que ambas com função de ativação 'relu', e por fim a camada de saída com uma unidade e função de ativação 'sigmoid'. 11 | Para escolha das melhores combinações foram feitos testes de característas de atributos individuais e os dois atributos que foram escolhidos para essa tarefa de previsão foram a nota da primeira unidade (notaProva1) e a quantidade de questões diferentes submetidas nas listas de lab a cada 2 semanas das semanas, mais expecificamente das semanas 4 e 5 (diferentesExerSemanas45). Essa combinação gerou um resultado de 83,33% de acerto de uma base de teste com 90 amostras. 12 | 13 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 14 | * Explicar as etapas do treinamento e teste. 15 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 16 | 17 | ## Códigos 18 | 19 | ```python 20 | # Splitting the dataset into the Training set and Test set 21 | from sklearn.model_selection import train_test_split 22 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0) 23 | ``` 24 | separando 80% da base de dados para treinamento e 20% para testes.\ 25 | 26 | ```python 27 | # Adding the input layer and the first hidden layer 28 | classifier.add(Dense( activation = 'relu', input_dim = 2, units = 8, kernel_initializer = 'uniform')) 29 | 30 | # Adding the output layer 31 | classifier.add(Dense( activation = 'sigmoid', units = 1, kernel_initializer = 'uniform')) 32 | ``` 33 | criando a camada de entrada com duas dimenções, a camada escondida com 8, ambas com ativação 'relu', e por fim a camada de saida unidimensional e ativação 'sigmoid'.\ 34 | ```python 35 | # Fitting the ANN to the Training set 36 | classifier.fit(X_train, y_train, batch_size = 2, epochs = 50) 37 | ``` 38 | criando um batch size de 2 e 50 epochs para o processo de treinamento.\ 39 | 40 | 41 | ## Experimentos 42 | 43 | Os testes executados foram inicialmente com caracteristicas aleatórias da base de dados a fim de descobrir quais caracteristicas cobinadas geram melhor resposta da rede. Depois de várias mudanças de caracteristicas de entrada as 44 | que apresentam um amelhor combinação foram notaProva1 e diferentesExerSemanas45, que além de uma boa resposta da rede são parâmetros que podem ser retirados no início do semestre que é um ponto bastante importante para que o professor possa atuar para reverter uma possível situação de reprovação do aluno.\ 45 | 46 | >Matriz de Confusão: 47 | >[[32 6] 48 | > [ 9 43]] 49 | >Taxa de acerto: 50 | >0.8333333333333334 51 | >90 52 | \ 53 | A partir da matriz de confusão podemos concluir a taxa de acerto foi de 83,33% para uma amostra de 90. -------------------------------------------------------------------------------- /atividades/2019.2/SOM/Análise_do_perfil_ de_aprovacao_com_SOM-Lucas_Gualberto.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | A base de dados utilizada para esse trabalho é o histórico de submissões de atividades por semana dos alunos na disciplina de LOP. 6 | O objetivo de tratar com essa base de dados é achar o perfil de aprovação e reprovação dos alunos tendo em conta as suas submissões 7 | semanais. 8 | 9 | ## Metodologia 10 | 11 | O modelo de machine learning utilizado para a clusterização dos dados de submissões foi a SOM, self-organizing map. Consiste de uma rede neural não supervisionada que é responsável por criar um mapa dimensionado que descretiza a base de dados e a organiza de forma adequada. A SOM conta com um treinamento a partir de valores de entrada escritos na base de dados. Após o processo de treinamento, ele passará por uma fase de mapeamento, a qual será responsável por classificar de forma automática a base de dados em neurônios e organizando esses neurônios. A SOM foi configurada no tamanho de 6 por 6, com uma entrada de tamanho 21, sigma de 1 e taxa de aprendizagem de 0,4, pois apresentaram uma melhor configuração para as saidas. Para o treinamento aleatório foi setado 40000 iterações. 12 | 13 | ## Códigos 14 | 15 | ```python 16 | X_train = dataSet.iloc[:, 2:23].values 17 | target_train = dataSet.iloc[:,25].values 18 | 19 | [row, col] = X_train.shape 20 | ``` 21 | selecionando os dados para treinamento e o alvo do treinamento. 22 | 23 | ```python 24 | # Training the SOM 25 | tamanhoXdaRede = 6; 26 | tamanhoYdaRede = 6; 27 | quantidadeCaracteristicas = col 28 | from minisom import MiniSom 29 | som = MiniSom(x = tamanhoXdaRede, y = tamanhoYdaRede, input_len = quantidadeCaracteristicas, sigma = 1.0, learning_rate = 0.4) 30 | som.pca_weights_init(X_train) 31 | ``` 32 | definindo tamanho da rede, tamanho da entrada, sigma e learning_rate 33 | 34 | ```python 35 | # encontra o vencedor 36 | x = X_train[1,:] 37 | pos = som.winner(x) 38 | # matriz de zeros para contador de aprovados 39 | MContAp = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 40 | # matriz de zeros para o contador de reprovados 41 | MContT = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 42 | cont = 0; 43 | for x in X_train: 44 | pos = som.winner(x) 45 | if ((Y_train[cont] == 'APROVADO') or (Y_train[cont] == 'APROVADO POR NOTA')): #Aprovado 46 | MContAp[pos] += 1 47 | MContT[pos] += 1 48 | cont= cont+1 49 | ``` 50 | criando matriz de aprovados para cada posição da rede 6 por 6 e matriz de amostras totais por neurônio. 51 | 52 | ## Experimentos 53 | 54 | * Descrever em detalhes os tipos de testes executados. 55 | * Descrever os parâmentros avaliados. 56 | * Explicar os resultados. 57 | -------------------------------------------------------------------------------- /atividades/2019.2/SOM/Relat_Jorge_e_Severino.md: -------------------------------------------------------------------------------- 1 | # SOM - Self-Organizing Map 2 | #### JORGE LUÍS GURGEL FERNANDES
3 | #### SEVERINO MIGUEL DO NASCIMENTO NETO

4 | 5 | ## Introdução 6 |

7 | O presente relatório visa identificar a possibilidade de aprovação ou reprovação da disciplina de LOP por meio de um banco de dados contendo 8 | informações de atividades submetidas. Para isso, foi utilizado a linguagem de programação python para desenvolver os códigos e dentro dessa linguagem a ferramenta escolhida foi uma Rede Neural de aprendizado não supervisionado (SOM). 9 | 10 | ## Metodologia
11 |

12 | A rede SOM é bastante utilizada quando se tem dataset com muitos atributos, podendo ter uma saída com um número menor de dimensões. 13 | Essas saídas são denominadas de map (ou feauture map).
14 | Essa rede possuí um sistema que é baseado em aprendizagem competitiva. Os neurônios competem na busca de responder (quem será ativado) através de um conjunto de entradas, o neurônio vencedor será chamado de winner. 15 | 16 | ## Coleta dos dados 17 | A base de dados foi obtida da turma de Lógica de Programação da Escola de Ciência e Tecnologias da UFRN (2017.1 até 2019.1). 18 | O banco de dados contém atividades submetidas ao longo de 21 semanas. 19 |
20 | ## Códigos
21 | 22 | ### Trechos principais: 23 | Trecho em que foi inserida as devidas bibliotecas e base de dados manipulada: 24 |
25 | ```py 26 | 27 | import pandas as pd 28 | import numpy as np 29 | dataSet = pd.read_csv("https://raw.githubusercontent.com/ect-info/ml/master/dados/lop_submissao_semana.csv",index_col=False ) 30 | dataSet.head() 31 | ``` 32 | 33 | Para o manuseio do código da rede SOM, foi manipulado o trecho do código abaixo com a finalidade de mudar o status da situação do aluno, mudança de uma string para um inteiro.
34 | 35 |
0 - APROVADO 36 |
1 - APROVADO POR NOTA 37 |
2 - REPROVADO 38 |
3 - REPROVADO POR NOTA 39 |
4 - REPROVADO POR NOTA E FALTA 40 |
41 | ```py 42 | dataSet['situacao'] = pd.Categorical(dataSet['situacao']) 43 | dataSet['situacao'] = dataSet['situacao'].cat.codes 44 | ``` 45 | 46 | Trecho do código em que é selecionado todas as colunas do banco de dados que contém as submissões das atividades (X_train), 47 | assim como a situação final do aluno (target_train).
48 | 49 | ```py 50 | X_train = dataSet.iloc[:, 2:22].values 51 | target_train = dataSet.iloc[:,25].values 52 | 53 | ``` 54 | Código abaixo contendo as configurações de treinamento da rede. 55 | 56 | ```py 57 | # Treinando a rede SOM 58 | tamanhoXdaRede =5; 59 | tamanhoYdaRede = 5; 60 | 61 | quantidadeCaracteristicas = col 62 | from minisom import MiniSom 63 | som = MiniSom(x = tamanhoXdaRede, y = tamanhoYdaRede, input_len = 20, sigma = 1.0, learning_rate = 0.3) 64 | som.pca_weights_init(X_train) 65 | ``` 66 |
Montando matriz de aprovados e reprovados pós treinamento, código abaixo. 67 |
68 | ```py 69 | # encontra o vencedor 70 | x = X_train[1,:] 71 | pos = som.winner(x) 72 | # matriz de zeros para contador de aprovados 73 | MContAp = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 74 | # matriz de zeros para o contador de reprovados 75 | MContT = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 76 | cont = 0; 77 | for x in X_train: 78 | pos = som.winner(x) 79 | if (Y_train[cont] <= 1): #Aprovado 80 | MContAp[pos] += 1 81 | MContT[pos] += 1 82 | cont= cont+1 83 | ``` 84 |
Impressão da matriz abaixo. 85 | ```py 86 | print("Total:") 87 | print(MContT) 88 | 89 | print("Aprovados") 90 | print(MContAp) 91 | ``` 92 | 93 |
Matriz gerada abaixo. 94 | 95 | ```py 96 | Total: 97 | [[ 38. 22. 22. 64. 43.] 98 | [ 23. 22. 17. 26. 202.] 99 | [ 34. 26. 36. 23. 57.] 100 | [ 30. 36. 15. 42. 29.] 101 | [ 23. 10. 24. 19. 65.]] 102 | Aprovados 103 | [[33. 18. 15. 44. 15.] 104 | [21. 16. 10. 14. 57.] 105 | [31. 24. 26. 20. 36.] 106 | [26. 28. 15. 36. 21.] 107 | [21. 10. 23. 19. 60.]] 108 | ``` 109 |
Gráfico de pizza obtido atráves dos dados (Azul aprovados, LARANJA reprovados) 110 | 111 | ![Gráfico](https://github.com/jorgelgf/ML/blob/master/SOM/img/download.png) 112 | 113 | #### Link para código fonte:
114 | Clique aqui

115 | 116 | 117 | ## Conclusão
118 | 119 |

120 | Após a utilização do código pode-se verificar que existe ao menos três grupos com probabilidade de 100% de aprovação assim como também alguns grupos em que possuem uma probabilidade acima dos 50% de reprovação. Com essas informações em mãos é possível efetuar ações com a finalidade de reverter a situação dos alunos com risco de reprovação. 121 | 122 |

123 | 124 | ## Referência 125 | 126 | https://medium.com/neuronio-br/descobrindo-som-uma-rede-neural-com-aprendizado-não-supervisionado-f22bc1e55eca 127 | 128 | 129 | -------------------------------------------------------------------------------- /atividades/2019.2/SOM/Relatorio_Michel.md: -------------------------------------------------------------------------------- 1 | # Identificar e Agrupar Indivíduos de Acordo com Seus Perfis 2 | 3 | ## Introdução 4 | 5 | * O experimento foi realizado por Michel Nunes, discente do curso de Ciência e Tecnologia com Ênfase em Computação Aplicada da UFRN,orientado pelo professor Orivaldo Santana. 6 | * O objetivo é agrupar um indivíduo com determinado perfil a um conjunto de indivíduos com perfis parecidos e que tiveram seus dados previamente analisados. 7 | * A base de dados a ser analisada é composta por diversos registros da quantidade de subimissões semanais dos exercícios propostos pelos professores da disciplina de Lógica de Programação da ECT - UFRN a partir de 2017.2. 8 | 9 | ## Metodologia 10 | 11 | * O modelo de Machine Learning que está sendo trabalhado é o da Rede SOM (Self Organized Maps, ou Redes Neurais Auto-Organizáveis). É um modelo não supervisionado, ou seja, temos um conjunto de dados e precisamos extrair algo útil desses dados, embora não tenhamos mostrado ao sistema algumas saídas desejadas. É um modelo amplamente utilizado para agrupamento de padrões (Clusters), redução de dimensionalidade, Mineração de dados, Extração de características e Classificação, pois, seu uso como uma ferramenta matemárica é muito interessante para demonstrar dados de baixa dimensionalidade a partir de um conjunto de dados com alta dimensionalidade. 12 | * Foram necessárias algumas instalações de pacotes e alterações na base de dados: 13 | Instalação dos Pacotes da MiniSOM: 14 | ``` 15 | # Instalando a MiniSOM 16 | !pip install minisom 17 | ``` 18 | O código a seguir obtem os dados da coluna com valores qualitativos na base de dados e altera seus dados para valores numéricos 19 | ``` 20 | from sklearn import preprocessing 21 | le = preprocessing.LabelEncoder() 22 | dataSet["situacao"] = le.fit_transform(dataSet["situacao"]) 23 | ``` 24 | 25 | ## Códigos 26 | Alocando os valores de entrada e saída 27 | ``` 28 | X = dataSet.iloc[:, 2:23].values 29 | y = dataSet.iloc[:, 25].values 30 | ``` 31 | Obtendo o tamanho da rede e ativando o treinamento da rede SOM 32 | ``` 33 | tamanhoXdaRede = 6; 34 | tamanhoYdaRede = 6; 35 | 36 | quantidadeCaracteristicas = col 37 | from minisom import MiniSom 38 | som = MiniSom(x = tamanhoXdaRede, y = tamanhoYdaRede, input_len = quantidadeCaracteristicas, sigma = 1.0, learning_rate = 0.4) 39 | som.pca_weights_init(X) 40 | ``` 41 | 42 | ## Experimentos 43 | 44 | O treinamento com 50000 iterações obteve melhores resultados na classificação dos dados 45 | ``` 46 | som.train_random(data = X, num_iteration = 50000) 47 | ``` 48 | * Ao final do treinamento, a rede retorna um vetor de pesos treinados que podem ser utilizados para plotar os gráficos dos dados classificados de forma bidimensional. 49 | ``` 50 | pesos = som.get_weights() 51 | ``` 52 | * Os resultados são obtidos através da obtenção e análise dos gráficos. Observe que, no conjunto de gráficos abaixo, aqueles que possuem um "perfil de aprovação", ou algo semelhante a isso, estão mais próximos. O mesmo se observa daqueles com "perfil de reprovação". 53 | 54 | ![download](https://user-images.githubusercontent.com/55205574/67881284-99d16500-fb16-11e9-8911-416adb6b4004.png) 55 | 56 | ![download (1)](https://user-images.githubusercontent.com/55205574/67881575-1a906100-fb17-11e9-9cad-58b75ab0d113.png) 57 | -------------------------------------------------------------------------------- /atividades/2019.2/SOM/Relatório III - SOM (Luís Fernando Tavares).docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SOM/Relatório III - SOM (Luís Fernando Tavares).docx -------------------------------------------------------------------------------- /atividades/2019.2/SOM/RelatórioSOMAprovacaoLOP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SOM/RelatórioSOMAprovacaoLOP.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SOM/Relatório_SOM_Alysson_Lima.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SOM/Relatório_SOM_Alysson_Lima.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SOM/SOM_Leandro_Tobias.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SOM/SOM_Leandro_Tobias.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SOM/SOM_Lucas_Gualberto.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | O sistema LOP dispõe de dados de submissões semanais de atividades no sistema por alunos e é em cima dessas submissões 6 | que foi criada a base de dados para essa atividade. O objetivo principal do trabalho com essa base de dados é criar um perfil de aprovação dos alunos por submissão de exercícios, desse forma estimando a porcentagem de aprovação dele de acordo com suas submissões de atividades semanais. 7 | 8 | ## Metodologia 9 | 10 | O modelo de machine learning utilizado para a clusterização dos dados de submissões foi a SOM, self-organizing map. Consiste de uma rede neural não supervisionada que é responsável por criar um mapa dimensionado que descretiza a base de dados e a organiza de forma adequada. A SOM conta com um treinamento a partir de valores de entrada escritos na base de dados. Após o processo de treinamento, ele passará por uma fase de mapeamento, a qual sera responsável por classificar de forma automática a base de dados em neurônios, organizando esses neurônios de forma automática. 11 | 12 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 13 | * Explicar as etapas do treinamento e teste. 14 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 15 | 16 | ## Códigos 17 | 18 | * Mostrar trechos de códigos mais importantes e explicações. 19 | 20 | ## Experimentos 21 | 22 | * Descrever em detalhes os tipos de testes executados. 23 | * Descrever os parâmentros avaliados. 24 | * Explicar os resultados. 25 | -------------------------------------------------------------------------------- /atividades/2019.2/SOM/Vilson - Rede SOM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SOM/Vilson - Rede SOM.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SOM/modelo_de_relatorio.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | * Apresentar os membros da equipe. 6 | * Descrever o problema. 7 | * Descrever a base de dados. 8 | 9 | ## Metodologia 10 | 11 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 12 | * Explicar as etapas do treinamento e teste. 13 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 14 | 15 | ## Códigos 16 | 17 | * Mostrar trechos de códigos mais importantes e explicações. 18 | 19 | ## Experimentos 20 | 21 | * Descrever em detalhes os tipos de testes executados. 22 | * Descrever os parâmentros avaliados. 23 | * Explicar os resultados. 24 | -------------------------------------------------------------------------------- /atividades/2019.2/SOM/som_bruno_guedes_spinelli.md: -------------------------------------------------------------------------------- 1 | # Previsão da situação final (aprovação ou não) de alunos na disciplina de Lógica de Programação (LoP) utilizando Self-Organizing Map (SOM) 2 | 3 | ## Introdução 4 | 5 | Este trabalho foi realizado por Bruno Guedes Spinelli, aluno do curso de Engenharia Biomédica da UFRN. 6 | 7 | Existe uma grande evasão de alunos durante a disciplina de Lógica de Programação (LoP) derivada de diversos motivos, mas acredita-se que o maior causador dessa evasão seja a desmotivação decorrente das notas baixas do aluno. O objetivo deste trabalho é criar rede neural do tipo Self-Organizing Map (SOM) para tentar prever a situação final do aluno (reprovado ou aprovado) na disciplina LoP a partir da quantidade de submissões semanais do aluno, assim tornando possível a realização de feedbacks durante a disciplina que estimulem uma maior interação do aluno com o conteúdo ministrado e consequentemente aumentando sua chance de tirar notas melhores e diminuindo desta forma a evasão dos alunos. 8 | 9 | A base de dados utilizada para treinar e testar a rede pode ser encontrada clicando [aqui], nela podemos observar as seguintes classificações de dados: 10 | 11 | * **anoSubmissao, anoSigaa e anoTurma:** período em que foram realizadas as submissóes de atividades. 12 | * **semana 1 - 21:** quantidade de atividades submetidas por semana. 13 | * **descricaoTurma:** descrição da disciplina, turma e subturma. 14 | * **turma:** descrição da turma do aluno. 15 | * **situacao:** situação final do aluno. 16 | 17 | ## Metodologia 18 | 19 | O Self-Organizing Map (SOM) é um tipo de rede neural artificial não supervisionada, bastante utilizada para a visualização de dados de alta dimensionalidade, treinada para produzir uma representação capaz de descrever as amostras de entradas em baixa-dimensão (geralmente duas dimensões) chama de mapa. A principal diferença encontrada no SOM em comparação com outros tipos de rede neural artificial é quanto a sua forma de aprendizagem, na rede SOM a aplica-se o aprendizado competitivo, em que os pesos dos neurônios são comparados com os pesos do dado de entrada e o vencedor (aquele que possuir os pesos mais próximos dos do dado de entrada) tem seus pesos e os pesos de seus vizinhos atualizado. 20 | 21 | ![som1] 22 | 23 | **Figura 1 - Representação de um SOM** 24 | 25 | Para tentar prever a situação final do aluno através da quantidade de submissões de atividades por semana, o treino da rede SOM presente neste trabalho foi realizada com as seguintes colunas da base de dados fornecida: 26 | 27 | **semana 1 - 21** 28 | 29 | ## Códigos 30 | 31 | A rede neural foi codificada utilizando a linguagem de programação Python. O programa utilizou as bibliotecas ```pandas``` para auxiliar no processo de importar o arquivo de dados , a biblioteca ```numpy``` para realizar operações matemáticas e também foi utilizado a biblioteca ```minisom``` para criar a rede: 32 | 33 | ```py 34 | import pandas as pd 35 | import numpy as np 36 | from minisom import MiniSom 37 | dataset = pd.read_csv("https://raw.githubusercontent.com/ect-info/ml/master/dados/lop_submissao_semana.csv",index_col=False ) 38 | dataset.head() 39 | ``` 40 | Os dados da coluna ¨situacao¨ foram substituídos por um classificador binário, sendo dado o valor 1 para alunos aprovados e o valor 0 para alunos reprovados, e em seguida os classificadores para a realização do treino e teste da rede foram selecionados, para X (submissão de atividades por semana) foram selecionados os dados das colunas ¨semana 1¨ até ¨semana 21¨ (colunas de 2 a 22) e para Y (situação final do aluno) foi selecionados os dados da coluna ¨situacao¨ (coluna 25): 41 | 42 | ```py 43 | dataset.replace('APROVADO',1,inplace=True) 44 | dataset.replace('APROVADO POR NOTA',1,inplace=True) 45 | dataset.replace('REPROVADO',0,inplace=True) 46 | dataset.replace('REPROVADO POR NOTA',0,inplace=True) 47 | dataset.replace('REPROVADO POR MÉDIA E POR FALTAS',0,inplace=True) 48 | 49 | X = dataset.iloc[:, 2:23].values 50 | Y = dataset.iloc[:, -3].values 51 | ``` 52 | 53 | Logo após, foi realizada a criação da rede SOM em que foram passados parâmetros como tamanho da rede (10 x 10), quantidade de parâmetros de entrada (21), sigma (1.0) e a taxa de aprendizado (0,5) e em seguida o treinamento da rede: 54 | 55 | ```py 56 | som = MiniSom(x = 10, y = 10, input_len = 21, sigma = 1.0, learning_rate = 0.5) 57 | som.random_weights_init(X) 58 | som.train_random(data = X, num_iteration = 40000) 59 | ``` 60 | 61 | ## Experimentos 62 | 63 | Após o treino da rede, foram geradas duas matrizes, uma contendo o total de alunos enquadrados pelos pesos dos neurônios e o outro o total de alunos aprovados enquadrados nos pesos dos neurônios: 64 | 65 | ![resultado1] 66 | 67 | **Figura 2 - Alunos totais por neurônio da rede x alunos aprovados por neurônio da rede** 68 | 69 | Em seguida foram gerados gráficos de pizza representando a quantidade de alunos aprovados (azul) x alunos reprovados (amarelo) por neurônio: 70 | 71 | ![resultado2] 72 | 73 | **Figura 3 - Alunos aprovados x reprovados por neurônio** 74 | 75 | Também foi selecionado um neurônio que demonstra pesos que levam a alta chance de aprovação do aluno na disciplina de LoP: 76 | 77 | ![resultado3] 78 | 79 | **Figura 4 - Alta chance de aprovação na disciplina de LoP: quantidade de submissões por semana** 80 | 81 | Por último, alta chance de reprovação do aluno na disciplina de LoP: 82 | 83 | ![resultado4] 84 | 85 | **Figura 5 - Alta chance de reprovação na disciplina de LoP: quantidade de submissões por semana** 86 | 87 | 88 | 89 | [aqui]: https://github.com/ect-info/ml/blob/master/dados/lop_submissao_semana.csv 90 | [resultado1]: https://github.com/brunospinelli/ECT-TAI1/blob/master/imagens/2019-10-25-222310_1920x1080_scrot.png 91 | [resultado2]: https://github.com/brunospinelli/ECT-TAI1/blob/master/imagens/2019-10-25-223649_1920x1080_scrot.png 92 | [resultado3]: https://github.com/brunospinelli/ECT-TAI1/blob/master/imagens/2019-10-25-224310_1920x1080_scrot.png 93 | [resultado4]: https://github.com/brunospinelli/ECT-TAI1/blob/master/imagens/2019-10-25-224311_1920x1080_scrot.png 94 | [som1]: http://ivape3.blogs.uv.es/files/2015/03/kohonen1.png 95 | -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Leandro_Tobias2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SVM/Leandro_Tobias2.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Lucas_e_Luis2.md: -------------------------------------------------------------------------------- 1 | # Detecção de posição para uso e controle de dispositivos públicos a partir de Support Vector Machine 2 | 3 | ## Introdução 4 |

5 | A equipe de desenvolvimento é formada por Lucas Figueredo Varela Alves e Luis Felipe Vanin Martins, discentes da disciplina de Tópicos Avançados em Informática I, ministrada pelo docente Orivaldo Vieira de Santana. 6 |

7 |

8 | O portal Healthline publicou, em 2018, uma matéria a respeito de bactérias presentes em telas sensíveis ao toque ao redor do mundo. Por exemplo, em telas de check-in de aeroportos ou de museus interativos, encontram-se cerca de 253.857 unidades de colônia por área de polegar, elas são originadas, principalmente, da boca, do intestiono e do nariz dos usuários. Dentre os possíveis danos, a bactéria Enterococcus faecalis pode causar desde febre à meningite e infecção urinária. Nesse contexto, faz-se importante dispor de uma alternativa plausível na substituição desses dispotivos em um meio de acesso público. 9 |

10 |

11 | A sugestão é, então, uma tecnologia treinada a partir da Support Vector Machine(SVM) com o auxílio da PoseEstimation disponibilizada pelo TensorFlow à guisa de identificar decisões do usuário ao manusear equipamentos desse tipo. 12 |

13 | 14 | 15 | ## Metodologia 16 |

17 | No campo do aprendizado de máquina, SVM é um tipo de técnica de aprendizado baseado em classificações supervisionadas calculadas a partir de regressões analíticas. Na prática, esse modelo representa os dados como pontos no espaço que são divididos por uma distância, a qual é a maior possível, no intuito de distinguir tais classes. Além da classificação linear, esse modelo também pode ter resultados satisfatórios em problemas não lineares, a partir do kernel trick, o qual possibilita a aplicação dos métodos em espaços com N dimensões. 18 |

19 |

20 | No banco de dados para o modelo, faz-se necessário a presença de informações do tipo de coordenadas (x, y) seguidos da classe ao qual pertencem, neste caso, tratando de museus, apresentar e parar a execução da obra. Com esses dados, busca-se um hiperplano, que é uma função de dimensão N, a qual tem a maior distância de um ponto X mais próximo de cada classe. 21 |

22 |
23 | 24 |
Figura 1: Equação para m dimensões do hiperplano. 25 | Fonte: TowardsDataScience.com
26 | 27 |
28 |
Figura 2: Separação feita pelo hiperplano 2D. 29 | Fonte: TowardsDataScience.com
30 |

31 | Neste problema, as informações utilizados são as posições x e y referentes às partes do corpo, como nariz, cotovelo, olhos etc. Elas foram extraídas dos frames de um vídeo que capturou momentos nos quais a pessoa está com um ou dois braços/cotovelos alinhados com o tórax, sendo um o comando de iniciar a apresentação e, dois, o de finalizá-la. 32 |

33 | 34 | ## Códigos 35 |

36 | Uma das etapas mais importantes é a divisão do database em treino e teste, para um total de 84 capturas, utilzou-se uma divisão de 25% para o teste e o restante para treinar o modelo. 37 |

38 | 39 | ```py 40 | from sklearn.model_selection import train_test_split 41 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 42 | ``` 43 |

44 | A etapa mais importante do código é a utilização do método fit do objeto referente à biblioteca do modelo utilizado. Com ele, a base de dados é inserida para calcular a equação mais adequada para o hiperespaço. 45 |

46 | 47 | ```py 48 | from sklearn.svm import SVC 49 | from sklearn.pipeline import Pipeline 50 | 51 | from sklearn.svm import SVC 52 | classifier = SVC(kernel = 'linear', random_state = 0) 53 | classifier.fit(X_train, y_train) 54 | ``` 55 | 56 |

57 | Em seguida, é possível utilizar o método predict para analisar se o modelo está retornando respostas adequadas. Uma alternativa, que é utilizada, é a matrix de confusão, que permite a visualização de dados que foram classificados erroneamente para uma classe ou outra. 58 |

59 | 60 | ```py 61 | y_pred = classifier.predict(X_test) 62 | y_pred2 = classifier.predict(X_train) 63 | from sklearn.metrics import confusion_matrix 64 | cm = confusion_matrix(y_test, y_pred) 65 | cm2 = confusion_matrix(y_train, y_pred2) 66 | ``` 67 | 68 | ## Experimentos 69 | A matriz de confusão teve o seguinte retorno: 70 | ```py 71 | [[12 0] 72 | [ 0 9]] 73 | 74 | [[42 0] 75 | [ 0 21]] 76 | ``` 77 | 78 |

79 | Com isso, fez-se possível observar que não ocorreu desvio na execução do algoritmo para nenhuma das labels, sendo todas as imagens bem categorizadas. 80 | Em suma, a detecção precisa das partes do corpo pela PoseEstimation, a qual retornou, aparentemente, com boa precisão os valores para serem usados no algoritmo de SVM, possibilitando, assim, sua execução para aplicações diversas, como as citadas neste trabalho. 81 | 82 | Um desafio posterior a ser a identificação de movimentos mais complexos, com o intuito de aumentar a variedade de opções disponíveis aos usuários, em termos de ações. Isso seria necessário para contextos mais complexos, como uso em caixas de banco, nos quais oferecem diversas opções de utilização. 83 |

-------------------------------------------------------------------------------- /atividades/2019.2/SVM/MacielBarbosa.md: -------------------------------------------------------------------------------- 1 | # Identificar posição de uma pessoa através pose estimation. 2 | 3 | ## Introdução 4 | 5 | O trabalho foi desenvolvido por Maciel Barbosa como único membro. 6 | 7 | A proposta é identificar se a pessoa de uma imagem está em pé ou sentada. Para isso precisamos obter parâmetros que descrevam os diferentes tipos de posição. Foi utilizada uma rede neural de pose estimation para, a partir das imagens, retornar os pixels de uma série de articulações da pessoa presente na mesma. 8 | 9 | A base de dados foi obtida através de uma api que consome o modelo de pose estimation do tensowflow. Outro pequeno projeto foi usado para geras os CSVs com esses dados. As imagens foram cedidas por um amigo, totalizando 152 em pé e 150 sentado. 10 | 11 | ## Metodologia 12 | 13 | O modelo utilizado foi o Support Vector Machine (SVM). Trata-se de um algoritmo de aprendizado supervisionado que utiliza uma função kernel para mapear um conjunto de pontos de dados. A limite de decisão é representado por um hiperplano, que faz a separação dos dados em classes. 14 | 15 | Os dados gerados na api exportado em csv é importado através do pandas. A seguir, o valores e os labels são extraídos do dataset, sendo definido 25% para teste. Após isso, os dados são normalizados para o mapeamento e o treinamento é de fato realizado. 16 | 17 | Obtei por manter todos os parâmentros gerados na api do pose estimation. Acredito que os dados em excesso não influenciaria no resultado final. 18 | 19 | ## Códigos 20 | 21 | Utilizei o código exemplo disponibilizado pelo professor, fazendo algumas adequações. 22 | 23 | ``` 24 | X = dataset.iloc[:,2:33].values 25 | y = dataset.iloc[:,34].values 26 | ``` 27 | Nesse trecho é feita a divisão dos dados exportados do csv. O `X` são os dados. Já o `y` lista a categoria na qual cada dado de `X` se encaixa. Nesse projeto as categorias (labels) são `sentado` e `em-pe`. 28 | 29 | ``` 30 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 31 | ``` 32 | 33 | Acima, é feita a separação entre dados de treinamento e de teste. O teste contém 25% do total dos dados. 34 | 35 | ``` 36 | sc = StandardScaler() 37 | X_train = sc.fit_transform(X_train) 38 | X_test = sc.transform(X_test) 39 | ``` 40 | 41 | Padronização dos dados através de uma função kernel. Nesse momento é feito uma adequação que possibilita a separação das classes. 42 | 43 | ``` 44 | classifier = SVC(kernel = 'linear', random_state = 0) 45 | classifier.fit(X_train, y_train) 46 | ``` 47 | 48 | Agora, o treinamento é executado. Este encontra o hiperplano que melhor separa os dados. 49 | 50 | ## Experimentos 51 | 52 | ``` 53 | y_pred = classifier.predict(X_test) 54 | print(y_test[0:35]) 55 | print(y_pred[0:35]) 56 | ``` 57 | 58 | Comparando os dados do grupo de teste com as respectivos resultados do treinamento é possível perceber uma boa margem de acerto. 59 | 60 | ``` 61 | [[38 0] 62 | [ 5 33]] 63 | ``` 64 | 65 | A matriz de confusão nos revela que a rede confunde algumas imagens `sentado` como `em-pe`. 66 | -------------------------------------------------------------------------------- /atividades/2019.2/SVM/PoseEstimation_Gabriel_Leonardo_Samuel.md: -------------------------------------------------------------------------------- 1 | # Identificador de posições 2 | 3 | ## Introdução 4 | O Support Vector Machine (SVM) é um conceito utilizado em Machine Learning para identificar padrões em dados e tentar separá-los de acordo com suas classificações. O objetivo dsse trabalho é utilizar um programa de SVM para analisar o posicionamento de uma pessoa por meio de imagens. 5 | 6 | ### Contribuidores 7 | 8 | #### Samuel Amico Fidelis, aluno da Universidade Federal do Rio Grande do Norte do curso de bacharelado em engenharia mecatrônica. Para eventuais dúvidas, entrar em contato pelos 9 | meios abaixo: 10 | - [Github](https://github.com/samuelamico/MachineLearning) 11 | - [Site](https://samuelamico.github.io/) 12 | 13 | #### Leonardo Queiroz, aluno de bacharelado em engenharia mecânica na Universidade Federal do Rio Grande do Norte, contato em: 14 | - [Github](https://github.com/leocqueiroz) 15 | 16 | #### Gabriel Varela, aluno da Universidade Federal do Rio Grande do Norte do curso de bacharelado em engenharia mecatrônica. Contato em: 17 | - [Github](https://github.com/gabrielvrl) 18 | - [Site](https://gabrielvrl.github.io/) 19 | 20 | ### Problema 21 | O problema consiste em analisar a imagem de uma pessoa, onde será possível identificar a posição a qual ela está. Há duas posições, sentado e em pé. O programa irá identificar partes predeterminadas do corpo da pessoa e, por meio de um plano bidimensional irá identificar o posicionamento de cada parte. Partes como pé, olho, mão, etc. Identificando corretamente cada posição, faz-se possível estimar o posicionamento da pessoa. O código completo se baseia em uma interface onde o usuário escolhe as posições para serem analisadas. Para cada posição, o usuário deve salvar os pontos para popular o arquivo de treino. Para salvar os pontos, as letras 'c','b' por exemplo, salvam respectivamentes as coordenadas de cada ponto para a classe Cima e Baixo no arquivo de treino. Após salvar a quantidade que o usuário achar boa de pontos ele deve selecionar a opção de validação, onde o modelo de ML SVM é posto em ação e a partir daí toda posição que o usuário fizer o programa irá retornar o nome da posição que ele está fazendo, mediante as posições que ele mesmo treinou. A figura abaixo ilustra o processo: 22 | 23 | 24 | ![pipline](https://github.com/samuelamico/MachineLearning/blob/master/Graficos/ModeloDiagramaPoseEstimation.png) 25 | 26 | 27 | ### Base de Dados 28 | A base de dados é gerada pelo usuário, quando este seleciona a opção de Salvar Classe. A função de salvar() fica responsável de passar as posições x,y de cada ponto em ordem escolhida pelo usuário e com a devida classe que esse escolheu armazenar. Neste caso a classe é escolhida pelo teclado, onde por exemplo 'b' significa salvar na classe posição baixo. 29 | O arquivo Dados.txt armazena os dados enviados pela função no formato que segue na imagem baixo. 30 | 31 | ![FuncaoSalvarTXT](https://github.com/samuelamico/MachineLearning/blob/master/Graficos/SalvarTabelaPoseEstimation.png) 32 | 33 | ## Metodologia 34 | 35 | Modelo de Machine Learning UtilizadoO Machine Learning (ML) utilizado foi o SVM, o qual analisa os dados fornecidos pelo usuário e os separa em duas categorias diferentes, a partir de padrões identificados pelo próprio programa, ou seja, o SVM é um classificador binário não probabilístico. O SVM tende à encontrar uma separação dos dados por meio de uma curva a qual tende à maximizar a 36 | distância entre os pontos mais próximos em relação à cada categoria. De forma resumida, o SVM classifica os dados entre duas configurações distintas e os separa por meio de uma maximização de distância dos pontos para cada categoria. 37 | 38 | ### Atributos escolhidos 39 | Para realizar a simulação desenvolvida no programa, foram utilizados ao total 12 parâmetros, o qual cada um se refere à um ponto predeterminado para uma parte do corpo da pessoa na imagem. Dentre esses parâmetros, estão: 40 | ``` 41 | 1° - Mão direita 42 | 2° - Cotovelo direito 43 | 3° - Peito 44 | 4° - Cotovelo esquerdo 45 | 5° - Mão esquerda 46 | 6° - Barriga 47 | 7° - Joelho direito 48 | 8° - Pé direito 49 | 9° - Joelho esquerdo 50 | 10° - Pé esquerdo 51 | 11° - Coxa direita 52 | 12° - Coxa esquerda 53 | ``` 54 | ### Etapas do treinamento 55 | Inicialmente foi dividido os dados fornecidos entre treino e teste e, para isso, foi utilizado um percentual de 75% para treino e os demais 25% para teste. 56 | Após a separação, é utilizado um método de feature scaling para normalizar a distância das variáveis independentes, utilizando a biblioteca sickit-learn. Em seguida é feito um fitting para adequar os dados da fase de treino. 57 | 58 | ### Etapas do teste 59 | Com o treino realizado, é feito uma predição utilizando a biblioteca do scikit-learn para simular os resultados dos dados de teste. Com o treino realizado, é feita a matriz de confusão a qual será responsável para a visualização do desempenho do algoritmo. 60 | 61 | ## Experimentos 62 | Para a realização do teste foram utilizadas 38 imagens, as quais foram analisadas e codificadas para identificar as coordenadas de cada parte do corpo. O rastreamento de cada parte do corpo se dá por meio de um ponto determinado de acordo com os parâmetros mencionados anteriormente. 63 | A execução do algoritmo resulta em duas classes já mencionadas, em pé e sentado. 64 | Para visualizar o gráfico de resultados do treinamento, foi utilizado o seguinte código: 65 | ```py 66 | # Visualising the Training set results 67 | from matplotlib.colors import ListedColormap 68 | X_set, y_set = X_train, y_train 69 | 70 | X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01), 71 | np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01)) 72 | Xpred = np.array([X1.ravel(), X2.ravel()] + [np.repeat(0, X1.ravel().size) for _ in range(22)]).T 73 | # Xpred now has a grid for x1 and x2 and average value (0) for x3 through x13 74 | pred = classifier.predict(Xpred).reshape(X1.shape) # is a matrix of 0's and 1's ! 75 | plt.contourf(X1, X2, pred, 76 | alpha = 0.75, cmap = ListedColormap(('red', 'green'))) 77 | 78 | 79 | classe = ['cima','baixo'] 80 | plt.xlim(X1.min(), X1.max()) 81 | plt.ylim(X2.min(), X2.max()) 82 | for i, j in enumerate(np.unique(y_set)): 83 | plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], 84 | c = ListedColormap(('red', 'green'))(i), label = classe[j]) 85 | plt.title('SVM (Training set)') 86 | plt.xlabel('Position') 87 | plt.ylabel('Classe') 88 | plt.legend() 89 | plt.show() 90 | ``` 91 | Pelo gráfico abaixo mostrado é possível perceber que o código identificou e classificou cada posicionamento de forma coerente, além de os dividir corretamente em dois grupos distintos. 92 | 93 | ![Grafico](https://github.com/leocqueiroz/MachineLearning/blob/master/SVM/Imagens/Grafico.PNG) 94 | 95 | Portanto, com o algorítmo realizado, foi possível separar e classificar cada uma das posições esperadas de acordo com a imagem corretamente, ou seja, o resultado esperado coincidiu com o obtido. 96 | -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Relatorio II - SVM (Luis Fernando Tavares).docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SVM/Relatorio II - SVM (Luis Fernando Tavares).docx -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Relatorio_SVM_Alysson_Lima: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SVM/Relatorio_SVM_Alysson_Lima -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Relatório - SVM_Igor_Rony_Thatiana.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SVM/Relatório - SVM_Igor_Rony_Thatiana.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Relatório SVM - Vilson.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/SVM/Relatório SVM - Vilson.pdf -------------------------------------------------------------------------------- /atividades/2019.2/SVM/Relatório_Michel_SVM.md: -------------------------------------------------------------------------------- 1 | # Estimar Posição de uma Pessoa com Aprendizado de Máquina 2 | 3 | ## Introdução 4 | 5 | * O projeto foi desenvolvido por Michel Nunes, orientado pelo professor Orivaldo Santana, e consiste em desenvolver um algorítmo em python, 6 | utilizando bibliotecas criadas para trabalhar com conceitos de Aprendizado de Máquina, que seja capaz de decidir, através de uma série de 7 | dados previamente apresentados, se uma pessoa está sentada ou em pé. 8 | * A base de dados foi criada a partir de um vídeo, onde realizo o movimento de sentar-se. A partir disso foram extraídos vários frames 9 | executando o comando mostrado pelo colega Lucas em github.com/Lucasgsr14: 10 | ``` 11 | $ ffmpeg -i vid.mp4 -r 20 img%d.jpg 12 | 13 | ``` 14 | Onde o vídeo é dividido em 20 frames a cada segundo e a imagem, em formato jpg, é nomeada para img[número], seguindo uma sequência do tipo 15 | img1.jpg, img2.jpg, ... , img145.jpg. 16 | * Mais de 200 frames foram criados, mas, afim de deixar mais preciso, apaguei as imagens as quais considerava como um processo de transição 17 | entre em pé e sentado. Em seguida renomeei as imagens para preencher as lacunas deixadas no processo de remoção. Para recomear as imagens, 18 | basta entrar no diretótio onde elas estão e executar o seguinte código no terminal linux: 19 | ``` 20 | $ ctd=1 ; for i in *jpg ; do mv $i img${ctd}.jpg ; ((++ctd)) ; done 21 | 22 | ``` 23 | * Tendo as imagens devidamente tratadas em mãos, utilizei a biblioteca Pose Estimation do Tensorflow para estimar a posição (coordenadas 24 | x e y) do nariz, dos olhos, orelhas, ombros, cotovelos, pulsos, quadris, joelhos e tornozelos. As funções da biblioteca foram aplicadas 25 | para cada imagem e seus dados armazenados em formato csv, onde a última coluna é a situação do indivíduo, sendo 1 para em pé e 0 para 26 | sentado. 27 | 28 | ## Metodologia 29 | 30 | * O Support Vector Machine (SVM), é o modelo de Machine Learning que utilizei nesse projeto. É um algoritmo de aprendizado supervisionado, 31 | no qual se utiliza de uma função kernel para classificar determinados conjuntos de dados, normalmente em dois tipos de características, 32 | mesmo que a partir de uma base de dados multidimensional. 33 | * Logo após a importação das bibliotecas, importação da base de dados e alocamento dos dados para os vetores X e y, precisamos determinar 34 | a quantidade de dados que serão utilizadas para teste e treinamento. 35 | * Inicialmente, foram reservados 75% para treinamento e 25% para testes e o código se mostrou bastante eficaz, tendo uma acurácia de 97%. 36 | ``` 37 | from sklearn.model_selection import train_test_split 38 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 39 | 40 | ``` 41 | * A atribuição de parâmetros para melhor ajustar o SVM ao conjunto de treinamento 42 | ``` 43 | from sklearn.svm import SVC 44 | from sklearn.pipeline import Pipeline 45 | 46 | classifier = Pipeline(( 47 | ("scaler", StandardScaler()), 48 | ("svm_clf", SVC(kernel="rbf", gamma=0.25, C=10000)) 49 | )) 50 | 51 | classifier.fit(X_train, y_train) 52 | 53 | ``` 54 | ## CÓDIGOS 55 | * Prevendo os resultados do conjunto de testes: 56 | ``` 57 | y_pred = classifier.predict(X_test) 58 | 59 | print(y_test[0:35]) 60 | print(y_pred[0:35]) 61 | ``` 62 | ``` 63 | [1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1] 64 | [1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1] 65 | ``` 66 | * A matriz de confusão foi gerada em seguida: 67 | ``` 68 | from sklearn.metrics import confusion_matrix 69 | cm = confusion_matrix(y_test, y_pred) 70 | 71 | print(cm) 72 | ``` 73 | ``` 74 | [[15 1] 75 | [ 0 21]] 76 | ``` 77 | 78 | ## Experimentos 79 | 80 | * No primeiro momento, executei o programa com os parâmetros descritos acima e o resultado foi a matriz de confusão mostrada anteriormente, 81 | com acurácia de cerca de 97%. O que caracteriza-se como um excelente resultado, provando a eficácia do sistema. 82 | * Para um segundo teste e, sem medo de obter baixa generalização do modelo por ser uma base de dodos relativamente pequena, aumentei a 83 | quantidade de dados para o treinamento para 85%. Deixando assim 15% para os testes. Os resultados foram os seguintes: 84 | Matriz de confusão 85 | ``` 86 | [[ 9 0] 87 | [ 0 13]] 88 | ``` 89 | ``` 90 | acuraccy = (cm[0][0]+cm[1][1])/(cm[0][0]+cm[0][1]+cm[1][0]+cm[1][1]) 91 | print(acuraccy) 92 | ``` 93 | ``` 94 | 1.0 95 | ``` 96 | * Significa que, mantendo os parâmetros da função kernel e aumentando um pouco a quantidade de dados para o treinamento, o sistema 97 | consegue um resultado mais preciso, embora o resultado anterior já tenha se mostrado bastante satisfatório. 98 | -------------------------------------------------------------------------------- /atividades/2019.2/SVM/modelo_de_relatorio.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | * Apresentar os membros da equipe. 6 | * Descrever o problema. 7 | * Descrever a base de dados. 8 | 9 | ## Metodologia 10 | 11 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 12 | * Explicar as etapas do treinamento e teste. 13 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 14 | 15 | ## Códigos 16 | 17 | * Mostrar trechos de códigos mais importantes e explicações. 18 | 19 | ## Experimentos 20 | 21 | * Descrever em detalhes os tipos de testes executados. 22 | * Descrever os parâmentros avaliados. 23 | * Explicar os resultados. 24 | -------------------------------------------------------------------------------- /atividades/2019.2/SVM/relatorioSVM-JoaoMarcos.md: -------------------------------------------------------------------------------- 1 | # Utilização de SVM para classificar a posição de um individuo a partir de imagens 2 | 3 | ## Introdução 4 | Este trabalho foi desenvolvido por João Marcos Viana Silva, com orientação do prof. Orivaldo Santana. 5 | A atividade tinha como objetivo desenvolver um algoritmo capaz de classificar em duas categorias (em pé ou sentado) a posição em que uma pessoa estava em uma foto. Tal classificação abre o caminho para resolução de diversos tipos de problemas, como por exemplo, controle de equipamentos a partir de gestos, uso em videogames ou qualquer outro contexto que análise de posição seja importante. Além disso, a atividade exigiu a criação de uma base de dados própria, processo que é importante na ciência de dados em geral, proporcionando um conhecimento e preparo extra ao aluno. Sendo assim, a base foi gerada a partir de frames de um vídeo produzido pelo autor, aplicadas a uma API do TensorFlow chamada PoseEstimation, capaz de extrair as posições em pixels de onde estariam cada parte do corpo da pessoa na imagem. Ao final, a base continha 128 imagens, em que o individuo estava em pé ou sentado. 6 | 7 | ## Metodologia 8 | O modelo utilizado para o desenvolvimento do algoritmo foi o Support Vector Machine (SVM). Este tipo de modelo possui como base a teoria do aprendizado estatístico, ou seja, tem como objetivo encontrar soluções matemáticas para realizar a classificação dos dados. Assim, as SVMs irão mapear todos os dados recebidos, organizando-os em um ambiente multidimensional através de uma função kernel, e a partir disso, calcular a função que melhor divida os dois grupos (linarmente ou não). O processo de escolha dessa função é verificar qual das funções que dividem os dados possui maior distância simétrica entre ela e os dois grupos, o que podemos chamar de margem de divisão. Após o cálculo da margem de divisão, feito e ajustado no processo de treinamento, o procedimento é mais simples, sempre que um novo dado chegar ao algoritmo, o algoritmo irá mapea-lo no ambiente multidimensional e com a margem de divisão vai classifica-lo de X se estiver em um lado da margem, mais próximo dos outros dados classificados como X, ou como Y, se estiver mais próximo de tal grupo. 9 | 10 | !['Exemplo gráfico 2D margem de divisão'](https://lamfo-unb.github.io/img/svm/svm1.jpeg) 11 | 12 | Como podemos observar na imagem acima, os pontos azuis representam um dos grupos e os amarelos o outro grupo, sendo a linha preta a margem de divisão dos dois, assim, o novo dado a ser mapeado será classificado como azul ou amarelo de acordo com a posição em que irá ser mapeado. 13 | 14 | No nosso caso, o processamento dos dados foi feito da seguinte forma, cada imagem possuia atributos correspondentes as posições X e Y de cada parte do corpo utilizada pelo PoseEstimation, funcionando como as dimensões do processo de mapeamento, são elas: 15 | 16 | * Nariz; 17 | * Olho esquerdo; 18 | * Olho direito; 19 | * Orelha esquerda; 20 | * Orelha direita; 21 | * Ombro esquerdo; 22 | * Ombro direito; 23 | * Cotovelo esquerdo; 24 | * Cotovelo direito; 25 | * Pulso esquerdo; 26 | * Pulso direito; 27 | * Quadril esquerdo; 28 | * Quadril direito; 29 | * Joelho esquerdo; 30 | * Joelho direito; 31 | * Tornozelo esquerdo; 32 | * Tornozelo direito. 33 | 34 | Para o treinamento do algoritmo, isto é, o processo de ajuste da margem de divisão, foram reservadas cerca de 75% das imagens geradas. Ou seja, 3/4 das imagens foram utilizadas para que o algoritmo pudesse compará-las e encontrar padrões entre os atributos de cada uma das classificações, gerando uma função de divisão. Sendo assim, os 25% restantes foram usandos na fase de testes, em que a SVM recebe novos dados e faz a previsão dos mesmos, podendo acertar ou errar. 35 | 36 | ## Códigos 37 | A aplicação do SVM foi feita integralmente em Python, utilizando as bibliotecas do Pandas e ScikitLearn. Enquanto o código para gerar a base de dados estava em JavaScript. 38 | 39 |

* Separação Treinament/Teste

40 | 41 | ~~~ python 42 | # Splitting the dataset into the Training set and Test set 43 | from sklearn.model_selection import train_test_split 44 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 45 | ~~~ 46 | 47 | 25% dos dados reservados para a fase de testes. 48 | 49 |

* Escolha dos valores para os atributos gamma e C, processo de treinamento

50 | 51 | ~~~ python 52 | # Fitting SVM to the Training set 53 | from sklearn.svm import SVC 54 | from sklearn.pipeline import Pipeline 55 | classifier = Pipeline(( 56 | ("scaler", StandardScaler()), 57 | ("svm_clf", SVC(kernel="rbf", gamma=0.5, C=50)) 58 | )) 59 | classifier.fit(X_train, y_train) 60 | ~~~ 61 | 62 | Como podemos ver, os valores testados e escolhidos para gamma e C foram: **gamma=0.5** e **C=50** ; 63 | 64 |

* Previsão da classificação (em pé ou sentado)

65 | 66 | ~~~ python 67 | #Predicting the Test set results 68 | y_pred = classifier.predict(X_test) 69 | ~~~ 70 | 71 | ## Experimentos 72 |

* Matriz de confusão

73 | 74 | ~~~ python 75 | Matriz de confusão: 76 | [[18 0] 77 | [0 14]] 78 | ~~~ 79 | 80 | A matriz de confusão representa a quantidade de valores para os quais os resultados do algoritmo foram **Verdadeiros Positivos(18)** e **Verdadeiros Negativos(14)** , correspondentes aos acertos e **Falsos Positivos(0)** e **Falsos Negativos(0)** , totalizando uma taxa de acerto de 100% 81 | 82 | Com isso, o resultado obtido pela rede neural baseada em SVM com os parâmetros utilizados pode ser considerado excelente. O valor tão expressivo revela que o valores utilizados para gamma e C foram corretos, assim como demonstram uma qualidade enorme da base de dados, que proporcionou resultados limpos. Sendo assim, nas condições em que foram realizadas o experimento, o algoritmo se mostrou extremamente eficaz em classificar se a pessoa na foto está em pé ou sentada. 83 | -------------------------------------------------------------------------------- /atividades/2019.2/SVM/relatorio_pose_estimation_Lucas-Gualberto.md: -------------------------------------------------------------------------------- 1 | # Classificação de Movimentos com o PoseNet usando Support Vector Machine (SVM) 2 | 3 | ## Introdução 4 | 5 | O PoseNet é uma modelo de visão que pode ser usado para estimar a pose de uma pessoa em uma imagem ou video estimando onde estão as aticulações chaves do corpo estão. Em um primeiro modelo de captação de dados foi usado um código em html com javascript que retornava como principal dado um vetor de posições para cada imagem na pagina do browser usado para executar o código. No entanto, esse método nem sempre funcionava para configurações de computadores diferentes. Então a solução foi fazer um codigo em node.js que retorna um array de posições quando recebe um URL de um imagem. Com isso foi possível criar um código em python que faz requisições http, submete um vetor de URL's e recebe os vetores de posição para cada imagem e por fim cria um arquivo de extensão '.csv' para a base de dados. O objetivo principal dessa base de dados é treinar uma SVM para identificar, entre cinco posições (levantado, pé direito levantado, pé esquerdo levantado, mão direita levantada e mão esquerda levantada), qual a imagem enviada corresponde. A base de dados utilizada nessa SVM possui 977 imagens e cada imagem gera 17 coordenadas do local das juntas. 6 | 7 | ## Metodologia 8 | 9 | A SVM é um modelo de machine learning que consegue aplicar uma tranformação no espaço de dados dessa forma conseguindo separar dados que aparentemente não aparentam ser não lineramente separáveis, mas que em algum plano do espaço se tornam linearmente separáveis. Ela utiliza funções de Kernel, em SVMs não lineares, para calcular hiperplanos ótimos que consigam separar da melhor forma os dados fornecidos no processo de treinamento. Com essa ML foram usados 20% da base de dados para treinamento e 80% para teste. Outros pontos importantes de ajuste para esse modelo de ML são os parâmetros gamma, que define o quão ajustado o modelo deve ser, e o c, que define a quantidade de curvas a SVM pode realizar. Para essa experiência foram utilizados um gamma de 0.009 e um c de 4. 10 | 11 | ## Códigos 12 | 13 | ```python 14 | # Splitting the dataset into the Training set and Test set 15 | from sklearn.model_selection import train_test_split 16 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.8, random_state = 0) 17 | ``` 18 | separando 20% da base de dados para treinamento e 80% para testes.\ 19 | 20 | ```python 21 | # Fitting SVM to the Training set 22 | from sklearn.svm import SVC 23 | from sklearn.pipeline import Pipeline 24 | 25 | #classifier = SVC(kernel = 'linear', random_state = 0) 26 | classifier = Pipeline(( 27 | ("scaler", StandardScaler()), 28 | ("svm_clf", SVC(kernel="rbf", gamma=0.009, C=4)) 29 | )) 30 | 31 | ``` 32 | fazendo a SVM definindo o kernel como 'rbf' o gamma como 0,009 e o C como 4\ 33 | 34 | ## Experimentos 35 | 36 | Com as configurações feitas na SVM o modelo gerou uma acurácia de 99,23% para o vetor de teste com 781 amostras\ 37 | 38 | >[[175 0 0 0 0] 39 | > [ 0 209 0 0 0] 40 | > [ 3 0 80 3 0] 41 | > [ 0 0 0 175 0] 42 | > [ 0 0 0 0 136]] 43 | > 44 | > 0.9923175416133163 45 | -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Babycry-Leandro_Tobias.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/Babycry-Leandro_Tobias.pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Detecção de objetos_Igor_Rony_Thatiana.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/Detecção de objetos_Igor_Rony_Thatiana.pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Identificacao_de_movimentos_com_SOM_SVM.md: -------------------------------------------------------------------------------- 1 | # Identificação de letras usando Multilayer Perceptron (MLP) 2 | 3 | ## Introdução 4 | 5 | A base de dados utilizada para esse trabalho foi extraida de 222 imagens que passaram por um programa para gerar o arquivo csv. Esse programa 6 | apresenta várias imagens a um servidor que contém o detector de posições de juntas PoseNET que retorna 17 pontos de coordenadas X e Y para cada 7 | imagem apresentada. Gerando esse vetor de dados das 222 imagens apresentadas e adicionando a classificação de cada imagens (se perna levantada, esqueda ou direita, ou braço, esquerdo ou direito, levantado) formamos a base de dados que será utilizada para o projeto. O objetivo é gerar com a rede Self-Organized Maps (SOM) um mapa de característas que indique em que neurônios estão situados cada posição classificada no arquivo csv apresentado a rede. Após isso apresentar um vetor de "imagens" (já processadas pelo poseNET) e gerar um vetor de ativação dos neurônios. 8 | 9 | ## Metodologia 10 | 11 | O modelo de machine learning utilizado para a clusterização dos dados de submissões foi a SOM, self-organizing map. Consiste de uma rede neural não supervisionada que é responsável por criar um mapa dimensionado que descretiza a base de dados e a organiza de forma adequada. A SOM conta com um treinamento a partir de valores de entrada escritos na base de dados. Após o processo de treinamento, ele passará por uma fase de mapeamento, a qual será responsável por classificar de forma automática a base de dados em neurônios e organizando esses neurônios. O tamanho configurado foi de 16 por 16. 12 | Ja SVM é um modelo de machine learning que consegue aplicar uma tranformação no espaço de dados dessa forma conseguindo separar dados que aparentemente não aparentam ser não lineramente separáveis, mas que em algum plano do espaço se tornam linearmente separáveis. Ela utiliza funções de Kernel, em SVMs não lineares, para calcular hiperplanos ótimos que consigam separar da melhor forma os dados fornecidos no processo de treinamento. 13 | 14 | ## Códigos 15 | 16 | ```python 17 | # encontra o vencedor 18 | x = X_train[1,:] 19 | pos = som.winner(x) 20 | 21 | # matriz de zeros para contador de aprovados 22 | MCont1 = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 23 | # matriz de zeros para contador de aprovados 24 | MCont2 = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 25 | # matriz de zeros para contador de aprovados 26 | MCont3 = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 27 | # matriz de zeros para contador de aprovados 28 | MCont4 = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 29 | 30 | # matriz de zeros para o contador de reprovados 31 | MContT = np.zeros((tamanhoXdaRede,tamanhoYdaRede)) 32 | cont = 0; 33 | for x in X_train: 34 | pos = som.winner(x) 35 | if (Y_train[cont] == 'braco_direito'): 36 | MCont1[pos] += 1 37 | elif (Y_train[cont] == 'braco_esquerdo'): 38 | MCont2[pos] += 1 39 | elif (Y_train[cont] == 'perna_direita'): 40 | MCont3[pos] += 1 41 | elif (Y_train[cont] == 'perna_esquerda'): 42 | MCont4[pos] += 1 43 | MContT[pos] += 1 44 | cont= cont+1 45 | ``` 46 | criando as matrizes separado cada classe 47 | ```python 48 | cont = 1; 49 | for i in range(len(MContT)): 50 | for j in range(len(MContT)): 51 | plt.subplot(tamanhoXdaRede,tamanhoYdaRede,cont) 52 | cont=cont+1 53 | sizes = [MCont1[i][j], MCont2[i][j], MCont3[i][j], MCont4[i][j]] 54 | plt.pie(sizes) 55 | plt.show() 56 | ``` 57 | criando uma matriz de gráficos de pizza para ver a separação de cada classe 58 | 59 | projeto disponivel em https://colab.research.google.com/drive/1OqV-T_qhFxDsS2gVX58L3dhi6N8YDAYh 60 | 61 | -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Lucas e Vanin.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/Lucas e Vanin.pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/README.md: -------------------------------------------------------------------------------- 1 | # Trabalho Final 2 | 3 | * Entrega do relatório final 4 | * Entrega do código 5 | 6 | Obs.: Apresentar no relatório o link para o código ou explicações para o código. 7 | -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Relatorio - Teacher Sensor (Luis Fernando Tavares).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/Relatorio - Teacher Sensor (Luis Fernando Tavares).pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Relatório_Projeto_NLP_Twitter_Alysson_Lima.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/Relatório_Projeto_NLP_Twitter_Alysson_Lima.pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/TCC__Hardcode (2) (1).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/TCC__Hardcode (2) (1).pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/Vilson-Perfis-de-Reprovacao.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/Vilson-Perfis-de-Reprovacao.pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/reconhecimento_facial_(bruno_guedes_spinelli).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/atividades/2019.2/trabalhos_finais/reconhecimento_facial_(bruno_guedes_spinelli).pdf -------------------------------------------------------------------------------- /atividades/2019.2/trabalhos_finais/trabalho_final_Jorge_e_Severino.md: -------------------------------------------------------------------------------- 1 | # USO DE MLP PARA IDENTIFICAR PREDISPOSIÇÃO À DIABETES 2 | 3 | ## Introdução 4 |

O grupo é composto por Jorge Luís e Severino Miguel. 5 |
6 | O presente relatório visa identificar uma possível situação de risco de uma pessoa que possa conter sinais de que tem diabetes. 7 | Com o uso de uma base de dados e a ferramenta Multilayer Perceptron, para que possam ser tomadas medidas preventivas. 8 | Utilizamos uma base de dados dataset Pima Indians, trata-se de um estudo feito com índios da tribo PIMA dos Estados Unidos.
9 |

10 | 11 | ## Sobre os índios Pima 12 |

No final do século 19, a água que os índios Pima usavam para irrigação foi desviada por fazendeiros, 13 | resultando em uma carência de alimento e desnutrição para a tribo. 14 | Na tentativa de contornar a situação, o governo americano começou a fornecer comida a eles: 15 | toucinho, farinha, açúcar, entre outros suprimentos. Isso fez com que eles se tornassem sedentários. 16 | A porcentagem de gordura na dieta, que originalmente era de 15%, passou a 40%. 17 | Resultado: os Pima se tornaram o grupo mais obeso dos Estados Unidos e o que mais tem diabetes. 18 | Metade dos Pima são diabéticos.

19 |
20 | 21 | ![Tabela](https://www.musculacao.net/wp-content/uploads/2012/01/indios_pima.jpg) 22 |
23 | Índios Pima. Fonte: 24 | 25 | ## Metodologia 26 |

Utilizamos a linguagem de programação python para desenvolver os códigos e dentro dessa linguagem a ferramenta escolhida foi o Multilayer Perceptron, que trata-se de uma rede neural com várias camada de neurônios em alimentação direta. 27 | Esse tipo de rede é composta por camadas de neurônios ligadas entre si por sinapses com pesos. Com isso, aplicamos a função StandardScaler, da biblioteca Sklearn.preprocessing, fizemos os testes com 25% dos dados , restando 75% para treino. 28 | 29 | ## Códigos
30 | 31 | ### Primeira parte 32 | 33 | ```py 34 | # Rede Neural 35 | 36 | # Parte 1 - Processamento de Dados 37 | 38 | # Importando as bibliotecas 39 | import numpy as np 40 | import matplotlib.pyplot as plt 41 | import pandas as pd 42 | ``` 43 | ```py 44 | #Ajuste do treinamento 45 | # Importando a base de dados 46 | dataset = pd.read_csv('https://raw.githubusercontent.com/jorgelgf/ML/master/projetoFinal/base/diabetes.csv') 47 | 48 | 49 | dataset.head( 10 ) 50 | ``` 51 |
52 | A base de dados consiste em mulheres acima dos 21 anos, ao todo foram 769 para a base de dados original. Os parâmetros são: 53 |

54 | - Número de vezes que esteve grávida; 55 |
56 | - Concentração de glicose no plasma a 2 horas em um teste oral de tolerância à glicose; 57 |
58 | - Pressão ArterialDiastólica (mm Hg); 59 |
60 | - Espessura da dobra da pele do tríceps (mm); 61 |
62 | - Insulina sérica de 2 horas (mu U / ml); 63 |
64 | - Índice de massa corporal; 65 |
66 | - Pré-disposição genética para ter diabetes; 67 |
68 | - Idade; 69 |
70 | - Variável de saída, resultado, 0 para não tem diabetes e 1 para tem diabetes; 71 |

72 | Foram feitas manipulações nos dados originais, alguns membros não continham os valores referentes à insulina. Para obter uma fidelidade maior 73 | com o uso do algoritmo, foi retirado os dados que não continham informações sobre os nívies de insulina, totalizando com 395 pessoas na base de dados nova. 74 | 75 |

76 | 77 | ![Tabela](https://github.com/jorgelgf/ML/blob/master/projetoFinal/imagens/basedados.png?raw=true) 78 | Imagem da base de dados. Fonte: 79 |
80 |
81 | Selecionando os parametros: 82 |
83 | ```py 84 | X = dataset.iloc[:,0:8].values 85 | y = dataset.iloc[:, 8].values 86 | print(X.shape) 87 | ``` 88 |
89 | 90 | 91 | ```py 92 | # Dividindo a base de dados para teste e treino 93 | from sklearn.model_selection import train_test_split 94 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0) 95 | ``` 96 |
97 | 98 | ```py 99 | # Escalando recursos 100 | from sklearn.preprocessing import StandardScaler 101 | sc = StandardScaler() 102 | X_train = sc.fit_transform(X_train) 103 | X_test = sc.transform(X_test) 104 | ``` 105 | 106 |
107 | 108 | ### Segunda parte 109 | 110 |
111 | 112 | ```py 113 | # Parte 2 - Fazendo a Rede Neural 114 | 115 | # Importando a bilbioteca Keras e os packages 116 | import keras 117 | from keras.models import Sequential 118 | from keras.layers import Dense 119 | 120 | # Inicializando a rede Neural 121 | classifier = Sequential() 122 | 123 | ``` 124 |
125 | 126 | ```py 127 | # Input layer e primeira hidden layer 128 | classifier.add(Dense( activation = 'relu', input_dim = 8, units = 15, kernel_initializer = 'uniform')) 129 | 130 | # Segunda hidden layer 131 | classifier.add(Dense( activation = 'relu', units = 15, kernel_initializer = 'uniform' )) 132 | 133 | 134 | # Output layer 135 | classifier.add(Dense( activation = 'sigmoid', units = 1, kernel_initializer = 'uniform')) 136 | 137 | 138 | 139 | # Compilando a Rede neural 140 | classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy']) 141 | 142 | # Ajustando a Rede neural ao conjunto de treinamento 143 | classifier.fit(X_train, y_train, batch_size = 3, epochs = 90) 144 | 145 | ``` 146 |
147 | 148 | 149 | ### Terceira parte 150 |
151 | 152 | ```py 153 | # Parte 3 - Fazendo as predições e avaliando o modelo 154 | 155 | # Prevendo os resultados do conjunto de testes 156 | y_pred = classifier.predict(X_test) 157 | print(y_pred[0:10]) 158 | 159 | y_pred = (y_pred > 0.5) 160 | print(y_pred[0:10]) 161 | 162 | # Fazendo a matriz de confusão 163 | from sklearn.metrics import confusion_matrix 164 | cm = confusion_matrix(y_test, y_pred) 165 | 166 | print("Taxa de acerto:") 167 | print((cm[0,0]+cm[1,1])/len(y_test) ) 168 | 169 | Taxa de acerto: 170 | 0.8282828282828283 171 | ``` 172 | 173 |
174 | 175 | 176 | ## Conclusão 177 |
178 | 179 |

Obtivemos uma boa taxa de acerto de aproximadamente 83%. Podemos concluir que para ter uma maior fidelidade no resultado seria necessário 180 | uma base de dados maior e mais consistente, com dados mais atualizados. Mesmo assim, tendo em vista o uso dessa ferramente, é possível obter uma possível previsão 181 | para que possa ser tomadas medidas preventivas podendo gerar uma melhor qualidade de vida para uma pessoa. 182 | 183 | 184 |

185 |
186 | 187 | #### Link para código fonte 188 | 189 | CLIQUE AQUI

190 | 191 | #### Link para referências 192 |
193 | 194 | Acessado em 2019: 195 | 196 |
197 | 198 | Acessado em 2019: 199 | 200 | 201 | 202 | 203 | 204 | -------------------------------------------------------------------------------- /atividades_2018_2.md: -------------------------------------------------------------------------------- 1 | # Atividades Avaliativas 2 | 3 | As atividades devem ser entregues no github do aluno em um repositório com o nome "ect2702-ml". Um diretório deve ser criado para cada atividade com os códigos fontes que reselvem a atividade. O nome do diterório será especificado na descrição de cada atividade. As atividades podem ser feitas em grupo, mas cada estudante deve desenvolver seu próprio código. 4 | 5 | ## Unidade I 6 | 7 | Prazo máximo para entrega da atividades desta unidade: 19/09/2018. 8 | 9 | ### Regressão Linear 10 | Estimar o sálario de um funcionário de uma determinada empresa baseado em seus anos de experiência. 11 | 12 | * Nome da pasta: rl-salario; 13 | * Código de apoio: https://colab.research.google.com/drive/1J3-jnp7-en_OjvCG-He8UcD-Or8g_nxm. 14 | 15 | ### Perceptron 16 | 17 | Implementar um perceptron e testar com uma base de dados simples. Sugestão de problema para testar a implementação, *extraído das notas de aula da Professora Teresa Ludemir, CIN-UFPE*: 18 | 19 | * Dada uma rede do tipo Perceptron formada por um neurônio com três terminais de entrada, utilizando pesos iniciais w0 = 0.4, w1 = -0.6 e w2 = 0.6, limiar θ = 0.5 e uma taxa de aprendizado = 0.4. Considere que o limiar será sempre multiplicado por -1. responda os itens abaixo: 20 | * Ensinar a rede a gerar a saída -1 para o padrão 001 e a saída +1 para os padrão 110; 21 | * A que classe pertencem os padrões 111, 000, 100 e 011? 22 | * Manipulação básica de vetores: http://bit.ly/2w6xgfd; 23 | * Roteiro para implementação: https://github.com/ect-info/ml/tree/master/guias/Perceptron, contribuição de Richardson (https://github.com/vanluwin); 24 | * Nome da pasta: perceptron; 25 | 26 | ### Classificação com MLP ou SVM 27 | 28 | Escolher um problema, gerar a base de dados e implementar um código para a classíficação destes dados. 29 | 30 | Nesta atividade será levado em conta: 31 | * A complexidade da base de dados desenvolvida ou obtida; 32 | * O esforço de implementação do classificador; 33 | * A taxa de acerto do classificador. 34 | 35 | #### Sugestões de atividades: 36 | * Sensor de Cores: 37 | * Os dados devem ser obtidos de um sensor de cor de arduino e uma base de dados no formato csv deve ser gerada; 38 | * O código de reconhecimento de cores deve estar embarcado no arduíno ou em um raspberry pi. 39 | 40 | * Róbtica: 41 | * Coletar dados de sensor utlrassom de um robô com rodas para o comportamento de desviar de obstáculos ou seguir obstáculos; 42 | * Implementar a etapa de resposta da rede (fase *forward*) no Arduino. 43 | 44 | * Reconhecedor simplificado de gestos: 45 | * Coletar dados de gestos formando os números de 0 a 9; 46 | * A base de dados deve conter pelo menos 20 gestos de cada número; 47 | * O reconhecimento pode ser feito no computador ou em um raspberry pi. 48 | 49 | * Mineração de dados: 50 | * Estimar a tendência de conlusão do curso de graduação; 51 | * Considerando os dados do desempenho do aluno no primeiro semestre e a informação de conclusão ou desistência do curso gerar uma base de dados para classificação da tendência de finalização do curso; 52 | * O desempenho pode ser medido pela média final dos componentes curriculares cursados; 53 | * Essa base de dados é uma sugestão inicial. 54 | 55 | * Nome da pasta: classificacao-mlp ou classificacao-svm 56 | 57 | 58 | ## Unidade II 59 | 60 | Prazo máximo para entrega da atividades desta unidade: 12/11/2018. 61 | 62 | ### Clusterização com _k-means_ 63 | 64 | Usar a base de dados sobre a opinão política da turma para gerar automáticamente dois clusters. 65 | * Gerar dois vetores de características com o perfil dos dois principais candidatos a presidência; 66 | * Colocar um rótulo em cada centroíde encontrado baseado no perfil dos candidatos a presidência; 67 | * Apresentar um perfil novo (um colega que estava fora dos dados de treinamento), identificar qual dos centroides é o mais próximo e consequentimente o candidato a presidência com maior afinidade ao novo colega. 68 | 69 | * Nome da pasta: k-means 70 | 71 | ### _Self-Organizing Map_ 72 | 73 | * Nome da pasta: SOM 74 | 75 | #### Processamento de Áudio 76 | 77 | #### Classificação de Cores com Arduíno 78 | 79 | #### Aprendizado de comportamentos com Robôs/Arduíno 80 | 81 | ### Aloritmos Genéticos 82 | * Nome da pasta: AG 83 | 84 | ## Unidade III 85 | 86 | ### Temas para o trabalho final 87 | 88 | #### Sistema para gerenciar a alocação de horários dos professores 89 | 90 | O professor insere suas disciplinas e seus possíveis horários, cada sugestão de horário tem um nível de prioridade sendo 1 a priodiade máxima, valores maiores que 1 têm prioridades menores progressivamente. O sistema deverá minimizar o valor da alocação geral dos professores. A função objetivo deve somar a nota de todas disciplinas evitando colocar disciplinas em alocações não sugeridas pelo professor. 91 | 92 | #### API Web para Machine Laerning 93 | 94 | #### Visualização 2D de Perfis 95 | 96 | #### Sistema de recomendação com SOM 97 | 98 | -------------------------------------------------------------------------------- /aulas/arvore_decisao.md: -------------------------------------------------------------------------------- 1 | # Árvore de Decisão 2 | * [Slides](https://docs.google.com/presentation/d/1IOQGZS21VcNK8GHDCT5IoaeOPbEBEtSYGcZr-Lm7AxQ/edit?usp=sharing) 3 | * [Vídeo: introdução conceitual sobre árvore de decisão](https://youtu.be/UktH9kZm-w0) 4 | * Código: 5 | * [Tem diabetes?](https://colab.research.google.com/drive/1ISIObTt9PCeW950jotNgRWkjmdhdMfcN?usp=sharing) 6 | 7 | Material Complementar: 8 | * Problema, predição de compra de um produto: 9 | * [Vídeo - trinando uma árvore de decisão](https://youtu.be/NWqdl3vw5YE) 10 | * [Código](https://colab.research.google.com/drive/1YVy68Eo9Mf5r5qijp7orxFxjUNTsc6Q3?usp=sharing) 11 | 12 | 13 | Atividade avaliativa: 14 | * Treinar uma árvore de decisão para classificar as espécies da flor de iris, [acesse a base de dados aqui.](https://raw.githubusercontent.com/ect-info/ml/master/dados/Iris.csv) 15 | -------------------------------------------------------------------------------- /aulas/cnn.md: -------------------------------------------------------------------------------- 1 | # Rede Neural Convolucional 2 | * [Slides](https://docs.google.com/presentation/d/1KTPsi2Y4U63cuNUoCh32sd3VJfyYf6MA7NT3fHucboM/edit?usp=drivesdk) 3 | * Códigos: 4 | * [Código: reconhecimento de números escritos à mão](https://colab.research.google.com/drive/1gd9aB82vSHAEb_nHV0wJJZU4-gSfPbHN?usp=sharing) 5 | 6 | Material de Apoio 7 | * [Vídeos e Form](https://docs.google.com/forms/d/e/1FAIpQLSev6WOXJcQj9cIDlHYPIfsbPvpkDVsl2rqI4g7J6flD-03LOg/viewform?usp=sf_link) 8 | 9 | Extras: 10 | * [Vídeo: The Convolutional Neural Network (Animated Introduction)](https://www.youtube.com/watch?v=H1ZC9COwtMs) 11 | * [Treinando um modelo de "Machine Learning" na web com a ferramenta "Teachable Machine" do Google](https://www.youtube.com/watch?v=Qkop0rB-v1A) 12 | 13 | Sugestão de exercício: 14 | * Treinar uma Rede CNN para a base de dados "Fashion MNIST" 15 | * Exemplo de código: https://colab.research.google.com/drive/15DMm3Qf3IcN-syiNIvy_O04N5k9bBZV6?usp=sharing 16 | 17 | Material complementar: 18 | * [Vídeo: Prática com Redes Convolucionais](https://youtu.be/pCHKzOtLWOs) 19 | -------------------------------------------------------------------------------- /aulas/deep_learning.md: -------------------------------------------------------------------------------- 1 | # _Deep Learning_ 2 | * [Slides](https://docs.google.com/presentation/d/1pxztvhuOc36D76cDW86oj8nGZAIlQSEn2GZJE0GzGLw/edit?usp=sharing) 3 | * Códigos: 4 | * [MLP - Exemplo sobre se um cliente deixa um banco](https://colab.research.google.com/drive/1NndIE2zvup_aWqSG06JR7i6_WxXQ-xMU?usp=sharing) 5 | * [Reconhecimento de caracteres escritos a mão](https://colab.research.google.com/drive/1gGi-n3vAJkjdEKMYLZkSCXoDhyRS1tSJ?usp=sharing) 6 | 7 | * Sugestão de Vídeo: 8 | * [Treinando um modelo de "Machine Learning" na web com a ferramenta "Teachable Machine" do Google](https://www.youtube.com/watch?v=Qkop0rB-v1A) 9 | 10 | Material de Apoio: 11 | * [Vídeos e Form: _Deep Learning_](https://docs.google.com/forms/d/e/1FAIpQLSerRGTZZPjgz7yv1zWqZQfFVM6WkTyqkB22R7w3IRnvcRNE5A/viewform?usp=sf_link) 12 | 13 | Material complementar: 14 | * [Aula Prática: Reconhecimento de caracteres escritos a mão com Deep Learning](https://youtu.be/lXCz0tduSh8) 15 | * [Código: Reconhecimento de caracteres escritos a mão com Deep Learning](https://colab.research.google.com/drive/18fPqtpy6AV5Uo-WlmyFe6Epj-7UlrXgg) 16 | * [Tratamento de atributos categóricos](texto/atributos_categoricos.md) 17 | * [Simulação do funcionamento de uma rede MLP com Playground Tensorflow](https://playground.tensorflow.org/) 18 | 19 | Extras: 20 | * [Neural Networks from 3Blue1Brown](https://www.3blue1brown.com/lessons/neural-networks) 21 | * [But what is a Neural Network?](https://www.youtube.com/watch?v=aircAruvnKk) 22 | * [Gradient Descent, How Neural Networks Learn](https://www.youtube.com/watch?v=IHZwWFHWa-w) 23 | * [What is backpropagation really doing?](https://www.youtube.com/watch?v=Ilg3gGewQ5U) 24 | * [Backpropagation calculus](https://www.youtube.com/watch?v=tIeHLnjs5U8) 25 | * [Book: Neural Networks and Deep learning](http://neuralnetworksanddeeplearning.com/index.html) 26 | 27 | Exercícios: 28 | * Escolha uma base de dados no [kaggle](https://www.kaggle.com/) e treinar uma rede MLP, pode ser uma arquitetura mais simples, para classificação. 29 | * Sugestões de base de dados: 30 | * [Cancer Classification 🦠 (97% Accuracy)](https://www.kaggle.com/code/guhbrandao/cancer-classification-97-accuracy/input) 31 | * [Cancer Data](https://www.kaggle.com/datasets/erdemtaha/cancer-data) 32 | * [Titanic dataset](https://www.kaggle.com/code/biswajee/titanic-dataset/input) 33 | * [Heart Attack Analysis](https://www.kaggle.com/datasets/rashikrahmanpritom/heart-attack-analysis-prediction-dataset) 34 | * [Predict students' dropout and academic success](https://www.kaggle.com/datasets/thedevastator/higher-education-predictors-of-student-retention) 35 | -------------------------------------------------------------------------------- /aulas/introducao.md: -------------------------------------------------------------------------------- 1 | # Introdução ao Aprendizado de Máquina 2 | * [Apresentação e Planejamento](https://docs.google.com/presentation/d/1dqH0Jwx3zzp5YQnQVOHnU7QthYB5SPcimitccRj3niA/edit?usp=sharing) 3 | * [Slides: Conceitos](https://docs.google.com/presentation/d/1p0ZDtjHuog-ENMHVbMX6LiabMXlTjYIV8t1DA2iBqIY/edit?usp=sharing) 4 | 5 | Prátrica 1 6 | * Abrir o site https://teachablemachine.withgoogle.com/. Criar grupos. Treinar um modelo para reconhecer pessoas pelo rosto. 7 | 8 | Prática 2 9 | * Conhecer um Arquivo CSV 10 | * Abrir um _DataFrame_ com Pandas 11 | * Visualizar alguns dados 12 | 13 | Material de apoio: 14 | * [Vídeos e Form: Introdução ao Aprendizado de Máquina](https://docs.google.com/forms/d/e/1FAIpQLScN2CzUWUSDjj4hCN-Xd8yDJQ75ks00c6eNqE6dFDg-mSnYRw/viewform?usp=sf_link) 15 | * [Vídeos e Form: Aprendizado de Máquina - Exemplos](https://docs.google.com/forms/d/e/1FAIpQLSf2tVmAS_Ovy_Fja5TVktUUWTo3AmnchAtTluMme7kOIIjchA/viewform?usp=sf_link) 16 | * [Vídeos e Form: Introdução ML - Principais Conceitos](https://docs.google.com/forms/d/e/1FAIpQLScqCw62IcRiKWNJx1qyqZPanjeCzPaAjB1Qg3diORDmyxY_OQ/viewform?usp=sf_link) 17 | -------------------------------------------------------------------------------- /aulas/k_means.md: -------------------------------------------------------------------------------- 1 | # K-Means 2 | * [Slides](https://docs.google.com/presentation/d/1hzeAFwgHNZ7pr_POzd4_2lXUgOz_vrVfuhjxl6tbBCs/edit?usp=sharing) 3 | * Código: 4 | * [Exemplo de código: perfil de clientes de uma loja](https://colab.research.google.com/drive/1kyYG9ojYsTvCKj5X9hn4o6mve4RJjBv5?usp=sharing) 5 | 6 | Material de Apoio: 7 | * [Vídeos e Form: K-Means](https://docs.google.com/forms/d/e/1FAIpQLSfyv1LTd_h0bkniJdy5Zq4Y4oFkqTVQrRVY0MZo8PsvcUzhhQ/viewform?usp=sf_link) 8 | 9 | Exemplo de código com PCA 10 | * [Visualização de metricas do LoP em duas dimensões](https://colab.research.google.com/drive/15uTd1w8uIxpUgQYYGLmaIL33eum6Yjez?usp=sharing) 11 | 12 | Material complementar 13 | * [Aula prática: introdução ao K-Means - Agrupamento](https://youtu.be/t_107z0RHF8) 14 | * [Exemplo de código: perfil de clientes de uma loja](https://colab.research.google.com/drive/15Q-gTih7v2f5pYc64xQa2ytzX2gisX0q?usp=sharing) 15 | * [Código](https://colab.research.google.com/drive/1nc5RD1wMHvROPILgdJVT2GSzwbscLLsw?usp=sharing) 16 | 17 | Atividade Avaliativa 18 | * Analisar os perfis dos estudantes em relação aos atributos de uma lista de exercícios de Lógica de Programação. Baixar a base de dados com as métricas dos alunos [aqui](https://raw.githubusercontent.com/ect-comp/ml/refs/heads/master/dados/metricas_lop.csv). 19 | 20 | Exercícios: 21 | * Escolher uma base de dados para agrupamentos, usar o k-means, e analizar os valores dos centroids 22 | * Sugestões de base de dados: 23 | * [Customer Segmentation: Clustering](https://www.kaggle.com/code/karnikakapoor/customer-segmentation-clustering/input) 24 | * [Customer Clustering](https://www.kaggle.com/datasets/dev0914sharma/customer-clustering?resource=download&select=segmentation+data.csv) 25 | * [Customer segmentation data](https://raw.githubusercontent.com/ect-info/ml/master/dados/customer%20segmentation%20data.csv) 26 | 27 | 28 | -------------------------------------------------------------------------------- /aulas/mlp.md: -------------------------------------------------------------------------------- 1 | # Multilayer Perceptron (MLP) 2 | * [Slides: MLP](https://docs.google.com/presentation/d/1oIzH-SNbJ3_4vYZdt_IZQi3537BUJKsvio_oV8c8Bnc/edit?usp=sharing) 3 | * Exercício 4 | * [Código com Perceptron de Sklearn - Dígitos](https://colab.research.google.com/drive/1eppuqhaH3qa09_I_IiYbz2ftpAMbQKn5?usp=sharing) 5 | * [Código com MLP - Íris](https://colab.research.google.com/drive/1y0tUhGB3cwWMdMOO9Z5_5OG0gGXNJHq1?usp=sharing) 6 | 7 | * Base de dados: 8 | * [Flor de íris](https://raw.githubusercontent.com/ect-info/ml/master/dados/Iris.csv) 9 | 10 | Exercício de demonstração: 11 | * [Exemplo MLP - Compra de um produto](https://colab.research.google.com/drive/1wR1xoQGDrgDUysDqWkhVdvNj-qluo2pk?usp=sharing) 12 | * Mais dados https://www.kaggle.com/datasets 13 | 14 | Material de apoio: 15 | * [Vídeos e Form: MLP parte 1](https://docs.google.com/forms/d/e/1FAIpQLSc_kQ1w4tnsrRjPsS56jOKZ7Bb1ZwN0bOAEwVRW0pKBWtyZkQ/viewform?usp=sf_link) 16 | * [Vídeos e Form: MLP Parte 2](https://docs.google.com/forms/d/e/1FAIpQLSdFS64t1TlAq9mYtgx6JAi_-XoplMcY0Hj2xc1dub8riXWFTA/viewform?usp=sf_link) 17 | * [Vídeo: Construindo e treinando uma rede MLP simples com keras e tensorflow](https://youtu.be/qyMO5UHLgs4) 18 | 19 | Material complementar: 20 | * Vídeos: 21 | * [RNA - Construindo um Perceptron](https://youtu.be/uTi0O3tjdSM) 22 | * [Classificação dados com aprendizado de máquina](https://youtu.be/_p8Mbe75ZLk) 23 | * [Exemplo comparando a resposta de um modelo linear e outro não-linear](https://youtu.be/YFkVERllgAQ) 24 | 25 | * Códigos: 26 | * [Exemplo de perceptron](https://colab.research.google.com/drive/1jbFCvifaAou19mlu2pI3Rso8DoMow_zl?usp=sharing) 27 | 28 | Exercício extra: 29 | * Treinar uma rede MLP para a [base de dados de diabetes](https://raw.githubusercontent.com/ect-info/ml/master/dados/diabetes.csv) 30 | 31 | Atividade avaliativa: 32 | * Treinar uma rede MLP com a [base de dados para predição de doença cardíaca da UCI](https://raw.githubusercontent.com/ect-comp/ml/refs/heads/master/dados/heart_disease_uci.csv). Nesta tarefa o estudante está livre para escolher a arquitetura da rede MLP, mas a sugestão é escolher uma arquitetura mais simples, pois esta base de dados é muito pequena. Os atributos podem ser escolhido conforme o critério do estudante. 33 | 34 | -------------------------------------------------------------------------------- /aulas/nlp.md: -------------------------------------------------------------------------------- 1 | # Processamento de Linguagem Natural (NLP) 2 | 3 | * [Slides](https://docs.google.com/presentation/d/1yFBohFjlsk-O7Rw7YthMVi3nji1zFHYwLQRUZfLv31c/edit?usp=sharing) 4 | * Código: 5 | * [Classificação de texto](https://colab.research.google.com/drive/1kr7KWB_AKYmNT3Pm7IDbzqNcVKGTAFiX?usp=sharing) 6 | * [Introdução a análise de sentimentos](https://colab.research.google.com/drive/19lgWm2qyeX03VIBz4iQzzuUDZstNNTEy?usp=sharing) 7 | * Exercícios 8 | * [Classificação de texto](https://colab.research.google.com/drive/1I4Dhj-EislPdN-ZgvZwjAEclkRFtHdg-?usp=sharing) 9 | * [Introdução a análise de sentimentos.](https://colab.research.google.com/drive/19cDYZi77FHbpiNnedccFlgOsxgxMo14M?usp=sharing) 10 | 11 | Material de apoio: 12 | * [Form e vídeos](https://docs.google.com/forms/d/e/1FAIpQLSc6vVpLZgcoxq-zaJ12TJI1_6OkzCDhzVQAhoI3_5oioIfDPw/viewform?usp=sf_link) 13 | 14 | Material complementar 15 | * [Aula prática - parte 1: Introdução à Processamento de Linguagem Natural](https://youtu.be/ZnGC0tQLjNM) 16 | * [Código](https://colab.research.google.com/drive/1otpdkZhfhBwJrU6jD8pvtQAzzsrn-lGo?usp=sharing) 17 | * [Aula prática - parte 2: Introdução à Processamento de Linguagem Natural](https://youtu.be/gcbeEvpwCZ0) 18 | * [Código](https://colab.research.google.com/drive/1eJRivNcV_ZdqJqEoX9WhcnusV2-sRKm1?usp=sharing) 19 | * [Introdução de Processamento de Linguagem Natural e Análise de Sentimentos](https://youtu.be/-ZsiDKXGk84) 20 | * [Código para avaliações de restaurantes](https://colab.research.google.com/drive/1n80Us6FJZ74XyYIyl8iiqbSyIBapk9Yj?usp=sharing) 21 | * [Código para análise de opiniões no site da amazon](https://colab.research.google.com/drive/1Mx9KAPHeDC3jWJaJbdRYmXtsUFmzlvHS?usp=sharing) 22 | * [Código sobre treinamento de um classificador de texto usando "Embeddings"](https://colab.research.google.com/github/google/generative-ai-docs/blob/main/site/en/gemini-api/tutorials/text_classifier_embeddings.ipynb) 23 | -------------------------------------------------------------------------------- /aulas/regressao.md: -------------------------------------------------------------------------------- 1 | # Regressão 2 | * [Slides](https://docs.google.com/presentation/d/1iELBYui_t5S_FNhsOZkqm_a1xvHtOW17QbGeLYWAr-s/edit?usp=sharing) 3 | * Códigos 4 | * [Estimativa de preço de venda de uma casa](https://colab.research.google.com/drive/1R2TDOdRsmfNPnLYP4Nkag8FHE3sbpD5n?usp=sharing) 5 | * [Regressão Linear com a população brasileira](https://colab.research.google.com/drive/1wozRns2hwNmF2bHJu4S38z-gzNCrjXb_?usp=sharing) 6 | * [Regressão usando SVM - prever o lucro de uma startup](https://colab.research.google.com/drive/13ucrTNkmJIH-XxXQiMS5q6ZTxBC1j6R0?usp=sharing) 7 | * [Realizando uma estimativa de sálario a partir dos anos de experiência](https://colab.research.google.com/drive/1cnvCdgxz0eHWzSSjKrMPD1LLj5VE21rv?usp=sharing) 8 | 9 | Prática 10 | * Plote de gráfico em linha 11 | * Plote de gráfio de dispersão de pontos 12 | * Treinamento de um modelo simples de _Machine Learning_ (Regressão Linear) 13 | 14 | Material de Apoio: 15 | * [Vídeos e Form](https://docs.google.com/forms/d/e/1FAIpQLSeyZ-kUCvbkStaiMOCbs9FYInwPhQX96IMqiTo2kQ7cJLZyCw/viewform?usp=sf_link) 16 | 17 | Material complementar: 18 | * [Vídeo: Prática com regressão linear simples](https://youtu.be/WTIOoHNFsGQ) 19 | * [Vídeo: Prática com regressão linear múltipla](https://youtu.be/U9xhYLWhwpc) 20 | * Códigos: 21 | * [Regressão com a população brasileira](https://colab.research.google.com/drive/1dCF8pGdv6N4-C09oP7cJbuSYvTK5zhKj?usp=sharing) 22 | * [Realizando uma estimativa de sálario a partir dos anos de experiência](https://colab.research.google.com/drive/1cnvCdgxz0eHWzSSjKrMPD1LLj5VE21rv?usp=sharing) 23 | * [Regressão linear múltipla - prever o lucro de uma startup](https://colab.research.google.com/drive/13ucrTNkmJIH-XxXQiMS5q6ZTxBC1j6R0?usp=sharing) 24 | * [Regeressão linear no Khanacademy](https://pt.khanacademy.org/math/statistics-probability/advanced-regression-inference-transforming) 25 | 26 | Atividade avaliativa: 27 | * Criar uma regressão linear para estimar a velocidade de rotação do eixo de um motor a partir do sinal de controle PWM. A base de dados possui duas colunas PWM e velocidade em rotações por minutos, [acesse aqui a base de dados](https://raw.githubusercontent.com/ect-comp/ml/refs/heads/master/dados/PWMxVelocidade.csv) 28 | 29 | Desafios: 30 | * [Base de dados de aluguel](https://colab.research.google.com/drive/1N2tsSSG18GhNsSxHKfE61WAGzZaf9Mww?usp=sharing) 31 | * [Brasil - Rio de janeiro Airbnb open data](https://www.kaggle.com/datasets/allanbruno/airbnb-rio-de-janeiro?select=abril2018.csv) 32 | * [Boston - Previsão de preço de casas](https://colab.research.google.com/drive/1cY0xY7G8hh6OLBndI7_M5i48ZBqdSBA7?usp=sharing) 33 | 34 | -------------------------------------------------------------------------------- /aulas/som.md: -------------------------------------------------------------------------------- 1 | # Rede SOM 2 | 3 | * [Slides](https://docs.google.com/presentation/d/1vGS--E6VbtohvVkUo23GM-0MsL-EMTnxAXKcSHiomLI/edit?usp=sharing) 4 | * Código: 5 | * [SOM - Perfil dos alunos da ECT](https://colab.research.google.com/drive/1_Mo6uSpbQrkRegrR5GeodGeQ5ePUxpak?usp=sharing) 6 | 7 | Material de apoio: 8 | * [Vídeos e Form: Rede SOM](https://docs.google.com/forms/d/e/1FAIpQLSdTb_IhVEJW7LksxXYTBkf-rslxQ_zdywV4AT3bCkJdB1wxjw/viewform?usp=sf_link) 9 | 10 | 11 | Material complementar: 12 | * [Aula prática: introdução à rede SOM - Visualização de Dados](https://youtu.be/-mEn7puBD84) 13 | * [Código](https://colab.research.google.com/drive/1S-aMgBqFe9OgGdjURrWs86l7LaHLRuRJ?usp=sharing) 14 | * [Vídeo: Análise de perfis e desempenho em LoP](https://youtu.be/RFi62fy17tY) 15 | * [Código: Análise de perfis e desempenho em LoP](https://colab.research.google.com/drive/1lVfiGPf1yyDx7Zv_AUrS4o3bgO0E0EzH?usp=sharing) 16 | * [Exemplo de código: visualizar os perfis de alunos da Escola de Ciência e Tecnologia da UFRN](https://colab.research.google.com/drive/1PX9YlNGx_pjgesMsnhyjrXI-nsuJOdWI?usp=sharing) 17 | * Atividade: 18 | * Visualizar os dados de perfis de clientes com uma rede SOM. Exemplo de dados: [Clientes de um supermercado no Kaggle](https://www.kaggle.com/datasets/dev0914sharma/customer-clustering?resource=download&select=segmentation+data.csv) ou [acesso direto](https://raw.githubusercontent.com/ect-info/ml/master/dados/segmentation%20data.csv) 19 | -------------------------------------------------------------------------------- /aulas/svm.md: -------------------------------------------------------------------------------- 1 | # Suport Vector Machine (SVM) 2 | * [Slides](https://docs.google.com/presentation/d/19mAI5sjOWURpzuKpoFjbjmCkjUXUysU_kysfbksmVAg/edit?usp=sharing) 3 | * Código: 4 | * [Compra de um produto](https://colab.research.google.com/drive/1gwdc-7YAUDq12wE5TNjuoJ7q1onHET7J?usp=sharing) 5 | 6 | Prática 7 | * Treinar o modelo SVM linear e o modelo SVM RBF com [base de dados de diabetes](https://raw.githubusercontent.com/ect-info/ml/master/dados/diabetes.csv) 8 | * Consultar a documentação https://scikit-learn.org/stable/modules/svm.html#svm 9 | * Mais dados https://www.kaggle.com/datasets 10 | 11 | Material de apoio: 12 | * [Vídeos e Form: SVM](https://docs.google.com/forms/d/e/1FAIpQLSdS3YCo4v5NDzMuHzWKDyX-hb-nf6Pz2XLEM8RXknV6pmjssQ/viewform?usp=sf_link) 13 | 14 | Atividade Avaliativa: 15 | * Treinar o modelo SVM para classificação com a base de dados Titanic. O objetivo é realizar uma predição de quais pessoas sobreviveram ou não a este acidente. Link para a base de dados: https://www.kaggle.com/c/titanic/data 16 | 17 | Material complementar: 18 | * [Vídeo: prática sobre classificação usando SVM](https://youtu.be/R3T4KnYg-tE) 19 | * Códigos: 20 | * [Exempo 1: SVM - compra de um produto](https://colab.research.google.com/drive/1w7Tt9UFngIkEjThnNlYj8Tki6EwVWxeP?usp=sharing) 21 | * [Exempo 2: SVM - compra de um produto](https://colab.research.google.com/drive/1VYmZBcf2FHmz_gwPRxllxwoy0nTaU8X9?usp=sharing) 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /cronograma_2020_2.md: -------------------------------------------------------------------------------- 1 | # Cronograma 2020.2 2 | 3 | | Data | Semana | Aula | Conteúdo | 4 | |---| --- |---|---| 5 | | 19/01 | Sem 1 | Aula 1 | Apresentação e Planejamento | 6 | | 21/01 | Sem 1 | Aula 2 | Introdução à _Machine Learning_ e AM - Supervisionados | 7 | | 21/01 | Sem 1 | Aula 3 | Regressão linear | 8 | | 26/01 | Sem 2 | Aula 4 | Atividade 1: Prever o lucro de uma startup | 9 | | 28/01 | Sem 2 | Aula 5 | MultiLayer Perceptron | 10 | | 02/02 | Sem 3 | Aula 6 | Atividade 2: Previsão de compra de um produto | 11 | | 04/02 | Sem 3 | Aula 7 | SVM | 12 | | 09/02 | Sem 4 | Aula 8 | Atividade 2: Previsão de compra de um produto | 13 | | 11/02 | Sem 4 | Aula 9 | Deep Learning | 14 | | 16/02 | Sem 5 | Aula 10 | *Carnaval* | 15 | | 18/02 | Sem 5 | Aula 11 | AM - Não supervisionados | 16 | | 23/02 | Sem 6 | Aula 12 | Atividade 3: Reconhecimento de dígitos escritos a mão | 17 | | 25/02 | Sem 6 | Aula 13 | K-Means | 18 | | 02/03 | Sem 7 | Aula 14 | Atividade 4: Perfil de clientes de uma loja | 19 | | 04/03 | Sem 7 | Aula 15 | SOM | 20 | | 09/03 | Sem 8 | Aula 16 | Atividade 5: Análise de perfil de estudantes | 21 | | 11/03 | Sem 8 | Aula 17 | SOM | 22 | | 16/03 | Sem 9 | Aula 18 | Atividade 5: Análise de perfil de estudantes | 23 | | 18/03 | Sem 9 | Aula 19 | Rede Convolucional | 24 | | 23/03 | Sem 10 | Aula 20 | Atividade 6: Reconhecimento de faces | 25 | | 25/03 | Sem 10 | Aula 21 | Rede Convolucional | 26 | | 30/03 | Sem 11 | Aula 22 | Atividade 6: Reconhecimento de faces | 27 | | 01/04 | Sem 11 | Aula 23 | Processamento de Linguagem Natural | 28 | | 06/04 | Sem 12 | Aula 24 | Atividade 7: Sistema de perguntas e respostas | 29 | | 08/04 | Sem 12 | Aula 25 | Processamento de Linguagem Natural | 30 | | 13/04 | Sem 13 | Aula 26 | Atividade 7: Sistema de perguntas e respostas | 31 | | 15/04 | Sem 13 | Aula 27 | Projeto Final | 32 | | 20/04 | Sem 14 | Aula 28 | Projeto Final | 33 | | 22/04 | Sem 14 | Aula 29 | Projeto Final | 34 | | 27/04 | Sem 15 | Aula 30 | Projeto Final | 35 | | 29/04 | Sem 15 | Aula 31 | Projeto Final | 36 | 37 | -------------------------------------------------------------------------------- /cursos_online.md: -------------------------------------------------------------------------------- 1 | # Cursos 2 | Esta página reune cursos relacionados a _Machine Learning_. 3 | 4 | ## Python 5 | * [Fundamentos de Linguagem Python Para Análise de Dados e Data Science](https://www.datascienceacademy.com.br/cursosgratuitos) 6 | * [Introduction to Python for Data Science](https://www.datacamp.com/courses/intro-to-python-for-data-science) 7 | 8 | ## Ferramentas 9 | * [Bootcamp for KNIME Analytics Platform](https://www.udemy.com/course/knime-bootcamp/) 10 | 11 | ## _Machine Learning_ 12 | * [Curso intensivo de machine learning com as APIs do TensorFlow](https://developers.google.com/machine-learning/crash-course?hl=pt-br) 13 | * [Machine Learning with Python and Scikit-Learn – Full Course](https://www.youtube.com/watch?v=hDKCxebp88A) 14 | * [Machine Learning - Udemy](https://www.udemy.com/machinelearning) 15 | * [Introdução a Machine Learning - Udacity](https://classroom.udacity.com/courses/ud120) 16 | * [Machine Learning - Google](https://developers.google.com/machine-learning/crash-course/) 17 | * [Machine Learning - Coursera](https://www.coursera.org/learn/machine-learning) 18 | 19 | ## Inteligência Artificial 20 | * [Elements of AI](https://course.elementsofai.com/) 21 | 22 | ## _Data Science_ 23 | * [Introduction to Python](https://www.datacamp.com/courses/intro-to-python-for-data-science) 24 | * [Data Science: Machine Learning](https://online-learning.harvard.edu/course/data-science-machine-learning) 25 | 26 | ## _Deep Learning_ 27 | * Introdução a Deep Learning (Sebastian Raschka / UTFPR): 28 | * [Vídeos em português](https://www.youtube.com/playlist?list=PL9At2PVRU0ZqVArhU9QMyI3jSe113_m2-) 29 | * [Slides](https://github.com/dalcimar/RC18EE---Intro-to-Deep-Learning) 30 | * [Material original](http://pages.stat.wisc.edu/~sraschka/teaching/) 31 | * [Deep Learning - Udemy](https://www.udemy.com/deep-learning-com-python-az-curso-completo) 32 | * [Página web com lições sobre TensorFlow](https://learningtensorflow.com/) 33 | * [Introdução a Deep Learning com PyTorch](https://classroom.udacity.com/courses/ud188) 34 | * [Deep Natural Language Processing course offered in Hilary Term 2017 at the University of Oxford](https://github.com/oxford-cs-deepnlp-2017/lectures) 35 | * [The Complete Self-Driving Car Course - Applied Deep Learning - Udemy](https://www.udemy.com/applied-deep-learningtm-the-complete-self-driving-car-course) 36 | 37 | ## Introdução a Ciência da Computação 38 | * [CC50 - O Curso de Ciência da Computação de Harvard, no Brasil](https://materiais.estudarfora.org.br/cc50/) 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /dados/50_Startups.csv: -------------------------------------------------------------------------------- 1 | R&D Spend,Administration,Marketing Spend,State,Profit 2 | 165349.2,136897.8,471784.1,New York,192261.83 3 | 162597.7,151377.59,443898.53,California,191792.06 4 | 153441.51,101145.55,407934.54,Florida,191050.39 5 | 144372.41,118671.85,383199.62,New York,182901.99 6 | 142107.34,91391.77,366168.42,Florida,166187.94 7 | 131876.9,99814.71,362861.36,New York,156991.12 8 | 134615.46,147198.87,127716.82,California,156122.51 9 | 130298.13,145530.06,323876.68,Florida,155752.6 10 | 120542.52,148718.95,311613.29,New York,152211.77 11 | 123334.88,108679.17,304981.62,California,149759.96 12 | 101913.08,110594.11,229160.95,Florida,146121.95 13 | 100671.96,91790.61,249744.55,California,144259.4 14 | 93863.75,127320.38,249839.44,Florida,141585.52 15 | 91992.39,135495.07,252664.93,California,134307.35 16 | 119943.24,156547.42,256512.92,Florida,132602.65 17 | 114523.61,122616.84,261776.23,New York,129917.04 18 | 78013.11,121597.55,264346.06,California,126992.93 19 | 94657.16,145077.58,282574.31,New York,125370.37 20 | 91749.16,114175.79,294919.57,Florida,124266.9 21 | 86419.7,153514.11,0,New York,122776.86 22 | 76253.86,113867.3,298664.47,California,118474.03 23 | 78389.47,153773.43,299737.29,New York,111313.02 24 | 73994.56,122782.75,303319.26,Florida,110352.25 25 | 67532.53,105751.03,304768.73,Florida,108733.99 26 | 77044.01,99281.34,140574.81,New York,108552.04 27 | 64664.71,139553.16,137962.62,California,107404.34 28 | 75328.87,144135.98,134050.07,Florida,105733.54 29 | 72107.6,127864.55,353183.81,New York,105008.31 30 | 66051.52,182645.56,118148.2,Florida,103282.38 31 | 65605.48,153032.06,107138.38,New York,101004.64 32 | 61994.48,115641.28,91131.24,Florida,99937.59 33 | 61136.38,152701.92,88218.23,New York,97483.56 34 | 63408.86,129219.61,46085.25,California,97427.84 35 | 55493.95,103057.49,214634.81,Florida,96778.92 36 | 46426.07,157693.92,210797.67,California,96712.8 37 | 46014.02,85047.44,205517.64,New York,96479.51 38 | 28663.76,127056.21,201126.82,Florida,90708.19 39 | 44069.95,51283.14,197029.42,California,89949.14 40 | 20229.59,65947.93,185265.1,New York,81229.06 41 | 38558.51,82982.09,174999.3,California,81005.76 42 | 28754.33,118546.05,172795.67,California,78239.91 43 | 27892.92,84710.77,164470.71,Florida,77798.83 44 | 23640.93,96189.63,148001.11,California,71498.49 45 | 15505.73,127382.3,35534.17,New York,69758.98 46 | 22177.74,154806.14,28334.72,California,65200.33 47 | 1000.23,124153.04,1903.93,New York,64926.08 48 | 1315.46,115816.21,297114.46,Florida,49490.75 49 | 0,135426.92,0,California,42559.73 50 | 542.05,51743.15,0,New York,35673.41 51 | 0,116983.8,45173.06,California,14681.4 -------------------------------------------------------------------------------- /dados/Banco de Dados 22.csv: -------------------------------------------------------------------------------- 1 | Sujeito,Genero,Grau_de_Instruçao,N_Filhos,Idade,Altura,Salario 2 | 1,M,Superior,1,31,160,"4,1" 3 | 2,F,Superior,0,25,160,"2,65" 4 | 3,M,Superior,0,33,157,"4,7" 5 | 4,M,Ens Fundamental,0,20,163,"1,45" 6 | 5,F,Ensino Médio,0,23,163,"1,85" 7 | 6,F,Superior,2,37,155,"2,2" 8 | 7,M,Ens Fundamental,0,38,165,"2,35" 9 | 8,M,Superior,0,37,168,"2,7" 10 | 9,M,Superior,1,34,163,"2,9" 11 | 10,M,Ensino Médio,2,40,170,"1,6" 12 | 11,F,Superior,0,41,170,3 13 | 12,F,Ensino Médio,3,46,157,"3,45" 14 | 13,F,Ensino Médio,0,26,165,1 15 | 14,F,Ensino Médio,0,41,160,"1,7" 16 | 15,F,Ensino Médio,1,43,173,"1,85" 17 | 16,M,Superior,1,27,175,"2,1" 18 | 17,M,Superior,0,26,145,"3,2" 19 | 18,M,Superior,0,42,165,"5,8" 20 | 19,F,Ensino Médio,2,43,157,"4,3" 21 | 20,M,Ensino Médio,2,30,163,"2,75" 22 | 21,M,Ens Fundamental,2,35,168,"3,4" 23 | 22,F,Ens Fundamental,0,33,183,"2,05" 24 | 23,F,Ensino Médio,0,30,175,"2,3" 25 | 24,F,Superior,2,32,185,"3,3" 26 | 25,M,Ensino Médio,4,29,173,"3,65" 27 | 26,F,Ens Fundamental,1,40,173,"3,65" 28 | 27,F,Superior,1,36,191,"4,15" 29 | 28,M,Ens Fundamental,0,34,188,"1,9" 30 | 29,M,Superior,0,31,193,"3,1" 31 | 30,F,Superior,1,35,170,4 32 | -------------------------------------------------------------------------------- /dados/DataBaseLopDescription.txt: -------------------------------------------------------------------------------- 1 | qsemana == Quantidade de dias diferentes que houve submissão 2 | submeteu == quantidade de questões submetidas pelo aluno por semana 3 | subListaLab == quantidade de submissões na lista de lab a cada 2 semanas 4 | subListaExer == quantidade de submissões na lista de exer a cada 2 semanas 5 | subDistintasLab == quantidade de dias em que submeteu a cada 2 semanas nas listas de lab 6 | subDistintasExer == quantidade de dias em que submeteu a cada 2 semanas nas listas de exer 7 | diferentesLabSemanas == quantidade de questões diferentes submetidas nas listas de lab a cada 2 semanas 8 | diferentesExerSemanas == quantidade de questões diferentes submetidas nas listas de lab a cada 2 semanas 9 | situacao == indica se o aluno foi aprovado (1) ou reprovado (0) 10 | qsub == quantidade de submissões das listas correspondente (seja lab ou exercicio) 11 | qsubp == quantidade de questões submetidas para a prova 1 (L1,L2,L3) ou da prova 2 (L4,L5) 12 | totalsub == total de submissões feitas pelo aluno 13 | igualACem == quantidade de submissões em que o aluno acertou 100%, seja nas L123 ou L45 14 | -------------------------------------------------------------------------------- /dados/Distancias_Pessoas.csv: -------------------------------------------------------------------------------- 1 | ID,Sexo,Distancia,Tamanho passo,Altura 2 | 1,F,6.0625,0.60625,1.49 3 | 2,M,6.5,0.65,1.71 4 | 3,F,6.705,0.6705,1.55 5 | 4,F,6.96,0.696,1.615 6 | 5,F,7.38,0.738,1.595 7 | 6,M,8.305,0.8305,1.73 8 | 7,M,7.895,0.7895,1.85 9 | 8,F,5.6075,0.56075,1.5 10 | 9,F,6.095,0.6095,1.54 11 | 10,M,6.3525,0.63525,1.64 12 | -------------------------------------------------------------------------------- /dados/IMG_20190927_105514.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/dados/IMG_20190927_105514.jpg -------------------------------------------------------------------------------- /dados/Iris.csv: -------------------------------------------------------------------------------- 1 | Id,SepalLengthCm,SepalWidthCm,PetalLengthCm,PetalWidthCm,Species 2 | 1,5.1,3.5,1.4,0.2,Iris-setosa 3 | 2,4.9,3.0,1.4,0.2,Iris-setosa 4 | 3,4.7,3.2,1.3,0.2,Iris-setosa 5 | 4,4.6,3.1,1.5,0.2,Iris-setosa 6 | 5,5.0,3.6,1.4,0.2,Iris-setosa 7 | 6,5.4,3.9,1.7,0.4,Iris-setosa 8 | 7,4.6,3.4,1.4,0.3,Iris-setosa 9 | 8,5.0,3.4,1.5,0.2,Iris-setosa 10 | 9,4.4,2.9,1.4,0.2,Iris-setosa 11 | 10,4.9,3.1,1.5,0.1,Iris-setosa 12 | 11,5.4,3.7,1.5,0.2,Iris-setosa 13 | 12,4.8,3.4,1.6,0.2,Iris-setosa 14 | 13,4.8,3.0,1.4,0.1,Iris-setosa 15 | 14,4.3,3.0,1.1,0.1,Iris-setosa 16 | 15,5.8,4.0,1.2,0.2,Iris-setosa 17 | 16,5.7,4.4,1.5,0.4,Iris-setosa 18 | 17,5.4,3.9,1.3,0.4,Iris-setosa 19 | 18,5.1,3.5,1.4,0.3,Iris-setosa 20 | 19,5.7,3.8,1.7,0.3,Iris-setosa 21 | 20,5.1,3.8,1.5,0.3,Iris-setosa 22 | 21,5.4,3.4,1.7,0.2,Iris-setosa 23 | 22,5.1,3.7,1.5,0.4,Iris-setosa 24 | 23,4.6,3.6,1.0,0.2,Iris-setosa 25 | 24,5.1,3.3,1.7,0.5,Iris-setosa 26 | 25,4.8,3.4,1.9,0.2,Iris-setosa 27 | 26,5.0,3.0,1.6,0.2,Iris-setosa 28 | 27,5.0,3.4,1.6,0.4,Iris-setosa 29 | 28,5.2,3.5,1.5,0.2,Iris-setosa 30 | 29,5.2,3.4,1.4,0.2,Iris-setosa 31 | 30,4.7,3.2,1.6,0.2,Iris-setosa 32 | 31,4.8,3.1,1.6,0.2,Iris-setosa 33 | 32,5.4,3.4,1.5,0.4,Iris-setosa 34 | 33,5.2,4.1,1.5,0.1,Iris-setosa 35 | 34,5.5,4.2,1.4,0.2,Iris-setosa 36 | 35,4.9,3.1,1.5,0.1,Iris-setosa 37 | 36,5.0,3.2,1.2,0.2,Iris-setosa 38 | 37,5.5,3.5,1.3,0.2,Iris-setosa 39 | 38,4.9,3.1,1.5,0.1,Iris-setosa 40 | 39,4.4,3.0,1.3,0.2,Iris-setosa 41 | 40,5.1,3.4,1.5,0.2,Iris-setosa 42 | 41,5.0,3.5,1.3,0.3,Iris-setosa 43 | 42,4.5,2.3,1.3,0.3,Iris-setosa 44 | 43,4.4,3.2,1.3,0.2,Iris-setosa 45 | 44,5.0,3.5,1.6,0.6,Iris-setosa 46 | 45,5.1,3.8,1.9,0.4,Iris-setosa 47 | 46,4.8,3.0,1.4,0.3,Iris-setosa 48 | 47,5.1,3.8,1.6,0.2,Iris-setosa 49 | 48,4.6,3.2,1.4,0.2,Iris-setosa 50 | 49,5.3,3.7,1.5,0.2,Iris-setosa 51 | 50,5.0,3.3,1.4,0.2,Iris-setosa 52 | 51,7.0,3.2,4.7,1.4,Iris-versicolor 53 | 52,6.4,3.2,4.5,1.5,Iris-versicolor 54 | 53,6.9,3.1,4.9,1.5,Iris-versicolor 55 | 54,5.5,2.3,4.0,1.3,Iris-versicolor 56 | 55,6.5,2.8,4.6,1.5,Iris-versicolor 57 | 56,5.7,2.8,4.5,1.3,Iris-versicolor 58 | 57,6.3,3.3,4.7,1.6,Iris-versicolor 59 | 58,4.9,2.4,3.3,1.0,Iris-versicolor 60 | 59,6.6,2.9,4.6,1.3,Iris-versicolor 61 | 60,5.2,2.7,3.9,1.4,Iris-versicolor 62 | 61,5.0,2.0,3.5,1.0,Iris-versicolor 63 | 62,5.9,3.0,4.2,1.5,Iris-versicolor 64 | 63,6.0,2.2,4.0,1.0,Iris-versicolor 65 | 64,6.1,2.9,4.7,1.4,Iris-versicolor 66 | 65,5.6,2.9,3.6,1.3,Iris-versicolor 67 | 66,6.7,3.1,4.4,1.4,Iris-versicolor 68 | 67,5.6,3.0,4.5,1.5,Iris-versicolor 69 | 68,5.8,2.7,4.1,1.0,Iris-versicolor 70 | 69,6.2,2.2,4.5,1.5,Iris-versicolor 71 | 70,5.6,2.5,3.9,1.1,Iris-versicolor 72 | 71,5.9,3.2,4.8,1.8,Iris-versicolor 73 | 72,6.1,2.8,4.0,1.3,Iris-versicolor 74 | 73,6.3,2.5,4.9,1.5,Iris-versicolor 75 | 74,6.1,2.8,4.7,1.2,Iris-versicolor 76 | 75,6.4,2.9,4.3,1.3,Iris-versicolor 77 | 76,6.6,3.0,4.4,1.4,Iris-versicolor 78 | 77,6.8,2.8,4.8,1.4,Iris-versicolor 79 | 78,6.7,3.0,5.0,1.7,Iris-versicolor 80 | 79,6.0,2.9,4.5,1.5,Iris-versicolor 81 | 80,5.7,2.6,3.5,1.0,Iris-versicolor 82 | 81,5.5,2.4,3.8,1.1,Iris-versicolor 83 | 82,5.5,2.4,3.7,1.0,Iris-versicolor 84 | 83,5.8,2.7,3.9,1.2,Iris-versicolor 85 | 84,6.0,2.7,5.1,1.6,Iris-versicolor 86 | 85,5.4,3.0,4.5,1.5,Iris-versicolor 87 | 86,6.0,3.4,4.5,1.6,Iris-versicolor 88 | 87,6.7,3.1,4.7,1.5,Iris-versicolor 89 | 88,6.3,2.3,4.4,1.3,Iris-versicolor 90 | 89,5.6,3.0,4.1,1.3,Iris-versicolor 91 | 90,5.5,2.5,4.0,1.3,Iris-versicolor 92 | 91,5.5,2.6,4.4,1.2,Iris-versicolor 93 | 92,6.1,3.0,4.6,1.4,Iris-versicolor 94 | 93,5.8,2.6,4.0,1.2,Iris-versicolor 95 | 94,5.0,2.3,3.3,1.0,Iris-versicolor 96 | 95,5.6,2.7,4.2,1.3,Iris-versicolor 97 | 96,5.7,3.0,4.2,1.2,Iris-versicolor 98 | 97,5.7,2.9,4.2,1.3,Iris-versicolor 99 | 98,6.2,2.9,4.3,1.3,Iris-versicolor 100 | 99,5.1,2.5,3.0,1.1,Iris-versicolor 101 | 100,5.7,2.8,4.1,1.3,Iris-versicolor 102 | 101,6.3,3.3,6.0,2.5,Iris-virginica 103 | 102,5.8,2.7,5.1,1.9,Iris-virginica 104 | 103,7.1,3.0,5.9,2.1,Iris-virginica 105 | 104,6.3,2.9,5.6,1.8,Iris-virginica 106 | 105,6.5,3.0,5.8,2.2,Iris-virginica 107 | 106,7.6,3.0,6.6,2.1,Iris-virginica 108 | 107,4.9,2.5,4.5,1.7,Iris-virginica 109 | 108,7.3,2.9,6.3,1.8,Iris-virginica 110 | 109,6.7,2.5,5.8,1.8,Iris-virginica 111 | 110,7.2,3.6,6.1,2.5,Iris-virginica 112 | 111,6.5,3.2,5.1,2.0,Iris-virginica 113 | 112,6.4,2.7,5.3,1.9,Iris-virginica 114 | 113,6.8,3.0,5.5,2.1,Iris-virginica 115 | 114,5.7,2.5,5.0,2.0,Iris-virginica 116 | 115,5.8,2.8,5.1,2.4,Iris-virginica 117 | 116,6.4,3.2,5.3,2.3,Iris-virginica 118 | 117,6.5,3.0,5.5,1.8,Iris-virginica 119 | 118,7.7,3.8,6.7,2.2,Iris-virginica 120 | 119,7.7,2.6,6.9,2.3,Iris-virginica 121 | 120,6.0,2.2,5.0,1.5,Iris-virginica 122 | 121,6.9,3.2,5.7,2.3,Iris-virginica 123 | 122,5.6,2.8,4.9,2.0,Iris-virginica 124 | 123,7.7,2.8,6.7,2.0,Iris-virginica 125 | 124,6.3,2.7,4.9,1.8,Iris-virginica 126 | 125,6.7,3.3,5.7,2.1,Iris-virginica 127 | 126,7.2,3.2,6.0,1.8,Iris-virginica 128 | 127,6.2,2.8,4.8,1.8,Iris-virginica 129 | 128,6.1,3.0,4.9,1.8,Iris-virginica 130 | 129,6.4,2.8,5.6,2.1,Iris-virginica 131 | 130,7.2,3.0,5.8,1.6,Iris-virginica 132 | 131,7.4,2.8,6.1,1.9,Iris-virginica 133 | 132,7.9,3.8,6.4,2.0,Iris-virginica 134 | 133,6.4,2.8,5.6,2.2,Iris-virginica 135 | 134,6.3,2.8,5.1,1.5,Iris-virginica 136 | 135,6.1,2.6,5.6,1.4,Iris-virginica 137 | 136,7.7,3.0,6.1,2.3,Iris-virginica 138 | 137,6.3,3.4,5.6,2.4,Iris-virginica 139 | 138,6.4,3.1,5.5,1.8,Iris-virginica 140 | 139,6.0,3.0,4.8,1.8,Iris-virginica 141 | 140,6.9,3.1,5.4,2.1,Iris-virginica 142 | 141,6.7,3.1,5.6,2.4,Iris-virginica 143 | 142,6.9,3.1,5.1,2.3,Iris-virginica 144 | 143,5.8,2.7,5.1,1.9,Iris-virginica 145 | 144,6.8,3.2,5.9,2.3,Iris-virginica 146 | 145,6.7,3.3,5.7,2.5,Iris-virginica 147 | 146,6.7,3.0,5.2,2.3,Iris-virginica 148 | 147,6.3,2.5,5.0,1.9,Iris-virginica 149 | 148,6.5,3.0,5.2,2.0,Iris-virginica 150 | 149,6.2,3.4,5.4,2.3,Iris-virginica 151 | 150,5.9,3.0,5.1,1.8,Iris-virginica 152 | -------------------------------------------------------------------------------- /dados/Mall_Customers.csv: -------------------------------------------------------------------------------- 1 | CustomerID,Genre,Age,Annual Income (k$),Spending Score (1-100) 2 | 0001,Male,19,15,39 3 | 0002,Male,21,15,81 4 | 0003,Female,20,16,6 5 | 0004,Female,23,16,77 6 | 0005,Female,31,17,40 7 | 0006,Female,22,17,76 8 | 0007,Female,35,18,6 9 | 0008,Female,23,18,94 10 | 0009,Male,64,19,3 11 | 0010,Female,30,19,72 12 | 0011,Male,67,19,14 13 | 0012,Female,35,19,99 14 | 0013,Female,58,20,15 15 | 0014,Female,24,20,77 16 | 0015,Male,37,20,13 17 | 0016,Male,22,20,79 18 | 0017,Female,35,21,35 19 | 0018,Male,20,21,66 20 | 0019,Male,52,23,29 21 | 0020,Female,35,23,98 22 | 0021,Male,35,24,35 23 | 0022,Male,25,24,73 24 | 0023,Female,46,25,5 25 | 0024,Male,31,25,73 26 | 0025,Female,54,28,14 27 | 0026,Male,29,28,82 28 | 0027,Female,45,28,32 29 | 0028,Male,35,28,61 30 | 0029,Female,40,29,31 31 | 0030,Female,23,29,87 32 | 0031,Male,60,30,4 33 | 0032,Female,21,30,73 34 | 0033,Male,53,33,4 35 | 0034,Male,18,33,92 36 | 0035,Female,49,33,14 37 | 0036,Female,21,33,81 38 | 0037,Female,42,34,17 39 | 0038,Female,30,34,73 40 | 0039,Female,36,37,26 41 | 0040,Female,20,37,75 42 | 0041,Female,65,38,35 43 | 0042,Male,24,38,92 44 | 0043,Male,48,39,36 45 | 0044,Female,31,39,61 46 | 0045,Female,49,39,28 47 | 0046,Female,24,39,65 48 | 0047,Female,50,40,55 49 | 0048,Female,27,40,47 50 | 0049,Female,29,40,42 51 | 0050,Female,31,40,42 52 | 0051,Female,49,42,52 53 | 0052,Male,33,42,60 54 | 0053,Female,31,43,54 55 | 0054,Male,59,43,60 56 | 0055,Female,50,43,45 57 | 0056,Male,47,43,41 58 | 0057,Female,51,44,50 59 | 0058,Male,69,44,46 60 | 0059,Female,27,46,51 61 | 0060,Male,53,46,46 62 | 0061,Male,70,46,56 63 | 0062,Male,19,46,55 64 | 0063,Female,67,47,52 65 | 0064,Female,54,47,59 66 | 0065,Male,63,48,51 67 | 0066,Male,18,48,59 68 | 0067,Female,43,48,50 69 | 0068,Female,68,48,48 70 | 0069,Male,19,48,59 71 | 0070,Female,32,48,47 72 | 0071,Male,70,49,55 73 | 0072,Female,47,49,42 74 | 0073,Female,60,50,49 75 | 0074,Female,60,50,56 76 | 0075,Male,59,54,47 77 | 0076,Male,26,54,54 78 | 0077,Female,45,54,53 79 | 0078,Male,40,54,48 80 | 0079,Female,23,54,52 81 | 0080,Female,49,54,42 82 | 0081,Male,57,54,51 83 | 0082,Male,38,54,55 84 | 0083,Male,67,54,41 85 | 0084,Female,46,54,44 86 | 0085,Female,21,54,57 87 | 0086,Male,48,54,46 88 | 0087,Female,55,57,58 89 | 0088,Female,22,57,55 90 | 0089,Female,34,58,60 91 | 0090,Female,50,58,46 92 | 0091,Female,68,59,55 93 | 0092,Male,18,59,41 94 | 0093,Male,48,60,49 95 | 0094,Female,40,60,40 96 | 0095,Female,32,60,42 97 | 0096,Male,24,60,52 98 | 0097,Female,47,60,47 99 | 0098,Female,27,60,50 100 | 0099,Male,48,61,42 101 | 0100,Male,20,61,49 102 | 0101,Female,23,62,41 103 | 0102,Female,49,62,48 104 | 0103,Male,67,62,59 105 | 0104,Male,26,62,55 106 | 0105,Male,49,62,56 107 | 0106,Female,21,62,42 108 | 0107,Female,66,63,50 109 | 0108,Male,54,63,46 110 | 0109,Male,68,63,43 111 | 0110,Male,66,63,48 112 | 0111,Male,65,63,52 113 | 0112,Female,19,63,54 114 | 0113,Female,38,64,42 115 | 0114,Male,19,64,46 116 | 0115,Female,18,65,48 117 | 0116,Female,19,65,50 118 | 0117,Female,63,65,43 119 | 0118,Female,49,65,59 120 | 0119,Female,51,67,43 121 | 0120,Female,50,67,57 122 | 0121,Male,27,67,56 123 | 0122,Female,38,67,40 124 | 0123,Female,40,69,58 125 | 0124,Male,39,69,91 126 | 0125,Female,23,70,29 127 | 0126,Female,31,70,77 128 | 0127,Male,43,71,35 129 | 0128,Male,40,71,95 130 | 0129,Male,59,71,11 131 | 0130,Male,38,71,75 132 | 0131,Male,47,71,9 133 | 0132,Male,39,71,75 134 | 0133,Female,25,72,34 135 | 0134,Female,31,72,71 136 | 0135,Male,20,73,5 137 | 0136,Female,29,73,88 138 | 0137,Female,44,73,7 139 | 0138,Male,32,73,73 140 | 0139,Male,19,74,10 141 | 0140,Female,35,74,72 142 | 0141,Female,57,75,5 143 | 0142,Male,32,75,93 144 | 0143,Female,28,76,40 145 | 0144,Female,32,76,87 146 | 0145,Male,25,77,12 147 | 0146,Male,28,77,97 148 | 0147,Male,48,77,36 149 | 0148,Female,32,77,74 150 | 0149,Female,34,78,22 151 | 0150,Male,34,78,90 152 | 0151,Male,43,78,17 153 | 0152,Male,39,78,88 154 | 0153,Female,44,78,20 155 | 0154,Female,38,78,76 156 | 0155,Female,47,78,16 157 | 0156,Female,27,78,89 158 | 0157,Male,37,78,1 159 | 0158,Female,30,78,78 160 | 0159,Male,34,78,1 161 | 0160,Female,30,78,73 162 | 0161,Female,56,79,35 163 | 0162,Female,29,79,83 164 | 0163,Male,19,81,5 165 | 0164,Female,31,81,93 166 | 0165,Male,50,85,26 167 | 0166,Female,36,85,75 168 | 0167,Male,42,86,20 169 | 0168,Female,33,86,95 170 | 0169,Female,36,87,27 171 | 0170,Male,32,87,63 172 | 0171,Male,40,87,13 173 | 0172,Male,28,87,75 174 | 0173,Male,36,87,10 175 | 0174,Male,36,87,92 176 | 0175,Female,52,88,13 177 | 0176,Female,30,88,86 178 | 0177,Male,58,88,15 179 | 0178,Male,27,88,69 180 | 0179,Male,59,93,14 181 | 0180,Male,35,93,90 182 | 0181,Female,37,97,32 183 | 0182,Female,32,97,86 184 | 0183,Male,46,98,15 185 | 0184,Female,29,98,88 186 | 0185,Female,41,99,39 187 | 0186,Male,30,99,97 188 | 0187,Female,54,101,24 189 | 0188,Male,28,101,68 190 | 0189,Female,41,103,17 191 | 0190,Female,36,103,85 192 | 0191,Female,34,103,23 193 | 0192,Female,32,103,69 194 | 0193,Male,33,113,8 195 | 0194,Female,38,113,91 196 | 0195,Female,47,120,16 197 | 0196,Female,35,120,79 198 | 0197,Female,45,126,28 199 | 0198,Male,32,126,74 200 | 0199,Male,32,137,18 201 | 0200,Male,30,137,83 -------------------------------------------------------------------------------- /dados/ODB2013originalcorrigido.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/dados/ODB2013originalcorrigido.csv -------------------------------------------------------------------------------- /dados/PWMxVelocidade.csv: -------------------------------------------------------------------------------- 1 | PWM,Velocidade 2 | 80,12.82 3 | 80,13.03 4 | 90,16.02 5 | 100,18.37 6 | 110,20.93 7 | 110,21.15 8 | 100,18.8 9 | 100,19.01 10 | 90,16.24 11 | 120,22.64 12 | 120,23.07 13 | 120,23.28 14 | 130,24.35 15 | 130,24.99 16 | 130,24.78 17 | 140,25.85 18 | 140,26.7 19 | 140,26.49 20 | 140,26.28 21 | 140,26.06 22 | 150,27.34 23 | 150,27.56 24 | 150,27.77 25 | 160,28.41 26 | 160,29.05 27 | 160,28.63 28 | 170,29.91 29 | 170,29.69 30 | 190,31.62 31 | 190,31.4 32 | 210,33.33 33 | 210,33.26 34 | 210,32.47 35 | 210,32.9 36 | 230,32.9 37 | 230,32.68 38 | 230,32.9 39 | 230,33.1 40 | 250,32.68 41 | 250,33.11 42 | 250,32.47 43 | 250,33.54 44 | 250,34.18 45 | -------------------------------------------------------------------------------- /dados/README.md: -------------------------------------------------------------------------------- 1 | # Base de dados 2 | * [OpenDataSUS: Sistema de Informação sobre Mortalidade](https://opendatasus.saude.gov.br/dataset/sim-2020-2021/resource/9dc15b23-70bc-46d8-b080-bb98fbeb0f27?inner_span=True) 3 | * [Consumidor comprar um determinado produto](https://raw.githubusercontent.com/ect-info/ml/master/dados/Social_Network_Ads.csv) 4 | * [Diabetes](https://www.kaggle.com/saurabh00007/diabetescsv) 5 | * [Visual Imagination with MEG](https://www.kaggle.com/emanuele/visual-imagination-with-meg) 6 | * [Avaliações restaurante Páprica no TripAdvisor](https://github.com/ect-info/ml/blob/master/dados/avaliacoes_tripadvisor_paprica.csv) 7 | * Para carregar use: `dados = pd.read_csv("avaliacoes_tripadvisor_paprica.csv",sep=';',encoding = "ISO-8859-1")` 8 | * [Este é um conjunto de dados de tweets para à análise de sentimento em português](https://www.kaggle.com/code/leandrodoze/sentiment-analysis-in-portuguese/input) 9 | 10 | # Referências 11 | 12 | * UC Irvine Machine Learning Repository, https://archive.ics.uci.edu/ml/index.php 13 | * Kaggle, https://www.kaggle.com/datasets 14 | -------------------------------------------------------------------------------- /dados/Resultados_Strava_2_CSV2020_2023.csv: -------------------------------------------------------------------------------- 1 | Desporto,2Distancia_km,2Elevacao,Tempo_Minutos,Cal_Tempo,Cal_Distancia,Cal_Tempo_e_Distancia,,,,,, 2 | Corrida,8,47000,53,0,61,9000,621,58340,619,83130,619,66160 3 | Corrida,8,72000,56,0,69,1000,690,8870,638,9800,636,7150 4 | Corrida,7,55000,111,0,71,1000,709,16210,552,61000,546,74990 5 | Corrida,10,35000,94,0,79,4000,788,47570,757,19650,755,90400 6 | Corrida,2,12000,6,0,14,4000,168,90810,155,85840,155,38790 7 | Corrida,2,71000,23,0,18,5000,207,53170,198,96770,198,65180 8 | Corrida,3,17000,25,0,22,7000,248,6270,232,57830,231,99900 9 | Corrida,3,27000,25,0,25,7000,276,67280,239,88500,238,51840 10 | Corrida,9,11000,32,0,26,2000,281,28220,666,59390,680,68290 11 | Corrida,4,41000,16,0,27,8000,297,1780,323,18090,324,11440 12 | Corrida,3,69000,40,0,28,5000,303,5770,270,57300,269,35730 13 | Corrida,3,46000,13,0,28,5000,303,37560,253,76760,251,92490 14 | Corrida,4,68000,31,0,29,4000,312,11750,342,90890,344,810 15 | Corrida,4,4000,10,0,30,1000,318,47530,296,14630,295,29870 16 | Corrida,3,97000,13,0,32,0,336,75400,291,3160,289,32280 17 | Corrida,4,4000,28,0,32,4000,340,72760,322,45020,321,74550 18 | Corrida,4,76000,13,0,32,4000,340,88660,348,75420,349,680 19 | Corrida,5,12000,19,0,33,8000,354,7900,375,5820,375,78760 20 | Corrida,5,25000,20,0,34,0,355,50950,384,55690,385,58140 21 | Corrida,5,13000,23,0,35,5000,370,29140,375,78890,375,94730 22 | Corrida,4,42000,22,0,36,1000,375,85450,323,91160,321,96530 23 | Corrida,5,33000,27,0,36,2000,376,33130,390,40220,390,87310 24 | Corrida,5,94000,26,0,36,2000,376,33130,434,97280,437,7580 25 | Corrida,5,88000,45,0,36,3000,378,7970,430,58880,432,46680 26 | Corrida,5,27000,27,0,36,5000,379,98700,386,1820,386,19380 27 | Corrida,5,19000,12,0,36,8000,382,53020,380,17290,380,4060 28 | Corrida,5,41000,25,0,36,9000,383,48380,396,24750,396,66880 29 | Corrida,5,28000,25,0,37,1000,384,91430,386,74880,386,76950 30 | Corrida,5,13000,28,0,37,1000,385,7330,375,78890,375,40230 31 | Corrida,4,95000,27,0,37,1000,385,70910,362,63690,361,74530 32 | Corrida,6,19000,28,0,37,6000,390,60,453,23950,455,50740 33 | Corrida,5,2000,30,0,37,7000,390,95420,367,75150,366,85390 34 | Corrida,4,43000,36,0,38,0,393,65630,324,64220,322,6640 35 | Corrida,5,12000,30,0,38,4000,397,31200,375,5820,374,19370 36 | Corrida,5,42000,21,0,38,7000,400,33200,396,97820,396,80500 37 | Corrida,5,71000,47,0,38,8000,401,60360,418,16750,418,72340 38 | Corrida,5,4000,58,0,39,1000,404,30560,395,51680,395,14370 39 | Corrida,5,11000,19,0,39,2000,405,10040,374,32750,373,14910 40 | Corrida,4,32000,31,0,39,4000,407,16660,316,60490,313,23660 41 | Corrida,5,47000,51,0,39,6000,409,7400,400,63150,400,26980 42 | Corrida,5,35000,51,0,39,7000,409,86870,391,86350,391,15150 43 | Corrida,5,12000,56,0,39,7000,410,50450,375,5820,373,70730 44 | Corrida,5,29000,45,0,39,8000,411,29920,387,47950,386,55420 45 | Corrida,5,79000,31,0,40,7000,419,24650,424,1280,424,13230 46 | Corrida,5,45000,44,0,40,8000,420,83590,399,17020,398,32140 47 | Corrida,5,95000,36,0,41,2000,424,80950,435,70350,436,4600 48 | Corrida,5,7000,55,0,41,6000,428,62420,371,40490,369,25220 49 | Corrida,5,82000,45,0,42,4000,435,93570,426,20480,425,78930 50 | Corrida,5,72000,37,0,43,3000,444,20080,418,89820,417,91030 51 | Corrida,5,69000,30,0,43,5000,446,42610,416,70620,415,55600 52 | Corrida,5,41000,22,0,43,9000,450,24070,396,24750,394,20760 53 | Corrida,9,72000,33,0,44,1000,451,67120,711,16460,720,60370 54 | Corrida,6,53000,23,0,44,1000,451,83020,478,8210,478,98020 55 | Corrida,9,8000,60,0,45,1000,461,84370,717,990,726,28800 56 | Corrida,6,25000,61,0,45,6000,466,77100,457,62350,457,22160 57 | Corrida,6,5000,23,0,45,8000,468,4260,443,1010,442,2630 58 | Corrida,6,3000,23,0,45,8000,468,51940,441,54880,440,49380 59 | Corrida,5,93000,48,0,45,9000,469,63200,434,24210,432,87860 60 | Corrida,6,0,38,0,46,3000,472,81090,439,35680,438,6330 61 | Corrida,6,82000,29,0,46,6000,475,51300,499,27140,500,7230 62 | Corrida,6,36000,36,0,46,6000,475,67190,465,66080,465,22510 63 | Corrida,6,73000,39,0,46,9000,478,85080,492,69540,493,13250 64 | Corrida,5,61000,110,0,47,2000,482,2970,410,86080,408,18400 65 | Corrida,6,43000,34,0,48,8000,497,28850,470,77540,469,73000 66 | Corrida,6,14000,89,0,48,9000,498,8320,449,58610,447,73550 67 | Corrida,6,12000,64,0,49,1000,499,99050,448,12480,446,15030 68 | Corrida,6,44000,41,0,50,6000,514,29560,471,50610,469,86040 69 | Corrida,7,79000,45,0,50,6000,514,29560,570,14600,572,11240 70 | Corrida,7,32000,36,0,51,5000,522,24280,535,80470,536,22060 71 | Corrida,6,74000,33,0,51,8000,525,10380,493,42610,492,18460 72 | Corrida,6,15000,90,0,51,8000,525,89860,450,31680,447,46740 73 | Corrida,6,53000,93,0,52,1000,528,44170,478,8210,476,15570 74 | Corrida,9,86000,39,0,52,9000,536,38890,721,39390,728,8420 75 | Corrida,7,78000,45,0,54,5000,551,32980,569,41530,569,98960 76 | -------------------------------------------------------------------------------- /dados/Salary_Data.csv: -------------------------------------------------------------------------------- 1 | YearsExperience,Salary 2 | 1.1,39343.00 3 | 1.3,46205.00 4 | 1.5,37731.00 5 | 2.0,43525.00 6 | 2.2,39891.00 7 | 2.9,56642.00 8 | 3.0,60150.00 9 | 3.2,54445.00 10 | 3.2,64445.00 11 | 3.7,57189.00 12 | 3.9,63218.00 13 | 4.0,55794.00 14 | 4.0,56957.00 15 | 4.1,57081.00 16 | 4.5,61111.00 17 | 4.9,67938.00 18 | 5.1,66029.00 19 | 5.3,83088.00 20 | 5.9,81363.00 21 | 6.0,93940.00 22 | 6.8,91738.00 23 | 7.1,98273.00 24 | 7.9,101302.00 25 | 8.2,113812.00 26 | 8.7,109431.00 27 | 9.0,105582.00 28 | 9.5,116969.00 29 | 9.6,112635.00 30 | 10.3,122391.00 31 | 10.5,121872.00 32 | -------------------------------------------------------------------------------- /dados/altura_x_peso.csv: -------------------------------------------------------------------------------- 1 | Indivíduo,Altura (cm),Peso (Kg) 2 | 1,167,56 3 | 2,187,"89,2" 4 | 3,188,"90,6" 5 | 4,189,"93,6" 6 | 5,178,"60,5" 7 | 6,189,"91,4" 8 | 7,190,"95,8" 9 | 8,176,"62,4" 10 | 9,194,95 11 | 10,195,99 12 | -------------------------------------------------------------------------------- /dados/alunos_didatico.csv: -------------------------------------------------------------------------------- 1 | Nome,Nota do aluno,,Sexo,Idade,Peso,Altura,IMC,Contagem 2 | Sandra,2,4,Feminino,19,100,1.68,35.4308390022676,Obesidade 3 | Ana,2,4,Feminino,18,92,1.57,37.3240293723883,Obesidade 4 | Maria,4,16,Feminino,19,92,1.78,29.0367377856331,Sobrepeso 5 | Leda ,4,16,Feminino,23,66,1.77,21.0667432730058,Normal 6 | Carla ,6,36,Feminino,36,84,1.9,23.2686980609418,Normal 7 | Rachel,6,36,Feminino,27,67,1.8,20.679012345679,Normal 8 | Ângela,7,49,Feminino,26,66,1.77,21.0667432730058,Normal 9 | Nicole,7,49,Feminino,24,76,1.55,31.633714880333,Obesidade 10 | Lika,7,49,Feminino,22,77,1.88,21.7858759619737,Normal 11 | Otavio,1,1,Masculino,18,66,1.78,20.8307031940412,Normal 12 | Francisco,3,9,Masculino,22,69,1.59,27.2932241604367,Sobrepeso 13 | Rafael,3,9,Masculino,18,104,1.63,39.1433625653958,Obesidade 14 | Antonio,5,25,Masculino,25,93,1.75,30.3673469387755,Obesidade 15 | Roberto ,5,25,Masculino,29,92,1.54,38.7923764547141,Obesidade 16 | Ivan,5,25,Masculino,22,85,1.88,24.0493435943866,Normal 17 | Luiz,6,36,Masculino,51,105,1.77,33.5152733888729,Obesidade 18 | David,6,36,Masculino,22,91,1.76,29.3775826446281,Sobrepeso 19 | Edson,6,36,Masculino,29,104,1.76,33.5743801652893,Obesidade 20 | Paulo,7,49,Masculino,19,81,1.76,26.1492768595041,Sobrepeso 21 | Matheus,9,81,Masculino,25,87,1.9,24.0997229916898,Normal 22 | -------------------------------------------------------------------------------- /dados/antihorario002.txt: -------------------------------------------------------------------------------- 1 | 0.5, 131 2 | 0.52, 139 3 | 0.54, 143 4 | 0.56, 147 5 | 0.58, 150 6 | 0.6, 152 7 | 0.62, 154 8 | 0.64, 157 9 | 0.66, 159 10 | 0.68, 161 11 | 0.7, 163 12 | 0.72, 165 13 | 0.74, 167 14 | 0.76, 168 15 | 0.78, 170 16 | 0.8, 171 17 | 0.82, 174 18 | 0.84, 175 19 | 0.86, 176 20 | 0.88, 177 21 | 0.9, 179 22 | 0.92, 180 23 | 0.94, 181 24 | 0.96, 183 25 | 0.98, 185 26 | -------------------------------------------------------------------------------- /dados/antihorario003.txt: -------------------------------------------------------------------------------- 1 | 0.5, 133 2 | 0.53, 142 3 | 0.56, 146 4 | 0.59, 151 5 | 0.62, 155 6 | 0.65, 158 7 | 0.68, 161 8 | 0.71, 164 9 | 0.74, 167 10 | 0.77, 169 11 | 0.8, 171 12 | 0.83, 174 13 | 0.86, 176 14 | 0.89, 178 15 | 0.92, 180 16 | 0.95, 183 17 | 0.98, 185 18 | -------------------------------------------------------------------------------- /dados/antihorario004.txt: -------------------------------------------------------------------------------- 1 | 0.5, 132 2 | 0.54, 143 3 | 0.58, 149 4 | 0.62, 154 5 | 0.66, 159 6 | 0.7, 162 7 | 0.74, 166 8 | 0.78, 169 9 | 0.82, 173 10 | 0.86, 175 11 | 0.9, 178 12 | 0.94, 182 13 | 0.98, 184 14 | -------------------------------------------------------------------------------- /dados/avaliacoes_tripadvisor_paprica.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/dados/avaliacoes_tripadvisor_paprica.csv -------------------------------------------------------------------------------- /dados/compra_casa_didatico.csv: -------------------------------------------------------------------------------- 1 | Idade,Renda (mil reais),Estado civil,Filhos,Região,Compra 2 | 25,50,Solteiro,0,Sudeste,Não 3 | 32,80,Casado,2,Nordeste,Sim 4 | 40,120,Casado,1,Sudeste,Sim 5 | 50,200,Divorciado,3,Centro-Oeste,Sim 6 | 60,150,Viúvo,0,Sul,Não 7 | 35,60,Solteiro,0,Nordeste,Não 8 | 45,100,Casado,2,Sudeste,Não 9 | 55,180,Divorciado,1,Centro-Oeste,Sim 10 | 28,70,Solteiro,1,Sudeste,Não 11 | 38,90,Casado,2,Nordeste,Não 12 | -------------------------------------------------------------------------------- /dados/crescimento_populacional.csv: -------------------------------------------------------------------------------- 1 | ano,populacao 2 | 1872,9.9 3 | 1890,14.3 4 | 1900,17.4 5 | 1920,30.6 6 | 1940,41.2 7 | 1950,51.9 8 | 1960,70.2 9 | 1970,93.1 10 | 1980,119.0 11 | 1991,146.2 12 | 1996,157.1 13 | -------------------------------------------------------------------------------- /dados/didatico_dados_pessoas_e_notas.csv: -------------------------------------------------------------------------------- 1 | Nome,Nota do aluno,Sexo,Idade,Peso,Altura 2 | Otavio,1,Masculino,18,98,1.780 3 | Sandra,2,Feminino,19,66,1.680 4 | Ana,2,Feminino,18,102,1.570 5 | Francisco,3,Masculino,22,76,1.590 6 | Rafael,3,Masculino,18,90,1.630 7 | Maria,4,Feminino,19,91,1.780 8 | Leda ,4,Feminino,23,72,1.770 9 | Antonio,5,Masculino,25,87,1.750 10 | Roberto ,5,Masculino,29,87,1.540 11 | Ivan,5,Masculino,22,77,1.880 12 | Carla ,6,Feminino,36,102,1.900 13 | Luiz,6,Masculino,51,84,1.770 14 | David,6,Masculino,22,99,1.760 15 | Edson,6,Masculino,29,71,1.760 16 | Rachel,6,Feminino,27,71,1.800 17 | Ângela,7,Feminino,26,80,1.770 18 | Paulo,7,Masculino,19,98,1.760 19 | Nicole,7,Feminino,24,66,1.550 20 | Lika,7,Feminino,22,98,1.880 21 | Matheus,9,Masculino,25,100,1.900 22 | -------------------------------------------------------------------------------- /dados/horario002.csv: -------------------------------------------------------------------------------- 1 | pwm, pulses 2 | 0.5, 127 3 | 0.52, 133 4 | 0.54, 137 5 | 0.56, 140 6 | 0.58, 143 7 | 0.6, 146 8 | 0.62, 148 9 | 0.64, 150 10 | 0.66, 153 11 | 0.68, 156 12 | 0.7, 158 13 | 0.72, 159 14 | 0.74, 161 15 | 0.76, 163 16 | 0.78, 164 17 | 0.8, 166 18 | 0.82, 168 19 | 0.84, 170 20 | 0.86, 172 21 | 0.88, 173 22 | 0.9, 173 23 | 0.92, 174 24 | 0.94, 176 25 | 0.96, 177 26 | 0.98, 179 27 | -------------------------------------------------------------------------------- /dados/horario003.csv: -------------------------------------------------------------------------------- 1 | pwm, pulses 2 | 0.5, 125 3 | 0.53, 135 4 | 0.56, 140 5 | 0.59, 144 6 | 0.62, 148 7 | 0.65, 152 8 | 0.68, 155 9 | 0.71, 158 10 | 0.74, 160 11 | 0.77, 163 12 | 0.8, 164 13 | 0.83, 166 14 | 0.86, 170 15 | 0.89, 173 16 | 0.92, 173 17 | 0.95, 176 18 | 0.98, 179 19 | -------------------------------------------------------------------------------- /dados/horario004.csv: -------------------------------------------------------------------------------- 1 | pwm, pulses 2 | 0.5, 134 3 | 0.54, 139 4 | 0.58, 145 5 | 0.62, 150 6 | 0.66, 155 7 | 0.7, 158 8 | 0.74, 162 9 | 0.78, 163 10 | 0.82, 167 11 | 0.86, 171 12 | 0.9, 173 13 | 0.94, 176 14 | 0.98, 178 15 | -------------------------------------------------------------------------------- /dados/horas_estudos_x_notas.csv: -------------------------------------------------------------------------------- 1 | Discente,Horas de estudo,Nota do discente 2 | 1,1,53 3 | 2,5,74 4 | 3,7,59 5 | 4,8,43 6 | 5,10,56 7 | 6,11,84 8 | 7,14,96 9 | 8,15,69 10 | 9,15,84 11 | 10,19,83 12 | -------------------------------------------------------------------------------- /dados/limpo1.csv: -------------------------------------------------------------------------------- 1 | eh_diabetico,eh_hipertenso,fez_quimioterapia,eh_asmatico,eh_fumante,temperatura,frequencia_respiratoria,pulsacao,tosse,diarreia,falta_apetite,dificuldade_sabores,dificuldade_odores,dores_garganta,dores_corpo,nariz_congestionado,fadiga,nausea 2 | 1,0,0,0,0,36.3,17,70,0,0,0,0,0,0,0,0,0,0 3 | 0,1,0,0,1,35.7,0,85,0,0,0,0,0,0,0,0,0,0 4 | 1,1,0,1,1,39,17,95,1,1,1,1,1,1,1,1,1,1 5 | 0,0,0,0,0,36,15,80,0,0,0,0,0,0,0,0,0,0 6 | 0,0,0,0,0,37,6,86,0,0,0,0,0,0,0,0,0,0 7 | 0,0,0,0,0,35,30,70,0,0,0,0,0,0,0,0,0,0 8 | 0,0,0,0,0,36,50,30,0,0,0,0,0,0,0,0,0,0 9 | 0,0,0,0,0,36.3,13,75,0,0,0,0,0,0,0,1,0,0 10 | 0,0,0,0,0,36.6,18,75,0,0,0,0,0,0,0,0,0,0 11 | 0,0,0,0,0,39,21,85,1,0,0,1,0,1,0,0,1,0 12 | 0,0,0,0,0,36.5,20,54,0,0,0,0,0,0,0,0,0,0 13 | 0,0,0,0,0,37,30,90,0,0,0,0,0,0,1,1,0,0 14 | 0,0,0,0,0,38,25,95,1,0,0,0,0,1,0,0,0,0 15 | 0,0,0,0,0,35,30,70,0,0,0,0,0,0,0,0,0,0 16 | 0,1,0,0,0,36,13,65,0,0,0,0,0,0,0,0,0,0 17 | 0,0,0,0,0,36.6,8,85,0,0,0,0,0,0,0,0,0,0 18 | 0,0,0,1,0,36.5,15,69,0,0,1,0,0,0,0,0,1,0 19 | 1,0,0,0,0,36,60,77,0,0,0,0,0,0,0,0,0,0 20 | 0,0,0,0,0,36.2,15,65,0,0,0,0,0,0,0,1,0,0 21 | 0,0,0,0,0,36,12,73,0,0,0,0,0,0,1,0,0,0 22 | 0,0,0,0,0,36,14,74,0,0,0,0,0,0,0,0,0,0 23 | 0,0,0,0,0,36.5,12,75,0,0,0,0,0,0,0,0,0,0 24 | 0,0,0,1,0,36,13,65,0,0,0,0,0,1,0,0,0,0 25 | 0,0,0,0,0,36.8,12,74,1,1,1,0,0,0,0,0,1,1 26 | 0,0,0,0,0,36.6,16,76,0,0,0,0,0,0,0,0,0,0 27 | 0,0,0,1,0,35.8,19,70,0,0,0,0,0,0,0,0,0,0 28 | 0,1,0,0,0,36,18,80,0,0,0,0,0,0,0,0,0,0 29 | 0,1,0,0,0,37.2,18,78,0,0,0,0,0,0,0,0,0,0 30 | 0,0,0,0,0,36.5,15,70,0,0,0,0,0,0,0,0,0,0 31 | 0,0,0,0,0,37.9,23,80,1,0,1,0,1,1,0,1,0,1 32 | 0,0,0,0,0,36.7,18,98,0,0,0,0,0,0,0,0,0,0 33 | 0,0,0,0,0,36.8,16,60,0,0,0,0,0,0,0,0,0,0 34 | 0,0,0,0,0,37,10,15,0,0,0,0,0,0,0,0,0,0 35 | 0,0,0,0,0,36,19,12,0,0,0,0,0,0,0,0,0,0 36 | 1,1,0,0,1,37,60,90,0,0,0,0,0,0,0,0,0,0 37 | 1,0,0,0,0,37,20,76,0,0,0,0,0,0,0,1,0,0 38 | 0,1,0,0,0,37.5,17,80,0,0,0,0,0,0,0,0,0,0 39 | 0,0,0,0,0,36.5,14,70,0,0,0,0,0,0,0,0,0,0 40 | 0,0,0,0,0,36.5,14,80,0,0,0,0,0,0,0,0,0,0 41 | 1,0,0,0,0,39,22,80,1,1,0,0,1,0,0,0,0,0 42 | 0,0,0,0,0,36.9,20,93,0,0,0,0,0,0,0,1,0,0 43 | 0,0,0,0,0,36.9,20,93,0,0,0,0,0,0,0,1,0,0 44 | 0,0,0,0,0,36.5,12,80,0,0,0,0,0,0,0,0,0,0 45 | 0,0,0,1,0,36,32,99,0,0,0,0,0,0,0,0,1,1 46 | 0,0,0,0,0,36.5,21,77,1,0,0,0,0,0,0,0,1,0 47 | 0,0,0,0,0,36,17,60,0,0,0,0,0,0,0,0,0,0 48 | 0,0,0,0,0,36,11,65,1,0,0,0,0,1,0,1,0,0 49 | 0,0,0,0,0,36,17,78,0,0,0,0,0,0,0,0,0,0 50 | 0,0,0,0,0,36,10,10,0,0,0,0,0,0,0,0,0,0 51 | 0,0,0,0,0,37,12,12,0,1,0,1,1,0,1,0,0,0 52 | 0,0,0,0,0,36.5,21,98,1,0,0,0,0,0,0,0,1,0 53 | 0,0,0,0,0,36.3,17,78,0,0,0,0,0,0,0,1,0,0 54 | 0,1,0,0,0,37,50,45,1,0,0,0,0,1,0,0,1,0 55 | 0,1,0,0,0,37,50,45,1,0,0,0,0,1,0,0,1,0 56 | 0,1,0,0,0,37,50,45,1,0,0,0,0,1,0,0,1,0 57 | 0,1,0,0,0,37,30,45,1,0,0,0,0,1,0,0,1,0 58 | 0,1,0,0,0,37,30,20,1,0,0,0,0,1,0,0,1,0 59 | 0,1,0,0,0,37,30,20,1,0,0,0,0,1,0,0,1,0 60 | 0,1,0,0,0,37,30,20,1,0,0,0,0,1,0,0,1,0 61 | 0,1,0,0,0,37,30,20,1,0,0,0,0,1,0,0,1,0 62 | 0,1,0,0,0,37,30,20,1,0,0,0,0,1,0,0,1,0 63 | 0,1,0,0,0,37,30,20,1,0,0,0,0,1,0,0,1,0 64 | 0,0,0,0,0,37,60,60,1,0,0,0,0,0,0,0,0,0 65 | 1,1,0,0,1,34.5,60,45,0,0,1,1,1,1,1,1,1,1 66 | 1,1,0,0,1,36,25,46,0,0,0,0,0,0,0,0,0,0 67 | 0,0,0,0,0,35,32,60,0,0,0,0,0,0,0,0,0,0 68 | 0,0,0,0,0,31,12,14,0,0,0,0,0,0,0,0,0,0 69 | 1,1,0,0,1,36.7,24,70,0,0,0,0,0,1,0,0,0,0 70 | 0,0,0,0,0,36.5,22,85,1,0,0,0,1,0,0,0,1,0 71 | 0,0,0,0,0,36,20,75,0,0,0,0,0,0,0,0,0,0 72 | 0,0,0,0,0,36.4,25,98,1,0,0,0,1,0,0,0,1,1 73 | 0,0,0,0,0,36.8,14,68,0,0,0,0,0,1,0,0,1,1 74 | 0,0,0,0,0,36.4,25,76,1,0,0,0,1,0,0,0,0,0 75 | 1,1,0,0,1,36,20,60,0,0,0,0,0,0,0,0,0,0 76 | 1,1,0,0,1,38.3,24,67,1,1,1,1,0,0,0,0,0,0 77 | 0,0,0,0,0,37.5,20,60,0,0,0,0,0,0,0,1,0,0 78 | 0,0,0,0,0,36.3,18,69,1,0,0,0,1,1,0,1,0,0 79 | 1,0,0,0,0,36.1,13,60,1,0,0,0,0,0,0,1,0,1 80 | 1,1,0,0,1,35,20,50,1,1,0,0,0,1,1,1,0,0 81 | 1,1,0,0,1,39.2,20,60,0,0,0,0,0,0,0,0,0,0 82 | 1,1,0,0,1,41.1,20,60,0,0,0,0,0,0,0,0,0,0 83 | 1,1,0,0,1,39.6,20,60,1,0,0,0,0,0,0,0,0,0 84 | 1,1,0,0,1,36,20,60,0,0,0,0,0,0,0,0,1,0 85 | 1,1,0,0,1,41.4,20,60,0,0,0,0,0,1,0,0,1,0 86 | 1,1,0,0,1,41.1,49,139,1,0,1,1,1,1,1,1,1,1 87 | 1,1,0,0,1,43.3,49,219,1,1,1,1,1,1,1,1,1,1 88 | 1,1,0,0,1,41.4,47,192,1,0,1,1,1,1,1,1,1,1 89 | 1,1,0,0,1,41.9,49,193,1,1,1,1,1,1,1,1,1,1 90 | 0,0,0,0,0,36.7,24,63,1,0,0,0,0,0,0,0,0,0 91 | 0,0,0,0,0,36.1,20,60,0,0,0,0,0,0,0,0,0,0 92 | 0,0,0,0,0,36.7,23,85,0,0,0,0,1,0,1,0,1,0 93 | 0,0,0,0,0,38.1,24,87,1,0,1,0,0,0,1,1,1,0 94 | 0,0,0,0,0,36.4,25,79,1,0,0,0,0,0,1,0,1,0 95 | 0,0,0,0,0,36.6,25,80,1,0,0,0,0,0,0,0,1,0 96 | 0,0,0,0,0,36.8,25,82,1,0,0,1,1,0,0,0,1,0 97 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 98 | 0,0,0,0,0,36.7,27,85,1,1,0,0,0,0,0,0,1,0 99 | 0,0,0,0,0,36.5,20,88,1,1,1,0,0,1,0,0,1,0 100 | 0,0,0,0,0,36.5,29,85,1,1,0,0,0,0,0,0,1,0 101 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 102 | 0,0,0,0,0,36.6,25,80,1,1,0,0,0,0,0,0,1,0 103 | 0,0,0,0,0,36.7,25,100,1,0,1,0,0,0,0,0,1,0 104 | 0,0,0,0,0,35,20,50,1,1,0,0,0,0,0,0,0,0 105 | 0,0,0,0,0,43.3,38,143,1,1,1,1,1,1,1,1,1,1 106 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 107 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 108 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 109 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 110 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 111 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 112 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 113 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 114 | 0,0,0,0,0,39.3,9,166,1,0,0,0,1,1,1,0,0,0 115 | 0,0,0,0,0,36.7,20,60,0,0,0,1,0,0,1,0,1,0 116 | 0,0,0,0,0,35,20,50,0,0,0,0,0,0,0,0,1,0 117 | 0,0,0,0,1,30,60,73,1,1,1,0,0,1,1,0,0,0 118 | 0,1,0,0,0,35,20,50,1,0,0,0,0,0,0,0,1,0 119 | 0,1,0,0,0,35,20,50,1,0,0,0,0,0,0,0,1,0 120 | 0,1,0,0,0,35,20,50,0,0,0,0,0,0,0,0,0,0 121 | 0,1,0,0,0,35,20,50,1,0,0,0,0,0,0,1,0,0 122 | 0,0,0,0,0,37,28,88,1,0,1,0,0,0,0,0,1,0 123 | 0,0,0,0,1,30,60,74,0,0,0,0,0,0,0,0,0,0 124 | 0,0,0,0,0,35,14,50,0,0,1,0,0,0,0,1,0,0 125 | 0,0,0,0,0,36.1,23,83,0,0,1,0,0,0,1,0,0,0 126 | 0,0,0,0,0,36.6,22,80,1,0,1,0,0,0,0,0,1,0 127 | 0,0,0,0,0,36.4,24,79,0,0,1,0,0,0,1,0,1,0 128 | 0,0,0,0,0,36.1,29,81,0,0,1,0,0,0,0,0,1,0 129 | 0,0,0,0,0,36.3,30,69,0,0,1,0,0,0,1,0,1,0 130 | 0,0,0,0,0,36.9,15,71,1,0,0,0,0,0,1,1,1,0 131 | -------------------------------------------------------------------------------- /dados/milsa.csv: -------------------------------------------------------------------------------- 1 | Funcionario,Est.civil,Inst,Filhos,Salario,Anos,Meses,Regiao 2 | 1,solteiro,1o Grau,NA,4,26,3,interior 3 | 2,casado,1o Grau,1,4.56,32,10,capital 4 | 3,casado,1o Grau,2,5.25,36,5,capital 5 | 4,solteiro,2o Grau,NA,5.73,20,10,outro 6 | 5,solteiro,1o Grau,NA,6.26,40,7,outro 7 | 6,casado,1o Grau,0,6.66,28,0,interior 8 | 7,solteiro,1o Grau,NA,6.86,41,0,interior 9 | 8,solteiro,1o Grau,NA,7.39,43,4,capital 10 | 9,casado,2o Grau,1,7.59,34,10,capital 11 | 10,solteiro,2o Grau,NA,7.44,23,6,outro 12 | 11,casado,2o Grau,2,8.12,33,6,interior 13 | 12,solteiro,1o Grau,NA,8.46,27,11,capital 14 | 13,solteiro,2o Grau,NA,8.74,37,5,outro 15 | 14,casado,1o Grau,3,8.95,44,2,outro 16 | 15,casado,2o Grau,0,9.13,30,5,interior 17 | 16,solteiro,2o Grau,NA,9.35,38,8,outro 18 | 17,casado,2o Grau,1,9.77,31,7,capital 19 | 18,casado,1o Grau,2,9.8,39,7,outro 20 | 19,solteiro,Superior,NA,10.53,25,8,interior 21 | 20,solteiro,2o Grau,NA,10.76,37,4,interior 22 | 21,casado,2o Grau,1,11.06,30,9,outro 23 | 22,solteiro,2o Grau,NA,11.59,34,2,capital 24 | 23,solteiro,1o Grau,NA,12,41,0,outro 25 | 24,casado,Superior,0,12.79,26,1,outro 26 | 25,casado,2o Grau,2,13.23,32,5,interior 27 | 26,casado,2o Grau,2,13.6,35,0,outro 28 | 27,solteiro,1o Grau,NA,13.85,46,7,outro 29 | 28,casado,2o Grau,0,14.69,29,8,interior 30 | 29,casado,2o Grau,5,14.71,40,6,interior 31 | 30,casado,2o Grau,2,15.99,35,10,capital 32 | 31,solteiro,Superior,NA,16.22,31,5,outro 33 | 32,casado,2o Grau,1,16.61,36,4,interior 34 | 33,casado,Superior,3,17.26,43,7,capital 35 | 34,solteiro,Superior,NA,18.75,33,7,capital 36 | 35,casado,2o Grau,2,19.4,48,11,capital 37 | 36,casado,Superior,3,23.3,42,2,interior 38 | -------------------------------------------------------------------------------- /dados/obitos_covid.csv: -------------------------------------------------------------------------------- 1 | SEXO,IDADE 2 | 0,96 3 | 0,94 4 | 0,93 5 | 1,93 6 | 0,93 7 | 0,92 8 | 1,92 9 | 1,92 10 | 0,91 11 | 0,91 12 | 0,90 13 | 0,89 14 | 0,88 15 | 1,88 16 | 1,87 17 | 0,87 18 | 0,86 19 | 1,86 20 | 0,86 21 | 0,85 22 | 1,85 23 | 0,84 24 | 1,84 25 | 0,84 26 | 0,83 27 | 0,83 28 | 1,83 29 | 1,82 30 | 0,82 31 | 1,82 32 | 0,82 33 | 0,82 34 | 1,82 35 | 0,81 36 | 0,81 37 | 1,81 38 | 0,81 39 | 0,81 40 | 0,81 41 | 0,81 42 | 0,81 43 | 0,80 44 | 0,80 45 | 1,79 46 | 0,78 47 | 0,77 48 | 1,76 49 | 1,76 50 | 1,75 51 | 1,75 52 | 1,75 53 | 0,73 54 | 1,72 55 | 0,71 56 | 1,71 57 | 0,69 58 | 0,69 59 | 0,68 60 | 1,67 61 | 0,66 62 | 0,66 63 | 1,66 64 | 1,65 65 | 1,65 66 | 1,64 67 | 1,64 68 | 1,62 69 | 0,62 70 | 1,62 71 | 1,61 72 | 0,61 73 | 1,61 74 | 1,61 75 | 1,58 76 | 1,58 77 | 1,57 78 | 0,56 79 | 0,56 80 | 1,52 81 | 1,52 82 | 1,52 83 | 0,49 84 | 1,45 85 | 1,45 86 | 1,44 87 | 1,40 88 | 1,39 89 | 0,35 90 | 0,32 91 | 1,31 -------------------------------------------------------------------------------- /dados/perfil_notas_sem_identificacao.txt: -------------------------------------------------------------------------------- 1 | 'Unid. 1', 2 | 'Unid. 2', 3 | 'Unid. 3', 4 | 'Resultado', 5 | 'Sit.', 6 | 'Qual o seu conhecimento nos tópicos abaixo: [Operadores aritméticos]', 7 | 'Qual o seu conhecimento nos tópicos abaixo: [Estruturas condicionais (if, else, etc.) ]', 8 | 'Qual o seu conhecimento nos tópicos abaixo: [Operadores lógicos]', 9 | 'Qual o seu conhecimento nos tópicos abaixo: [Estruturas de repetição (while, for )]', 10 | 'Qual o seu conhecimento nos tópicos abaixo: [Vetores (Arrays) ]', 11 | 'Qual o seu conhecimento nos tópicos abaixo: [Desenvolvimento de Jogos]', 12 | 'Qual o seu conhecimento nos tópicos abaixo: [HTML]', 13 | 'Qual o seu conhecimento nos tópicos abaixo: [CSS]', 14 | 'Qual o seu conhecimento nos tópicos abaixo: [P5js ]', 15 | 'Qual a sua experiencia em: [C/C++]', 16 | 'Qual a sua experiencia em: [Java]', 17 | 'Qual a sua experiencia em: [JavaScript]', 18 | 'Qual a sua experiencia em: [Python]', 19 | 'Você tem acesso regular a um ambiente computacional no qual possa programar durante a disciplina?', 20 | 'Quanto tempo você disponível para estudar para disciplina por semana? (Em horas) ', 21 | 'Qual a intensidade do seu interesse pela disciplina de Lógica de Programação? ', 22 | 'Qual o tipo de escola você cursou no ensino médio?' 23 | -------------------------------------------------------------------------------- /dados/perfil_politico.csv: -------------------------------------------------------------------------------- 1 | Apoia privatizações das empresas brasileiras?,Lula deve ser solto,O impeachment de Dilma foi um golpe?,Legalização do aborto,Políticas de ações afirmativas (cotas),A favor da reforma agrária,Todos os brasileiro devem alcançar suas conquistas através da meritocracia,Apoia a legalização do porte de armas,Apoia a redução da maioridade penal,Apoia a laicidade do Estado,Apoia a diminuição do Estado,As Universidades são um gasto público?,A favor do foro privilegiado?,A favor de uma reforma política?,A favor de uma diminuição de regalias para os políticos? 2 | 1,0,0,0.5,1,1,0.5,0.5,1,1,1,0,0,1,1 3 | 0.5,1,1,0.5,1,0.5,1,0,1,1,0.5,0,0,1,1 4 | 1,0,0,1,0.5,0.5,1,1,1,1,1,0,0,0,1 5 | 1,0,1,0,1,1,1,0,0,1,1,0,1,1,1 6 | 0,0,1,0,0,0,1,1,1,1,0,0,0,1,1 7 | 0,1,1,1,1,1,0.5,0,0,1,0,0,0.5,1,1 8 | 0,0.5,1,1,1,0,0,0,0.5,1,0,0,1,1,1 9 | 0.5,1,1,1,0.5,1,1,0.5,1,1,1,0,0,1,0 10 | 0.5,0,1,0,0.5,0.5,0,0,0,1,1,0,0,1,1 11 | 1,0,0,1,0,1,1,1,1,1,1,1,0,1,1 12 | 1,0,1,1,1,1,0,0,0,1,1,1,0,1,1 13 | 0.5,0,0.5,0,0.5,0,1,0,1,0.5,1,0,0,1,1 14 | 0.5,0.5,1,1,0.5,0,1,0,0.5,1,0.5,0,0,1,1 15 | 0.5,0.5,1,0,1,0.5,0,0,0,1,0,0,0,1,1 16 | 0,1,1,1,1,1,1,0,0,1,1,0,0,1,1 17 | -------------------------------------------------------------------------------- /dados/perfil_politico2019.csv: -------------------------------------------------------------------------------- 1 | Apoia privatizações das empresas brasileiras?,Lula deve ser solto,O impeachment de Dilma foi um golpe?,Legalização do aborto,Políticas de ações afirmativas (cotas),A favor da reforma agrária,Todos os brasileiro devem alcançar suas conquistas através da meritocracia,Apoia a legalização do porte de armas,Apoia a redução da maioridade penal,Apoia a laicidade do Estado,Apoia a diminuição do Estado,As Universidades são um gasto público?,A favor do foro privilegiado?,A favor de uma reforma política?,A favor de uma diminuição de regalias para os políticos? 2 | 1,0,0,0.5,1,1,0.5,0.5,1,1,1,0,0,1,1 3 | 0.5,1,1,0.5,1,0.5,1,0,1,1,0.5,0,0,1,1 4 | 1,0,0,1,0.5,0.5,1,1,1,1,1,0,0,0,1 5 | 1,0,1,0,1,1,1,0,0,1,1,0,1,1,1 6 | 0,0,1,0,0,0,1,1,1,1,0,0,0,1,1 7 | 0,1,1,1,1,1,0.5,0,0,1,0,0,0.5,1,1 8 | 0,0.5,1,1,1,0,0,0,0.5,1,0,0,1,1,1 9 | 0.5,1,1,1,0.5,1,1,0.5,1,1,1,0,0,1,0 10 | 0.5,0,1,0,0.5,0.5,0,0,0,1,1,0,0,1,1 11 | 1,0,0,1,0,1,1,1,1,1,1,1,0,1,1 12 | 1,0,1,1,1,1,0,0,0,1,1,1,0,1,1 13 | 0.5,0,0.5,0,0.5,0,1,0,1,0.5,1,0,0,1,1 14 | 0.5,0.5,1,1,0.5,0,1,0,0.5,1,0.5,0,0,1,1 15 | 0.5,0.5,1,0,1,0.5,0,0,0,1,0,0,0,1,1 16 | 0,1,1,1,1,1,1,0,0,1,1,0,0,1,1 17 | 1,0,0,0,0.5,0.5,0.5,1,1,0.5,1,1,0,1,1 18 | 0.5,0,0,1,0,1,1,0,1,1,0.5,0,0,1,1 19 | 0.5,0,0,0.5,0.5,0.5,0.5,0,0,1,0.5,0,0,1,1 20 | 0,0.5,1,1,0.5,1,0,0,1,1,0.5,0.5,0,1,1 21 | 1,0.5,0.5,1,0,1,1,0,1,0,1,0.5,0.5,1,1 22 | 0.5,0.5,1,0.5,1,1,1,0,0,0.5,0.5,0,0,1,1 23 | 1,0,0,0,0,0,0.5,1,1,1,1,1,0,1,1 24 | 0.5,0.5,1,1,1,0.5,0.5,0,0,1,0.5,0,0,1,1 25 | 0.5,0.5,1,0,1,1,1,0,0,1,0.5,0,0,1,1 26 | 0.5,0,0.5,0,1,0.5,1,0.5,0.5,1,0.5,0,0,1,1 27 | 0.5,0.5,1,1,1,1,0,0.5,0,1,0.5,0,0,1,1 28 | 0.5,0,1,1,0,0,1,0.5,1,1,1,0,0,1,1 29 | 0.5,0,0.5,0.5,1,0.5,0,0,0,1,1,0,0,1,1 30 | 0,1,1,1,1,1,0,0,0,1,0.5,1,0,1,1 31 | 0,0,0,0,1,1,1,0,0,1,1,0,1,1,0 32 | 0.5,1,1,1,1,0.5,0.5,0,1,1,0.5,0.5,0,0.5,0.5 33 | 1,1,1,1,1,1,0,1,1,1,1,1,0,1,1 34 | -------------------------------------------------------------------------------- /dados/pib_regioes_brasil.csv: -------------------------------------------------------------------------------- 1 | Local,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019 2 | Brasil,3885847000,4376382000,4814760000,5331618957,5778952780,5995787000,6269328000,6585479000,7004141000,7389131000 3 | Norte,207093645,241027920,259100991,292442290,308076997,320688313,337302084,367956432,387535316,420424257 4 | Nordeste,522769315,583412756,653067255,724523790,805099103,848579383,898361847,953428747,1004827440,1047765997 5 | Sudeste,2180987792,2455541523,2693051827,2948743736,3174690665,3238738052,3333233480,3482142785,3721316871,3917484197 6 | Sul,620180426,696247007,765001872,880286120,948453986,1008035065,1067358361,1122038154,1195550451,1272105071 7 | Centro-Oeste,354815823,400152794,444538054,485623020,542632030,579746186,633072229,659912882,694910923,731351478 8 | Rondônia,23907887,27574714,30112720,31121413,34030982,36563333,39460359,43516147,44913978,47091336 9 | Acre,8342356,8949434,10137925,11473930,13458698,13622802,13754240,14272941,15331123,15630017 10 | Amazonas,60877123,70734401,72242701,83051233,86668644,86568184,89039782,93240191,100109235,108181091 11 | Roraima,6639150,7303719,7711467,9010725,9744122,10242905,11013237,12104709,13369988,14292227 12 | Pará,82684518,98710736,107080881,121224847,124584945,130899505,138107514,155232404,161349602,178376984 13 | Amapá,8237795,9409228,11130868,12763486,13400284,13861293,14342135,15481908,16795207,17496661 14 | Tocantins,16404816,18345688,20684430,23796656,26189323,28930291,31584816,34108132,35666183,39355941 15 | Maranhão,46309633,52143535,60490109,67694845,76842028,78475994,85310038,89542757,98179496,97339938 16 | Piauí,22269149,25941362,28637685,31283593,37723497,39149686,41416937,45365541,50378418,52780785 17 | Ceará,79336299,89695828,96973753,109036556,126054472,130629849,138422521,147921534,155903825,163575327 18 | Rio Grande do Norte,36184502,40992925,46412208,51518457,54022584,57250867,59677389,64305995,66969562,71336780 19 | Paraíba,33522492,37109137,42488349,46377299,52936483,56141890,59104781,62396776,64373595,67986074 20 | Pernambuco,97189760,110161559,127989043,141150252,155142648,156963668,167345031,181609501,186351975,197853378 21 | Alagoas,27133038,31657321,34650397,37282529,40974994,46367211,49468741,52851067,54413047,58963729 22 | Sergipe,26404893,29108272,32853181,35335986,37472432,38556530,38877438,40711486,42017981,44689483 23 | Bahia,154419547,166602817,182572530,204844274,223929966,245043690,258738970,268724090,286239541,293240504 24 | Minas Gerais,351123418,400124687,442282830,488004903,516633984,519331213,544810468,576375545,614875820,651872684 25 | Espírito Santo,85310285,105976222,116850581,117274347,128783781,120365980,109264423,113399937,137020055,137345595 26 | Rio de Janeiro,449858101,512767905,574884973,628226069,671076844,659138952,640401206,671605668,758859047,779927917 27 | São Paulo,1294695988,1436672709,1559033444,1715238417,1858196055,1939901907,2038757382,2120761635,2210561949,2348338000 28 | Paraná,225205255,257122269,285620202,333481152,348084191,376962822,401814164,421497870,440029403,466377036 29 | Santa Catarina,153726007,174068322,191794652,214512242,242553371,249079642,256754669,277270237,298227090,323263857 30 | Rio Grande do Sul,241249164,265056416,287587019,332292726,357816424,381992601,408789528,423270047,457293958,482464177 31 | Mato Grosso do Sul,47270656,55133162,62013201,69203201,78950133,83082555,91892285,96396434,106969142,106943246 32 | Mato Grosso,56600955,69153957,79665691,89212919,101234520,107418319,123880296,126845898,137442853,142122028 33 | Goiás,106770109,121296721,138757825,151300175,165015318,173632450,181759604,191948301,195681724,208672492 34 | Distrito Federal,144174102,154568954,164101336,175906726,197432059,215612863,235540045,244722249,254817205,273613711 35 | -------------------------------------------------------------------------------- /dados/pop_brasil.csv: -------------------------------------------------------------------------------- 1 | ano,população 2 | 1872,9930478 3 | 1890,14333915 4 | 1900,17438434 5 | 1920,30635605 6 | 1940,41236315 7 | 1950,51944397 8 | 1960,70992343 9 | 1970,94508583 10 | 1980,121150573 11 | 1991,146917459 12 | 2000,169590693 13 | 2010,190755799 -------------------------------------------------------------------------------- /dados/preco_casas.csv: -------------------------------------------------------------------------------- 1 | Área (m²),Preço (R$) 2 | 50,100000 3 | 70,150000 4 | 100,200000 5 | 120,220000 6 | 150,250000 7 | 80,160000 8 | 90,180000 9 | 110,210000 10 | 130,230000 11 | 160,260000 12 | 75,155000 13 | 85,170000 14 | 95,185000 15 | 105,195000 16 | 115,205000 17 | 125,215000 18 | 135,225000 19 | 120,235000 20 | 141,240000 21 | 135,255000 22 | 161,265000 23 | 150,270000 24 | 179,275000 25 | 160,280000 26 | 182,285000 27 | 190,290000 28 | 181,295000 29 | 200,300000 30 | 201,305000 31 | 203,310000 32 | -------------------------------------------------------------------------------- /dados/salario_x_experiencia.csv: -------------------------------------------------------------------------------- 1 | Salário,Experiência 2 | 19307,0 3 | 31769,17 4 | 22769,8 5 | 31307,15 6 | 27769,9 7 | 30923,15 8 | 26538,8 9 | 22230,5 10 | 28538,13 11 | 32307,20 12 | 28230,11 13 | 19076,1 14 | 25384,6 15 | 25692,7 16 | 42230,23 17 | 40923,20 18 | 36000,18 19 | 47076,27 20 | 31461,11 21 | 29923,10 22 | 47461,29 23 | 41153,23 24 | 23615,4 25 | 40923,22 26 | 45076,25 27 | 29076,9 28 | 44846,25 29 | -------------------------------------------------------------------------------- /dados/ultrassom_simples_radar_1.csv: -------------------------------------------------------------------------------- 1 | a20,a40,a60,a80,a100,a120,a140,a160,comando 2 | 51,51,51,26,51,26,18,51,d 3 | 51,51,51,51,51,14,16,51,d 4 | 51,51,35,51,51,51,21,51,d 5 | 51,51,51,51,51,51,23,51,d 6 | 51,51,51,51,51,24,21,37,d 7 | 51,51,51,51,51,23,23,51,d 8 | 51,51,51,51,51,23,24,51,d 9 | 51,51,51,51,51,27,51,51,d 10 | 51,51,51,51,51,30,51,51,d 11 | 51,51,51,51,51,31,30,51,d 12 | 51,51,51,51,51,51,28,51,d 13 | 51,51,51,51,51,51,28,28,d 14 | 51,51,51,51,51,51,26,51,d 15 | 51,51,51,51,51,31,35,51,d 16 | 51,51,51,51,30,36,35,51,d 17 | 51,51,51,33,51,37,36,51,d 18 | 51,51,32,51,51,40,39,51,d 19 | 51,51,51,51,51,51,33,51,d 20 | 51,51,51,51,51,28,51,51,d 21 | 51,51,51,51,29,51,51,51,d 22 | 51,51,51,51,51,51,39,36,d 23 | 51,51,51,29,51,51,39,38,d 24 | 51,51,29,51,51,51,39,40,d 25 | 51,27,51,51,51,51,39,51,d 26 | 51,51,51,51,51,51,34,40,d 27 | 51,51,51,51,51,27,51,51,d 28 | 51,51,51,28,51,51,51,51,d 29 | 51,51,26,51,51,51,37,51,d 30 | 51,36,51,51,51,51,38,35,d 31 | 51,51,51,51,51,39,26,51,d 32 | 51,51,51,51,51,28,38,51,d 33 | 51,51,51,51,38,51,51,51,d 34 | 51,51,51,51,51,51,51,51,d 35 | 51,51,51,51,51,51,51,51,d 36 | 51,51,51,51,51,34,51,51,d 37 | 51,51,51,51,28,51,51,51,d 38 | 51,51,51,27,51,51,51,51,d 39 | 51,51,22,51,51,51,51,51,d 40 | 51,51,51,51,51,51,31,51,d 41 | 51,51,51,51,51,26,51,51,d 42 | 51,51,51,51,27,51,51,51,d 43 | 51,51,51,25,51,51,51,51,d 44 | 51,51,26,51,51,51,51,51,d 45 | 51,27,51,51,51,51,51,51,d 46 | 51,51,51,51,51,51,25,51,d 47 | 51,51,51,51,51,25,51,51,d 48 | 51,51,51,51,26,51,51,51,d 49 | 23,21,51,51,51,51,51,51,e 50 | 16,16,51,51,51,51,51,51,e 51 | 19,20,21,51,51,51,51,51,e 52 | 18,17,16,51,51,51,51,51,e 53 | 51,16,51,51,51,51,51,51,e 54 | 51,51,21,51,51,51,51,51,e 55 | 51,51,26,28,51,51,27,51,e 56 | 51,51,32,34,51,26,51,51,e 57 | 51,36,34,51,31,51,51,51,e 58 | 51,51,36,29,51,51,51,51,e 59 | 51,51,24,51,51,51,51,51,e 60 | 51,27,51,51,51,51,51,51,e 61 | 26,51,51,51,51,51,51,51,e 62 | 51,51,51,27,51,51,51,51,e 63 | 51,51,26,51,51,51,51,51,e 64 | 51,25,51,51,51,51,51,51,e 65 | 51,51,51,26,51,51,51,51,e 66 | 51,51,51,28,51,51,51,51,e 67 | 51,51,24,51,51,51,51,51,e 68 | 51,25,51,51,51,51,51,51,e 69 | 51,39,37,25,51,51,51,51,e 70 | 51,51,26,51,51,51,51,51,e 71 | 51,25,51,51,51,51,51,51,e 72 | 34,51,39,51,51,51,37,51,e 73 | 51,51,51,26,51,51,51,51,e 74 | 51,51,24,51,51,51,51,51,e 75 | 51,31,51,51,51,51,51,39,e 76 | 51,51,21,51,51,51,51,51,e 77 | 51,26,51,51,51,51,51,51,e 78 | 34,51,51,51,51,51,34,51,e 79 | 36,35,24,51,51,51,51,51,e 80 | 29,27,31,51,51,51,51,51,e 81 | 28,28,27,51,51,51,51,34,e 82 | 51,27,24,51,51,51,51,51,e 83 | 51,51,51,51,51,31,51,51,e 84 | 51,51,51,51,51,51,51,51,f 85 | 51,51,51,51,51,51,51,51,f 86 | 51,51,51,51,51,51,51,51,f 87 | 51,51,51,14,12,12,51,51,f 88 | 51,51,51,10,10,13,22,51,f 89 | 51,51,51,12,12,16,39,51,f 90 | 51,51,51,15,13,16,51,51,f 91 | 51,51,51,18,16,18,51,51,f 92 | 51,51,51,20,18,20,34,51,f 93 | 51,51,51,51,20,51,51,51,f 94 | 51,51,51,51,20,51,51,51,f 95 | 51,51,51,21,20,22,51,51,f 96 | 51,51,51,20,20,23,51,51,f 97 | 51,51,51,22,21,23,51,51,f 98 | 51,51,51,51,24,25,51,51,f 99 | 51,51,51,51,25,51,51,51,f 100 | 51,51,51,51,27,51,51,33,f 101 | 51,51,51,51,27,30,40,51,f 102 | 51,51,51,51,27,36,51,51,f 103 | 51,51,51,51,27,31,51,51,f 104 | 51,51,51,29,30,51,51,51,f 105 | 51,51,34,51,30,51,51,51,f 106 | 51,35,51,51,30,51,51,51,f 107 | 51,51,51,51,31,51,51,51,f 108 | 51,51,51,51,31,34,51,51,f 109 | 51,51,51,32,31,36,51,51,f 110 | 51,51,51,33,33,36,51,51,f 111 | 51,51,51,51,36,51,51,51,f 112 | 51,33,51,51,37,51,51,51,f 113 | 51,51,51,51,40,33,51,51,f 114 | 51,51,51,39,28,37,51,51,f 115 | 51,51,51,28,38,38,51,51,f 116 | 51,51,28,51,37,38,51,51,f 117 | 51,27,51,40,39,40,51,51,f 118 | 29,51,51,40,38,51,51,51,f 119 | 51,51,51,39,39,33,51,51,f 120 | 51,51,51,51,28,51,51,51,f 121 | 51,51,51,28,51,51,51,51,f 122 | 51,51,51,51,27,51,51,51,f 123 | 51,51,51,23,51,51,51,51,f 124 | 51,51,26,51,51,51,51,51,f 125 | 51,26,51,51,51,51,51,51,f 126 | 33,51,51,51,51,51,34,51,f 127 | 51,51,51,51,51,27,51,51,f 128 | 51,51,51,51,27,51,51,51,f 129 | 51,51,51,27,39,51,51,51,f 130 | 51,51,24,51,51,51,51,51,f 131 | 51,51,51,51,51,51,27,51,f 132 | 51,51,51,51,51,26,51,51,f 133 | 51,51,51,51,28,51,51,51,f 134 | 51,51,51,26,51,51,51,51,f 135 | 51,51,51,51,51,51,51,51,f 136 | 51,51,51,51,51,51,51,51,f 137 | 138 | -------------------------------------------------------------------------------- /dados/ultrassom_simples_radar_1_reduzida.csv: -------------------------------------------------------------------------------- 1 | a20,a40,a60,a80,a100,a120,a140,a160,comando 2 | 51,51,51,51,51,14,16,51,d 3 | 51,51,51,51,51,24,21,37,d 4 | 51,51,51,51,51,51,28,28,d 5 | 23,21,51,51,51,51,51,51,e 6 | 51,16,51,51,51,51,51,51,e 7 | 51,36,34,51,31,51,51,51,e 8 | 51,51,51,16,13,51,51,51,f 9 | 51,51,51,51,27,51,51,51,f 10 | 51,51,51,23,51,51,51,51,f 11 | 51,51,51,51,51,51,51,51,f 12 | -------------------------------------------------------------------------------- /dados/xor_3.csv: -------------------------------------------------------------------------------- 1 | a,b,xor 2 | -1,-0.6,0 3 | -1,0.2,1 4 | -1,1,1 5 | -0.8,-0.4,0 6 | -0.8,0.4,1 7 | -0.6,0,0 8 | -0.6,-0.2,1 9 | -0.6,0.6,1 10 | -0.4,-0.8,0 11 | -0.4,0,1 12 | -0.4,0.8,1 13 | -0.2,-0.6,1 14 | -0.2,0.2,1 15 | -0.2,1,1 16 | 0,-0.4,1 17 | 0,0.4,1 18 | 0.2,-1,1 19 | 0.2,-0.2,1 20 | 0.2,0.6,1 21 | 0.4,-0.8,1 22 | 0.4,0,1 23 | 0.4,0.8,0 24 | 0.6,-0.6,1 25 | 0.6,0.2,1 26 | 0.6,1,0 27 | 0.8,-0.4,1 28 | 0.8,0.4,0 29 | 1,-1,1 30 | 1,-0.2,1 31 | 1,0.6,0 32 | -------------------------------------------------------------------------------- /dados/zoo.csv: -------------------------------------------------------------------------------- 1 | animal_name,hair,feathers,eggs,milk,airborne,aquatic,predator,toothed,backbone,breathes,venomous,fins,legs,tail,domestic,catsize,class_type 2 | aardvark,1,0,0,1,0,0,1,1,1,1,0,0,4,0,0,1,1 3 | antelope,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1,1 4 | bass,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,4 5 | bear,1,0,0,1,0,0,1,1,1,1,0,0,4,0,0,1,1 6 | boar,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 7 | buffalo,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1,1 8 | calf,1,0,0,1,0,0,0,1,1,1,0,0,4,1,1,1,1 9 | carp,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,4 10 | catfish,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,4 11 | cavy,1,0,0,1,0,0,0,1,1,1,0,0,4,0,1,0,1 12 | cheetah,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 13 | chicken,0,1,1,0,1,0,0,0,1,1,0,0,2,1,1,0,2 14 | chub,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,4 15 | clam,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,7 16 | crab,0,0,1,0,0,1,1,0,0,0,0,0,4,0,0,0,7 17 | crayfish,0,0,1,0,0,1,1,0,0,0,0,0,6,0,0,0,7 18 | crow,0,1,1,0,1,0,1,0,1,1,0,0,2,1,0,0,2 19 | deer,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1,1 20 | dogfish,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,1,4 21 | dolphin,0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1 22 | dove,0,1,1,0,1,0,0,0,1,1,0,0,2,1,1,0,2 23 | duck,0,1,1,0,1,1,0,0,1,1,0,0,2,1,0,0,2 24 | elephant,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1,1 25 | flamingo,0,1,1,0,1,0,0,0,1,1,0,0,2,1,0,1,2 26 | flea,0,0,1,0,0,0,0,0,0,1,0,0,6,0,0,0,6 27 | frog,0,0,1,0,0,1,1,1,1,1,0,0,4,0,0,0,5 28 | frog,0,0,1,0,0,1,1,1,1,1,1,0,4,0,0,0,5 29 | fruitbat,1,0,0,1,1,0,0,1,1,1,0,0,2,1,0,0,1 30 | giraffe,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1,1 31 | girl,1,0,0,1,0,0,1,1,1,1,0,0,2,0,1,1,1 32 | gnat,0,0,1,0,1,0,0,0,0,1,0,0,6,0,0,0,6 33 | goat,1,0,0,1,0,0,0,1,1,1,0,0,4,1,1,1,1 34 | gorilla,1,0,0,1,0,0,0,1,1,1,0,0,2,0,0,1,1 35 | gull,0,1,1,0,1,1,1,0,1,1,0,0,2,1,0,0,2 36 | haddock,0,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,4 37 | hamster,1,0,0,1,0,0,0,1,1,1,0,0,4,1,1,0,1 38 | hare,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,0,1 39 | hawk,0,1,1,0,1,0,1,0,1,1,0,0,2,1,0,0,2 40 | herring,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,4 41 | honeybee,1,0,1,0,1,0,0,0,0,1,1,0,6,0,1,0,6 42 | housefly,1,0,1,0,1,0,0,0,0,1,0,0,6,0,0,0,6 43 | kiwi,0,1,1,0,0,0,1,0,1,1,0,0,2,1,0,0,2 44 | ladybird,0,0,1,0,1,0,1,0,0,1,0,0,6,0,0,0,6 45 | lark,0,1,1,0,1,0,0,0,1,1,0,0,2,1,0,0,2 46 | leopard,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 47 | lion,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 48 | lobster,0,0,1,0,0,1,1,0,0,0,0,0,6,0,0,0,7 49 | lynx,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 50 | mink,1,0,0,1,0,1,1,1,1,1,0,0,4,1,0,1,1 51 | mole,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,0,1 52 | mongoose,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 53 | moth,1,0,1,0,1,0,0,0,0,1,0,0,6,0,0,0,6 54 | newt,0,0,1,0,0,1,1,1,1,1,0,0,4,1,0,0,5 55 | octopus,0,0,1,0,0,1,1,0,0,0,0,0,8,0,0,1,7 56 | opossum,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,0,1 57 | oryx,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1,1 58 | ostrich,0,1,1,0,0,0,0,0,1,1,0,0,2,1,0,1,2 59 | parakeet,0,1,1,0,1,0,0,0,1,1,0,0,2,1,1,0,2 60 | penguin,0,1,1,0,0,1,1,0,1,1,0,0,2,1,0,1,2 61 | pheasant,0,1,1,0,1,0,0,0,1,1,0,0,2,1,0,0,2 62 | pike,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,1,4 63 | piranha,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0,4 64 | pitviper,0,0,1,0,0,0,1,1,1,1,1,0,0,1,0,0,3 65 | platypus,1,0,1,1,0,1,1,0,1,1,0,0,4,1,0,1,1 66 | polecat,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 67 | pony,1,0,0,1,0,0,0,1,1,1,0,0,4,1,1,1,1 68 | porpoise,0,0,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1 69 | puma,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 70 | pussycat,1,0,0,1,0,0,1,1,1,1,0,0,4,1,1,1,1 71 | raccoon,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 72 | reindeer,1,0,0,1,0,0,0,1,1,1,0,0,4,1,1,1,1 73 | rhea,0,1,1,0,0,0,1,0,1,1,0,0,2,1,0,1,2 74 | scorpion,0,0,0,0,0,0,1,0,0,1,1,0,8,1,0,0,7 75 | seahorse,0,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,4 76 | seal,1,0,0,1,0,1,1,1,1,1,0,1,0,0,0,1,1 77 | sealion,1,0,0,1,0,1,1,1,1,1,0,1,2,1,0,1,1 78 | seasnake,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,0,3 79 | seawasp,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,7 80 | skimmer,0,1,1,0,1,1,1,0,1,1,0,0,2,1,0,0,2 81 | skua,0,1,1,0,1,1,1,0,1,1,0,0,2,1,0,0,2 82 | slowworm,0,0,1,0,0,0,1,1,1,1,0,0,0,1,0,0,3 83 | slug,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,7 84 | sole,0,0,1,0,0,1,0,1,1,0,0,1,0,1,0,0,4 85 | sparrow,0,1,1,0,1,0,0,0,1,1,0,0,2,1,0,0,2 86 | squirrel,1,0,0,1,0,0,0,1,1,1,0,0,2,1,0,0,1 87 | starfish,0,0,1,0,0,1,1,0,0,0,0,0,5,0,0,0,7 88 | stingray,0,0,1,0,0,1,1,1,1,0,1,1,0,1,0,1,4 89 | swan,0,1,1,0,1,1,0,0,1,1,0,0,2,1,0,1,2 90 | termite,0,0,1,0,0,0,0,0,0,1,0,0,6,0,0,0,6 91 | toad,0,0,1,0,0,1,0,1,1,1,0,0,4,0,0,0,5 92 | tortoise,0,0,1,0,0,0,0,0,1,1,0,0,4,1,0,1,3 93 | tuatara,0,0,1,0,0,0,1,1,1,1,0,0,4,1,0,0,3 94 | tuna,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,1,4 95 | vampire,1,0,0,1,1,0,0,1,1,1,0,0,2,1,0,0,1 96 | vole,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,0,1 97 | vulture,0,1,1,0,1,0,1,0,1,1,0,0,2,1,0,1,2 98 | wallaby,1,0,0,1,0,0,0,1,1,1,0,0,2,1,0,1,1 99 | wasp,1,0,1,0,1,0,0,0,0,1,1,0,6,0,0,0,6 100 | wolf,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1,1 101 | worm,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,7 102 | wren,0,1,1,0,1,0,0,0,1,1,0,0,2,1,0,0,2 103 | -------------------------------------------------------------------------------- /entrega_trabalho_final_2020.md: -------------------------------------------------------------------------------- 1 | # Trabalho Final 2 | * Procedimento para entrega 3 | * Entrega via atividade no SIGAA 4 | 5 | ## Relatório 6 | * Escrever o relatório de acordo com o modelo: [ver este link](https://github.com/ect-info/ml/blob/master/relatorio_ml_vc.md) 7 | 8 | ## Código 9 | * Gerar um link para o código e colocar em sua respectiva seção no relatório 10 | 11 | ## Vídeo 12 | * Apresentação com duração de 5 a 15 minutos (uma sugestão) 13 | * Explicar rapidamente: 14 | * O problema 15 | * A base de dados 16 | * Explicar como o conhecimento visto na(s) disciplina(s) foi aplicado 17 | * Discutir os resultados 18 | -------------------------------------------------------------------------------- /guias/Perceptron/Perceptron.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import pandas as pd 3 | import matplotlib.pyplot as plt 4 | from matplotlib.colors import ListedColormap 5 | 6 | class Perceptron(object): 7 | """Implementa um Perceptron""" 8 | def __init__(self, input_size, epochs = 100, learning_rate = 0.01): 9 | # Adiciona o bias no vetor de pesos 10 | self.weights = np.zeros(input_size + 1) 11 | self.lr = learning_rate 12 | self.epochs = epochs 13 | 14 | # Função de ativação 15 | def sgn_activation(self, input): 16 | return 1 if input >= 0 else 0 17 | 18 | def predict(self, inputs): 19 | summ = np.dot(inputs, self.weights[1:]) + self.weights[0] 20 | 21 | return self.sgn_activation(summ) 22 | 23 | def train(self, training_inputs, labels): 24 | for _ in range(self.epochs): 25 | for inputs, label in zip(training_inputs, labels): 26 | prediction = self.predict(inputs) 27 | # Atualiza os pesos: w <- w + α(y — f(x))x 28 | self.weights[1:] += self.lr * (label - prediction) * inputs 29 | # Atualiza o bias 30 | self.weights[0] += self.lr * (label - prediction) 31 | 32 | def printData(data): 33 | plt.title("Iris Dataset") 34 | plt.scatter(data[:50, 0], data[:50, 1], color='red', marker='o', label='setosa') 35 | plt.scatter(data[50:100, 0], data[50:100, 1], color='blue', marker='x', label='versicolor') 36 | plt.xlabel('Petal length (cm)') 37 | plt.ylabel('Sepal length (cm)') 38 | plt.legend(loc='upper left') 39 | plt.show() 40 | 41 | if __name__ == "__main__": 42 | # Importa o iris dataset 43 | dataset = pd.read_csv('./iris_data.csv', header=None) 44 | 45 | # Extrai os 100 primeiras rotulos 46 | labels = dataset.iloc[0:100, 4].values 47 | 48 | # Substitui o nome dos rotulos por 0 ou 1 49 | labels = np.where(labels == 'Iris-setosa', 0, 1) 50 | 51 | # Extrai duas caracteristicas das 100 primeiras amostras 52 | inputs = dataset.iloc[0:100, [0, 2]].values 53 | 54 | # Instacia um percetron 55 | perceptron = Perceptron(2) 56 | perceptron.train(inputs, labels) 57 | 58 | # Testes 59 | test_inputs = np.array([ 60 | [5.0, 1.4], 61 | [4.9, 1.4], 62 | [6.0, 4.9], 63 | [6.3, 4.5] 64 | ]) 65 | 66 | test_label = np.array([0, 0, 1, 1]) 67 | 68 | for i, item in enumerate(test_inputs): 69 | print("Prediction for {} is {}, expected were {}".format( 70 | item, perceptron.predict(item), test_label[i] 71 | ) 72 | ) 73 | 74 | # Mostra um gráfico com as amostras 75 | printData(inputs) 76 | 77 | 78 | -------------------------------------------------------------------------------- /guias/Perceptron/README.md: -------------------------------------------------------------------------------- 1 | # Guia do Perceptron 2 | 3 | O objetetivo do seguinte guia é a implementação de uma classe na linguagem de programação python que implemente o algoritmo de aprendizado supervisionado **Perceptron**. 4 | 5 | São necessários alguns conhecimentos prévio do paradigma de orientação à objetos em Python. 6 | 7 | ## Dica 8 | 9 | Utilize a biblioteca de programação *numpy* para instanciar eventuais arrays e matrizes, pois a mesma implementa métodos muito úteis que facilitam e aceleram o desenvolvimento. 10 | 11 | ## Criação da Classe Perceptron 12 | 13 | ### Etapa 1 14 | 15 | Crie a classe Perceptron e em seu construtor receba e inicie as seguintes argumentos: tamanho da entrada, quantidade de épocas para o treinamento e taxa de aprendizagem. 16 | 17 | Dentro do construtor inicie um vetor para armezar os pesos do percepton, esse vetor deve possuir *tamanho da entrada* mais uma possições (esse acréscimo é necessário para que o *bias* seja tratado operado juntamente com os pesos, sendo assim o *bias* será o primeito elemento do array) todas inicialmete iguais a zero. 18 | 19 | ```python 20 | class Perceptron(object): 21 | 22 | def __init__(self, input_size, epochs, learning_rate): 23 | # Seu código para inicar os argumentos 24 | ``` 25 | 26 | ### Etapa 2 27 | 28 | Na classe Perceptron implemente um método para a função de ativação do Perceptron, esse método deve retornar 1 se a entrada for maior ou igual a zero ou 0 caso contrário. 29 | 30 | ```python 31 | def ativacao(self, entrada): 32 | # Seu código 33 | ``` 34 | 35 | ### Etapa 3 36 | 37 | Na classe Perceptron implemente um método para a predição de uma saída dado uma entrada, para isso o método deve fazer a soma do bias com produto escalar da entrada com o vetor de pesos (sem o bias) e retornar o resultado da aplicação da função de ativação nessa soma. 38 | 39 | ```python 40 | def predizer(self, entrada): 41 | # Seu código 42 | ``` 43 | 44 | ### Etapa 4 45 | 46 | Por fim deve-se implementar um método para o treinamento do Perceptron, tal método deve receber como parâmetros as entradas a serem ajustadas e seus rótulos. 47 | 48 | O método deve executar as seguintes intruções *quantidade de épocas* vezes para cada par de entrada, rótulo: 49 | 50 | * Obtenha uma predição inicial para a entrada 51 | * Atualize o vetor vetor de pesos de acordo com a equação w = w + taxa_de_aprendizado * (rótulo  —  predição) * entrada 52 | * Atualize o *bias* de acordo com a equação bias = bias + taxa_de_aprendizado * (rótulo  —  predição) 53 | 54 | ```python 55 | def train(self, entrada, rotulo): 56 | for _ in range(self.epocas): 57 | for entrada, rotulo in zip(entrada, rotulo): 58 | # Seu código 59 | ``` 60 | 61 | ## Testes do Perceptron 62 | 63 | A seguir segue a descrição do processo de uso do perceptron para realizar uma classificação binária com duas entradas, os dados de treino e o resultado esperado estão na imagem a seguir. 64 | 65 | ![alt Porta AND](https://raw.githubusercontent.com/ect-info/ml/master/guias/Perceptron/and.jpg) 66 | 67 | ```python 68 | # Cria o array de entradas 69 | entradas = np.array([ 70 | [0, 0], 71 | [0, 1], 72 | [1, 0], 73 | [1, 1] 74 | ]) 75 | 76 | # Cria um rotulo para cada entrada 77 | rotulos = np.array([0, 0, 0, 1]) 78 | 79 | # Instancia um Perceptron 80 | perceptron = Perceptron(tamanho_entrada = 2, epocas = 100, taxa_aprendizado = 0.01) 81 | 82 | # Treina o Perceptron para os dados de entrada 83 | perceptron.train(entradas, rotulos) 84 | 85 | 86 | testes = np.array([ 87 | [0.5, 0.5], 88 | [0.1, 0.3], 89 | [1.5, 1.5], 90 | [2.4, 2.5] 91 | ]) 92 | 93 | for i in testes: 94 | print("Predicao para {} foi {}".format( 95 | i, perceptron.predict(i) 96 | ) 97 | ) 98 | ``` 99 | 100 | ## Caso fique perdido 101 | 102 | No caso de se perder durante a implementação, aqui esta um [exemplo](https://github.com/ect-info/ml/tree/master/guias/Perceptron/Perceptron.py) do perceptron implementado no [dataset Iris](https://archive.ics.uci.edu/ml/datasets/iris). 103 | 104 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /guias/Perceptron/and.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ect-comp/ml/e60eb0930553d616d3581f3c969a259025e72a8d/guias/Perceptron/and.jpg -------------------------------------------------------------------------------- /guias/Perceptron/iris_data.csv: -------------------------------------------------------------------------------- 1 | 5.1,3.5,1.4,0.2,Iris-setosa 2 | 4.9,3.0,1.4,0.2,Iris-setosa 3 | 4.7,3.2,1.3,0.2,Iris-setosa 4 | 4.6,3.1,1.5,0.2,Iris-setosa 5 | 5.0,3.6,1.4,0.2,Iris-setosa 6 | 5.4,3.9,1.7,0.4,Iris-setosa 7 | 4.6,3.4,1.4,0.3,Iris-setosa 8 | 5.0,3.4,1.5,0.2,Iris-setosa 9 | 4.4,2.9,1.4,0.2,Iris-setosa 10 | 4.9,3.1,1.5,0.1,Iris-setosa 11 | 5.4,3.7,1.5,0.2,Iris-setosa 12 | 4.8,3.4,1.6,0.2,Iris-setosa 13 | 4.8,3.0,1.4,0.1,Iris-setosa 14 | 4.3,3.0,1.1,0.1,Iris-setosa 15 | 5.8,4.0,1.2,0.2,Iris-setosa 16 | 5.7,4.4,1.5,0.4,Iris-setosa 17 | 5.4,3.9,1.3,0.4,Iris-setosa 18 | 5.1,3.5,1.4,0.3,Iris-setosa 19 | 5.7,3.8,1.7,0.3,Iris-setosa 20 | 5.1,3.8,1.5,0.3,Iris-setosa 21 | 5.4,3.4,1.7,0.2,Iris-setosa 22 | 5.1,3.7,1.5,0.4,Iris-setosa 23 | 4.6,3.6,1.0,0.2,Iris-setosa 24 | 5.1,3.3,1.7,0.5,Iris-setosa 25 | 4.8,3.4,1.9,0.2,Iris-setosa 26 | 5.0,3.0,1.6,0.2,Iris-setosa 27 | 5.0,3.4,1.6,0.4,Iris-setosa 28 | 5.2,3.5,1.5,0.2,Iris-setosa 29 | 5.2,3.4,1.4,0.2,Iris-setosa 30 | 4.7,3.2,1.6,0.2,Iris-setosa 31 | 4.8,3.1,1.6,0.2,Iris-setosa 32 | 5.4,3.4,1.5,0.4,Iris-setosa 33 | 5.2,4.1,1.5,0.1,Iris-setosa 34 | 5.5,4.2,1.4,0.2,Iris-setosa 35 | 4.9,3.1,1.5,0.1,Iris-setosa 36 | 5.0,3.2,1.2,0.2,Iris-setosa 37 | 5.5,3.5,1.3,0.2,Iris-setosa 38 | 4.9,3.1,1.5,0.1,Iris-setosa 39 | 4.4,3.0,1.3,0.2,Iris-setosa 40 | 5.1,3.4,1.5,0.2,Iris-setosa 41 | 5.0,3.5,1.3,0.3,Iris-setosa 42 | 4.5,2.3,1.3,0.3,Iris-setosa 43 | 4.4,3.2,1.3,0.2,Iris-setosa 44 | 5.0,3.5,1.6,0.6,Iris-setosa 45 | 5.1,3.8,1.9,0.4,Iris-setosa 46 | 4.8,3.0,1.4,0.3,Iris-setosa 47 | 5.1,3.8,1.6,0.2,Iris-setosa 48 | 4.6,3.2,1.4,0.2,Iris-setosa 49 | 5.3,3.7,1.5,0.2,Iris-setosa 50 | 5.0,3.3,1.4,0.2,Iris-setosa 51 | 7.0,3.2,4.7,1.4,Iris-versicolor 52 | 6.4,3.2,4.5,1.5,Iris-versicolor 53 | 6.9,3.1,4.9,1.5,Iris-versicolor 54 | 5.5,2.3,4.0,1.3,Iris-versicolor 55 | 6.5,2.8,4.6,1.5,Iris-versicolor 56 | 5.7,2.8,4.5,1.3,Iris-versicolor 57 | 6.3,3.3,4.7,1.6,Iris-versicolor 58 | 4.9,2.4,3.3,1.0,Iris-versicolor 59 | 6.6,2.9,4.6,1.3,Iris-versicolor 60 | 5.2,2.7,3.9,1.4,Iris-versicolor 61 | 5.0,2.0,3.5,1.0,Iris-versicolor 62 | 5.9,3.0,4.2,1.5,Iris-versicolor 63 | 6.0,2.2,4.0,1.0,Iris-versicolor 64 | 6.1,2.9,4.7,1.4,Iris-versicolor 65 | 5.6,2.9,3.6,1.3,Iris-versicolor 66 | 6.7,3.1,4.4,1.4,Iris-versicolor 67 | 5.6,3.0,4.5,1.5,Iris-versicolor 68 | 5.8,2.7,4.1,1.0,Iris-versicolor 69 | 6.2,2.2,4.5,1.5,Iris-versicolor 70 | 5.6,2.5,3.9,1.1,Iris-versicolor 71 | 5.9,3.2,4.8,1.8,Iris-versicolor 72 | 6.1,2.8,4.0,1.3,Iris-versicolor 73 | 6.3,2.5,4.9,1.5,Iris-versicolor 74 | 6.1,2.8,4.7,1.2,Iris-versicolor 75 | 6.4,2.9,4.3,1.3,Iris-versicolor 76 | 6.6,3.0,4.4,1.4,Iris-versicolor 77 | 6.8,2.8,4.8,1.4,Iris-versicolor 78 | 6.7,3.0,5.0,1.7,Iris-versicolor 79 | 6.0,2.9,4.5,1.5,Iris-versicolor 80 | 5.7,2.6,3.5,1.0,Iris-versicolor 81 | 5.5,2.4,3.8,1.1,Iris-versicolor 82 | 5.5,2.4,3.7,1.0,Iris-versicolor 83 | 5.8,2.7,3.9,1.2,Iris-versicolor 84 | 6.0,2.7,5.1,1.6,Iris-versicolor 85 | 5.4,3.0,4.5,1.5,Iris-versicolor 86 | 6.0,3.4,4.5,1.6,Iris-versicolor 87 | 6.7,3.1,4.7,1.5,Iris-versicolor 88 | 6.3,2.3,4.4,1.3,Iris-versicolor 89 | 5.6,3.0,4.1,1.3,Iris-versicolor 90 | 5.5,2.5,4.0,1.3,Iris-versicolor 91 | 5.5,2.6,4.4,1.2,Iris-versicolor 92 | 6.1,3.0,4.6,1.4,Iris-versicolor 93 | 5.8,2.6,4.0,1.2,Iris-versicolor 94 | 5.0,2.3,3.3,1.0,Iris-versicolor 95 | 5.6,2.7,4.2,1.3,Iris-versicolor 96 | 5.7,3.0,4.2,1.2,Iris-versicolor 97 | 5.7,2.9,4.2,1.3,Iris-versicolor 98 | 6.2,2.9,4.3,1.3,Iris-versicolor 99 | 5.1,2.5,3.0,1.1,Iris-versicolor 100 | 5.7,2.8,4.1,1.3,Iris-versicolor 101 | 6.3,3.3,6.0,2.5,Iris-virginica 102 | 5.8,2.7,5.1,1.9,Iris-virginica 103 | 7.1,3.0,5.9,2.1,Iris-virginica 104 | 6.3,2.9,5.6,1.8,Iris-virginica 105 | 6.5,3.0,5.8,2.2,Iris-virginica 106 | 7.6,3.0,6.6,2.1,Iris-virginica 107 | 4.9,2.5,4.5,1.7,Iris-virginica 108 | 7.3,2.9,6.3,1.8,Iris-virginica 109 | 6.7,2.5,5.8,1.8,Iris-virginica 110 | 7.2,3.6,6.1,2.5,Iris-virginica 111 | 6.5,3.2,5.1,2.0,Iris-virginica 112 | 6.4,2.7,5.3,1.9,Iris-virginica 113 | 6.8,3.0,5.5,2.1,Iris-virginica 114 | 5.7,2.5,5.0,2.0,Iris-virginica 115 | 5.8,2.8,5.1,2.4,Iris-virginica 116 | 6.4,3.2,5.3,2.3,Iris-virginica 117 | 6.5,3.0,5.5,1.8,Iris-virginica 118 | 7.7,3.8,6.7,2.2,Iris-virginica 119 | 7.7,2.6,6.9,2.3,Iris-virginica 120 | 6.0,2.2,5.0,1.5,Iris-virginica 121 | 6.9,3.2,5.7,2.3,Iris-virginica 122 | 5.6,2.8,4.9,2.0,Iris-virginica 123 | 7.7,2.8,6.7,2.0,Iris-virginica 124 | 6.3,2.7,4.9,1.8,Iris-virginica 125 | 6.7,3.3,5.7,2.1,Iris-virginica 126 | 7.2,3.2,6.0,1.8,Iris-virginica 127 | 6.2,2.8,4.8,1.8,Iris-virginica 128 | 6.1,3.0,4.9,1.8,Iris-virginica 129 | 6.4,2.8,5.6,2.1,Iris-virginica 130 | 7.2,3.0,5.8,1.6,Iris-virginica 131 | 7.4,2.8,6.1,1.9,Iris-virginica 132 | 7.9,3.8,6.4,2.0,Iris-virginica 133 | 6.4,2.8,5.6,2.2,Iris-virginica 134 | 6.3,2.8,5.1,1.5,Iris-virginica 135 | 6.1,2.6,5.6,1.4,Iris-virginica 136 | 7.7,3.0,6.1,2.3,Iris-virginica 137 | 6.3,3.4,5.6,2.4,Iris-virginica 138 | 6.4,3.1,5.5,1.8,Iris-virginica 139 | 6.0,3.0,4.8,1.8,Iris-virginica 140 | 6.9,3.1,5.4,2.1,Iris-virginica 141 | 6.7,3.1,5.6,2.4,Iris-virginica 142 | 6.9,3.1,5.1,2.3,Iris-virginica 143 | 5.8,2.7,5.1,1.9,Iris-virginica 144 | 6.8,3.2,5.9,2.3,Iris-virginica 145 | 6.7,3.3,5.7,2.5,Iris-virginica 146 | 6.7,3.0,5.2,2.3,Iris-virginica 147 | 6.3,2.5,5.0,1.9,Iris-virginica 148 | 6.5,3.0,5.2,2.0,Iris-virginica 149 | 6.2,3.4,5.4,2.3,Iris-virginica 150 | 5.9,3.0,5.1,1.8,Iris-virginica 151 | 152 | -------------------------------------------------------------------------------- /modelo_de_relatorio.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | * Apresentar os membros da equipe. 6 | * Descrever o problema. 7 | * Descrever a base de dados. 8 | 9 | ## Metodologia 10 | 11 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 12 | * Explicar as etapas do treinamento e teste. 13 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 14 | 15 | ## Códigos 16 | 17 | * Mostrar trechos de códigos mais importantes e explicações. 18 | 19 | ## Experimentos 20 | 21 | * Descrever em detalhes os tipos de testes executados. 22 | * Descrever os parâmentros avaliados. 23 | * Explicar os resultados. 24 | -------------------------------------------------------------------------------- /noticiais.md: -------------------------------------------------------------------------------- 1 | # Notícias 2 | 3 | ## Ano 2020 4 | 1. [IA oferece à TI uma vantagem na melhoria da experiência do cliente](https://cio.com.br/ia-oferece-a-ti-uma-vantagem-na-melhoria-da-experiencia-do-cliente) 5 | 1. [Startup de inteligência artificial recebe aporte de R$ 40 mi e mira Brasil](https://exame.com/tecnologia/startup-de-inteligencia-artificial-recebe-aporte-de-r-40-mi-e-mira-brasil/) 6 | 1. [Inteligência Artificial e RPA: por que é fundamental que essas tecnologias caminhem juntas? - 29/09/2020](https://cio.com.br/tendencias/inteligencia-artificial-e-rpa-por-que-e-fundamental-que-essas-tecnologias-caminhem-juntas) 7 | -------------------------------------------------------------------------------- /outras_referencias.md: -------------------------------------------------------------------------------- 1 | 2 | # Outras Referências 3 | 4 | ## Blogs, Tutoriais e outros 5 | * [Capítulo de Livro: In-Depth: Support Vector Machines](https://jakevdp.github.io/PythonDataScienceHandbook/05.07-support-vector-machines.html) 6 | * [Capítulo de Livro: In Depth: Principal Component Analysis](https://jakevdp.github.io/PythonDataScienceHandbook/05.09-principal-component-analysis.html) 7 | * [Capítulo de Livro: Application: A Face Detection Pipeline](https://jakevdp.github.io/PythonDataScienceHandbook/05.14-image-features.html) 8 | * [Faces recognition example using eigenfaces and SVMs](https://scikit-learn.org/stable/auto_examples/applications/plot_face_recognition.html) 9 | * [Excelentes tutoriais sobre aprendizado de máquina - Matheus Facure](https://matheusfacure.github.io/tutoriais/) 10 | * [Vídeo - Machine Learning: Tutorial prático usando apenas o navegador](https://www.youtube.com/watch?v=JyGGMyR3x5I&feature=youtu.be) 11 | * [OpenCV Face Recognition - PyImageSearch](https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/) 12 | * [Acompanhe a expansão do COVID-19 com KNIME](https://hupdata.com/acompanhando-o-covid-19-com-knime/) 13 | * [A Tutorial on Support Vector Machines for Pattern Recognition](https://www.di.ens.fr/~mallat/papiers/svmtutorial.pdf) 14 | * [Colah's blog](http://colah.github.io/) 15 | * [Tutorias de python e machine learning - CS-UFRN](https://github.com/cs-ufrn) 16 | * [Introdução a CNN](https://mlnotebook.github.io/post/CNN1) 17 | * [Super Data Science - Convolutional Neural Networks](https://www.superdatascience.com/blogs/the-ultimate-guide-to-convolutional-neural-networks-cnn) 18 | * [Algoritmos genéticos Geeks for Geeks](https://www.geeksforgeeks.org/genetic-algorithms/) 19 | 20 | ## Começando com Python 21 | * [Material produzido pelo grupo de estudos em Ciência de Dados - NatalNet](https://github.com/Natalnet/GCiD/tree/master/Codes/Basic%20Module) 22 | 23 | ## Ferramentas 24 | * Trabalho Final de Gúbio sobre KNIME, 25 | * [Relatório](https://drive.google.com/file/d/1DE32zJVXBwafsiLwRLNCvs8NJZtWO_iK/view?usp=sharing) 26 | * [Exemploes](https://drive.google.com/file/d/1ofXNSfb7i_6-8NNPHY4_Hcrk_wi8nAOC/view?usp=sharing) 27 | * [Interagindo e visualizando uma linha de regressão linear](https://s3.amazonaws.com/codecademy-content/programs/data-science-path/line-fitter/line-fitter.html) 28 | * [Scikit-learn](http://scikit-learn.org) 29 | * [Knime - Desenvolvimento de soluções com blocos](https://www.knime.com/software-overview) 30 | * [Orange - Programação visual](https://orange.biolab.si/) 31 | 32 | ## Códigos 33 | * [MLP para fins didáticos em C++](https://github.com/orivaldosantana/mlp) 34 | * [Github sobre K Means Clustering de Siraj Raval](https://github.com/llSourcell/k_means_clustering/blob/master/kmeans.py.ipynb) 35 | 36 | ## Outros 37 | * [Brilliant](https://brilliant.org/courses/machine-learning/?tour=true) 38 | * [Super Data Science](https://www.superdatascience.com/machine-learning/) 39 | 40 | ## Links de Dados 41 | * [Dados abertos UFRN](http://dados.ufrn.br/organization/ufrn) 42 | * [Kaggle data sets](https://www.kaggle.com/datasets) 43 | * [IMDB PT-BR](https://www.kaggle.com/luisfredgs/imdb-ptbr?select=imdb-reviews-pt-br.csv) 44 | 45 | ## Demonstrações 46 | * [ConvNetJS MNIST demo](https://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html) 47 | -------------------------------------------------------------------------------- /relatorio_ml.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | ### Identificação 6 | * Apresentar os membros da equipe (nome e mátricula). 7 | * Colocar o link para o vídeo da apresentação do trabalho (para quem não for apresentar presencialmente). 8 | 9 | ### Informações Gerais 10 | * Descrever o problema. 11 | * Descrever brevemente os algoritmos usados. 12 | * Descrever os objetivos. 13 | * Descrever a base de dados. 14 | 15 | ## Metodologia 16 | * Explicar em detalhes quais técnicas de _machine learning_ (ML) foram aplicadas neste trabalhando. 17 | * Explicar as etapas do treinamento e teste. 18 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 19 | 20 | ## Códigos 21 | * Mostrar trechos de códigos mais importantes e explicações. 22 | * Informar o link para acessar o código. 23 | 24 | ## Experimentos 25 | * Descrever em detalhes os tipos de testes executados. 26 | * Descrever os parâmentros avaliados. 27 | * Explicar os resultados. 28 | 29 | ## Conclusão 30 | * O trabalho atendeu aos objetivos? 31 | -------------------------------------------------------------------------------- /relatorio_ml_vc.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | 5 | ### Identificação 6 | * Apresentar os membros da equipe (nome e mátricula) 7 | * Colocar o link para o vídeo da apresentação do trabalho 8 | 9 | ### Informações Gerais 10 | * Descrever o problema 11 | * Descrever a base de dados 12 | 13 | ## Metodologia 14 | * Explicar quais técnicas de visão computacional foram usadas e como (Se for o caso). 15 | * Explicar o modelo de _machine learning_ (ML) que você está trabalhando. 16 | * Explicar as etapas do treinamento e teste. 17 | * Caso tenha selecionado atributos, explicar a motivação para a seleção de tais atributos. 18 | 19 | ## Códigos 20 | * Mostrar trechos de códigos mais importantes e explicações. 21 | * Informar o link para acessar o código 22 | 23 | ## Experimentos 24 | * Descrever em detalhes os tipos de testes executados. 25 | * Descrever os parâmentros avaliados. 26 | * Explicar os resultados. 27 | -------------------------------------------------------------------------------- /roteiro_trabalho_final.md: -------------------------------------------------------------------------------- 1 | # Título do Trabalho 2 | 3 | ## Introdução 4 | * Explicar o problema 5 | * Explicar os objetivos 6 | * Descrever a base de dados. 7 | 8 | ## Metodologia 9 | * Explicar brevemente a técnica de _machine learning_ escolhida 10 | * Explicar as etapas de treinamento e teste 11 | 12 | ## Códigos 13 | * Mostrar e explicar os trechos de códigos mais importantes 14 | * Informar o link para acessar o código. 15 | 16 | ## Experimentos 17 | * Descrever em detalhes os tipos de testes executados 18 | * Descrever os parâmetros avaliados 19 | * Explicar os resultados 20 | 21 | ## Conclusão 22 | * O trabalho atingiu os objetivos? 23 | * O que precisa ser melhorado? 24 | --------------------------------------------------------------------------------