特征向量

【cs224w】Lecture 5

谁都会走 提交于 2020-04-08 21:01:31
目录 Spectral Clustering Graph Partitioning $d$-Regular Graph Motif-Based Spectral Clustering 转自本人: https://blog.csdn.net/New2World/article/details/105372317 Spectral Clustering 前面的课程说到了 community detection 并介绍了两种算法。这次来说说另外一类做社区聚类的算法,谱聚类。这种算法一般分为三个步骤 pre-processing: 构建一个描述图结构的矩阵 decomposition: 通过特征值和特征向量分解矩阵 grouping: 基于分解后的矩阵以及点的 representation 进行聚类 在介绍具体操作前我们先了解几个概念 Graph Partitioning 图的划分就是将节点分到不同的组内,如果分为两个组就是二分。划分的目的其实就是找社区,那如何判断一个划分的质量呢?回顾之前说到的社区的特点,即社区内部连接丰富而社区间连接稀疏。因此我们希望我们的划分能最大化每个划分内的连接并最小化划分间的连接数。我们用割这个概念来描述不同划分间的连接数 \(cut(A,B)=\sum\limits_{i\in A,j\in B}w_{ij}\) 。对于无权图这里的 \(w\) 就是 \(\

PCA数学角度解析

我只是一个虾纸丫 提交于 2020-04-03 13:50:31
转:http://blog.csdn.net/passball/article/details/24037593 主成分分析(PCA)是多元统计分析中用来分析数据的一种方法,它是用一种较少数量的特征对样本进行描述以达到降低特征空间维数的方法,它的本质实际上是K-L变换。PCA方法最著名的应用应该是在人脸识别中特征提取及数据维,我们知道输入200*200大小的人脸图像,单单提取它的灰度值作为原始特征,则这个原始特征将达到40000维,这给后面分类器的处理将带来极大的难度。著名的人脸识别Eigenface算法就是采用PCA算法,用一个低维子空间描述人脸图像,同时用保存了识别所需要的信息。下面先介绍下PCA算法的本质K-L变换。 1、K-L变换(卡洛南-洛伊(Karhunen-Loeve)变换): 最优正交变换 一种常用的特征提取方法; 最小均方误差意义下的最优正交变换; 在消除模式特征之间的相关性、突出差异性方面有最优的效果。 离散K-L变换:对向量 x (可以想象成 M维=width*height 的人脸图像原始特征)用确定的完备正交归一向量系 u j 展开: 这个公式由来我想应该是任一 n维欧式空间 V均存在正交基,利用施密特正交化过程即可构建这个正交基。 现在我们希望用 d个有限项来估计向量 x,公式如下: 计算该估计的均方误差如下: 要使用均方误差最小

关于数据

a 夏天 提交于 2020-03-25 21:01:28
数据是一切的根本。 一.获取数据 1.可以使用爬虫scrapy获取数据,但是更一般的是自家数据库中的数据 2.可以获得公用数据集: http://www.kaggle.com/datasets 等网站 3.可以自己创建虚拟数据 4.注意:1)数据量尽可能多、利于训练,(2)数据内容尽可能有效,能对预测产生作用(有用的特征),(3)数据尽可能要均匀(分类),即全面 5.注意:无论是数据获取还是处理,都要注意多做备份,有能力每步都要备份,数据的价值难以想象。 二.原始数据 1.数据的本质是信息的具体化,原始数据有很多种:数字、文字、图片....我们可以从这些数据中看出里面所包含的信息。 2.计算机接收进行处理的是数字,根据经验,把原始数据转换为数字是比较容易的(比如把图片转化为矩阵的形式), 3.我们得到的原始数据可能有这样那样的问题,所以要进行下一步的数据清洗 ------原始数据是杂乱的,含有不完整、重复、错误的数据,因此要先进行数据清洗------- 三.数据清洗(Data cleaning) 1.数据清洗是为了对数据进行重新审查和校验,目的在于删除重复信息、纠正存在的错误,并提供数据一致性 2.不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类 (1)缺失数据(数据为空Null):如果缺失数据的记录占比较小,可以直接剔除(主要包括删除样本或删除特征两种

opencv机器学习之SVM

女生的网名这么多〃 提交于 2020-03-17 05:22:31
文章目录 1.SVM原理 2.使用SVM 进行手写数据OCR 1.SVM原理 2.使用SVM 进行手写数据OCR 在kNN 中我们直接使用像素的灰度值作为特征向量。这次我们要使用方向梯度直方图Histogram of Oriented Gradients (HOG)作为特征向量。 在计算HOG 前我们使用图片的二阶矩对其进行抗扭斜(deskew)处理。 代码速记: cv2.ml.SVM_create() svm.train() svm.save() svm.predict() 实战: (1) 使用图像的二阶矩对其进行抗扭斜(deskew)处理 def deskew ( img ) : m = cv2 . moments ( img ) # 求矩 if abs ( m [ 'mu02' ] ) < 1e - 2 : return img . copy ( ) skew = m [ 'mu11' ] / m [ 'mu02' ] M = np . float32 ( [ [ 1 , skew , - 0.5 * SZ * skew ] , [ 0 , 1 , 0 ] ] ) img = cv2 . warpAffine ( img , M , ( SZ , SZ ) , flags = affine_flags ) return img (2) 使用方向梯度直方图Histogram

