Question

J'essaie d'exécuter ce code sur Python. Ce code fait référence à une LDA, de Sklearn.

import numpy as np
from sklearn.lda import LDA

X = np.array ([0.000000, 0.000000, 0.000000, 0.000000, 0.001550, 
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 
               0.000000, 0.000000, 0.201550, 0.011111, 0.077778,
               0.011111, 0.000000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.092732, 0.000000, 0.000000, 0.000000,
               0.000000, 0.035659, 0.000000, 0.000000, 0.000000,
               0.000000, 0.066667, 0.000000, 0.000000, 0.010853,
               0.000000, 0.033333, 0.055556, 0.055556, 0.077778, 
               0.000000, 0.000000, 0.000000, 0.268170, 0.000000, 
               0.000000, 0.000000, 0.000000, 0.130233, 0.000000, 
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.034109, 0.077778, 0.055556, 0.011111, 
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
               0.155388, 0.000000, 0.000000, 0.000000, 0.000000,
               0.181395, 0.000000, 0.000000, 0.000000, 0.000000,
               0.001550, 0.007752, 0.000000, 0.000000, 0.000000, 
               0.000000, 0.000000, 0.011111, 0.088889, 0.033333,
               0.000000, 0.000000, 0.142857, 0.000000, 0.000000,
               0.000000, 0.000000, 0.093023, 0.000000, 0.000000,
               0.000000, 0.000000, 0.000000, 0.009302, 0.010853, 
               0.000000, 0.100000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.022222, 0.088889, 0.033333, 0.238095,
               0.000000, 0.000000, 0.000000, 0.000000, 0.032558,
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
               0.182946, 0.000000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.000000, 0.022222, 0.077778, 0.055556,
               0.000000, 0.102757])

y = np.array ([0.000000, 0.000000, 0.008821, 0.000000, 0.000000, 
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.000000, 0.179631, 0.010471, 0.036649,
               0.026178, 0.000000, 0.000000, 0.020942, 0.010471,
               0.000000, 0.109215, 0.000000, 0.000000, 0.060144, 
               0.000000, 0.042502, 0.000000, 0.005613, 0.000000,
               0.000000, 0.018444, 0.000000, 0.000000, 0.013633,
               0.020942, 0.031414, 0.083770, 0.015707, 0.041885,
               0.041885, 0.057592, 0.010471, 0.233788, 0.000000,
               0.000000, 0.018444, 0.000000, 0.000000, 0.000000,
               0.000000, 0.000000, 0.090617, 0.000000, 0.000000,
               0.000000, 0.104250, 0.005236, 0.020942, 0.031414,
               0.000000, 0.000000, 0.010471, 0.015707, 0.005236,
               0.056314, 0.000000, 0.000000, 0.026464, 0.000000,
               0.004010, 0.000000, 0.031275, 0.007217, 0.036889,
               0.007217, 0.013633, 0.000000, 0.000000, 0.005236,
               0.047120, 0.057592, 0.015707, 0.010471, 0.047120,
               0.062827, 0.005236, 0.262799, 0.000000, 0.000000,
               0.000000, 0.000000, 0.000802, 0.000000, 0.000000,
               0.000000, 0.001604, 0.000000, 0.052927, 0.000000,
               0.039294, 0.026178, 0.041885, 0.031414, 0.000000,
               0.000000, 0.041885, 0.073298, 0.000000, 0.308874,
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
               0.236568, 0.000000, 0.000000, 0.000000, 0.000000,
               0.000000, 0.000000, 0.000000, 0.020942, 0.015707,
               0.000000, 0.029010])

clf = lda () clf.fit (x, y) imprimer (clf.predict ([0, 2]))

Et montrez-moi ce message d'erreur:

clf.fit(X, y)
n_samples, n_features = X.shape
ValueError: need more than 1 value to unpack

Que fais pour le réparer? Je n'ai pas pu trouver cette solution sur la documentation.

Était-ce utile?

La solution

Votre tableau est unidimensionnel. Quand tu fais:

n_samples, n_features = X.shape

X.Shape n'est pas une matrice d'échantillons et de fautes mais un éventail de forme (106,). Vous avez besoin de plus d'un échantillon. En l'état, vous avez un tas de fonctionnalités et un échantillon. Une matrice de 4 échantillons avec 4 fonctionnalités serait définie comme:

featureMat = np.array([[ 10, 30, 40, 50],
                       [ 5,  6,  7,  8],
                       [ 54, 75, 6,  56],
                       [ 65, 34, 23, 22]])

Donc FeatMat.shape serait (4,4).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top