<jupyter_start><jupyter_text>Auto ML com PyCaret    Nesse projeto vamos fazer um desafio do Kaggle utilizando a biblioteca do PyCaret  Detecção de fraude de cartão de crédito  Transações anônimas de cartão de crédito rotuladas como fraudulentas ou genuínas **Contexto**É importante que as empresas de cartão de crédito sejam capazes de reconhecer transações fraudulentas com cartão de crédito para que os clientes não sejam cobrados por itens que não compraram.**Conteúdo**Os conjuntos de dados contêm transações feitas por cartões de crédito em setembro de 2013 por titulares de cartões europeus.Este conjunto de dados apresenta as transações que ocorreram em dois dias, onde temos 492 fraudes em 284.807 transações. O conjunto de dados é altamente desequilibrado, a classe positiva (fraudes) é responsável por 0,172% de todas as transações.Ele contém apenas variáveis ​​de entrada numéricas que são o resultado de uma transformação PCA. Infelizmente, devido a questões de confidencialidade, não podemos fornecer os recursos originais e mais informações básicas sobre os dados. Os recursos V1, V2,… V28 são os componentes principais obtidos com o PCA, os únicos recursos que não foram transformados com o PCA são 'Tempo' e 'Quantidade'. O recurso 'Tempo' contém os segundos decorridos entre cada transação e a primeira transação no conjunto de dados. O recurso 'Amount' é o Amount da transação, esse recurso pode ser usado por exemplo, aprendizado dependente de custos. O recurso 'Classe' é a variável de resposta e assume o valor 1 em caso de fraude e 0 em caso contrário. desafio: https://www.kaggle.com/mlg-ulb/creditcardfraud créditos: https://medium.com/ensina-ai/pycaret-a-biblioteca-de-aprendizagem-de-m%C3%A1quinas-para-quem-tem-prazo-1c5b09667763créditos: https://medium.com/data-hackers/automl-uma-nova-abordagem-de-machine-learning-87a40d866dc1<jupyter_code>import pandas as pd
import numpy as np
import scipy
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline



import warnings
warnings.filterwarnings("ignore")
pd.set_option('display.max_columns', 999)
%time data = pd.read_csv('C:/Users/skite/OneDrive/Documentos/GitHub/Auto_ML/creditcard.csv', sep = ',', encoding  = 'ISO-8859-1')
data.head()
data.info()<jupyter_output><class 'pandas.core.frame.DataFrame'>
RangeIndex: 284807 entries, 0 to 284806
Data columns (total 31 columns):
 #   Column  Non-Null Count   Dtype  
---  ------  --------------   -----  
 0   Time    284807 non-null  float64
 1   V1      284807 non-null  float64
 2   V2      284807 non-null  float64
 3   V3      284807 non-null  float64
 4   V4      284807 non-null  float64
 5   V5      284807 non-null  float64
 6   V6      284807 non-null  float64
 7   V7      284807 non-null  float64
 8   V8      284807 non-null  float64
 9   V9      284807 non-null  float64
 10  V10     284807 non-null  float64
 11  V11     284807 non-null  float64
 12  V12     284807 non-null  float64
 13  V13     284807 non-null  float64
 14  V14     284807 non-null  float64
 15  V15     284807 non-null  float64
 16  V16     284807 non-null  float64
 17  V17     284807 non-null  float64
 18  V18     284807 non-null  float64
 19  V19     284807 non-null  float64
 20  V20     284807 non-null  float64
 21  V21     28[...]<jupyter_text>*ok, não temos dados nulos* **Verificando a target:**<jupyter_code>data.Class.value_counts()
sns.countplot(y=data.Class ,data=data)
plt.xlabel("Contagem dos valores da target")
plt.ylabel("Target")
plt.show()<jupyter_output><empty_output><jupyter_text>*Temos uma Target totalmente desbalanceada isso dificutaria a separação do dados de treino e teste e quebra qualquer modelo de ML, mas como o objetivo é verificar a capacidade do pycaret de ajustar os dados para os modelos preditivos.* *Não iremos ajustar nenhum dado*<jupyter_code>data.hist(figsize=(30,24),bins = 20)
plt.title("Distribuição das variáveis")
plt.show()<jupyter_output><empty_output><jupyter_text>Observe também a distribuição nas variáveis.  Import do módulo de classificação do PyCaret e setup do projeto Vamos direto para o PyCaret:<jupyter_code>from pycaret.classification import *
clf1 = setup(data = data, target = 'Class')<jupyter_output>Setup Succesfully Completed!<jupyter_text>*Note que na coluna Value temos todos os tratamento ou ajustes necessarios.*  *Note onde **False** seria necessário, onde **None** não precisaria* documentação do setup: https://pycaret.org/setup/ **Como nosso objetivo e verificar a capacidade do PyCaret prossegu4ir sem fazer nenhum ajuste nos dados.**  Comparação entre os modelos *Agora vamos aplicar todos os modelos classificatorios em nosso Dataset*<jupyter_code>compare_models()<jupyter_output><empty_output><jupyter_text>*Temos aqui todos os modelos classificatores e ainda temos distacados os melhores parametros*  Execução de um modelo específico *podemos também executar um único modelo classificatorio nesse exemplo vamos usar o XGboost*<jupyter_code>xgboost = create_model('xgboost')<jupyter_output><empty_output><jupyter_text>Parâmetros do modelo xgboost<jupyter_code>xgboost<jupyter_output><empty_output><jupyter_text>Cross validation<jupyter_code>model=tune_model('xgboost')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.07250813085900133, 'fraction_numerical': 0.05949875645685862, 'mean_word_length': 4.544008483563096, 'pattern_counts': {'":': 0, '<': 32, '<?xml version=': 0, '>': 32, 'https://': 4, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '192191', 'license': 'Apache-2.0', 'n_tokens_mistral': 2034, 'n_tokens_neox': 1811, 'n_words': 589, 'path': 'Auto_ML_PYCARET.ipynb', 'repo_name': 'wagner-skiter/Auto_ML_com_PyCaret', 'size': '5227'}