- Mean-Shift assigns the data points to the clusters iteratively by shifting points towards the mode (mode is the highest density of data points in the region, in the context of the Meanshift)

- Non-Parametric Density Estimation.

- The data points are sampled from an underlying PDF (Probability density function) (ref).
*Data point density implies PDF.*

- Mean-shift built based on the idea of
*Kernel Density Estimation*.

- Mean shift exploits this KDE idea by imagining what the points would do if they all climbed up hill to the nearest peak on the KDE surface. It does so by iteratively shifting each point uphill until it reaches a peak (ref).
*Points climb to the nearest hill.Points climb to the nearest hill.*

- Image processing and computer vision.

- Image Segmentation Application (ref).

**Pros**: Non-Parametric Density Estimation.

**Cons**: It's computationally expensive O(n²) (ref).

```
1from sklearn.cluster import MeanShift
2clustering = MeanShift(bandwidth=2).fit(X)
```

```
1clustering.fit(X)
2clustering.predict(X)
```

```
1# or
2clustering.fit_predict(X)
```

Components:

`clustering.labels_`

: clusters' labels.

- Used to determined windows of time in time series data.

**Saravanan Thirumuruganathan**-- Introduction To Mean Shift Algorithm.

**Geeksforgeeks**-- Mean-Shift clustering.

**R.Collins**-- Mean-Shift tracking.

**Matt Nedrich**-- Mean Shift Clustering.