什么是多模态机器学习?

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-07 23:40:00
什么是多模态机器学习? 首先,什么叫做模态(Modality)呢? 每一种信息的来源或者形式,都可以称为一种模态。例如,人有触觉,听觉,视觉,嗅觉;信息的媒介,有语音、视频、文字等;多种多样的传感器,如雷达、红外、加速度计等。以上的每一种都可以称为一种模态。 同时,模态也可以有非常广泛的定义,比如我们可以把两种不同的语言当做是两种模态,甚至在两种不同情况下采集到的数据集,亦可认为是两种模态。 因此,多模态机器学习,英文全称 MultiModal Machine Learning (MMML),旨在通过机器学习的方法实现处理和理解多源模态信息的能力。目前比较热门的研究方向是图像、视频、音频、语义之间的多模态学习。 多模态学习从1970年代起步,经历了几个发展阶段,在2010后全面步入Deep Learning阶段。 人其实是一个多模态学习的总和,所以也有”砖家“说了,多模态学习才是真正的人工智能发展方向。 本文将针对多模态学习在深度学习发面的研究方向和应用做相关介绍,主要参考了来自ACL 2017的《 Tutorial on Multimodal Machine Learning 》。 多模态学习的分类 多模态学习可以划分为以下五个研究方向: 多模态表示学习 Multimodal Representation 模态转化 Translation 对齐 Alignment 多模态融合

【算法原理】主成分分析(PCA)

十年热恋 提交于 2020-03-07 19:33:20
目标: 降低特征维度 如何降维: 基变换(将原始特征所依赖的基组变换为新的基组,基组改变,原始特征也会按照基组的变换而变)。 如何确定新基组: 变换后方差越大越好(保留的原始信息越多),同时基组中的基协方差要为0(协方差衡量变量间的相关程度,协方差为0则两个变量不相关,即基组中的基两两正交,几何表示为垂直)。 有了新基组的确定标准,该如何计算新基组: 利用协方差矩阵(对角线上是方差,其余位置是协方差,该矩阵为对称矩阵),因为实对称矩阵一定能找到单位正交的特征向量,所以利用协方差矩阵的对角化(考研数学知识)找到特征值及对应的特征向量。 特征向量与降维的关系: 选择出的特征向量乘以原始数据就可以实现对原始数据的降维。例如将150个具有4个特征的数据(150 4)乘以两个特征向量(加入为4 2),则原始数据降维成150*2,特征维度降为2维。 那么该如何选择特征向量个数及具体哪些特征向量呢: 以特征值为标准,特征值越大,代表该特征值所对应的特征向量越重要。对特征值大小排序,按照预先指定的降维后的特征数(如2),选择特征值排名前2的所对应的特征向量。 来源: CSDN 作者: 不停下脚步的乌龟 链接: https://blog.csdn.net/weixin_44680262/article/details/104718311

2 线性代数基础

感情迁移 提交于 2020-03-05 15:56:11
转自: https://blog.csdn.net/longxinchen_ml/article/details/51629328 1 基本概念和符号 线性代数可以对一组线性方程进行简洁地表示和运算。例如,对于这个方程组: 这里有两个方程和两个变量,如果你学过高中代数的话,你肯定知道,可以为x1 和x2找到一组唯一的解 (除非方程可以进一步简化,例如,如果第二个方程只是第一个方程的倍数形式。但是显然上面的例子不可简化,是有唯一解的)。在矩阵表达中,我们可以简洁的写作: 其中: 很快我们将会看到,咱们把方程表示成这种形式,在分析线性方程方面有很多优势(包括明显地节省空间)。 1.1 基本符号 以下是我们要使用符号: 符号 A ∈ R m×n 表示一个m行n列的矩阵,并且矩阵A中的所有元素都是实数。 符号x ∈ R n 表示一个含有n个元素的向量。通常,我们把n维向量看成是一个n行1列矩阵,即列向量。如果我们想表示一个行向量(1行 n 列矩阵),我们通常写作 x T ( x T 表示x的转置,后面会解释它的定义)。 一个向量x的第 i 个元素表示为x i : 我们用 a ij (或 A ij , A i , j ,等) 表示第 i 行第 j 列的元素: 我们用 a j 或 A : , j 表示A矩阵的第 j 列元素: 我们用 a T i 或 A i , : 表示矩阵的第i行元素:

