J'ai écrit ci-dessous du code pour utiliser la régression polynomiale. Suis capable d'adapter le modèle, mais pas capable de prédire !!Ajuster un modèle en utilisant la régression polynomiale ne permet pas de prédire à cause du problème de forme
def polynomial_function(power=5, random_state=9):
global X_train
global y_train
X_train = X_train[['item_1','item_2','item_3','item_4']]
rng = np.random.RandomState(random_state)
poly = PolynomialFeatures(degree=power, include_bias=False)
linreg = LinearRegression(normalize=True)
new_X_train = poly.fit_transform(X_train)
linreg.fit(new_X_train, y_train)
new_x_test = np.array([4, 5, 6, 7]).reshape(1, -1)
print linreg.predict(new_x_test)
return linreg
linreg = polynomial_function()
reçois ci-dessous un message d'erreur:
ValueError: shapes (1,4) and (125,) not aligned: 4 (dim 1) != 125 (dim 0)
L'erreur se produit ici,
new_x_test = np.array([4, 5, 6, 7]).reshape(1, -1)
print linreg.predict(new_x_test)
J'ai trouvé forme de new_X_train = (923, 125) et la forme de new_x_test = (1, 4)
Comment est-ce important?
Lorsque j'essaie de prédire l'utilisation d'une forme de (1, 4) l'algorithme essaie-t-il de la convertir en une forme différente? Cherche-t-il un polynôme de degré 5 pour les données de test?
J'essaie d'apprendre la régression polynomiale, quelqu'un peut-il expliquer ce qui se passe?
En fait, je retourne "linreg" après l'ajustement du modèle. D'autres appellent mon modèle en utilisant model = polynomial_function(); model.predict (np.array ([4, 5, 6, 7]). reshape (1, -1)); , Comment puis-je gérer cela dans ma fonction? Une solution pour cela? –
Pourquoi 'new_x_test' est-il dans votre fonction? Et pourquoi votre exemple montre-t-il que vous prédisez à l'intérieur de votre fonction si votre objectif était de retourner le modèle pour ensuite utiliser pour prédire? – Jarad
Je mets new_x_test pour plus de simplicité. Je testais la fonction. Je pensais pouvoir appliquer la solution quand "new_x_test" est en dehors de la fonction. Mais maintenant je ne peux pas. Pouvez-vous suggérer une solution si "new_x_test" vient de l'extérieur, comme: model.predict (np.array ([4, 5, 6, 7]) reshape (1, -1)) –