知道IEEE这个世界最大电子电气学术组织禁止华为资助和中国某些一流大学教授参与审稿这个消息我是愤怒的。我也是无奈的,学校考核必须发论文到这儿,不得不发。IEEE上面的论文中国人几乎占了三成(美国人搞学术的很少的基本是做金融法律医生这种行业)。中国在校的就要三千多万大学生,一旦国家宣布IEEE期刊不参与学术考核,都不投IEEE这是何其壮观。从这个贸易战看:强权即是真理,没有所谓的自由贸易和平等。中国之大已容不下一个安静的键盘。不过是又一次鸦片战争。除了愤怒还是愤怒,除了一心图强外还是一心图强中华文明三四千年的历史都是世界顶级,美国人区区100多年第一就想再占100年这不是无知么中国人有13亿人,是美国人的4倍还要多,4个抵1个也是必然会超过美国
2019年5月29日 IEEE宣布禁止任何受华为资助的教授或学生参与IEEE审稿。听到这个消息我是愤怒的,说好的科学无国界呢?
梳理下这个过程:
2018.12.1,华为CFO(任正非之女)被美国下令逮捕
2018.12.1 对芯片重大贡献的华人张首晟在美国身亡,就在2年前获得中国国家科学技术奖(中国科技最高奖,最高领导人亲自颁奖,奖金200万美金)
2019年5月 美国撕毁两国元首已经基本确定的协议,对中国征收25%关税。
2019年5月中旬 美国禁止全世界任何企业与华为接触或者提供设备,也禁止购买华为手机或通讯设备。理由:“国家安全”(距离美国棱镜门用思科通讯设备和Google监听全世界这个事件不过几年美国人就忘了自己干了什么事。)同时禁止欧洲其他国家使用华为提供的5G服务。
2019年5月中下旬,Microsoft,ARM,Google纷纷宣布停止和华为任何商业来往,同时Google禁止华为手机使用Google服务
2019年5月底, IEEE(世界上最大电子电气学术机构禁止任何受华为资助的教授参与审稿禁止其他高校或企业与中国的一些高校合作


PCA用来可以降维。降低数据维度既可以减少计算量,也可以降低噪声。最后本文使用了Python对PCA进行实现。

1. 直观理解PCA主成分分析是什么?

Principal Component Analysis(PCA)主成分分析它本质是把数据视作一个椭球。二维的话就是一个椭圆。我们知道椭球它有长轴和短轴。如果3维的椭球某个短轴非常短,那么我们是不是可以把这个短轴视作没有?这样一个椭球就降维成了一个2维的椭圆。这就是PCA的原理。为了方便计算。首先需要对数据进行归一化,让椭圆的圆心在原点**。那么我们怎么知道哪个短轴非常短呢?看这个轴方向数据的方差。方差越小轴越短。也就是说方差越大证明这个维度的数据越重要即是主成分。**方差越小这个维度越不重要(对应椭圆轴越短),那么这个维度可以舍弃。方差最大的那个数据投影到第一个坐标(也叫做第一主成分),第二大投影到第二个维度的坐标,以此类推看下面这张图,粉红色那条线就是第一主成分。可以看到当坐标轴转到与粉红色重合时,各点在第一坐标轴上投影点分布式最分散的(方差越大波动越大)。注意:第二主成分必须要和第一主成分垂直(第二主成分是原先的点在第二坐标轴上投影后的点),而且它要占用下一个最大方差。当然下面这个图是二维的,将它降维当然只有一维。所以只有第一主成分,没有其他主成分。

2. 逐步理解PCA的执行过程

2.1 归一化(让椭圆圆心移动到原点)

2.2 计算协方差矩阵

如果是一维的话协方差就是方差(不是矩阵)。多维的话就是协方差矩阵了。如果是一维的话协方差就是方差。协方差就是用来分析两个维度之间的相关性。协方差大于0则两个维度正相关,小于0则是负相关。等于0则是不相干。下面是三维的情况下协方差矩阵。注意Cov(a,b)= Cov(b,a),所以下面这个协方差矩阵是一个对称矩阵。大致理解方差是协方差矩阵在一维情况下的特殊情况就可以了。然后可以看后面的了

2.3 计算协方差矩阵的特征值,将特征值从高到低排序,然后每个特征值对应一个特征向量。第k个特征向量与原先数据内积就是对应的第k个主成分

假如原数据一共有10维,如果我想降到4维。那么就取前4大的特征值对应的特征向量。这4个特征向量每个特征向量都是10维的。然后用这个4个特征向量与原先数据点内积,得到4个数。所有的原数据点都这样计算后就得到了第一第二第三第四主成分。这样就把10维降低到4维。(当然前面这个过程一般是用矩阵批量运算)

那么怎么计算我保留了多少信息,扔掉了多少信息?答:“计算保留的那4个特征值,占10个总特征值的比例即是保留了百分之几的信息”

3. Python编程实践,2维降到1维



代码如下所示:

# -*- coding: utf-8 -*-
"""
Created on Wed May 29 20:50:26 2019@author: @Ai酱
"""
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,200) + np.random.rand(200)/5
y = 0.233 * x + np.random.rand(200)/3
# 归一化
x = (x - np.mean(x))/np.std(x)
y = (y - np.mean(y))/np.std(y)
#plt.scatter(x,y)# 1. 计算协方差矩阵
cov_mat = np.cov(x,y)# 2. 计算协方差矩阵的特征值
eigenvalues,eigenvectors = np.linalg.eig(cov_mat)
k = 1 # 降维后的目标维度
# 对特征值进行排序,取前k个
topk = np.argsort(eigenvalues)[0:k]
# 前k个最大的特征值对应的特征向量与原矩阵相乘
data = np.stack((x,y),axis=-1)
result = np.matmul(data,eigenvectors[topk].T)plt.plot(result[:,0],result[:,0].shape[0]*[1],'.')#绘制一维图

