HMM & the unfair die problem? I would like to know what the right strategy is for this problem.
Consider a set of 3 unfair die. Each die is rolled for a period, and then another die is randomly chosen (with replacement). All we see is the observed sequence.
What is the approach, given a long sequence, to determine:


*

*The transition matrix for the 3 die

*The transition matrix for each individual die's unfair probabilities

*Which parts of the sequence correspond to which die


In addition:


*

*I will probably code this up as an exercise in learning HMM, so any
practical pointers on either the training or inference part would be
very helpful. 

*If there are any Python packages that can do this out
of the box, please let me know so I can verify my results.

 A: Each dice has one probability mass function (pmf). In a discrete HMM, a pmf is assigned to each state.
So my first remark is when you say: "The transition matrix for each individual die's unfair probabilities" Here, transition matrix makes no sense to me. One can infer the pmf of each dice from long sequence of observations obtained from the use of each dice. Each of these pmf can be assigned to a different state and used either to build or initialize the HMM.
The transition matrix of the HMM can be learned from sequences of observations including the 3 dices.
And then, the Viterbi algorithm can be used to find the most probable sequence of states given a sequence of observation and the HMM parameters (i.e., the transition matrix and the pmf for each state). As the pmf for each die is assigned to a different state, one can directly identify the states with the dice in the decoded sequence of states.
As for the Python libraries, hmmlearn would be my choice.  https://hmmlearn.readthedocs.io/en/latest/
