1
$\begingroup$

I am analyzing a portfolio of about 225 stocks and have gotten data for each of them based on their "Price/Earnings ratio", "Return on Assets", and "Earnings per share growth". I would like to cluster these stocks based on their attributes into 3 or 4 groups. However, there are substantial outliers in the data set. Instead of removing them altogether I would like to keep them in. What ML algorithm would be best suited for this? I have been told that K Means would not work so well since the outliers would skew the centroids of a particular cluster. Any and all thoughts welcome!

$\endgroup$

3 Answers 3

0
$\begingroup$

You could try a hierarchical clustering approach. As an example, K clusters could initially be found for the data points. Then, for each of the K clusters, an arbitrary number of clusters could be found from the data points within the cluster to further refine the clustering.

$\endgroup$
0
$\begingroup$

DBSCAN is a density-based clustering method that is designed to apply to cases with noise. The user controls the minimum cluster size, which hopefully can be informed by the problem, and clusters that are smaller than this are ignored as noise.

$\endgroup$
0
$\begingroup$

I suggest giving partitioning at local depth PaLD a try. It tends to output perform most of the other state-of-the art clustering algorithms (e.g. DBSCAN) when density varies greatly in each cluster. If you are an R user this library is available on CRAN. Here is a link to the github repo https://github.com/cran/pald. There are some folks working on a generalized version of this algorithm to deal with uncertainty and that will probably be available as n R library in the future as well.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.