" />

Iowa State University

Iowa State UniversityIowa State University
Machine Learning

Department of Computer Science

Machine Learning, Spring 2007

Course Background

Machine learning is a subfield of artificial intelligence that is concerned with the design, analysis, implementation, and applications of programs that learn from experience. It offers some of the most cost-effective approaches to automated knowledge acquisition in emerging data-rich disciplines (bioinformatics, cheminformatics, neuroinformatics, environmental informatics, social informatics, business informatics, security informatics, materials informatics, etc.). Learning algorithms can also be used to model aspects of human and animal learning.

Course Descripton

Com S 573. Machine Learning. (3-1) Cr. 3. S. Prereq: 311, 362, Stat 330. Algorithmic models of learning. Design, analysis, implementation and applications of learning algorithms. Learning of concepts, classification rules, functions, relations, grammars, probability distributions, value functions, models, skills, behaviors and programs. Agents that learn from observation, examples, instruction, induction, deduction, reinforcement and interaction. Computational learning theory. Data mining and knowledge discovery using artificial neural networks, support vector machines, decision trees, Bayesian networks, association rules, dimensionality reduction, feature selection and visualization. Learning from heterogeneous, distributed, dynamic data and knowledge sources. Learning in multi- agent systems. Selected applications in automated knowledge acquisition, pattern recognition, program synthesis, bioinformatics and Internet-based information systems. Oral and written reports.

Course Staff

The spring 2007 offering of Machine Learning is taught by Professor Vasant Honavar with the assistance of Rafael Jordan, a doctoral student in Computer Science.

Course Schedule

Lectures: Monday, Wednesday, and Friday 10:00am - 10:50am, 1220 Howe Hall.

Recitations: TBA

Office Hours:

  Vasant Honavar: Monday, Wednesday: 11:00pm - noon, 211 Atanasoff Hall

  Rafael Jordan: Tuesdays and Thursdays 11:00 a.m. - noon, 215 Atanasoff Hall, or by appointment.

Course Prerequisites

The prerequisites for the course include knowledge of programming, programming language concepts (functional programming, imperative programming, declarative programming, object-oriented programming, recursion, abstract data types), discrete mathematics (set theory, grapth theory, logic), calculus, basic probability theory and statistics, and data structures (lists, trees, graphs etc.) and algorithms (design and analysis). These topics are covered in Com S 311, 362 and and Stat 330. In addition, students are expected to have the writing and presentation skills necessary for preparing written reports and presentations based on term projects. These skills are taught in Engl 105, Sp Cm 212. Some exposure to philosophy of mind or cognitive psychology, although not required, is desirable.

The laboratory assignments will require you to program in Java. We will use the open source machine learning programming environment Weka for the assignments. If you do not know Java already, you are expected to quickly acquire a working knowledge of Java on your own. If there is sufficient interest, a few of the recitation sessions will be used to introduce Java as needed. We will use the open source machine learning programming environment Weka for the assignments. You are expected to familiarize yourself with Weka.

If you are not sure whether you have the necessary background, please talk to the instructor.

Target Audience

This course is targeted to beginning graduate students in Computer Science Bioinformatics and Computational Biology, Statistics, Mathematics, Electrical and Computer Engineering, Chemical and Biological Engineering, Industrial Engineering, Material Science and Engineering, Neuroscience, Human-Computer Interaction, Psychology, Business and related discipines and qualified undergraduate students, especially those in the honors program at Iowa State University.

Course Objectives

The course aims to provide an introduction to the basic principles, techniques, and applications of Machine Learning. Programming assignments are used to help clarify basic concepts.

The course covers the principles, design and implementation of learning programs that improve their performance on some set of tasks with experience. Upon successful completion of the course, students will have a broad understanding of machine learning algorithms and their use in data-driven knowledge discovery and program synthesis. Students will have designed and implemented several machine learning algorithms in Java. Students will also be able to identify, forumulate and solve machine learning problems that arise in practical applications. Students will have a knowledge of the strengths and weaknesses of different machine learning algorithms (relative to the characteristics of the application domain) and be able to adapt or combine some of the key elements of existing machine learning algorithms to design new algorithms as needed. You will have an understanding of the current state of the art in machine learning and be able to begin to conduct original research in machine learning.