A Functional Programming Approach to Distance-based Machine Learning

author: Darko Aleksovski, Jožef Stefan Institute
published: Nov. 7, 2008,   recorded: October 2008,   views: 4468


Related Open Educational Resources

Related content

Report a problem or upload files

If you have found a problem with this lecture or would like to send us extra material, articles, exercises, etc., please use our ticket system to describe your request and upload the data.
Enter your e-mail into the 'Cc' field, and we will keep you updated with your request's status.
Lecture popularity: You need to login to cast your vote.


Distance-based algorithms for both clustering and prediction are popular within the machine learning community. These algorithms typically deal with attributevalue (single-table) data. The distance functions used are typically hard-coded.

We are concerned here with generic distance-based learning algorithms that work on arbitrary types of structured data. In our approach, distance functions are not hard-coded, but are rather first-class citizens that can be stored, retrieved and manipulated. In particular, we can assemble, on-the-fly, distance functions for complex structured data types from pre-existing components.

To implement the proposed approach, we use the strongly typed functional language Haskell. Haskell allows us to explicitly manipulate distance functions. We have produced a SW library/application with structured data types and distance functions and used it to evaluate the potential of Haskell as a basis for future work in the field of distancebased machine learning.

See Also:

Download slides icon Download slides: sikdd08_aleksovski_fpa_01.pdf (2.6 MB)

Download slides icon Download slides: sikdd08_aleksovski_fpa_01.ppt (3.7 MB)

Download article icon Download article: sikdd08_aleksovski_fpa_article.pdf (57.4 KB)

Help icon Streaming Video Help

Link this page

Would you like to put a link to this lecture on your homepage?
Go ahead! Copy the HTML snippet !

Write your own review or comment:

make sure you have javascript enabled or clear this field: