特征向量

关于生信常用的PCA算法

送分小仙女□ 提交于 2020-01-13 01:28:56
PCA是一种常用的数据降维算法,主要就是根据特征值提出特征值较大的几个特征向量,并将高维向量投影到特征向量上以达到数据降维的目的。 第一步当然是处理数据,将样本数据按列放入numpy的数据框(比如100个样本,每个样本4个数据,就是4行100列,反过来也可以,不过要注意调换内积的顺序)。 数据需要先做归一化,以减去所有样本的均值来实现。 from sklearn.datasets import load_iris iris = load_iris() data = iris['data'] data = data-np.mean(data, axis=0) 然后要计算出协方差矩阵,并计算出特征值及特征向量 def get_eigen(data): data_cov = np.cov(data, rowvar=0) eigen_val, eigen_vec = np.linalg.eig(data_cov) return eigen_val, eigen_vec 然后对特征值排序,提出特征向量 def sort_eigen(eigen_val, eigen_vec, cut_num): index = np.argsort(-eigen_val) sort_vec = eigen_vec[:, index[:cut_num]] return sort_vec

卷积神经网络提取特征并用于SVM

拥有回忆 提交于 2020-01-11 00:16:00
目标是对UCI的手写数字数据集进行识别,样本数量大约是1600个。图片大小为16x16。要求必须使用SVM作为二分类的分类器。 本文重点是如何使用卷积神经网络(CNN)来提取手写数字图片特征,主要想看如何提取特征的请直接看源代码部分的94行左右,只要对tensorflow有一点了解就可以看懂。在最后会有完整的源代码、处理后数据的分享链接。转载请保留原文链接,谢谢。 UCI手写数字的数据集 源数据下载: http://oddmqitza.bkt.clouddn.com/archivetempsemeion.data 其中前256维为16x16的图片,后10维为one hot编码的标签。即0010000000代表2,1000000000代表0. 组合成图片大约是这样的: 卷积和池化形象理解 卷积 池化 仔细的看,慢慢想就能明白CNN提取特征的思想巧妙之处。 能明白这两点,剩下的东西就和普通的神经网络区别不大了。 为什么要用CNN提取特征? 1.由于卷积和池化计算的性质,使得图像中的平移部分对于最后的特征向量是没有影响的。从这一角度说,提取到的特征更不容易过拟合。而且由于平移不变性,所以平移字符进行变造是无意义的,省去了再对样本进行变造的过程。 2.CNN抽取出的特征要比简单的投影、方向,重心都要更科学。不会让特征提取成为最后提高准确率的瓶颈、天花板 3.可以利用不同的卷积

【Matlab】PCA降维实现人脸识别(附学习资料、代码程序及注解、运行结果)

北城余情 提交于 2020-01-11 00:01:46
Matlab实现PCA人脸识别 寒假来了,阿汪先生总结了这一学期里学到的一些东西,并来和大家分享一下。 一、理论知识基础 1、一些前辈的经验分享(不局限于这些) (1) PCA人脸识别详解——初学者必看 . (2) 理解主成分分析 (PCA) . (3) LLE算法 . (4) 拉格朗日乘子法 . 2、阿汪先生做的一些笔记和用到的资料 原理资料上讲的很好,阿汪做了一些批注。水平不够,大家见谅呀!^-^ (1) 05-人脸图像超分辨率重建 . (2) 6.5-基于K-L变换的特征提取 . (3) Matlab_PCA_图像降维和人脸匹配_笔记 . 主要用到的资料: 人脸识别与人体动作识别技术及应用 [专著] / 曹林著.——北京:电子工业出版社,2015.8,ISBN:978-7-121-26660-7. 模式识别及MATLAB实现 [专著] / 杨杰主编.——北京:电子工业出版社,2017.8,ISBN:978-7-121-32127-6. 二、注解代码程序 1、重塑训练数据-T() function T = CreateDatabase(TrainDatabasePath) %此函数重塑训练数据库的所有2D图像放入一维列向量中。 %然后,将这些一维列向量放在一行中构造2D矩阵“ T”。 %一个2D矩阵,包含所有1D图像矢量。 %假设训练数据库中的所有P图像的MxN大小相同。

数据降维(PCA、KPCA、PPCA)及C++实现

流过昼夜 提交于 2020-01-10 22:13:31
1、何为数据降维 1.1维数灾难:往往满足采样条件所需的样本数目巨大、样本稀疏、距离计算困难。 1.2降维:利用数学变换将原始高维属性空间转变为低维“子空间”,即在高维采样数据中提取能够表达原始数据的特征。 1.3 降维优点:数据集更易懂、使用和显示;降低算法计算开销;去除噪声。 2、一些降维算法 Principal Component Analysis (PCA) Linear Discriminant Analysis(LDA) Locally linear embedding(LLE) Laplacian Eigenmaps 本文主要针对以下三种算法: 2.1 PCA:PCA算法是一种线性投影技术,利用降维后使数据的方差最大原则保留尽可能多的信息; 2.2 KPCA:PCA仅考虑了数据的二阶统计信息,而没有利用高阶统计信息,忽略了数据的非线性相关性,而KPCA,通过非线性变换将数据映射到了高维,在高维空间中进行特征提取,获得了更好的特征提取性能; 2.3 PPCA:PCA没有将数据的概率分布考虑,PPCA对PCA做了概率上的解释,延伸了PCA算法。 总之:PPCA和KPCA都是针对PCA算法的缺陷,做出了不同方向上的改进。 3 PCA、KPCA、PPCA算法步骤 3.1 PCA: 数据在低维线性空间上的正交投影,这个线性空间被称为主子空间,使得投影数据的方差被最大化。

