Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
# -*- coding: utf-8 -*- """Untitled5.ipynb Automatically generated by Colaboratory. Original file is located at https://colab.research.google.com/drive/1imA7HZUSE13aBOaz-G7bPJuc5FMc5cmD """ import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from scipy import stats from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error sns.set_theme() """# DATASETS""" df_estados = pd.read_csv('https://raw.githubusercontent.com/ProfLeandroLessa/classroom-datasets/master/CID/Desafio%20Final/estados_brasileiros.csv', sep=';', encoding = 'iso-8859-1') df_pacientes = pd.read_csv('https://raw.githubusercontent.com/ProfLeandroLessa/classroom-datasets/master/CID/Desafio%20Final/dados_pacientes.csv', sep=';', encoding = 'iso-8859-1') df_medicos = pd.read_excel('https://github.com/ProfLeandroLessa/classroom-datasets/raw/master/CID/Desafio%20Final/dados_medicos.xlsx') df_estados.head() df_pacientes.head() df_medicos.head() df_estados.info() df_pacientes.info() df_medicos.info() """# Unindo os dados dos três datasets""" df_final = pd.merge(df_pacientes, df_estados, left_on='id_estado', right_on='id_estado', how='inner') df_final = pd.merge(df_final, df_medicos, left_on='id_cliente', right_on='id_cliente', how='inner') df_final.head() df_final.info() df_final.isna().sum() df_final['peso'] = df_final['peso'].fillna(df_final['peso'].mean()) """# Questões do Desafio Final 2 - Qual é a idade média das pessoas que residem no estado de Minas Gerais? """ idade_media_mg = df_final[df_final['sigla_estado'] == 'MG']['idade'].mean() print(f"A idade média das pessoas que residem no estado de Minas Gerais é {idade_media_mg:.2f} anos.") """Pergunta 4 - Crie um gráfico de caixa (boxplot) para representar a distribuição da renda por gênero das pessoas que residem no estado de Minas Gerais e, em seguida, responda qual é o gênero que possui maior mediana da renda representado no gráfico de caixa?""" df_mg = df_final[df_final['sigla_estado'] == 'MG'] # Criar o gráfico de caixa plt.figure(figsize=(8, 6)) sns.boxplot(y='renda', x='genero', data=df_mg, hue='genero') plt.title('Distribuição da Renda por Gênero - Estado de Minas Gerais') plt.xlabel('Gênero') plt.ylabel('Renda') plt.grid(True) plt.show() # Identificar o gênero com maior mediana da renda mediana_renda_por_genero = df_mg.groupby('genero')['renda'].median() genero_maior_mediana = mediana_renda_por_genero.idxmax() mediana_maior = mediana_renda_por_genero.max() print(f"O gênero que possui maior mediana da renda é {genero_maior_mediana} com uma mediana de renda de R${mediana_maior:.2f}.") """Pergunta 6 - Crie um gráfico de caixa (boxplot) para representar as idades das pessoas que possuem níveis de educação superior, categorizadas por seu estado civil. Em seguida, escolha o gráfico que melhor representa essa distribuição.""" df_ensino_superior = df_final[df_final['nivel_educacao'] == 'Superior'] # Criar o gráfico de caixa plt.figure(figsize=(12, 8)) sns.set(style="darkgrid") sns.boxplot(x='idade', y='estado Civil', data=df_ensino_superior, hue='estado Civil') plt.title('Idades das Pessoas com Nível de Educação Superior por Estado Civil') plt.xlabel('Idade') plt.ylabel('Estado Civil') plt.grid(True) plt.show() """Pergunta 7 - Calcule estatísticas descritivas para a variável "colesterol" agrupadas por nível de educação. Em seguida, com base nas estatísticas calculadas, escolha a alternativa CORRETA.""" estatisticas_colesterol = df_final.groupby('nivel_educacao')['colesterol'].describe() print(estatisticas_colesterol) moda_colesterol = df_final.groupby('nivel_educacao')['colesterol'].apply(pd.Series.mode) print(moda_colesterol) """Pergunta 8 - Crie um histograma com 20 barras representando o peso das pessoas. Em seguida, com base no histograma gerado, escolha a alternativa que melhor descreve a distribuição dos pesos.""" # Criar o histograma plt.figure(figsize=(15, 10)) df_final['peso'].hist(bins=20, color='blue', edgecolor='black', alpha=0.7) plt.title('Histograma de Peso das Pessoas') plt.xlabel('Peso') plt.ylabel('Frequência') plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show() """Pergunta 9 - Qual é o estado cujo residente possui a maior renda, e qual é o estado civil dessa pessoa?""" df_final.loc[df_final['renda'].idxmax()] """Pergunta 10 - Crie um gráfico de dispersão que represente as relações entre as variáveis peso (eixo x) e colesterol (eixo y) e selecione o gráfico que melhor ilustra essa relação.""" # Criar o gráfico de dispersão plt.figure(figsize=(10, 8)) sns.scatterplot(data=df_final, x='peso', y='colesterol', alpha=0.6) plt.title('Relação entre Peso e Colesterol') plt.xlabel('Peso') plt.ylabel('Colesterol') plt.grid(True) plt.show() """Pergunta 11 - Ao aplicar um modelo de regressão linear usando machine learning, responda à seguinte pergunta: Qual é o valor estimado de colesterol para uma pessoa que possui um peso de 128 quilos, com base no mode""" # Retirando as colunas que não serão utilizada no modelo X = df_final['peso'].values.reshape(-1, 1) y = df_final['colesterol'].values.reshape(-1, 1) # Separando os dados de teste e de treino X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) model = LinearRegression() model.fit(X_train, y_train) y_pred = model.predict(X_test) r_sq = model.score(X, y) mae = mean_absolute_error(y_test, y_pred) mse = mean_squared_error(y_test, y_pred) valor_previsto = model.predict(np.array([[128.0]])) coef_angular = model.coef_[0][0] coef_determinacao = r_sq print('Valor previsto: {:0.2f}'.format(model.predict(np.array([128.0]).reshape(-1, 1))[0][0])) print('Acurácia: {:0.2f}'.format(r2_score(y_test,y_pred))) print('Coeficiente angular da reta: {:0.2f}'.format(model.coef_[0][0])) print('Coeficiente de Determinação (R²): {:0.2f}'.format(r_sq)) print('MAE: {:0.2f}'.format(mae)) print('MSE: {:0.2f}'.format(mse)) """Pergunta 12 - Qual é o valor do coeficiente angular da reta?""" # Coeficiente angular da reta coef_angular = model.coef_[0][0] print('Coeficiente angular da reta: {:0.2f}'.format(coef_angular)) """Pergunta 13 - Qual foi o coeficiente de determinação R² do modelo?""" # Coeficiente de determinação (R²) r_squared = model.score(X, y) print('Coeficiente de Determinação (R²): {:0.2f}'.format(r_squared)) """Pergunta 14 - Qual o valor do mean absolute error do modelo criado?""" # Calculando o Mean Absolute Error (MAE) mae = mean_absolute_error(y, y_pred) print('MAE: {:0.2f}'.format(mae)) """Pergunta 15 - Qual o valor do mean squared error do modelo criado?""" # Mean Squared Error (MSE) mse = mean_squared_error(y, y_pred) print('MSE: {:0.2f}'.format(mse))
Compartilhar