2017-04-30 2 views
2

Je suis généralement novice en Python et j'ai de la difficulté à créer un modèle de régression linéaire. Je dois le faire à partir d'un ensemble de formation et de test à partir d'un grand ensemble de données Excel (.csv).Meilleure façon de créer un modèle de régression linéaire à partir d'un ensemble de données .csv fractionné?

J'ai divisé l'ensemble de données déjà:

import pandas as pd 
import numpy as np 

df = pd.read_csv('C:/Dataset.csv') 
df['split'] = np.random.randn(df.shape[0], 1) 
split = np.random.rand(len(df)) <= 0.75 

training_set = df[split] 
testing_set = df[~split] 

Comment puis-je utiliser ces données fendus pour faire un modèle de régression linéaire en utilisant l'erreur moyenne moyenne?

Merci.

+0

Devrait-il s'agir d'une erreur absolue moyenne? –

Répondre

1

Avec Scikit-learn est simple

import pandas as pd 
from sklearn import linear_model 
from sklearn.metrics import mean_absolute_error 

jeu de données de charge et de diviser les données en formation/test établit

X_train = df[split] 
X_test = df[~split] 

Divisez la cible en formation/test établit

y_train = df.target[split] 
y_test = df.target[~split] 

Créer linéaire objet de régression

regr = linear_model.LinearRegression() 

Former le modèle en utilisant la formation fixe

regr.fit(X_train, y_train) 

Prédire cible

y_pred = regr.predict(X_test) 

Imprimer les coefficients

print('Coefficients: \n', regr.coef_) 

Imprimer l'erreur absolue moyenne

print("Mean absolute error: %.2f" 
     % mean_absolute_error(y_test, y_pred))