From cfb78b245164f1088fd450200fcd846adca82ba3 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 6 Mar 2016 14:36:32 +0100 Subject: lineare Regression dokumentiert; lineare Regression trainiert Testdaten nicht mehr… MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- linear.py | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/linear.py b/linear.py index bec85db..4f57970 100644 --- a/linear.py +++ b/linear.py @@ -1,28 +1,31 @@ #!/usr/bin/python3 -from sklearn.datasets import * +from sklearn.datasets import load_boston from sklearn.linear_model import LinearRegression from sklearn.cross_validation import train_test_split import numpy as np -# TODO schön machen und verweisen - +# Ein gleicher Wert SEED bei der linearen Regression +# und bei der Implementierung des kNN bewirkt, +# dass Trainings- und Testreihe gleich sind +# und damit das Ergebnis vergleichbar. SEED = 42 np.random.seed(SEED) +# Datenreihe laden und in Trainings- und Testreihe aufteilen data = load_boston() +X_train, X_test, y_train, y_test = train_test_split( + data.data, data.target, train_size=0.85) -X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, train_size=0.85) - +# Die lineare Regression auf die Trainingsdaten anwenden model = LinearRegression() -model.fit(data.data, data.target) +model.fit(X_train, y_train) -p=model.predict(X_test) -print(p) -print('diff') -print('') -print(y_test - p) -squares=[] -for n in range(len(p)): - squares.append((y_test[n] - p[n])**2) +# Die Testdaten vorhersagen +prediction = model.predict(X_test) +# Das Quadrat aller Differenzen berechnen +mse = np.mean([ + (y_test[n] - prediction[n]) ** 2 + for n in range(len(prediction)) +]) -print(np.mean(squares)) +print(mse) -- cgit v1.3.1