<jupyter_start><jupyter_text>* Desafios Aula 4:* Desafio 1: Procurar outro modelo de ML para treinar e comparar com os outros modelos em aula.* Desafio 2: Ler a documentação do Dummy e alterar o método de regressão.* Desafio 3: Buscar outra métrica para avaliar modelos de regressão.<jupyter_code>provas = ['NU_NOTA_REDACAO', 'NU_NOTA_LC', 'NU_NOTA_CN', 'NU_NOTA_MT', 'NU_NOTA_CH']
dados['NU_NOTA_TOTAL'] = dados[provas].sum(axis=1)
provas.append("NU_NOTA_TOTAL")
dados[provas].head()
dados_sem_zero = dados.query('NU_NOTA_TOTAL != 0')
dados_sem_zero.head()
provas_entrada = ['NU_NOTA_CH','NU_NOTA_CN','NU_NOTA_LC','NU_NOTA_REDACAO']
prova_saida = 'NU_NOTA_MT'

dados_sem_zero = dados_sem_zero[provas].dropna()

notas_entrada = dados_sem_zero[provas_entrada]
notas_saida = dados_sem_zero[prova_saida]
#f(x) = y
x = notas_entrada
y = notas_saida
#Separando dados de treino e dados de teste

from sklearn.model_selection import train_test_split

seed = 4321

x_treino, x_teste, y_treino, y_teste = train_test_split(x, y, test_size=0.25, random_state=seed)
x_treino.head()
x_treino.shape
y_treino.shape<jupyter_output><empty_output><jupyter_text>Desafio 1: Procurar outro modelo de ML para treinar e comparar com os outros modelos em aula.* Modelos utilizados em aula: Linear SVR e Dummy* Modelo utilizado aqui: linear_model    * Mean Squared Error (MSE)        * LinearSVR   - 18324.12        * Dummy       - 18324.12        * Linear_mode - 5961.37            * Raiz quadrada (RMSE - Root Mean Squared Error)        * LinearSVR   - 135.36        * Dummy       - 135.36        * Linear_mode - 77.21        * Quanto menor o RMSE, melhor será o modelo. Portanto, o Linear Mode se apresenta como o melhor modelo  Regressão Linear<jupyter_code>from sklearn import linear_model as lm
#Descrição do modelo
model_lr = lm.LinearRegression()

#Treinamento do modelo
model_lr.fit(x_treino,y_treino)
#Predições
pred = model_lr.predict(x_teste) #teste
pred[0:5]
#Valores reais
y_teste[:5]
resultados = pd.DataFrame()
resultados['Real'] = y_teste
resultados['Previsão'] = pred
resultados['Diferença'] = resultados['Real'] - resultados['Previsão']
resultados['quadrado_diferença'] = (resultados['Real'] - resultados['Previsão'])**2
resultados
#Media
resultados['quadrado_diferença'].mean()
#Raiz quadrada
resultados['quadrado_diferença'].mean()**(1/2)<jupyter_output><empty_output><jupyter_text>Desafio 2: Ler a documentação do Dummy e alterar o método de regressão.* MAE com Dummy: 90.39* MSE com Dummy: 12063.64* RMSE com Dummy: 109.83<jupyter_code>from sklearn.dummy import DummyRegressor
from sklearn.metrics import mean_absolute_error
model_dummy = DummyRegressor(strategy='mean') 
model_dummy.fit(x_treino, y_treino)
dummy = model_dummy.predict(x_teste)
# Verificando o erro do algoritimo
mae = mean_absolute_error(y_teste, dummy)
mae
from sklearn.metrics import mean_squared_error

mse = mean_squared_error(y_teste, dummy)
mse
rmse = mse**(1/2)
rmse<jupyter_output><empty_output><jupyter_text>Desafio 3: Buscar outra métrica para avaliar modelos de regressão. * MAE - Mean Absolute Error<jupyter_code>mean_absolute_error(y_teste, pred)<jupyter_output><empty_output><jupyter_text>* R2 - R Squared<jupyter_code>from sklearn.metrics import r2_score
r2_score(y_teste, pred)<jupyter_output><empty_output><jupyter_text>* MAD - Median Absolute Error<jupyter_code>from sklearn.metrics import median_absolute_error
median_absolute_error(y_teste, pred)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10167533217793183, 'fraction_numerical': 0.02224147891392259, 'mean_word_length': 6.096311475409836, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, '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': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '459285', 'license': 'MIT', 'n_tokens_mistral': 1422, 'n_tokens_neox': 1335, 'n_words': 297, 'path': 'Desafios Alura - Aula 4.ipynb', 'repo_name': 'Daniel-RPS/Imers-o-de-Dados-Alura', 'size': '3462'}