Lab10 - Aprendizado não supervisionado - Atividade de clusterização
Análise de crédito do cartão de credito¶
Realizar uma análise exploratória na base de dados de clientes afim de categorizar a quantidade de perfis
Importa libs¶
In [1]:
Copied!
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
Importa dataset¶
In [17]:
Copied!
url_db= 'default of credit card clients.xls'
df = pd.read_excel(url_db, header=1)
df.head()
url_db= 'default of credit card clients.xls'
df = pd.read_excel(url_db, header=1)
df.head()
Out[17]:
ID | LIMIT_BAL | SEX | EDUCATION | MARRIAGE | AGE | PAY_0 | PAY_2 | PAY_3 | PAY_4 | ... | BILL_AMT4 | BILL_AMT5 | BILL_AMT6 | PAY_AMT1 | PAY_AMT2 | PAY_AMT3 | PAY_AMT4 | PAY_AMT5 | PAY_AMT6 | default payment next month | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 20000 | 2 | 2 | 1 | 24 | 2 | 2 | -1 | -1 | ... | 0 | 0 | 0 | 0 | 689 | 0 | 0 | 0 | 0 | 1 |
1 | 2 | 120000 | 2 | 2 | 2 | 26 | -1 | 2 | 0 | 0 | ... | 3272 | 3455 | 3261 | 0 | 1000 | 1000 | 1000 | 0 | 2000 | 1 |
2 | 3 | 90000 | 2 | 2 | 2 | 34 | 0 | 0 | 0 | 0 | ... | 14331 | 14948 | 15549 | 1518 | 1500 | 1000 | 1000 | 1000 | 5000 | 0 |
3 | 4 | 50000 | 2 | 2 | 1 | 37 | 0 | 0 | 0 | 0 | ... | 28314 | 28959 | 29547 | 2000 | 2019 | 1200 | 1100 | 1069 | 1000 | 0 |
4 | 5 | 50000 | 1 | 2 | 1 | 57 | -1 | 0 | -1 | 0 | ... | 20940 | 19146 | 19131 | 2000 | 36681 | 10000 | 9000 | 689 | 679 | 0 |
5 rows × 25 columns
In [18]:
Copied!
## Analise se o dataset possui dados faltantes, se sim, faça o drop dessas entradas
## Seu código aqui.....
## Analise se o dataset possui dados faltantes, se sim, faça o drop dessas entradas
## Seu código aqui.....
Descrição das colunas do dataset:
'ID',
'LIMIT_BAL', --> Limite de crédito
'SEX',
'EDUCATION',
'MARRIAGE',
'AGE',
'PAY_0',
'PAY_2',
'PAY_3',
'PAY_4',
'PAY_5',
'PAY_6',
'BILL_AMT1', --> dívida
'BILL_AMT2', --> dívida
'BILL_AMT3', --> dívida
'BILL_AMT4', --> dívida
'BILL_AMT5', --> dívida
'BILL_AMT6', --> dívida
'PAY_AMT1',
'PAY_AMT2',
'PAY_AMT3',
'PAY_AMT4',
'PAY_AMT5',
'PAY_AMT6',
'default payment next month'
Criando um subset¶
In [ ]:
Copied!
## Crie uma nova coluna que soma todas as colunas de dívidas
## Seu código aqui.....
## Crie uma nova coluna que soma todas as colunas de dívidas
## Seu código aqui.....
In [ ]:
Copied!
## Selecione as colunas de limite de crédito e divida total
#data = df.iloc[:,[,]].values
#data;
## Selecione as colunas de limite de crédito e divida total
#data = df.iloc[:,[,]].values
#data;
In [21]:
Copied!
## Como estamos trabalhos com algoritmos de distância, é importante e recomendavel que os dados sejam normalizados
## seu código de normalização...
## Como estamos trabalhos com algoritmos de distância, é importante e recomendavel que os dados sejam normalizados
## seu código de normalização...
Quantidade de k cluster¶
Escolha uma técnica dada em aula para inicializar o Kmeans. Poder ser a técnica Elbow
ou dendrograma
.
wcss = within-cluster sum of squares = soma dos quadrados intra-clusters
wcss = []
K = range(1,12)
for k in K:
km = KMeans(n_clusters=k)
km = km.fit(data_treino)
wcss.append(km.inertia_)
plt.plot(K, wcss, "bx-", color = "grey")
plt.xlabel("k")
plt.ylabel("WCSS")
plt.title("Método do Cotovelo para k Otimizado");
In [19]:
Copied!
## Seu código aqui......
## Seu código aqui......
Agrupando dados¶
Realize o agrupamento utilizando Kmeans e Agnes
e compare os resultados obtidos.
In [20]:
Copied!
## Sua resposta aqui.....
## Sua resposta aqui.....
In [23]:
Copied!
## Faça uma breve descrição de cada cluster obtido, o que eles indicam?
## Faça uma breve descrição de cada cluster obtido, o que eles indicam?
Last update:
September 12, 2022