欢迎关注知乎专栏:《适合初学者的神经网络机器学习理论与实践》
参考文献:
[1] A step by step explanation of Principal Component Analysis

转载于:https://www.cnblogs.com/ailitao/p/11047281.html

通俗解释如何理解主成分分析PCA,Python实现PCA主成分分析2维降到1维相关推荐

  1. python多线程调用携程,进程、线程和携程的通俗解释【刘新宇Python】

    通过下面这张图你就能看清楚了,进程.线程和携程的关系 多个进程是可以运行在多个CPU当中的,比如你的电脑是4核,可以同时并行运行四个进程,这是真正物理上的并行运行. 每个进程又可以有多个线程,线程是轮 ...

  2. 进程、线程和携程的通俗解释【刘新宇Python】

    通过下面这张图你就能看清楚了,进程.线程和携程的关系   进程: 多个进程是可以运行在多个CPU当中的,比如你的电脑是4核,可以同时并行运行四个进程,这是真正物理上的并行运行. 线程: 每个进程又可以 ...

  3. python实现PCA

    ★ PCA个人理解: PCA降维是通过变换坐标系,来尽可能的减少信息损失. ★ PCA思路: 我们的初始矩阵为X,它是m×n维的矩阵,其中:m是该数据集有m条记录,n是每条记录中有n个特征,X的基本格 ...

  4. matlab的pca图像去噪程序,PCA实现过程梳理以及降噪处理

    现在CNV分析方法有很多,但是随着NGS成本的降低,高深度的测序下背景下,read count(depth)方法逐渐变为各个分析软件的主流.最近在看GATK的CNV分析方法,其中在创建PoN(Pane ...

  5. 主成分分析法(PCA)的理解(附python代码案例)

    目录 一.PCA简介 二.举个例子 三.计算过程(公式) 3.0 题干假设 3.1 标准化 3.2 计算协方差矩阵 3.3 计算特征值和特征值向量 3.3 多重共线性检验(可跳过) 3.4 适合性检验 ...

  6. 主成份(PCA)与奇异值分解(SVD)的通俗解释

    主成份(PCA)与奇异值分解(SVD)的通俗解释 1. 问题描述 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量观测,收集大量数据以便进行分析,寻找规律.多变量大样本无疑会为研究和应用 ...

  7. 吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现)

    吴恩达机器学习作业7 - K-means和PCA主成分分析(Python实现) Introduction 在本实验中,将实现K-means聚类算法,并将其应用于图像压缩.在第二部分实验中,将使用主成分 ...

  8. 主成分分析(PCA)Python代码实现

    主成分分析(Principal Components Analysis, PCA)简介可以参考: http://blog.csdn.net/fengbingchun/article/details/7 ...

  9. pca主成分分析结果解释_SKLEARN中的PCA(Principal Component Analysis)主成分分析法

    PCA(Principal Component Analysis)主成分分析法是机器学习中非常重要的方法,主要作用有降维和可视化.PCA的过程除了背后深刻的数学意义外,也有深刻的思路和方法. 1. 准 ...

最新文章

  1. 迪士尼“新顶流”,火不到娱乐圈
  2. 分分钟带你欣赏ES6语法糖
  3. Nginx的Gzip和sendfile的共存问题
  4. python端口被占用_端口被占用怎么解决
  5. 汇编语言---子程序设计举例(两组数据相加)
  6. 甲骨文解散Java Mission Control团队事件新进展
  7. Deep Learning 10_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)...
  8. spring jpa mysql集群_微框架:Springboot+Jpa+mysql零基础上手班
  9. ActiveMQ 在java中的使用,通过单例模式、工厂实现
  10. python import system_[Python Basics]引用系统(The Import System)
  11. linux数据库redis主从配置,redis介绍及主从配置
  12. CONSUL install 和启动
  13. linux添加mysql到服务_Linux下将MySQL服务添加到服务器的系统服务中
  14. Java后台实现Excel文件下载
  15. 百度网盘怎么批量改名(包含子文件夹)
  16. 请按照以下要求设计一个学生类Student,并进行测试,要求如下:
  17. “清华学霸计划表”刷爆家长群:自律的孩子有多棒?你想象不到
  18. 飞入百姓家的智能路由器
  19. Python生成英文大小写和数字的随机数
  20. 如何安装成英文版本的vmware

热门文章

  1. GH1131铁基高温合金热强性如何
  2. ES6的扩展运算符 [...arr]
  3. 【人工智能行业大师访谈6】吴恩达采访 Andrej Karpathy
  4. 鸿蒙智联开发者平台项目的介绍
  5. 谁说秃头不能熬夜的!!!!
  6. 平凡的生活,不平凡的事迹
  7. HP中国前总裁孙振耀【关于工作】
  8. 什么编程语言最有前途
  9. 三星 自动重启 android,Android 应用被杀掉之后 Service 的重启问题
  10. 十二、虚拟 DOM 和 render() 函数(1)