---
# System prepended metadata

title: Untitled

---

## Goal

### What?
Clustering of customers based on purchasing habits to predict future purchases/repurchasing. 
1. Group customers
2. Use data to get recommendations for sample customers (small section at the end talking about how to actually use the data is probably enough imo)

### Why?
Use grouping and habit prediction to offer bundles as discount, use predictive data to suggest extra purchases likely to be bought in that group


## Method

### What method? 
https://scikit-learn.org/stable/modules/clustering.html#overview-of-clustering-methods
        Needs to work for large datasets, so a lot already don't work out for usable
        Do we need non-standard euclidean geometry? idk
        inductive vs transductive?

DBSCAN, OPTICS -> these remove outliers. Therefore not right method for the purpose of customer classification, want to cluster *all* customers and not just largest groups

=> k-Means vs Bisecting k-Means -> we FIRST need to analyze # of clusters. BkM is better for larger cluster numbers (find citation that it creates similar results to kmeans++)
        https://scikit-learn.org/stable/modules/clustering.html#k-means
        https://scikit-learn.org/stable/modules/clustering.html#bisect-

Find citation on advantages of methods other than the scikit documentation maybe


### k-Means

#### of clusters? -> how to get
? elbow plotting like https://towardsdatascience.com/customer-segmentation-using-the-instacart-dataset-17e24be9c0fe
                ? follow principles from https://towardsdatascience.com/the-most-important-data-science-tool-for-market-and-customer-segmentation-c9709ca0b64a

#### By what features to cluster? 
k-means is unsupervised -> no need to introduce labelled data
-> select which features to put into data to be processed
Cart size and RFM model!!

#### Do we need to reduce dimension?
Decide based on what features we want to put into, then make short comment on this
From when to reduce? (cite)
Necessary here? (compare w/ citation, give reason to or not to)
How much? (cite)


#### Initialization?
look at kmeans++ (and kmeans|| subsequently to get it parallelized) https://scikit-learn.org/stable/modules/clustering.html#k-means
Might not be usable with minibatching -> look into that

#### Parallelization? 
should look into implementing for k-Means since our dataset is big. Does this work with minbatching?

#### Minibatching?
definitely should do this, our dataset is very big and this will increase efficiency. Can we use kmeans++ with minibatches?

#### Scoring/Verification?

#### Eval in the end
what do clusters mean, can we predict from that
? again like https://towardsdatascience.com/customer-segmentation-using-the-instacart-dataset-17e24be9c0fe



### ToDo

Write introduction
Look at papers/code
write model