MicroRNAs (miRNA) are nonprotein coding RNAs with the potential to regulate the gene expression of thousands of protein coding genes. Current estimates suggest the number of miRNA genes may be twice of what is currently known, and the mechanisms governing miRNA targeting remain elusive. Machine learning algorithms can be used to create classifiers that capture the characteristics of verified examples to determine whether genomic hairpins are similar to verified miRNA genes or if message 3'UTRs possess known target characteristics. Algorithms can never replace biological verifications, but should always be used to guide experimental design. This chapter focuses on potential problems that must be addressed when machine learning is used and follows a practical approach to demonstrate how support vector machines and genetic programming can predict miRNA genes and targets.