KS_means PYTHON代码 以及数据样例
时间: 2024-05-01 22:21:47 浏览: 12
以下是用 Python 实现的 K-Means 算法的示例代码:
```python
import numpy as np
class KMeans:
def __init__(self, k=3, max_iter=300, tol=0.0001):
self.k = k
self.max_iter = max_iter
self.tol = tol
def fit(self, X):
self.centroids = {}
for i in range(self.k):
self.centroids[i] = X[i]
for i in range(self.max_iter):
self.classes = {}
for j in range(self.k):
self.classes[j] = []
for x in X:
distances = [np.linalg.norm(x - self.centroids[c]) for c in self.centroids]
classification = distances.index(min(distances))
self.classes[classification].append(x)
prev_centroids = dict(self.centroids)
for c in self.classes:
self.centroids[c] = np.average(self.classes[c], axis=0)
optimized = True
for c in self.centroids:
original_centroid = prev_centroids[c]
current_centroid = self.centroids[c]
if np.sum((current_centroid - original_centroid) / original_centroid * 100.0) > self.tol:
optimized = False
if optimized:
break
def predict(self, X):
distances = [np.linalg.norm(X - self.centroids[c]) for c in self.centroids]
classification = distances.index(min(distances))
return classification
```
关于数据样例,这里提供一个简单的二维数据集:
```python
X = np.array([[1, 2],
[1.5, 1.8],
[5, 8],
[8, 8],
[1, 0.6],
[9, 11]])
```
这个数据集包含了 6 个样本,每个样本有 2 个特征。你可以用以上代码对这个数据集进行聚类。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)