  Clustering analysis is one of the critical tasks in machine learning.
Traditionally, clustering has been an independent task, separate from outlier
detection. Due to the fact that the performance of clustering can be
significantly eroded by outliers, a small number of algorithms try to
incorporate outlier detection in the process of clustering. However, most of
those algorithms are based on unsupervised partition-based algorithms such as
k-means. Given the nature of those algorithms, they often fail to deal with
clusters of complex, non-convex shapes. To tackle this challenge, we have
proposed SSDBCODI, a semi-supervised density-based algorithm. SSDBCODI combines
the advantage of density-based algorithms, which are capable of dealing with
clusters of complex shapes, with the semi-supervised element, which offers
flexibility to adjust the clustering results based on a few user labels. We
also merge an outlier detection component with the clustering process.
Potential outliers are detected based on three scores generated during the
process: (1) reachability-score, which measures how density-reachable a point
is to a labeled normal object, (2) local-density-score, which measures the
neighboring density of data objects, and (3) similarity-score, which measures
the closeness of a point to its nearest labeled outliers. Then in the following
step, instance weights are generated for each data instance based on those
three scores before being used to train a classifier for further clustering and
outlier detection. To enhance the understanding of the proposed algorithm, for
our evaluation, we have run our proposed algorithm against some of the
state-of-art approaches on multiple datasets and separately listed the results
of outlier detection apart from clustering. Our results indicate that our
algorithm can achieve superior results with a small percentage of labels.
