Source code for ramanspy.analysis.cluster
import numpy as np
import sklearn.cluster as cluster
from .Step import AnalysisStep
[docs]
class KMeans(AnalysisStep):
"""
k-means clustering.
Parameters
----------
n_clusters : int
The number of clusters.
**kwargs :
Check original `implementation <https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html>`_ for additional parameters.
.. note :: Implementation and documentation based on `scikit-learn <https://scikit-learn.org>`_.
"""
def __init__(self, *, n_clusters, **kwargs):
super().__init__(_kmeans, n_clusters, **kwargs)
def _kmeans(original_intensity_data, n_clusters, **kwargs):
kmeans = cluster.KMeans(n_clusters, **kwargs)
spectra_clustered = kmeans.fit_predict(original_intensity_data)
# Convert to one-hot encodings to represent an appropriate abundance-like map
n_values = np.max(spectra_clustered) + 1
spectra_clustered = np.eye(n_values)[spectra_clustered]
return spectra_clustered, kmeans.cluster_centers_