flaviaggp commited on
Commit
183f85c
1 Parent(s): b08535b

Upload 2 files

Browse files
Files changed (2) hide show
  1. model.joblib +3 -0
  2. 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')