sklearn笔记:PCA,Incremental PCA, Kernel PCA

0 理论知识

 

机器学习笔记PCA_UQI-LIUWJ的博客-CSDN博客

1 基本使用方法

class sklearn.decomposition.PCA(
    n_components=None, 
    *, 
    copy=True, 
    whiten=False, 
    svd_solver='auto', 
    tol=0.0, 
    iterated_power='auto', 
    n_oversamples=10, 
    power_iteration_normalizer='auto', 
    random_state=None)

2 参数说明

n_components降至几维【特征的数量】(如果n_components没有配置的话,保持维度)
whiten是否进行白化操作【使得特征互相独立,且在[0,1]区间内】

3 属性说明

4 举例说明

4.1 导入库&数据集

import numpy as np
from sklearn.decomposition import PCA

X = np.array([[-1,-1,1,1], 
              [-2,-1,5,6], 
              [-3,-2,4,6], 
              [1,1,9,7], 
              [2,1,0,1], 
              [3,2,9,12]])

4.2 生成PCA

pca=PCA(n_components=2).fit(X)

4.3 components_ 

PCA的几个主轴

pca.components_
'''
array([[ 0.16382179,  0.14340848,  0.66107511,  0.7180363 ],
       [ 0.83556307,  0.50546848, -0.13218006, -0.16989525]])
'''

4.4 explained_variance_ &  explained_variance_ratio_

每个主轴方差在总体中的占比。

个人理解为,每个主轴的重要性占比。这个对判断我们n_component_比较有用

比如我们一开始设置n_component_为3,那么:

pca=PCA(n_components=3).fit(X)

pca.explained_variance_
#array([31.51576789,  6.79717077,  1.44075915]

pca.explained_variance_ratio_
#array([0.79251721, 0.17092634, 0.03623032])

可以看到第三个主轴的方差占比很低,所以我们可以只用两个主轴即可。

pca=PCA(n_components=2).fit(X)

pca.explained_variance_
#array([31.51576789,  6.79717077])

pca.explained_variance_ratio_
#array([0.79251721, 0.17092634])

4.5 singular_values_

每一个主轴对应的特征值

pca.singular_values_
#array([12.55304104,  5.82973874])

4.6 其他attribute

mean_就是相当于X.mean(axis=0)
n_components_

主轴个数

n_features_

特征个数

 4.6 函数

fit,fit_transform,transform

5 incremental PCA

  • PCA 在大型数据集上有一定的限制。
    •  PCA所有要处理的数据必须放在内存里面。
    • IncrementalPCA 使用不同的处理方式,可以应对很大的数据集
    • 效果上和minibatch形式的PCA是差不多的。

5.1 基本使用方法

class sklearn.decomposition.IncrementalPCA(
    n_components=None, 
    *, 
    whiten=False, 
    copy=True, 
    batch_size=None)
  • 基本上都是PCA中有的参数,唯一多的一个是batch_size
    • 当后续调用'fit'的时候会使用(用minibatch的PCA来进行降维)
    • 如果后续调用'fit'的时候,我们没有声明batch_size,那么batch_size默认被计算为5*n_features

5.2 partial_fit

大部分方法和PCA是一样的,partial_fit用于数据集较大的时候,可以不设置batch_size,一步完成数据的逐步fit。

6 Kernel PCA

在核空间上进行PCA

6.1 基本使用方法

class sklearn.decomposition.KernelPCA(
    n_components=None, 
    *, 
    kernel='linear', 
    gamma=None, 
    degree=3, 
    coef0=1, 
    kernel_params=None, 
    alpha=1.0, 
    fit_inverse_transform=False, 
    eigen_solver='auto', 
    tol=0, 
    max_iter=None, 
    iterated_power='auto', 
    remove_zero_eig=False, 
    random_state=None, 
    copy_X=True, 
    n_jobs=None)

6.2 PCA以外的参数说明

kernel{‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘cosine’, ‘precomputed’}
gammarbf,poly和sigmoid需要的γ
degreepoly需要的度
coef0poly和sigmpid中的独立项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值