Bobo老师机器学习笔记第七课-如何求得前N个主成分

Bobo老师在本篇博客中详细讲解了如何求取前N个主成分,通过数据变换和去除第一个主成分的方法,然后在新数据上依次求取后续的主成分。文中给出了具体的代码实现,并解释了计算过程中的关键点,如主成分的正交性。同时,邀请西安地区对AIOPS感兴趣的学习者加入QQ群交流。
摘要由CSDN通过智能技术生成

在上一篇博客中B oBo老师介绍了主成分分析法的原理,以及用代码实现了如何求得一个主成分。那这篇文章中我们主要讲述如何求得前N个主成分,以及如何用代码实现。 

1、如何求取前N个主成分?

   主要方法是 数据进行改变,将数据在第一个主成分上的分量给去掉,然后在新的数据上求取第一主成分, 而在新数据的第一主成分其实就是原来数据的第二主成分,那么如何求取新数据呢,如下图。 

上图中X‘就是原来数据减去在第一主成分上分量获取的新数据, w是第一主成分,X‘(project)是数据X在w方向的分量。 

代码实现:

'''
封装自己的PCA算法,用来求取前N个主成分

'''
import numpy as np
import matplotlib.pyplot as plt


class PCA(object):

    def __init__(self, n_components):
        self.n_components = n_components  # 求前几个主成分的个数
        self.components_ = None

    def fit(self, x_train, eta=0.01, n_iters=1e4, eplosion=1e-18):

        def demean(X):
            ""
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值