Với mã này:Confused về X trong GaussianHMM.fit ([X])
X = numpy.array(range(0,5))
model = GaussianHMM(n_components=3,covariance_type='full', n_iter=1000)
model.fit([X])
tôi nhận được
tuple index out of range
self.n_features = obs[0].shape[1]
Vì vậy, những gì bạn có nghĩa vụ để vượt qua .fit() chính xác? Các trạng thái ẩn và phát thải trong một bộ tuple? Nếu vậy theo thứ tự nào? Tài liệu ít hữu ích hơn.
tôi nhận thấy nó thích được thông qua các bộ như thế này không đưa ra một lỗi:
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:
Hãy để tôi làm rõ một chút, the documentation chỉ ra rằng ordinality của mảng phải là:
List of array-like observation sequences (shape (n_i, n_features)).
Điều này gần như sẽ chỉ ra rằng bạn chuyển một bộ tuple cho mỗi mẫu biểu thị theo kiểu nhị phân có quan sát. Tuy nhiên their example chỉ ra điều ngược lại:
# pack diff and volume for training
X = np.column_stack([diff, volume])
vì sự nhầm lẫn
Tôi không quá quen thuộc với thư viện đó, nhưng có vẻ như bạn cần phải vượt qua mô hình Markov nhiều thông tin hơn, như xác suất bắt đầu, ma trận chuyển đổi, v.v. Bạn đã xem [ví dụ tại đây] của họ chưa (http://scikit-learn.org/stable/modules) /hmm.html)? – CoryKramer
[Đây là một câu hỏi tương tự] (https://stackoverflow.com/questions/20619734/scikit-learn-gaussianhmm-valueerror-input-must-be-a-square-array) bằng cách này. – CoryKramer
@CoreyKramer Có tôi đã thấy ví dụ của họ, đọc tài liệu của họ, và thậm chí đọc bài viết mà thảo luận về một thực tế rằng bạn phải vượt qua một mảng mảng/ma trận numpy, không phải những gì mỗi ordinality mảng chỉ ra. – Brooks