在python用KNN对下载的数据(人脸数据集、手写体数据集)进行分类的代码
时间: 2024-03-05 21:48:03 浏览: 22
好的,以下是使用KNN算法对人脸数据集和手写数字数据集进行分类的Python代码示例:
人脸数据集分类代码:
```python
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 加载人脸数据集
faces = datasets.fetch_olivetti_faces()
# 获取特征数据和标签
X = faces.data
y = faces.target
# 将数据集分割为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义KNN模型,选择k=5
knn = KNeighborsClassifier(n_neighbors=5)
# 拟合模型
knn.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = np.mean(y_pred == y_test)
print("Accuracy:", accuracy)
```
手写数字数据集分类代码:
```python
import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 加载手写数字数据集
digits = datasets.load_digits()
# 获取特征数据和标签
X = digits.data
y = digits.target
# 将数据集分割为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义KNN模型,选择k=5
knn = KNeighborsClassifier(n_neighbors=5)
# 拟合模型
knn.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = np.mean(y_pred == y_test)
print("Accuracy:", accuracy)
```
需要注意的是,以上示例代码仅作为参考,实际应用中需要根据具体问题进行调整和优化。