苏州园区网站建设,wordpress 门户插件,怎么做app和网站购物,网站有哪些风格数据集描述: sklearn的lfw_people函数在线下载55个外国人图片文件夹数据集来精确实现人脸识别并提取人脸特征向量数据集地址: sklearn.datasets.fetch_lfw_people — scikit-learn 1.2.1 documentationPCA降维: pca PCA(n_components0.9) 数据拆分: X_train, X_test, y_tra…数据集描述: sklearn的lfw_people函数在线下载55个外国人图片文件夹数据集来精确实现人脸识别并提取人脸特征向量数据集地址: sklearn.datasets.fetch_lfw_people — scikit-learn 1.2.1 documentationPCA降维: pca PCA(n_components0.9) 数据拆分: X_train, X_test, y_train, y_test train_test_split(X, y, test_size 0.1)支持向量机: svc SVC() # svc.fit(X_train_pca, y_train)网格搜索最佳参数:
svc SVC()
params {C:np.logspace(-3,1,20),kernel:[rbf,poly,sigmoid,linear]}
gc GridSearchCV(estimator svc,param_grid params)
gc.fit(X_train_pca,y_train)
print(网格搜索最佳参数,gc.best_params_) # {C: 3.79269019073,kernel:rbf}
print(模型得分是,gc.score(X_test_pca,y_test)) # 0.883720930232
y_pred gc.predict(X_test_pca) 2、SVC建模人脸识别
2.1、导包
import numpy as np
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.model_selection import GridSearchCV
from sklearn import datasets
2.2、数据加载
# 第一次加载需要联网下载
# 下载路径C:\Users\likai\scikit_learn_data\lfw_home
faces datasets.fetch_lfw_people(resize 1,min_faces_per_person70)
# 形状是(125,94)
X faces[data]
y faces[target]
display(X.shape,y.shape) # (1288, 11750) (1288,)
2.3、数据降维与拆分
pca PCA(n_components0.9)
X_pca pca.fit_transform(X)X_train,X_test,X_train_pca,X_test_pca,
y_train,y_test train_test_split(X, X_pca, y, test_size 0.1)
display(X_train.shape,X_test.shape)
display(X_train_pca.shape,X_test_pca.shape)
2.4、直接使用SVC建模预测
svc SVC()
svc.fit(X_train_pca,y_train)
svc.score(X_test_pca,y_test) # 输出0.7984496124031008
2.5、网格搜索确定最佳参数
%%time
svc SVC()
params {C:np.logspace(-3,1,20),kernel:[rbf,poly,sigmoid,linear]}
gc GridSearchCV(estimator svc,param_grid params)
gc.fit(X_train_pca,y_train)
print(网格搜索最佳参数,gc.best_params_) # {C: 3.79269019073,kernel:rbf}
print(模型得分是,gc.score(X_test_pca,y_test)) # 0.883720930232
y_pred gc.predict(X_test_pca) 2.6、数据可视化
target_names faces.target_names
print(目标任务名字如下,target_names)
plt.figure(figsize(5*2,10*3))
for i in range(50):plt.subplot(10,5,i 1)plt.imshow(X_test[i].reshape(125,-1),cmap gray)true_name target_names[y_test[i]].split( )[-1]pred_name target_names[y_pred[i]].split( )[-1]plt.title(True:%s\nPred:%s % (true_name,pred_name))plt.axis(off)