Z tym kodem:Confused o X w GaussianHMM.fit ([X])
X = numpy.array(range(0,5))
model = GaussianHMM(n_components=3,covariance_type='full', n_iter=1000)
model.fit([X])
dostaję
tuple index out of range
self.n_features = obs[0].shape[1]
Więc co ty miał przekazać .fit() dokładnie? Ukryte stany ORAZ emisji w krotce? Jeśli tak, to w jakiej kolejności? Dokumentacja jest mniej niż pomocna.
Zauważyłem, że lubi być przekazywane krotki jak to nie daje błąd:
X = numpy.column_stack([range(0,5),range(0,5)])
model = GaussianHMM(n_components=3,covariance_type='full', n_iter=1000)
model.fit([X])
Edit:
Pozwól mi wyjaśnić trochę, the documentation wskazuje, że ordinality tablicy musi być:
List of array-like observation sequences (shape (n_i, n_features)).
To prawie wskaże, że podajesz krotkę dla każdej próbki, która wskazuje w sposób binarny, które obserwacje są obecne. Jednakże their example wskazuje inaczej:
# pack diff and volume for training
X = np.column_stack([diff, volume])
stąd zamieszanie
nie jestem zbyt obeznany z tą biblioteką, ale wydaje się, że musisz przekazać model Markowa więcej informacji, takich jak prawdopodobieństwo początkowe, macierz przejścia itd. Czy widziałeś ich [przykład tutaj] (http://scikit-learn.org/stable/modules /hmm.html)? – CoryKramer
[To jest podobne pytanie] (https://stackoverflow.com/questions/20619734/scikit-learn-gaussianhmm-valueerror-input-must-be-a-square-array) nawiasem mówiąc. – CoryKramer
@CoreyKramer Tak widziałem ich przykład, czytałem ich dokumentację, a nawet czytałem ten post, który omawia fakt, że musisz przekazać tablicę numpy tablic/macierzy, a nie to, co wskazuje każda tablica. – Brooks