2013-07-02 1 views
2

우선, 행렬과 배열은 NumPy의 두 가지 다른 데이터 유형이라는 것을 알고 있습니다. 그러나 나는 그것을 일반적인 질문으로 만들기 위해 제목에 둘 다 넣었습니다. 이 질문을 편집하는 경우 언제든지 삭제하십시오. 좋아, 내 질문은 여기Python의 다차원 행렬 (배열) 곱하기

다음은 원래 질문에 대한 편집 내용입니다. 2 차원 상태 벡터 x_t = (y_t, z_t)를 갖는 마르코프 체인을 고려하자. 여기서 y_t와 z_t는 모두 스칼라이다. 이 마르코프 체인의 천이 행렬을 표현/저장/조작하는 가장 좋은 방법은 무엇입니까?

지금, 내가 설명한 것은 내 문제의 단순화 된 버전입니다. 내 마르코프 체인 상태 벡터는 5 * 1 벡터입니다. 바란다.

+1

'y_sub (i, j) = sum_over_k (x_sub (i, j, k) * y_sub (i, j, k))'종류의 수행하려는 작업을 정확하게 표시 할 수 있습니까? – Floris

+0

@ 플로리스 : 내 질문을 편집했습니다. 나는 이것이 분명 해졌기를 바란다. 의견 및 도움에 감사드립니다. – NNsr

답변

2

영어 문장 구문을 모델링 할 때 Markov 체인을 사용한다고 가정 해 보겠습니다. 전환 행렬은 한 부분의 말에서 다른 부분으로 이동할 확률을 제공합니다. 이제 우리가 3 rd -order Markov 모델을 사용한다고 가정 해 봅시다. 이것은 상태 123에서 23X으로가는 확률을 사용할 것입니다. 여기서 X는 유효한 상태입니다.

마코프 전이 행렬은 N x N이 될 것이며, 이것은 상태의 차원성에 관계없이 여전히 2 차원 행렬입니다. 경험적 증거에 기초한 확률 분포를 생성한다면이 경우 확률이 0 인 상태가 될 것입니다.

희소성이 걱정된다면 배열이 최선의 선택이 아닐 수도 있습니다. 배열 배열을 사용하는 대신 사전 사전을 사용해야합니다. 또는 전환 매트릭스가 많은 경우 사전 사전을 배열 할 수 있습니다.

EDIT (설명 해제 기준) : 맞아요, 그게 더 복잡합니다. 그럼에도 불구하고 모든 상태에 대해 (i,j)에는 다음 상태로 갈 확률 분포가 있습니다 ((m,n)). 그러므로 우리는 우리의 "외부"사전을 가지며, 그 키는 가능한 모든 상태입니다. 각 키 (상태)는 해당 상태에 대한 확률 분포를 유지하는 사전 인 값을 가리 킵니다.

+0

내 질문을 편집했습니다. 나는 이것이 분명 해졌기를 바란다. 귀하의 답변과 도움에 감사드립니다. – NNsr

+1

@NNsr, 나는 나의 대답도 편집했다. –

+0

답변 해 주셔서 감사합니다. 내 문제는 약간 다르다. 내 전환은 당신이 설명했던 것보다 조금 더 복잡하기 때문이다. 내 전환은 0 <= i, m <= P 및 0 <= j, n <= 1 인 경우 (1,3) ~ (2,5) 또는 일반적으로 (i, j) = Q. 당신의 접근 방식을 여전히 사용할 수 있다고 생각합니까? 고마워요 – NNsr