【笔记】python实现PCA

该博客主要介绍了如何使用Python的sklearn库实现PCA(主成分分析),将数据集从高维降至二维。首先,读取gb18030编码的CSV文件,并忽略特定字符。然后,将数据转换为DataFrame并进一步转化为NumPy数组。接着,通过PCA方法对数据进行处理,并将处理后的二维数据保存到新的CSV文件中。这个过程有助于数据可视化和理解数据的主要成分。
摘要由CSDN通过智能技术生成
from sklearn.decomposition import PCA
from pandas.core.frame import DataFrame
import pandas as pd
import numpy as np

l = []
# 编码格式选择更加广泛的gb18030
with open('csv路径', encoding='gb18030',errors='ignore') as fd:
    line = fd.readline()
    while line:
        if line == " ":
            continue

        # line.strip('字符')表示忽略开头的字符,若没有则line.strip()
        line = line.strip('锘')
        # csv是以','分隔的
        word = line.split(',')
        # word = line.split(',', line.strip())
        l.append(word)
        line = fd.readline()

data_l = DataFrame(l)
print(data_l)
dataMat = np.array(data_l)

# 将数据整合为2维的
pca_sk = PCA(n_components=2)
# 训练网络
newMat = pca_sk.fit_transform(dataMat)

data1 = DataFrame(newMat)
# 保存生成后的csv,不要开头,不要索引
data1.to_csv('test_PCA.csv', index=False, header=False)



PCA(Principal Component Analysis)是一种常用的降维方法,用于将高维数据转换为低维数据。在Python中,可以使用sklearn库中的PCA模块来进行PCA分析。 首先,需要导入PCA模块,并创建一个PCA对象。可以通过设置n_components参数来指定希望降维后的特征维度数目。例如,可以设置n_components=1来将数据降维为一维。然后,使用fit方法拟合数据,并使用transform方法将数据转换为降维后的结果。最后,可以使用print语句打印出转换后的结果。\[1\] 除了n_components参数,PCA模块还提供了其他一些参数,如copy、whiten和svd_solver等。copy参数用于指定是否在运行算法时复制原始训练数据,whiten参数用于指定是否进行白化操作,svd_solver参数用于指定奇异值分解的方法。可以根据具体需求进行设置。\[3\] 需要注意的是,PCA方法舍弃了部分信息来提高整体的计算效率,因此如果每个主成分的贡献率都相差不多,则不建议使用PCA。此外,PCA得到的主成分往往难以解释其含义,与原始变量的含义相比较模糊。因此,PCA不适用于评价类模型,但可以用于聚类和回归等任务。\[2\] 参考链接: - 如何理解主成分分析法(PCA) - 清风数学建模学习笔记——主成分分析(PCA)原理详解及案例分析 - PCA的数学原理【数据处理方法】主成分分析(PCA)原理分析协方差矩阵和矩阵相关系数的理解 请注意,以上回答仅针对PCA的基本概念和使用方法,具体的代码实现和应用场景可能需要根据具体情况进行调整。 #### 引用[.reference_title] - *1* *2* [主成分分析法(PCA)的理解(附python代码案例)](https://blog.csdn.net/qq_45722196/article/details/127584340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [用python进行主成分分析(PCA)](https://blog.csdn.net/TSzero/article/details/116601796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值