lab3
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¶
link para download: https://drive.google.com/file/d/1jhWFqkYWtyhJhvpMtu5xX0EHsQjUOlw0/view?usp=sharing
In [7]:
Copied!
url_db = 'default of credit card clients.csv'
df = pd.read_csv(url_db, sep=';', header=1) # Definindo o delimitador como ponto e vírgula
df.head()
url_db = 'default of credit card clients.csv'
df = pd.read_csv(url_db, sep=';', header=1) # Definindo o delimitador como ponto e vírgula
df.head()
Out[7]:
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 Principais:
ID
: Identificação única de cada cliente.LIMIT_BAL
: Limite de crédito concedido ao cliente (em dólares).SEX
: Gênero do cliente (1 = Masculino, 2 = Feminino).EDUCATION
: Nível educacional do cliente (1 = Pós-graduação, 2 = Graduação, 3 = Ensino Médio, 4 = Outros).MARRIAGE
: Estado civil do cliente (1 = Casado, 2 = Solteiro, 3 = Outros).AGE
: Idade do cliente.PAY_0 a PAY_6
: Status de pagamento dos últimos 6 meses (0 = Pago na data, -1 = Pagamento adiantado, 1 = Atraso de 1 mês, etc.).BILL_AMT1 a BILL_AMT6
: Valor da fatura (em dólares) nos últimos 6 meses.PAY_AMT1 a PAY_AMT6
: Pagamento realizado (em dólares) nos últimos 6 meses.Y (default payment next month)
: Indicador de inadimplência no próximo mês (1 = Inadimplente, 0 = Não inadimplente).
ref: https://archive.ics.uci.edu/dataset/350/default+of+credit+card+clients
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?