主成分分析

白昼怎懂夜的黑 提交于 2020-01-06 16:08:45
PCA的思想是将n维特征映射到K维上(k < n),这k维是全新的正交特征。这k维特征成为主成分,是重新构造出来的k维特征,而不是简单的从n维特征中去除其余 n-k维特征。 (1)计算数据的协方差矩阵: https://blog.csdn.net/Mr_HHH/article/details/78490576 (2) 计算数据协方差矩阵的特征值和特征向量 python 样例代码: # coding:UTF-8 import os import numpy as np # 原始的数据 x = [0.69, -1.31, 0.39, 0.09, 1.29, 0.49, 0.19, -0.81, -0.31, -0.71] y = [0.49, -1.21, 0.99, 0.29, 1.09, 0.79, -0.31,-0.81, -0.31, -1.01] npx = np.array(x) npy = np.array(y) # 去除均值 ma = np.matrix([x - npx.mean(), y - npy.mean()]) print(u"协方差矩阵") cov = ma.dot(ma.T) print("------------------下面计算原始矩阵的特征值和特征向量-----------------------") eigenvalue

线性代数基础知识(三)—— 矩阵乘法

谁说胖子不能爱 提交于 2020-01-05 22:13:13
矩阵 A ∈ R m × n 和 B ∈ R n × p 的乘积为矩阵 : 其中: . 请注意,矩阵A的列数应该与矩阵B的行数相等,这样才存在矩阵的乘积。有很多种方式可以帮助我们理解矩阵乘法,这里我们将通过一些例子开始学习。 2.1 向量的乘积 给定两个向量x,y ∈ R n ,那么x T y的值,我们称之为向量的 内积 或 点积。它 是一个由下式得到的实数: . 可以发现,内积实际上是矩阵乘法的一个特例。通常情况下x T y = y T x。 对于向量x ∈ R m , y ∈ R n (大小不必相同),xy T ∈ R m×n 称为向量的 外积 。外积是一个矩阵,其中中的每个元素,都可以由 得到,也就是说, . 我们举个例子说明外积有什么用。令 1 ∈ R n 表示所有元素都是1的n维向量,然后将矩阵 A ∈ R m × n 的每一列都用列向量 x ∈ R m 表示。使用外积,我们可以将A简洁的表示为: . 2.2 矩阵 - 向量的乘积 对于一个矩阵 A ∈ R m × n 和向量 x ∈ R n ,他们的乘积为向量 y = Ax ∈ R m 。理解矩阵向量乘法的方式有很多种,我们一起来逐一看看。 以行的形式书写A,我们可以将其表示为Ax的形式: . 也就是说, y 第 i 行的元素等于A的第 i 行与x的内积 . 咱们换个角度,以列的形式表示A,我们可以看到: . 换言之,

学习笔记DL006:特征分解,奇异值分解

你离开我真会死。 提交于 2020-01-05 22:08:09
特征分解。 整数分解质因素。 特征分解(eigendecomposition),使用最广,矩阵分解一组特征向量、特征值。方阵𝑨的特征向量(eigenvector),与𝑨相乘相当对该向量缩放非零向量𝑣,𝑨𝑣=λ𝑣。标量λ为特征向量对应特征值(eigenvalue)。左特征向量(left eigenvector) 𝑣ᵀ𝑨=λ𝑣ᵀ,右特征向量(right eigenvector)。𝑣是𝑨的特征向量,任何缩放向量𝑠𝑣(𝑠∈ℝ,𝑠≠0)也是𝑨的特征向量。𝑠𝑣和𝑣有相同特征值。只考虑单位特征向量。 矩阵𝑨有𝑛个线性无关特征向量{𝑣⁽¹⁾,…,𝑣⁽ⁿ⁾},对应特征值{λ₁,…,λn}。特征向量连接成一个矩阵,每一列是一个特征向量,V=[𝑣⁽¹⁾,…,𝑣⁽ⁿ⁾]。特征值连接成一个向量𝝺=[λ₁,…,λn]ᵀ。𝑨的特征分解(eigendecomposition),记𝑨=Vdiag(𝝺)V⁻¹。 构建具有特定特征值和特征向量矩阵,在目标方向上延伸空间。矩阵分解(decompose)成物征值和特征向量,分析矩阵特定性质。 每个实对称矩阵都可以分解成实特征向量和实特征值,𝑨=Q𝚲Qᵀ。Q是𝑨的特征向量组成正交矩阵,𝚲是对角矩阵。特征值𝚲i,i对应特征向量是矩阵Q的第i列,记Q:,i。Q是正交矩阵,𝑨看作沿方向𝑣⁽i⁾延展λi倍空间。两多或多个特征向量拥有相同特征值,特征向量产生生成子空间

