Je suis ce tutoriel pour faire cette prédiction ML :
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]))
J'utilise Python 3.6 et j'obtiens l'erreur "Expected 2D array, got 1D array instead :" Je pense que le script est pour les anciennes versions, mais je ne sais pas comment le convertir à la version 3.6.
Déjà essayé avec le :
X.reshape(1, -1)
3 votes
Quelle ligne produit l'erreur ?
12 votes
X = X.reshape(1, -1)
. Reshape n'est pas en place.2 votes
@stackoverflowuser2010 : Je pense que la dernière ligne
clf.predict(<a-1d-thing>)
ya queX
est déjà bidimensionnel (inutilereshape
nonobstant).0 votes
@MarkDickinson Oui, la dernière ligne est .
0 votes
MadPhysicist, quel est le bon endroit pour le remodelage ?
0 votes
@JonTargaryen : Quelle version de scikit-learn utilisez-vous ? Cela n'est pas censé devenir une erreur avant la version 0.19, qui n'est pas encore sortie.
2 votes
@JonTargaryen le remodelage est au bon endroit, mais vous rejetez le résultat. Affectez à nouveau le résultat à
X
.0 votes
@MadPhysicist, merci, cela aide le mien aussi.
0 votes
Faire une réponse longue et courte :
regr.fit(np.array(x_train).reshape(-1,1), np.array(y_train).reshape(-1,1))
where x_train = pd.read_sql_query('select * from YourTable', cnx).NeededColumn