sklearn: on Trouve des tableaux avec des incohérent nombre d'échantillons lors de l'appel de LinearRegression.ajustement()
Juste essayer de faire une régression linéaire simple, mais je suis déconcerté par cette erreur pour:
regr = LinearRegression()
regr.fit(df2.iloc[1:1000, 5].values, df2.iloc[1:1000, 2].values)
qui produit:
ValueError: Found arrays with inconsistent numbers of samples: [ 1 999]
Ces pièces doivent avoir les mêmes dimensions, et ils doivent être des tableaux numpy, de sorte que ce qui me manque?
Vous devez vous connecter pour publier un commentaire.
Il ressemble sklearn nécessite la forme des données de (numéro de ligne, numéro de colonne).
Si vos données de forme (numéro de ligne ) comme
(999, )
, il ne fonctionne pas.En utilisant
numpy.reshape()
, vous devriez changer de(999, 1)
, par exemple, à l'aide deDans mon cas, il a travaillé avec qui.
Dirait que vous êtes en utilisant les pandas dataframe (du nom df2).
Vous pouvez également effectuer les opérations suivantes:
REMARQUE: j'ai enlevé les "valeurs" comme qui convertit les pandas Série de numpy.ndarray et numpy.ndarray n'ont pas l'attribut to_frame().
Vu sur le Udacity l'apprentissage en profondeur de la fondation du cours:
Je pense que le "X" argument de regr.l'ajustement doit être une matrice, de sorte que le suivant devrait fonctionner.
J'ai rencontré cette erreur parce que j'ai converti mes données à un
np.array
. J'ai résolu le problème en convertissant mes données à unnp.matrix
au lieu et à la prise de la transposer.ValueError:
regr.fit(np.array(x_list), np.array(y_list))
Correct:
regr.fit(np.transpose(np.matrix(x_list)), np.transpose(np.matrix(y_list)))
Essayer de mettre vos traits en un tuple comme ceci:
Pour analyser les deux tableaux (matrice1 et matrice2) dont ils ont besoin pour répondre aux deux exigences suivantes:
1) Ils doivent être un numpy.ndarray
Vérifier avec
Si ce n'est pas le cas pour au moins l'un d'entre eux effectuer
2) Les dimensions doivent être comme suit:
N est le nombre d'éléments dans le tableau.
Pour fournir matrice1 avec le bon nombre d'axes effectuer:
Comme il a été mentionné ci-dessus X argument doit être une matrice ou un tableau numpy avec des dimensions connues. Donc, vous pourriez probablement utiliser ceci:
De sorte que votre dataframe serait converti en un tableau avec les dimensions connues et vous n'aurez pas besoin de modifier la forme
J'ai fait face à un problème similaire. Le problème dans mon cas a été, le Nombre de lignes dans X n'était pas égal au nombre de lignes dans y.
exemple, le nombre d'entrées en fonction des colonnes n'était pas égal au nombre d'entrées dans la variable cible depuis que j'avais laissé tomber certaines lignes de freature colonnes.