线性代数

放肆的年华 提交于 2020-01-05 22:07:51
线性相关和生成子空间   如果逆矩阵 A -1 存在,那么式子 A x = b 肯定对于每一个向量 b 恰好存在一个解。但是,对于方程组而言,对于向量 b 的某些值,有可能无解或者存在无限多解。存在多于一个解但是少于无限多个解的情况是不可能发生的;因为如果 x 和 y都是某方程组的解,则 z = αx + (1-α)y, (α取任意实数)也是该方程组的解。   形式上,一组向量的线性组合,是指每个向量乘以对应标量系数之后的和,即:∑ i x i v (i) ,一组向量的生成子空间(span)是原始向量线性组合后所能抵达的点的集合。 在线性代数里,矢量空间的一组元素中,若没有矢量可用有限个其他矢量的线性组合所表示,则称为 线性无关或线性独立 (linearly independent),反之称为 线性相关 (linearly dependent)。    例如在三维欧几里得空间R的三个矢量(1, 0, 0),(0, 1, 0)和(0, 0, 1)线性无关;但(2, 0, 1),(1, 0, 1)和(3, 1, 2)线性相关,因为第三个是前两个的和。   确定 A x = b 是否有解,相当于确定向量 b 是否在 A 列向量的生成子空间中。这个特殊的生成子空间被称为 A 的列空间 (column space)或者 A的值域(range)。 范数   范数(norm)函数可以衡量向量大小

shader_线性代数复习提纲

╄→гoц情女王★ 提交于 2020-01-05 22:06:42
MIT线代教程 http://open.163.com/movie/2010/11/7/3/M6V0BQC4M_M6V29E773.html 《转载》 《线性代数》复习提纲 第一部分:基本要求(计算方面) 四阶行列式的计算; N阶特殊行列式的计算(如有行和、列和相等); 矩阵的运算(包括加、减、数乘、乘法、转置、逆等的混合运算); 求矩阵的秩、逆(两种方法);解矩阵方程; 含参数的线性方程组解的情况的讨论; 齐次、非齐次线性方程组的求解(包括唯一、无穷多解); 讨论一个向量能否用和向量组线性表示; 讨论或证明向量组的相关性; 求向量组的极大无关组,并将多余向量用极大无关组线性表示; 将无关组正交化、单位化; 求方阵的特征值和特征向量; 讨论方阵能否对角化,如能,要能写出相似变换的矩阵及对角阵; 通过正交相似变换(正交矩阵)将对称矩阵对角化; 写出二次型的矩阵,并将二次型标准化,写出变换矩阵; 判定二次型或对称矩阵的正定性。 第二部分:基本知识 一、行列式 1.行列式的定义 用n^2个元素aij组成的记号称为n阶行列式。  (1)它表示所有可能的取自不同行不同列的n个元素乘积的代数和;  (2)展开式共有n!项,其中符号正负各半; 2.行列式的计算 一阶|α|=α行列式,二、三阶行列式有对角线法则; N阶(n>=3)行列式的计算:降阶法  定理:n阶行列式的值等于它的任意一行(列

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时26&&27

假装没事ソ 提交于 2019-12-27 17:30:57
课时26 图像分割与注意力模型(上) 语义分割: 我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个 使用卷积神经,网络为每个小区块进行分类,对在区块的中间打上标签,对图像的全部区块分类完毕,我们就可以得到每个像素所对应的标签,这个操作实际上非常耗时,因为一张图片将会被分割非常多的小块。 如果这些神经网络具有相关的结构,通过这个图像金字塔方法的话,这些图像的输出将会有不同的感受野。 语义分割的迭代精化 我们有一个输入图像,他们被分割成三个通道,我们把输出从卷积神经网络中拿出来,同时把对应的下采样版本的图像拿出来。然后我们再重复这一过程,所以这个过程,其实是有点增加输出有效的感受野,同时也对输入图像有更多的处理。 即时分割或者实时检测和分割: 我们有一些分类需要去识别,给定一张图像需要输出对应图像的不同分类实例,而分实例我们也需要分割到具体每个像素是属于哪个实例。 实例分割 我们给他一副输入图像,CNN还要依赖于外部的候选区域,就是计算机视觉中低层次信息得离线处理操作,预测物体在图像中的具体的位置。每个分割候选我们可以抽取出一个bounding box,来提取边界框裁剪输入图像,喂给卷积神经网络去抽取特征,同时并行的执行RCNN,再一次我们拿到相应的块图像,进行裁剪,但这里我们实际上有候选的分割