{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Aprendizagem de máquina\n", "\n", "### Objetivos\n", "\n", " - continuação de aprendizado não supervisionado\n", " - Apresentar uma intuição dos algoritimos de agupamento por densidade - DBScan\n", " - Apresentar uma intuição e praticar o algoritimo de agrupamento hierarquico - AGNES" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Métodos de agrupamento\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### De forma geral as estratégias de agrupamento são:\n", "\n", " - Partição: exemplo KMeans\n", " - Densidade: exemplo DBSCAN\n", " - Hierarquicas: exemplo AGNES\n", " \n", "Utilizamos a ferramenta `orange-canvas` para obter uma intuição sobre esses algoritimos além de compreender suas principais diferença." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Desafio 1 (Sugestão)\n", "\n", "Faça a instalação do `orange-canvas` em sua maquina e realize os exemplos dados em sala de aula. \n", "\n", "Para usuarios linux o site oficial https://orangedatamining.com/ recomenda o uso de virutal env, eu uso direto sem virtual env:\n", "\n", " Instalação:\n", "\n", " sudo apt install python3-pyqt5.*\n", " pip install --upgrade --user pyqtwebengine==5.12\n", " pip install --upgrade --user pyqt5==5.12\n", " pip3 install orange3 --user\n", " pip install orange3-educational\n", "\n", "\n", " Execute:\n", "\n", " python3 -m Orange.canvas\n", " ou\n", " orange-canvas\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Agrupamento por estratégia Hierarquica\n", "\n", "adiciona descrição do problema..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Importa libs" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "# O scipy é bastante utilizada para Data Science\n", "from scipy.cluster.hierarchy import dendrogram, linkage\n", "\n", "from sklearn.cluster import AgglomerativeClustering\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Importa dataset" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | CustomerID | \n", "Genre | \n", "Age | \n", "Annual_Income_k | \n", "Spending_Score_1_100 | \n", "
---|---|---|---|---|---|
0 | \n", "1 | \n", "Male | \n", "19 | \n", "15 | \n", "39 | \n", "
1 | \n", "2 | \n", "Male | \n", "21 | \n", "15 | \n", "81 | \n", "
2 | \n", "3 | \n", "Female | \n", "20 | \n", "16 | \n", "6 | \n", "
3 | \n", "4 | \n", "Female | \n", "23 | \n", "16 | \n", "77 | \n", "
4 | \n", "5 | \n", "Female | \n", "31 | \n", "17 | \n", "40 | \n", "