先简单记下,等有时间再整理

PCA 主要思想,把 协方差矩阵 对角化,协方差矩阵是实对称的。
里面涉及到矩阵论的一点基础知识:

基变换:

Base2 = P · Base1

相应的 坐标变换

P · coordinate2 = coordinate1

将 X 转换到 Y,Y = P · X  , X是原来的基,Y是新的基,P是过渡矩阵。

后面可以用 实对称阵的相似对角化来处理。

D = Y · Y^T = P(1/m·X·X^T)P^T

讲的有点乱

直接上代码 和图吧。

# -*- coding=utf-8 -*-

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt '''
PCA is similar diagnalization Covariance Matrix
''' X = pd.read_csv('testSet.txt',header=None,delimiter='\t').as_matrix()
# print(X) # 1.0centralization
# print(X.mean(axis=0)) [9.0639,9.096]
X_cen = X - X.mean(axis=0)
# 2.0 covariance matrix
cov_X = np.dot(X_cen.T,X_cen) / X_cen.shape[0]
# 3.0 get eigVector which is p A = pXX^Tp^T
# Y = p
eigVal,eigVector = np.linalg.eig(cov_X)
P = eigVector[:,::-1]
# P[:,-1] = np.array([0,0])
# Y = np.dot(P,(X_cen.T)).T
print(P)
P = np.linalg.inv(P)
'''
[-0.52045195 -0.85389096]
[-0.85389096 0.52045195]]
''' cor = np.linspace(-2,2,1000)
plt.plot(X_cen[:,0],X_cen[:,1],'.b')
plt.plot(cor,cor*P[0,1]/P[0,0],'-r')
# plt.plot(Y[:,0],Y[:,1],'.r')
plt.show()

  

参考:
https://www.cnblogs.com/mikewolf2002/p/3429711.html

PCA 学习笔记的更多相关文章

  1. PCA学习笔记

    主成分分析(Principal Component Analysis,简称PCA)是最常用过的一种降维方法 在引入PCA之前先提到了如何使用一个超平面对所有的样本进行恰当的表达? 即若存在这样的超平面 ...

  2. 数据降维PCA——学习笔记

    PCA主成分分析 无监督学习 使方差(数据离散量)最大,更易于分类. 可以对隐私数据PCA,数据加密. 基变换 投影->内积 基变换 正交的基,两个向量垂直(内积为0,线性无关) 先将基化成各维 ...

  3. 机器学习13—PCA学习笔记

     主成分分析PCA 机器学习实战之PCA test13.py #-*- coding:utf-8 import sys sys.path.append("pca.py") impo ...

  4. LDA PCA 学习笔记

    提要: 本文主要介绍了和推导了LDA和PCA,参考了这篇博客 LDA LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况, ...

  5. 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据

    机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据 关键字:PCA.主成分分析.降维作者:米仓山下时间:2018-11-15机器学习实战(Ma ...

  6. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  7. Deep Learning(深度学习)学习笔记整理系列之(四)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  8. Deep Learning深入研究整理学习笔记五

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)

    在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...

随机推荐

  1. dom4j使用的小例子

    product.xml: <?xml version="1.0" encoding="UTF-8"?> <root> <produ ...

  2. jmeter数据关联_后置处理器_正则表达式提取器

  3. STL算法与树结构模板

    STL算法 STL 算法是一些模板函数,提供了相当多的有用算法和操作,从简单如for_each(遍历)到复杂如stable_sort(稳定排序),头文件是:#include <algorithm ...

  4. 【语音识别】Microsoft Speech Platform 自学笔记2 环境要求与安装过程

    笔记人:又吹风 时 间:2012/12/16 主要内容:Microsoft Speech Platform的环境要求与安装过程. 上次也说过了,当前Microsoft Speech Platform最 ...

  5. 浅谈PHP面向对象编程(七、抽象类与接口)

    7.0 抽象类与接口 当定义一个类时,常常需要定义一些方法来描述该类的行为特征.但有时这些方法的实现方式是无法确定的,此时就可以使用抽象类和接口. 抽象类和接口用于提高程序的灵活性.抽象类是一种特殊的 ...

  6. 启动tomcat服务器,配置CATALINA_HOME和JAVA_HOME

    遇到很多次运行startup.bat后,一个窗口一闪而过的问题,但是从来没去纠正怎样修改配置才是正确的,现在从网上查阅的资料整理如下:tomcat在启动时,会读取环境变量的信息,需要一个CATALIN ...

  7. mysql清理连接

    关闭指定ip的连接: for i in $(mysql -uusername -ppassword -Bse "select * from information_schema.proces ...

  8. javscript踩过的坑 - 记录

    1. js中, ‘==’ 运算符是对大小写敏感的

  9. Disconf实践指南:使用篇

    在上一篇文章Disconf实践指南:安装篇介绍了如何在本地搭建Disconf环境,下面我们介绍如何在项目中使用Disconf.由于某些功能特性对源码做了修改,所以在官方文档并没有提及. 环境基于mac ...

  10. 四、jenkins+postman+newman环境搭建

    前提: 搭建环境之前需要先理清楚各个环境的依赖关系,jenkins只支持windows命令行跟linux shell环境执行构建命令,而postman的测试脚本不能直接在命令行或shell环境执行,p ...