<jupyter_start><jupyter_text>**MÉTODO DE BAYES - RISCO DE CRÉDITO**Primeiramente é carregado a base de dados, depois disso os atributos previsores são separados dos atributos classificatórios em dois "arrays" diferentes.Nesse caso não foi separado um "data set" para teste, somente para treino. Foi utlizado o "Label Encoder" para evitar problemas com atributos "nominais".Depois disso, a tabela foi salva num arquivo do tipo ".pkl". Através do "fit" ajustamos os pontos ao modelo preditivo e no final é feito a previsão de um suposto exemplo.[LINK NO GOOGLE COLAB](https://colab.research.google.com/drive/1YNSIVZWduGCasitBBnvCEiRqq03kSTm5?usp=sharing)<jupyter_code>import pandas as pd
risco_credito_table = pd.read_csv("/content/risco_credito.csv") 
risco_credito_table<jupyter_output><empty_output><jupyter_text>Separando uma tabela para os valores previsores e outro para as classes.<jupyter_code>risco_credito_previsores = risco_credito_table.iloc[:,0:-1].values
# O primeiro e o ultimo parametro é exclusivo (ou seja, não entra).
# Cria uma tabela só com as colunas história, divida, garantias e renda.
# O atributa .values retorna um tabela do tipo nparray
risco_credito_previsores[0]
risco_credito_classes = risco_credito_table.iloc[:,-1].values
# Cria uma tabela com a coluna risco, somente.
# O atributo .values retorna um tabela do tipo nparray<jupyter_output><empty_output><jupyter_text>Aplicando os Label Encoder nos valores categóricos nominais.<jupyter_code>from sklearn.preprocessing import LabelEncoder<jupyter_output><empty_output><jupyter_text>Será necessário criar um objeto Ecoder para cada atributo previsor não numérico.<jupyter_code>l_encoder_historia  = LabelEncoder()
l_encoder_divida    = LabelEncoder()
l_encoder_garantias = LabelEncoder()
l_encoder_renda     = LabelEncoder()
risco_credito_previsores[:,0] = l_encoder_historia.fit_transform(risco_credito_previsores[:,0])
risco_credito_previsores[:,1] = l_encoder_divida.fit_transform(risco_credito_previsores[:,1])
risco_credito_previsores[:,2] = l_encoder_garantias.fit_transform(risco_credito_previsores[:,2])
risco_credito_previsores[:,3] = l_encoder_renda.fit_transform(risco_credito_previsores[:,3])<jupyter_output><empty_output><jupyter_text>**Primeira Coluna (historia):**0 - Boa | 1 - Desconehcida | 2 - Ruim **Segunda Coluna (divida):**0 - Alta | 1 - Baixa**Terceira Coluna (garantias):**0 - Adequada | 1 - Nenhuma**Quarta Coluna (renda):**0 - 0_15 | 1 - 15_35 | 2 - acima_35<jupyter_code>risco_credito_previsores<jupyter_output><empty_output><jupyter_text>Salvando atributos previsores e classes num arquivo .pickle<jupyter_code>import pickle

with open("risco_credito.pkl","wb") as f:
    pickle.dump([risco_credito_previsores,risco_credito_classes],f)<jupyter_output><empty_output><jupyter_text>Começando a usar o método...<jupyter_code>from sklearn.naive_bayes import GaussianNB
# A realização do Algorítimo de Naive Bayes será feita pelo objeto GaussianNB

naive_baye_risco_credito = GaussianNB()
naive_baye_risco_credito.fit(risco_credito_previsores,risco_credito_classes)<jupyter_output><empty_output><jupyter_text>Para descobrir o que cada valor do encoder significa é preciso comparar os valores com a tabela original.  Testando Previsões<jupyter_code># historia - Boa(0), divida - Alta(0), garatias - Nenhuma(1), renda - maior_que_35(2)

previsao = naive_baye_risco_credito.predict([[0,0,1,2]])

previsao<jupyter_output><empty_output><jupyter_text>Ou seja, o risco é baixo para uma pessoa com:historia - Boa(0), divida - Alta(0), garatias - Nenhuma(1), renda - maior_que_35(2)  Mostrar as Classes<jupyter_code>naive_baye_risco_credito.classes_<jupyter_output><empty_output><jupyter_text>Mostrar número de resgistros por classe<jupyter_code>naive_baye_risco_credito.class_count_<jupyter_output><empty_output><jupyter_text>Ou seja, 6 registros com risco alto, 5 registors com risco baixo e 3 registros com risco moderado  Procentagem de cada classe no banco de dados<jupyter_code>naive_baye_risco_credito.class_prior_<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08929013109077417, 'fraction_numerical': 0.013356418501113035, 'mean_word_length': 7.791304347826087, 'pattern_counts': {'":': 0, '<': 45, '<?xml version=': 0, '>': 45, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, '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': '11', 'dir': 'jupyter-structured-clean-dedup', 'id': '251698', 'license': 'MIT', 'n_tokens_mistral': 1568, 'n_tokens_neox': 1538, 'n_words': 328, 'path': 'Metodo_de_Bayes_RISCO_DE_CREDITO.ipynb', 'repo_name': 'VictorCalebeIFG/MachineLearning_Python', 'size': '4043'}