首页 理论教育 基于PCA的特征抽取过程-Python中文文本分析

基于PCA的特征抽取过程-Python中文文本分析

时间:2023-11-06 理论教育 版权反馈
【摘要】:当n_components的值为整型类型时,即经过PCA算法需要获得的特征个数,如n_components=5,即要抽取5个特征。fit_transform:用D来训练PCA模型,返回特征抽取后的数据。

基于PCA的特征抽取过程-Python中文文本分析

1.PCA类

采用Scikit-learn工具实现文本特征抽取,对Scikit-learn提供的PCA类描述如下:

(1)参数:

n_components:是经过PCA算法需要获得的特征数,即主成分个数。此参数可选整型和字符串型,缺省时默认为None,表示保留所有特征。

当n_components的值为整型类型时,即经过PCA算法需要获得的特征个数,如n_components=5,即要抽取5个特征。

当n_components的值为字符串类型时,可设置为“mle”,系统将自动选择特征个数,系统根据特征的方差分布情况选择满足条件的特征个数。

copy:是指在执行PCA算法时,实现对原始数据的拷贝。参数类别为布尔型,缺省时默认为True。

copy=True,是在执行PCA运算时对原始数据进行拷贝,在拷贝数据上进行运算,而不对原始数据进行处理。

copy=False,是执行PCA运行时在原始数据上直接运算,改变原始数据的值。

whiten:是指执行PCA算法时对每个特征都进行归一化,让每个特征都具有相同的方差,即白化操作。whiten的参数类别为布尔型,缺省时默认为False。whiten=True,即执行白化操作。

(2)常用方法:

fit(D):表示用数据D来训练PCA模型。(www.xing528.com)

fit_transform(D):用D来训练PCA模型,返回特征抽取后的数据。

inverse_transform(X):将经过特征选择后的数据X转换成原始数据。

transform(D):将数据D转换成特征抽取后的数据,对新输入的数据可用已经训练好的模型,用transform方法来进行特征选择。

2.基于PCA的文本特征抽取

通过上面代码的实现,实现文本数据的特征抽取处理,其运行结果描述如下:

(1)采用TF-IDF实现文本数据的特征权值计算,实现文本数据向量化,将文本转化为2*11的文本-特征矩阵A,即矩阵A包含2条文本和11个特征。

其输出结果为:

(2)采用PCA实现特征降维。对于文本数据集而言,降维主要体现在特征缩减方面,一般不需要缩减文本条数。因此,程序中选择了其中的2个特征,即降维后的矩阵B的维度为2*2,运行结果如下:

即原文本文档的向量维度为11维,经过降维后,原文本维度降为2维。

(3)根据降维后的结果矩阵,PCA算法恢复出原来的文本-特征矩阵A′,结果如下:

与原始矩阵A相比,可以看出基本能够恢复出原始矩阵的样子,结果表明此特征降维方法能够在最大限度上减少损失,且文本数据的维度较原来有极大的降低。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