erreur dans le script python “Attendu tableau 2D, obtenu 1D tableau plutôt:”?
Je suis en suivant ce tutoriel pour faire de cette ML de prédiction:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
style.use("ggplot")
from sklearn import svm
x = [1, 5, 1.5, 8, 1, 9]
y = [2, 8, 1.8, 8, 0.6, 11]
plt.scatter(x,y)
plt.show()
X = np.array([[1,2],
[5,8],
[1.5,1.8],
[8,8],
[1,0.6],
[9,11]])
y = [0,1,0,1,0,1]
X.reshape(1, -1)
clf = svm.SVC(kernel='linear', C = 1.0)
clf.fit(X,y)
print(clf.predict([0.58,0.76]))
Im en utilisant Python 3.6 et j'obtiens l'erreur "Attendu tableau 2D, obtenu 1D tableau plutôt:"
Je pense que le script est pour les anciennes versions, mais je ne sais pas comment faire pour le convertir à la version 3.6.
Déjà essayer avec le:
X.reshape(1, -1)
La ligne qui est à l'origine de l'erreur?
Je suppose que la dernière ligne
Oui, la dernière ligne.
la réorientation est dans le bon endroit, mais vous êtes à rejeter le résultat. Affecter le résultat de retour à
X = X.reshape(1, -1)
. Remodeler n'est pas en place.Je suppose que la dernière ligne
clf.predict(<a-1d-thing>)
, depuis X
est déjà à deux dimensions (inutile reshape
nonobstant).Oui, la dernière ligne.
la réorientation est dans le bon endroit, mais vous êtes à rejeter le résultat. Affecter le résultat de retour à
X
.OriginalL'auteur JonTargaryen | 2017-08-07
Vous devez vous connecter pour publier un commentaire.
Vous êtes seulement censés fournir le
predict
méthode avec le même tableau 2D, mais avec une valeur que vous souhaitez traiter (ou plus). En bref, vous pouvez simplement remplacerAvec
Et cela devrait fonctionner
mais pourquoi est-ce que le travail? Je ne comprends pas ce qu'est la question.
comment voulez-vous atteindre ce pour le plus grand dataframes? (dynamiquement)
OriginalL'auteur Ofer Sadan
Le problème se produit lorsque vous exécutez la prédiction sur le tableau
[0.58,0.76]
. Résoudre le problème en le restructurant avant d'appelerpredict()
:OriginalL'auteur stackoverflowuser2010
J'ai fait face à la même question, sauf que le type de données de l'instance, je voulais prédire était un
panda.Series
objet.Bien j'ai juste besoin de prévoir une entrée de l'instance. Je l'ai pris à partir d'une tranche de mes données.
Dans ce cas, vous aurez besoin de le convertir en un 1-D tableau et puis
reshape
.De la docs,
values
permettra de convertir de la Série dans un tableau numpy.OriginalL'auteur devsaw
X et en Y de la matrice de la Variable Indépendante et la Variable Dépendante respectivement à DataFrame de Type int64 afin qu'il soit converti à partir 1D tableau de tableau 2D..
j'.e X=pd.DataFrame(X) et Y=pd.dataFrame(Y) où pd est de pandas classe en python. et donc la fonction de mise à l'échelle, à son tour, ne conduit pas à l'erreur!
OriginalL'auteur Chahat Agarwal