Machine Learning

Spring 2017

Professor Robert M. Haralick

Office Hours: Thursday 4PM-5PM Room 4319

Main Text

The Elements of Statistical Learning, Hastie, Tibshirani, and Friedman, Springer

Reference Texts

Pattern Classification, Second Edition, Duda, Hart, and Stork, John Wiley, 2001
Pattern Recognition, Third Edition, Theodoridis and Koutroumbas, Academic Press, London, 2006.
The Elements of Statistical Learning, Hastie, Tibshirani, and Friedman, Springer
Data Clustering: Algorithms and Applications, Aggarwal and Reddy, CRC
Course In Machine Learning, Hal Daume,
Introduction To Machine Learning, Alex Smola and S.V.N. Vishwanathan, Cambridge University Press, 2008
Neural Networks For Pattern Recognition, Christopher Bishop, Clarendon Press, 1995
Linear Algebra (3rd Edition), Serge Lang, Springer, 1987

Reference Papers

Useful Things To Know About Machine Learning, Pedro Domingo, CACM, 2012
On the Surprising Behavior of Distance Metrics in High Dimensional Space, Aggarwal, Hinneburg, and Keim, ICDT, 2001
The N-Tuple Classifier: Too Good to Ignore, Michal Morciniec and Richard Rohwer
A Stochastic Search Algorithm To Optimize An N-tuple Classifier by Selecting Its Inputs, Hannan Azhar and Keith Dimond
Optimizing Memory Usage In N-tuple Neural Networks, R.J. Mitchell, J.M. Bishop, P.R. Minchinton
Theoretical Analysis and Improved Decision Criteria for the N-Tuple Classifier T.M. Jorgensen and C. Linneberg
Texture Classification Using the N-Tuple Pattern Recognition L Hepplewhite and T.J. Stonham
Global K-Means, A. Likas, N. Vlassis, J. Verbeek
K-Means++: The Advantages of Careful Seeding, D. Arthur, S Vassilvitskii
Subspace Method in Pattern Recognition, Satosi Watanabe
Fatal Abstract


Lecture Slides


Midi Music Recognition

Here you will find some papers on music theory, MIDI music
recognition and zip files of MIDI music. You will be using
these for your midterm projects which will be based on recognizing the
composer of a classical piece or recognizing the genre of popular
music. Provided are three papers below that discuss recognition in music.

You can use the Python Music 21 package to take care of producing the
data from which features can be calculated. You can use any of the software
packages that have machine learning or pattern recognition capabilities
such as the Python Scikit-learn, weka, or R.

A Python reader for MIDI files is in a section below. Question relating
to Python Music 21 or the reader can be directed to Xiuyan Ni whose email
is also below.

The midterm project is due April 7. Expect to put in about 60 hours
of work. The work needs to be done incrementally and not all at the end.
There will be two progress reports. The first one March 2 and the
second one on March 26. The first progress report can be informal notes about
one page in length. The second progress report should be a few pages with
results. Name the file progress_2_names. The project needs to be written up like a
conference or journal paper. Name the file mid_project_name. It needs to have an
abstract, an introduction, a literature review, the definitions of the features
used, the machine learning technique used , and the results which are given as a
confusion matrix on an independent test set not used in the training process.
Any software or script files need to be included. The writeup and the script files
should be put together in a zip file and emailed to me at by April 7.

Final Report Writeup Instructions

Music Theory

Those of you who are interested in some of the mathematics behind music
theory may be interested in reading the papers below.

Music Related Conferences

Music Related Journals

Midi Music Recognition

Music MIDI files


A KAR file is just like a MIDI file except it has text for the verses. You can change the file from *.KAR to *.MIDI and read it with the reader.


Kaggle Competitions
Toward Successful Participation in Machine Learning Contests
Validated by HTML Validator (based on Tidy)