常见机器学习算法原理+实践系列3(PCA)

PCA主成份分析

PCA(Principal Component Analysis)主要是为了做数据降维,数据从原来的坐标系转换到登录新的坐标系,新坐标系的选择是由数据本身决定的,第一个新坐标轴选择的是原始数据中方差最大的方向,第二个新坐标轴的选择和第一个坐标轴正交且具有最大方差,该过程一直重复,重复次数为原始数据中特征的数据。通常情况下,大部分方差都包含在前面的几个新坐标轴中,所以一般情况下我们选择前面几个贡献值较大的(90%以上)就是主成份了。

通过这种降维技术,它能将大量相关变量转化为一组很少的相关变量,这些无关变量称为主成份,比如原始的特征为x1,x2,……xk,通过一些新坐标轴的投影之后,第一主成份可能变成了pc1=a1*x1+a2*x2+……+ak*xk类似的,它是k个特征的加权组合,对初始数据集的方差解析性最大。

PCA有如下几个步骤:

1,原始矩阵A去除平均值(求出每个特征原始的平均值,原始矩阵减去这个平均值之后生成一个新矩阵B,也就是特征中心化)

2,计算协方差矩阵C(两两特征之间的协方差,构成一个矩阵)

3,计算协方差矩阵C的特征值和特征向量(为了求出最大的方差方向,也就是特征向量)

4,将特征值按照大到小排序,保留前面topN个特征向量V(如累计方差贡献值超过90%)

5,将原始数据转换到上述N个特征向量构建的新空间中,B*V

如果要恢复回原来的矩阵A,利用以下公式(精度有一些损失是正常的):

下面演示python中利用numpy来实现pac的案例:

下面是redEigVects输出的样子:

那么显然TOPN=3的主成份分别为:

PCA1 = 0.36*x1-0.08*x2+0.85*x3+0.35*x4

PCA2 = -0.65*x1-0.72*x2+0.17*x3+0.07*x3+0.07*x4

PCA3=-0.58*x1+0.59*x2+0.07*x3+0.54*x4

时间: 2024-10-08 21:22:43

常见机器学习算法原理+实践系列3(PCA)的相关文章

常见机器学习算法原理+实践系列5(KNN分类+Keans聚类)

一,KNN分类 K-Nearest Neighbor K临近算法是一种有监督的分类算法,工作原理很简单,存在一个样本集合,也成为训练样本,样本中包含标签,将新数据的每个特征与样本集合的数据对应特征进行比较,然后提取样本最相似的分类标签,k就是选择的最相似的数据点,选择k个点中出现频率最高的分类,就是新数据的分类.一般来说k不会超过20个.Knn有两个细节需要注意,一个是相似度算法,常用包含欧式距离,余弦距离等等,另外一个在计算相似度之前需要归一化特征,比如使用离差标准化(Min-Max),把所有

常见机器学习算法原理+实践系列2(SVD)

SVD奇异值分解 利用Singular Value Decomposition 奇异值分解,我们能够用小得多的数据集来表示原始数据集,可以理解为了去除噪音以及冗余信息.假设A是一个m*n的矩阵,通过SVD分解可以把A分解为以下三个矩阵: 其中U为m*m矩阵,里面的向量是正交的,U里面的向量称为左奇异向量,Σ是一个m*n对角矩阵,对角线以外的因素都是0,对角线都是奇异值,按照大到小排序,而VT(V的转置)是一个N * N的矩阵,里面的向量也是正交的,V里面的向量称为右奇异向量).那么奇异值和特征值

常见机器学习算法原理+实践系列6(朴素贝叶斯分类)

朴素贝叶斯NB Native Bayes是一种简单有效的分类算法, 贝叶斯定律用这个条件概率公式来表示: P(A|B) = P(B|A)* P(A) / P(B),其中P(A|B)的意思是,在B发生的前提下,发生A的概率,P(A),P(B)代表现实中发生A以及B的概率,实际上取决于我们输入样本的情况.贝叶斯分类算法在邮件分类,文本分类等等很多场景有非常广泛的应用.比如在邮件分类中,可以这样简单的理解,假如一个邮件用这个词组合(w1,w2,….wn)来表示,那么这个邮件是垃圾邮件的概率是多少.实际

