Upload 2 files
Browse files- model.joblib +3 -0
- regressao_california_housing.py +93 -0
model.joblib
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:ea53e57baa9774c9b1b7a308eb0126003a98bf08bf18f8d286f848dcb5e83bc6
|
3 |
+
size 1080
|
regressao_california_housing.py
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# -*- coding: utf-8 -*-
|
2 |
+
"""Regressao_california_housing.ipynb
|
3 |
+
|
4 |
+
Automatically generated by Colaboratory.
|
5 |
+
|
6 |
+
Original file is located at
|
7 |
+
https://colab.research.google.com/drive/1scAuuquey_Jr4vD3oBLVzLHQ_Hd6VLJb
|
8 |
+
|
9 |
+
# **Regressao california housing**
|
10 |
+
|
11 |
+
Dados de habitação da Califórnia ou o conjunto de dados de habitação de Ames.
|
12 |
+
|
13 |
+
Este conjunto de dados contém informações sobre habitação na Califórnia. Ele inclui atributos como a renda média, idade média da casa, número médio de quartos, número médio de ocupantes por casa, latitude e longitude.
|
14 |
+
"""
|
15 |
+
|
16 |
+
! pip install datasets
|
17 |
+
|
18 |
+
# Importando as bibliotecas necessárias
|
19 |
+
import pandas as pd
|
20 |
+
import numpy as np
|
21 |
+
from sklearn.datasets import fetch_california_housing
|
22 |
+
from sklearn.model_selection import train_test_split, cross_val_score
|
23 |
+
from sklearn.linear_model import LinearRegression
|
24 |
+
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
|
25 |
+
from sklearn.preprocessing import StandardScaler
|
26 |
+
from sklearn.datasets import fetch_california_housing
|
27 |
+
|
28 |
+
# Carregando o conjunto de dados de habitação da Califórnia
|
29 |
+
housing = fetch_california_housing()
|
30 |
+
|
31 |
+
# Convertendo para um DataFrame pandas
|
32 |
+
df = pd.DataFrame(housing.data, columns=housing.feature_names)
|
33 |
+
df['target'] = housing.target
|
34 |
+
|
35 |
+
# Pré-processamento de Dados: Normalização das variáveis numéricas
|
36 |
+
scaler = StandardScaler()
|
37 |
+
df[housing.feature_names] = scaler.fit_transform(df[housing.feature_names])
|
38 |
+
|
39 |
+
X_train, X_test, y_train, y_test = train_test_split(df.drop('target', axis=1), df['target'], test_size=0.2, random_state=42)
|
40 |
+
|
41 |
+
# Treinando o modelo com os dados de treinamento
|
42 |
+
model = LinearRegression()
|
43 |
+
model.fit(X_train, y_train)
|
44 |
+
|
45 |
+
# Fazendo previsões com os dados de teste
|
46 |
+
y_pred = model.predict(X_test)
|
47 |
+
|
48 |
+
# Calculando o erro quadrático médio das previsões
|
49 |
+
mse = mean_squared_error(y_test, y_pred)
|
50 |
+
print(f'Erro Quadrático Médio: {mse}')
|
51 |
+
|
52 |
+
"""Erro Quadrático Médio (MSE): O MSE é uma medida comum de erro de previsão que penaliza grandes erros mais do que pequenos erros. Seu valor é 0.5558915986952441, o que significa que, em média, as previsões do seu modelo estão cerca de 0.56 unidades distantes do valor real."""
|
53 |
+
|
54 |
+
# Calculando o erro absoluto médio das previsões
|
55 |
+
mae = mean_absolute_error(y_test, y_pred)
|
56 |
+
print(f'Erro Absoluto Médio: {mae}')
|
57 |
+
|
58 |
+
"""Erro Absoluto Médio (MAE): O MAE é outra medida de erro de previsão que é menos sensível a grandes erros do que o MSE. Seu valor é 0.5332001304956565, o que significa que, em média, as previsões do seu modelo estão cerca de 0.53 unidades distantes do valor real."""
|
59 |
+
|
60 |
+
# Calculando o coeficiente de determinação das previsões
|
61 |
+
r2 = r2_score(y_test, y_pred)
|
62 |
+
print(f'Coeficiente de Determinação (R^2): {r2}')
|
63 |
+
|
64 |
+
"""Coeficiente de Determinação (R^2): O R^2 é uma medida de quão bem as previsões do seu modelo se ajustam aos dados reais. Seu valor é 0.575787706032451, o que significa que seu modelo explica cerca de 57.6% da variância na variável alvo."""
|
65 |
+
|
66 |
+
# Realizando a validação cruzada
|
67 |
+
scores = cross_val_score(model, df.drop('target', axis=1), df['target'], cv=5, scoring='neg_mean_squared_error')
|
68 |
+
avg_mse = np.mean(scores)
|
69 |
+
print(f'Erro Quadrático Médio Médio da Validação Cruzada: {-avg_mse}')
|
70 |
+
|
71 |
+
"""Erro Quadrático Médio Médio da Validação Cruzada: Este é o MSE médio calculado através da validação cruzada. Seu valor é 0.5582901717686553, o que é ligeiramente maior do que o MSE calculado no conjunto de teste. Isso sugere que seu modelo pode estar um pouco sobreajustado aos dados de treinamento."""
|
72 |
+
|
73 |
+
# Imprimindo os coeficientes do modelo
|
74 |
+
coefficients = pd.DataFrame(model.coef_, index=housing.feature_names, columns=['Coefficient'])
|
75 |
+
print(coefficients)
|
76 |
+
|
77 |
+
"""Os coeficientes do modelo de regressão linear representam a relação entre as características (ou variáveis independentes) e a variável alvo (ou variável dependente).
|
78 |
+
|
79 |
+
* MedInc: Um aumento de uma unidade em MedInc está associado a um aumento de 0.
|
80 |
+
852382 na variável alvo. Isso sugere que a renda média é um forte preditor positivo da variável alvo.
|
81 |
+
* HouseAge: Um aumento de uma unidade em HouseAge está associado a um aumento de 0.122382 na variável alvo. Isso indica que a idade da casa tem uma relação positiva com a variável alvo, mas não tão forte quanto MedInc.
|
82 |
+
* AveRooms: Um aumento de uma unidade em AveRooms está associado a uma diminuição de 0.305116 na variável alvo. Isso sugere que o número médio de quartos tem uma relação negativa com a variável alvo.
|
83 |
+
* AveBedrms: Um aumento de uma unidade em AveBedrms está associado a um aumento de 0.371132 na variável alvo. Isso indica que o número médio de quartos tem uma relação positiva com a variável alvo.
|
84 |
+
* Population: Um aumento de uma unidade em Population está associado a uma diminuição de 0.002298 na variável alvo. Isso sugere que a população tem uma relação negativa muito fraca com a variável alvo.
|
85 |
+
* AveOccup: Um aumento de uma unidade em AveOccup está associado a uma diminuição de 0.036624 na variável alvo. Isso indica que a ocupação média tem uma relação negativa com a variável alvo.
|
86 |
+
* Latitude: Um aumento de uma unidade em Latitude está associado a uma diminuição de 0.896635 na variável alvo. Isso sugere que a latitude tem uma forte relação negativa com a variável alvo.
|
87 |
+
* Longitude: Um aumento de uma unidade em Longitude está associado a uma diminuição de 0.868927 na variável alvo. Isso indica que a longitude também tem uma forte relação negativa com a variável alvo.
|
88 |
+
"""
|
89 |
+
|
90 |
+
# Salvando o modelo
|
91 |
+
from joblib import dump
|
92 |
+
|
93 |
+
dump(model, 'model.joblib')
|