Software resources
For full credit, you should implement all the algorithms yourself. But you can also choose to use HMM software (in python) downloaded from standard packages (but not software written by your peers or other students at UW). In this case, you must know intimately what the software is doing in the context of your project; more precisely, you must explain how you set the parameters, and report which software you used. Do not submit downloaded software with your code.
Good practices
- Before and after each step, look at the data (that is, make some exploratory plots to understand your data)
- Test your code on simple data for which you know the answers (that mean, create an HMM or your own and sample data from it).
- Take care to make the report readable, to write correctly and in full sentences, and to explain clearly and precisely what you did. Use precise technical terms (Example: instead of "the algorithm was quite fast" write "the Baum Welch algorithm, on the training set of 500 sequences, converged in 1200 iterations, and took a total of 150 seconds to run".)
- All numerical results should be easily readable (e.g. 0.064574583973279 is not easily readable, but 0.064 is), and all the plot axes should be labeled.
- How to initialize A,B in Baum-Welch? Random numbers, normalized by rows are a good rule of thumb. Do not initialize with 0, nor with equal values in all entries (can you see why?).
Time line