《机器学习实战》第13章——利用PCA来简化数据完全解读

降维技术在处理高维数据时能有效提升算法效率。PCA通过转换找到方差最大的坐标轴,选择主成分以保留数据核心信息。本文介绍了PCA的原理,包括使用Numpy手动实现PCA的步骤,以及如何利用sklearn库进行降维操作。
摘要由CSDN通过智能技术生成

降维技术

做过数据竞赛的同学应该都知道,数据集一般是 m × n m \times n m×n维。有时候 n 、 m n、m nm会非常大,这会让我们的算法运行地非常慢。在某些时候,可以通过减少 n n n方向上的维度,以达到缩减数据、加快程序运行的效果。

那常见的降维方法有:

1、主成分分析(Principal Component Analysis,PCA)。PCA的原理就是将数据转换到了新的坐标系,这个新的坐标系是根据数据算出来的。它选取坐标轴的原则是,优先选取原始数据中方差最大的方向作为轴,且这些轴必须是相互正交。然后根据你的需求决定选取轴的数量,轴越多,数据的原始信息保留的就越完整。

2、因子分析(Factor Analysis)

3、独立成分分析(Idependent Component Analysis,ICA)

利用Numpy实现PCA

计算前 N N N个主成分(即上面说的轴)的计算流程如下:

1.去除平均值
2.计算协方差矩阵
3.计算协方差矩阵的特征值和特征向量
4.将特征值从大到小排序
5.保留最上面的N个特征向量
6.将数据转换到上述N个特征向量构建的新空间当中
#导入依赖库
import numpy as np
from numpy import linalg

def loadDataSet(fileName,delim='\t'):
    '''
    作用:读取指定文件数据,并返回其矩阵形式
    参数:
        fileName:文件路径与文件名
        delim:分隔符,默认为'\t'
    返回:
        返回矩阵
    '''
    fr = open(fileName)
    stringArr = [line.strip().split(delim) for line in fr.readlines()]
    datArr = [list(map(flo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值