k-means算法手写数字识别python代码
时间: 2023-09-16 17:11:28 浏览: 174
以下是一个简单的k-means算法手写数字识别python代码:
```python
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import load_digits
from sklearn.metrics import accuracy_score
# 加载手写数字数据
digits = load_digits()
X = digits.data
y = digits.target
# 将数据分为训练集和测试集
split = int(X.shape[0] * 0.8)
X_train, y_train = X[:split], y[:split]
X_test, y_test = X[split:], y[split:]
# 使用k-means算法进行聚类
kmeans = KMeans(n_clusters=10, random_state=0)
kmeans.fit(X_train)
# 将每个聚类簇的中心点作为该数字的代表
representatives = kmeans.cluster_centers_
# 使用测试集进行预测
y_pred = []
for x in X_test:
distances = np.linalg.norm(representatives - x, axis=1)
index = np.argmin(distances)
y_pred.append(index)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
```
该代码首先加载手写数字数据并将其分为训练集和测试集。然后使用k-means算法进行聚类,并将每个聚类簇的中心点作为该数字的代表。最后使用测试集进行预测并计算准确率。
阅读全文