The system should use the context of the item to select relevant data (PCA), then, use k-means to do clustering and finally use IBCF to generate top-n recommendations. I need the detailed algorithm for this task (PCA+K-Means+IBCF).
In fact, it's a nested process: extract features using PCA, then cluster them with K-means (you could use cluster membership as well), then apply IBCF on the resulting batch.
Although PCA is not a clustering method, it can help to reveal clusters and it’s quite good for reducing dimensionality as a feature extractor and to also visualize clusters. You can run a classifier directly on your data and record the performance. But in case you are not satisfied; try PCA by selecting the number of components at the tip of sorted eigenvalue plot. Then, run the K-means. If it produces good clusters, then PCA and classifier could do the magic.
The amount of clusters is determined by 'elbow' approach according to the value within groups sum of squares. Basically, you repeat K-means algorithm for different amount of clusters and calculate this sum of squares. If the number of clusters equal to the number of data points, then sum of squares equal 0.
Also check this link: https://homes.cs.washington.edu/~ruzzo/papers/pca-bioinf.pdf