机器学习-PCA

PAC(主成分分析法)
  • 将高维数据特征降低为低维数据特征,减少维度冗余,将数据沿方差最大方向投影,数据更易于区分,在同一维度的相关性降低

  • 能够去除部分噪声,因为最小特征值所对应的特征向量往往与噪声有关

  • 提高运算速度

  • 属于非监督学习算法

  • PCA处理过程

    • 方法1原则
      • 最大可分性:样本点到这个超平面上的投影尽可能分得开,通过投影点的方差来度量
    • 方法2原则
      • 最近重构性:样本点到这个超平面的距离足够近
分析步骤
  • 第一步:均值归零

    • 在这里插入图片描述
  • 第二步:目标函数

    • 定义方差:Xproject表示映射后的值在这里插入图片描述

    • 又因为经过均值去除,所以方差定义为:在这里插入图片描述

    • 在这里插入图片描述

    • 所以就变成找w向量,使得方差最大

      • 这里的w是一维向量,若是多维,则按矩阵乘法,将多维展开
      • 目标函数:在这里插入图片描述

在这里插入图片描述


与线性回归对比

在这里插入图片描述

  • 第三步:带入公式求解
    • 方法1:梯度上升

    • 在这里插入图片描述

    • 方法2:求解协方差矩阵XTX,进行特征值分解,取前m个特征值对应的特征向量构成的w

维度的选择
  • 可以自由选择,根据准确率和训练时间来调整
  • 根据sklearn中封装的PCA( rate )函数,来得到在准确率rate下的最小维度
代码实践
绘制数据点
import numpy as np
import matplotlib.pyplot as plt
x = np.empty((100, 2))
# 绘制两个特征的图像
x[:, 0] = np.random.uniform(0., 100., size=100)
x[:, 1] = 0.75 * x[:,0] + 3. + np.random.normal(0, 10., size=100)
plt.scatter(x[:,0], x[:,1])
plt.show()
# 均值归零
def demean(x):
    #axis表示队列求均值,axis=1表示对行求均值
    return x - np.mean(x, axis=0)

# 坐标轴发生变化,(0,0)大概在中心
X_demean = demean(x)
plt.scatter(X_demean[:,0], X_demean[:,1])
print("x维度:",np.mean(X_demean[:,0]))
print("y维度:",np.mean(X_demean[:,1]))
plt.show()

在这里插入图片描述

梯度公式
# 目标函数公式
def f(X, w):
    return np.sum((X.dot(w)**2)) / len(X)
----------------------------------
# 梯度上升公式
def df_math(X, w):
    return X.T.dot(X.dot(w)) * 2. / len(X)

# 测试梯度上升
def df_debug(X, w, epsilon=0.0001):
    res = np.empty(len(w))
    for i in range(len(w)):
        w_1 = w.copy()
        w_1[i] += epsilon
        w_2 = w.copy()
        w_2[i] -= epsilon
        res[i] = (f(w_1,X) - f(w_2,X)) / (2 * epsilon)
    return res
# df_math和df_debug效果一致
----------------------------------
#求单位向量
def direction(w):
    # 除以自身模 : linalg.norm(w)
    return w / np
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值