ich die folgenden Variablen:Regression mit Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
np.random.seed(0)
n = 15
x = np.linspace(0,10,n) + np.random.randn(n)/5
y = np.sin(x)+x/6 + np.random.randn(n)/10
X_train, X_test, y_train, y_test = train_test_split(x, y, random_state=0)
def part1_scatter():
%matplotlib notebook
plt.figure()
plt.scatter(X_train, y_train, label='training data')
plt.scatter(X_test, y_test, label='test data')
plt.legend(loc=4);
Und die folgende Frage:
Schreiben Sie eine Funktion, die 6 für Grad 1, 3, ein Polynom Lineare Regression Modell auf den Trainingsdaten X_train passt, und 9. (Verwenden Sie PolynomialFeatures in sklearn.preprocessing, um die Polynomeigenschaften zu erstellen und dann ein lineares Regressionsmodell anzupassen.) Suchen Sie für jedes Modell 100 vorhergesagte Werte über das Intervall x = 0 bis 10 (z. B. np.linspace (0,10,100)). und speichern Sie dies in einem numply-Array. Die erste Reihe dieser Anordnung sollte der Ausgabe von dem Modell entsprechen, das auf Grad 1, dem zweiten Reihengrad 3, dem dritten Reihengrad 6 und dem vierten Reihengrad 9 trainiert wurde ‚t ausrechnen:
def answer_one():
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
np.random.seed(0)
n = 15
x = np.linspace(0,10,n) + np.random.randn(n)/5
y = np.sin(x)+x/6 + np.random.randn(n)/10
X_train, X_test, y_train, y_test = train_test_split(x, y, random_state=0)
results = []
pred_data = np.linspace(0,10,100)
degree = [1,3,6,9]
y_train1 = y_train.reshape(-1,1)
for i in degree:
poly = PolynomialFeatures(degree=i)
pred_poly1 = poly.fit_transform(pred_data[:,np.newaxis])
X_F1_poly = poly.fit_transform(X_train[:,np.newaxis])
linreg = LinearRegression().fit(X_F1_poly, y_train1)
pred = linreg.predict(pred_poly1)
results.append(pred)
dataArray = np.array(results).reshape(4, 100)
return dataArray
erhalte ich diesen Fehler:
line 58 for i
in degree: ^IndentationError: unexpected
indent
Können Sie mir sagen, wo das Problem ist?
Ich habe versucht, mit „return“ rechts unter „für“, aber es funktioniert nicht .. –
Wenn Rückkehr unter für, nun erhalte ich folgende Fehlermeldung: Zeile 58 für i in Grad:^IndentationError: unerwartetes indent –