常见机器学习算法原理+实践系列1(逻辑回归)

一,逻辑回归Logistic Regression 逻辑回归是线性模型Y=f(x)=b0+b1*x的延伸,一般用来做2分类问题,输出标记C={0,1},C就是classification的意思,通俗的讲,就要建立Y和C之间的关系,Y是多少的时候,C是0,Y是多少的时候,C是1,传统的线性回归输出的y是实数,在负无穷到正无穷之间,而C是0,1两种,使用Sigmoid函数就可以把y从负无穷到正无穷之间转换到0,1之间,该函数为:y=1/(1+e-z),其中z=wTX,x为自变量,w为权重.P记为发生

常见机器学习算法原理+实践系列4(决策树)

决策树分类 决策树算法借助于树的分支结构实现分类,决策树在选择分裂点的时候,总是选择最好的属性作为分类属性,即让每个分支的记录的类别尽可能纯.常用的属性选择方法有信息增益(Information Gain),增益比例(gain ratio),基尼指数(Gini index). 信息增益 信息增益基于香浓的信息论,它找出的属性R具有这样的特点:以属性R分裂前后的信息增益比其他属性最大.这里信息(实际上就是熵)的定义如下: 其中的m表示数据集D中类别C的个数,Pi表示D中任意一个记录属于Ci的概率,

郑捷《机器学习算法原理与编程实践》学习笔记(第六章 神经网络初步)6.3 自组织特征映射神经网路(SMO)

具体原理网址:http://wenku.baidu.com/link?url=zSDn1fRKXlfafc_tbofxw1mTaY0LgtH4GWHqs5rl8w2l5I4GF35PmiO43Cnz3YeFrrkGsXgnFmqoKGGaCrylnBgx4cZC3vymiRYvC4d3DF3 自组织特征映射神经网络(Self-Organizing Feature Map.也称Kohonen映射),简称为SMO网络,主要用于解决模式识别类的问题.SMO网络属于无监督学习算法,与之前的Kmeans算

《机器学习算法原理与编程实践》学习笔记(二)

(上接第一章) 1.2 对象.矩阵与矢量化编程 1.2.1对象与维度(略) 1.2.2初识矩阵(略) 1.2.3矢量化编程与GPU运算(略) 1.2.4理解数学公式与NumPy矩阵运算 1.矩阵的初始化 #coding:utf-8 import numpy as np #导入NumPy包 #创建3*5的全0矩阵和全1的矩阵 myZero = np.zeros([3,5])#3*5的全0矩阵 print myZero myZero = np.ones([3,5])##3*5的全1矩阵 print

《机器学习算法原理与编程实践》学习笔记(三)

(上接第一章) 1.2.5 Linalg线性代数库 在矩阵的基本运算基础之上,NumPy的Linalg库可以满足大多数的线性代数运算. .矩阵的行列式 .矩阵的逆 .矩阵的对称 .矩阵的秩 .可逆矩阵求解线性方程 1.矩阵的行列式 In [4]: from numpy import * In [5]: #n阶矩阵的行列式运算 In [6]: A = mat([[1,2,3],[4,5,6],[7,8,9]]) In [7]: print "det(A):",linalg.det(A)

《机器学习算法原理与编程实践》学习笔记(一)

第一章 机器学习的基础 1.1编程语言与开发环境 1.1.1 Python 安装(略) 1.2.2 Python安装包的安装:可以选选择安装集成包anaconda(略) 1.1.3 IDE配置及安装测试 IDE选择UltraEdit高级文本编辑器,配置步骤如下: (1)选择"高级"-->"用户工具"命令,如图1.4所示. 图1.5 配置UltraEdit步骤1 (2)在如图1.5所示输入各项参数,然后单击"应用按钮" 图1.5 配置Ultr