老师您好,我用了超过100张照片的人的头像,生成faces2数据库进行分类。我试了一下好像分类精度比较低只有60%左右,网格搜索后也只有68%。是我代码有问题还是说KNN只能到这个精度。我的训练样本比例是85%。
`faces2 = fetch_lfw_people(min_faces_per_person=100)
X = faces2.data
y = faces2.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.15)
pca = PCA(svd_solver='randomized')
pca.fit(X_train)
X_train_reduction = pca.transform(X_train)
X_test_reduction = pca.transform(X_test)
from sklearn.neighbors import KNeighborsClassifier
knn_clf = KNeighborsClassifier()
## 使用PCA降维
knn_clf.fit(X_train_reduction, y_train)
knn_clf.score(X_test_reduction, y_test)##只有0.6549707602339181的精度
## 不使用PCA降维
knn_clf = KNeighborsClassifier()
knn_clf.fit(X_train, y_train)
knn_clf.score(X_test, y_test)##只有0.6549707602339181的精度
grid_search.best_score_## 网格搜索后精度为0.6862745098039216
`