zl程序教程

您现在的位置是:首页 >  工具

当前栏目

第7章 PCA与梯度上升法 学习笔记下

笔记学习 梯度 PCA 上升
2023-09-27 14:25:50 时间

 

 

7-7 试手MNIST数据集

MNIST

使用kNN

knn没有数据归一化,其数据本身就在一定区间其像素表示亮度

PCA进行降维

pca不仅仅降维,还同时在降噪

7-8 使用PCA对数据进行降噪

回忆我们之前的例子

手写识别的例子

 

example_digits = noisy_digits[y==0,:][:10]
for num in range(1,10):
    example_digits = np.vstack([example_digits, noisy_digits[y==num,:][:10]])
def plot_digits(data):
    fig, axes = plt.subplots(10, 10, figsize=(10, 10),
                             subplot_kw={'xticks':[], 'yticks':[]},
    gridspec_kw=dict(hspace=0.1, wspace=0.1)) 
    for i, ax in enumerate(axes.flat):
        ax.imshow(data[i].reshape(8, 8),
                  cmap='binary', interpolation='nearest',
                  clim=(0, 16))

    plt.show()
    
plot_digits(example_digits)

7-9 人脸识别与特征脸

每一行是一个样本,Wk中表达了X中的信息

特征脸

 

def plot_faces(faces):
    
    fig, axes = plt.subplots(6, 6, figsize=(10, 10),
                         subplot_kw={'xticks':[], 'yticks':[]},
    gridspec_kw=dict(hspace=0.1, wspace=0.1)) 
    for i, ax in enumerate(axes.flat):
        ax.imshow(faces[i].reshape(62, 47), cmap='bone')
    plt.show()
    
plot_faces(example_faces)

pca降维

更多关于lfw_people数据集

 

有的人脸图像太少,所以可以找到每个人的图像数等于60的数据样本,这儿就8个人的,可以采用knn实现自己的人脸识别系统