线性代数知识点总结

我只是一个虾纸丫 提交于 2020-03-04 23:26:12
直观理解线性代数的本质 如何理解矩阵特征值以及特征向量? 一篇很好的文章 A x = λ x Ax = \lambda x A x = λ x 可以把A看成是一个线性变换,那么这个定义可以看成对于向量x而言,在A的作用下保持方向不变(可能反向),进行大小为 λ \lambda λ 的缩放。 特征向量所在的直线包含了所有特征向量. 矩阵乘以特征向量可以看成是矩阵在每个特征向量方向上的投影。通过求特征值和特征向量把矩阵数据投影在一个正交的空间,而且在各个方向的投影大小就是特征值。 最大特征值并不是说数据在所有方向的投影的最大值,而仅限于正交空间的某一方向。最大特征值的特征向量所对应的方向就是速度最大的方向。 其实是一种数据的处理方法,可以简化数据。 特征值特征向量的重要例子 :数据挖掘中PCA(主成分分析)用于数据降维 详情点击 什么是相似矩阵?有什么用? ![{%asset_img 2.png%}](https://img-blog.csdnimg.cn/202003041016572.png) 线性变换 例如: y ⃗ = A x ⃗ \vec{y} = A\vec{x} y ​ = A x (类似于一次函数 y = x) 线性变换通过指定基下的矩阵A来表示 同一个线性变换,不同基下的矩阵称为相似矩阵.(任意向量在不同的基中有不同的表示)

基于LDA的SRDA算法

☆樱花仙子☆ 提交于 2020-03-04 17:27:25
LDA 线性判别分析 (LDA)是一种常用的保持类别可分性的特征提取方法。LDA的投影函数通常是通过 最大化类间协方差和同时最小化类内协方差 得到的。它被广泛应用于信息处理的许多领域,如机器学习、数据挖掘、信息检索和模式识别等。然而,LDA的计算涉及到密集矩阵的特征分解,这在时间和内存上都很昂贵。具体来说,LDA具有O(m n t+t3)时间复杂度,需要O(m n+mt+nt)内存,其中m是样本数,n是特征数,t=min(m,n)。当m和n都较大时,应用LDA是不可行的。 基于统计分析的子空间方法 分析人脸识别的主流方法是基于统计分析的子空间方法 人脸的图像维数通常很大,而其在高维空间分布很不紧凑,不利于分类,而且计算复杂度很大,因此通常将图像投影到低维的子空间进行判别。 子空间方法是根据一定目标来找线性或者非线性的变换,使原始信号压缩到一个低维的子空间中,让数据在该子空间的分布更加紧凑为数据的描述提供更好的手段,并且使其计算复杂度降低。 子空间有向图嵌入 用一个低维向量来表示图上的点,此向量保持了数据点间的相似度,此相识度可通过具有数据点集统计或者几何性的相似矩阵来描述。 点的向量表达式由一定约束条件下拉普拉斯矩阵的主要特征值对应的特征向量确定。 谱方法理论 谱方法是数学领域里一种经典的分析和代数方法,在高维数据的低维表示和聚类问题中有着广泛的应用。

pca图像识别

心不动则不痛 提交于 2020-03-03 19:48:39
代码下载: 基于PCA(主成分分析)的人脸识别 人脸识别是一个有监督学习过程,首先利用训练集构造一个人脸模型,然后将测试集与训练集进行匹配,找到与之对应的训练集头像。最容易的方式是直接利用欧式距离计算测试集的每一幅图像与训练集的每一幅图像的距离,然后选择距离最近的图像作为识别的结果。这种直接计算距离的方式直观,但是有一个非常大的缺陷—计算量太大。如果每幅图像大小为100*100,训练集大小1000,则识别测试集中的一幅图像就需要1000*100*100的计算量,当测试集很大时,识别速度非常缓慢。 解决上述问题的一个途径是对图像进行降维,通过只保留某些关键像素可以使识别速度大大提升。降维的一个方法即是PCA(主成分分析),在此我们介绍通过PCA进行人脸识别的步骤。 1 读取训练集图像数据 读取测试集目录下指定个数的图像,然后将其保存在一个二维数组中。如果图像个数为m,图像长宽为i、j,则我们创建一个二维数组A[m][i*j=n]用来保存图像数据。 数组的每一行表示一个图像的所有像素信息,每一列表示一个随机变量,也即不同图像同一位置的像素信息,降维也即用更少的列来代表图像。 2 每列减去均值 将步骤一的每列减去该列的均值,这样每列的数据均值为0。在利用matlab的函数princomp执行PCA的过程中,princomp会首先将每一列减去该列均值,不用我们自己执行。 3 计算协方差矩阵