0
$\begingroup$

I have 17k vectors, each having 6 points, I want to cluster the vectors based on nature of points, eg. linearly increasing into one cluster, convex in another cluster, concave in another, decreasing in another and so on. What would be a good strategy to do this? I need it to detect outlier vectors.

$\endgroup$
1
$\begingroup$

First of all, most clustering methods will be fine when used right. E.g. with correlation, or appropriate normalization.

Secondly, if you already have patterns in mind, use classification.

Third, in order to find outliers, clustering is not too helpful. Because it is not reliable enough. Rather use one of the clever outlier detection methods such as KNN, LOF, LOOP.

Don't forget detailed and problem oriented preprocessing to prepare your data as good as possible.

| improve this answer | |
$\endgroup$
1
$\begingroup$

Try to fit several regression models, then collect the coefficients.

First, build simple linear regression model (for each vector), collect coefficients. then fit a polynomial regression model collect model coefficients, then maybe fit such model model on scaled data, or normalized data.

Collect the model coefficients and perform a cluster analysis on them.

In R you could use the broom::tidy() method to collect the model coefficients from 17k model fits. I don't know if there is a python equivalent for broom.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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