Machine learning and data analysis are taking an increasingly high role in the decisions made in our everyday life.
Yet, we still understand very little about some of the basic tools used to process and extract information the data that
lead to the decisions.
For example, a keystone problem in machine learning is to cluster a dataset into groups such that data elements in the same
group have common features. This is a fundamental problem as it allows to identify data elements that might not at first appear
very similar, and so it is used to detect communities in social network, classify genes according to their expression pattern or
divide a digital image into distinct regions. While there is a large body of experimental work on heuristics for solving clustering problems,
a lot less is known from a theoretical perspective but how can we trust machine learning or data analysis approaches if we do not understand the
behavior of some of the basic tools that are used to extract information from the data? Furthermore, how can we rely on the decision made by
machine learning algorithms if we do not understand which data they were based on.
In this project, we have made significant progress towards analyzing and providing performance guarantees on popular clustering heuristics
by focusing on specific inputs arising in machine learning and data analysis scenarios. We have analysed very simple heuristics such as
local search on these types of inputs. Moreover, we have designed new algorithms that are nearly as fast as widely-used heuristics
while outputting solution with provable properties. For example, we have shown how to speed-up local search techniques while preserving
the quality of the solution output.
We have also shown why some of the popular heuristics are much more efficient than others.
Finally, we have made progress on the understanding of the complexity of some important clustering problems.