特征向量

PCA——主成分分析

这一生的挚爱 提交于 2020-10-25 12:34:53
  PCA(Principal Components Analysis)主成分分析是一个简单的机器学习算法,利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关比变量表示的数据,实现降维的同时尽量减少精度的损失,线性无关的变量称为主成分。大致如下:   首先对给定数据集(数据是向量)进行规范化,使得数据集的平均值为0,方差为1(规范化是为了使数据散布在原点附近,而不是远离原点的某块区域,便于后面的计算)。之后对每个数据进行正交变换,把数据投影到几个少量的相互正交的方向(这些方向构成了数据空间的一个子空间)上。数据在每个方向上都有对应的坐标,而用这些方向和对应的坐标(坐标×方向的累加)就能近似表示原来高维的数据,因此这些方向的求解就是PCA的关键。   如果再由这些坐标通过这些方向映射回原来的数据,精度损失是同等方向数量的方向集合(或者叫同维度的子空间吧)中最小的,而数据集在各个方向上的坐标的方差之和是同等方向数量的方向集合中最大的, 也正对应着方差越大表示这个方向上保存数据的信息量越大(方差越小所有数据越集中在一个点上信息量当然越小) 。数据集在这些方向的上的坐标的方差,从大到小排序,就把这每一个方向称为第一主成分、第二主成分…… 证明   接下来证明什么样的方向是主成分,即什么样的方向集合能保存原数据集更多的信息,并进一步说明数据集在主成分上的坐标的方差是最大的

为什么要做特征归一化/标准化?

断了今生、忘了曾经 提交于 2020-10-25 09:42:20
目录 写在前面 常用feature scaling方法 计算方式上对比分析 feature scaling 需要还是不需要 什么时候需要feature scaling? 什么时候不需要Feature Scaling? 小结 参考 博客: blog.shinelee.me | 博客园 | CSDN 写在前面 Feature scaling,常见的提法有“特征归一化”、“标准化”,是数据预处理中的重要技术,有时甚至决定了算法能不能work以及work得好不好。谈到feature scaling的必要性,最常用的2个例子可能是: 特征间的单位(尺度)可能不同 ,比如身高和体重,比如摄氏度和华氏度,比如房屋面积和房间数,一个特征的变化范围可能是 \([1000, 10000]\) ,另一个特征的变化范围可能是 \([-0.1, 0.2]\) ,在进行距离有关的计算时,单位的不同会导致计算结果的不同,尺度大的特征会起决定性作用,而尺度小的特征其作用可能会被忽略, 为了消除特征间单位和尺度差异的影响,以对每维特征同等看待,需要对特征进行归一化 。 原始特征下, 因尺度差异,其损失函数的等高线图可能是椭圆形 ,梯度方向垂直于等高线,下降会走zigzag路线,而不是指向local minimum。通过对特征进行zero-mean and unit-variance变换后

机器学习 --- 感知机

随声附和 提交于 2020-10-23 13:18:07
简介 神经网络中最基本的成分是神经元模型,感知机(Perceptron)是由两层神经元组成的双层神经网络模型, 其输入层接受外界输入信号传递给输出层, 输出层是 M-P 神经元(阈值逻辑单元)。感知机也属于二分类的线性分类模型, 其输入为实例的特征向量, 输出为实例的类别, 取 +1 和 –1 二值。 本实训项目基于西瓜好坏识别的简单案例介绍感知机的基本原理和思路,然后基于sklearn框架提供的感知机模型完成癌细胞精准识别的实战案例。 第一关 #encoding=utf8 import numpy as np #构建感知机算法 class Perceptron ( object ) : def __init__ ( self , learning_rate = 0.01 , max_iter = 200 ) : self . lr = learning_rate self . max_iter = max_iter def fit ( self , data , label ) : ''' input:data(ndarray):训练数据特征 label(ndarray):训练数据标签 output:w(ndarray):训练好的权重 b(ndarry):训练好的偏置 ''' #编写感知机训练方法,w为权重,b为偏置 self . w = np . array ( [ 1 . ]

人脸识别算法演化史

走远了吗. 提交于 2020-10-23 07:23:19
转自: https://zhuanlan.zhihu.com/p/36416906 其它机器学习、深度学习算法的全面系统讲解可以阅读 《机器学习-原理、算法与应用》 ,清华大学出版社, 雷明著 ,由SIGAI公众号作者倾力打造。 书的购买链接 书的勘误,优化,源代码资源 导言: 本文为人脸识别算法系列专题的综述文章,人脸识别是一个被广泛研究着的热门问题,大量的研究论文层 出不穷,文中我们将为大家总结近些年出现的具有代表性的人脸识别算法。请大家关注SIGAI公众号,我 们会持续解析当下主流的人脸识别算法以及业内最新的进展。 人脸识别有什么用? 人脸识别的目标是确定一张人脸图像的身份,即这个人是谁,这是机器学习和模式识别中的分类问题。它主要应用在身份识别和身份验证中。其中身份识别包括失踪人口和嫌疑人追踪、智能交互场景中识别用户身份等场景;而身份验证包括身份证等证件查询、出入考勤查验、身份验证解锁、支付等场景,应用场景丰富。就在前不久,北京多家医院借助“黑科技”人脸识别技术阻击“熟脸”的号贩子,降低其挂号率;目前人脸识别还用到了治理闯红灯问题,改善中国式过马路现象。 人脸识别系统的组成 人脸识别算法主要包含三个模块: 人脸检测(Face Detection) 人脸对齐(Face Alignment) 人脸特征表征(Feature Representation) 如下图所示: 人脸检测

【图神经网络】图卷积网络 GCN

天涯浪子 提交于 2020-10-22 17:55:15
本文为图神经网络的学习笔记,讲解图卷积网络 GCN。欢迎在评论区与我交流👏 前言 传统卷积方式在非欧式的数据空间无法保持“平移不变性”,因此将卷积推广到 Graph 等非欧式数据空间的拓扑图上。 先给出 GCN 的公式: H ( l + 1 ) = D ^ − 1 / 2 A ^ D ^ − 1 / 2 H l W l H^{(l+1)}=\hat{D}^{-1/2}\hat{A}\hat{D}^{-1/2}H^lW^l H ( l + 1 ) = D ^ − 1 / 2 A ^ D ^ − 1 / 2 H l W l 卷积和傅里叶变换关系紧密。数学上的定义是两个函数的卷积等于各自傅里叶变换的乘积的逆傅里叶变换。此时卷积与傅里叶变换产生了联系 传统的傅里叶变换可通过类比推广到图上的傅里叶变换。此时傅里叶变换又与 Graph 产生了联系 由傅里叶充当桥梁,卷积与 Graph 产生联系 【 论文链接 】。 拉普拉斯矩阵与 GCN 拉普拉斯矩阵及其变体 拉普拉斯矩阵 简单图 G G G 的节点数为 n n n , D D D 是 G G G 的度矩阵, A A A 是 G G G 的邻接矩阵,则 G G G 的拉普拉斯矩阵可以表示为 L = D − A L=D-A L = D − A 。 度矩阵 D D D 定义为: d i , j : = { d e g ( v i ) if i =

基于内容的图像特征提取系统

…衆ロ難τιáo~ 提交于 2020-10-22 09:21:44
随着信息化多媒体时代的到来及世界范围内Internet的发展,人们在工作和生活中越来越多的接触到大量的各种各样的图像信息。图像作为一种重要的信息载体,具有直观、内容丰富、无语言限制和便于国际交流等特点,是组成多媒体信息的重要内容。图像处理技术已经广泛深入的应用于各行各业中。 数据库技术主要研究数据库的结构、设计以及如何进行数据的组织、存储、管理。计算机硬件技术的发展和计算机软件水平的提高,为图像的存储、压缩、传输、交互提供了必要的基础。使得图像处理技术和数据库技术结合成为可能。随着这一研究领域的发展,图像数据库成为当今信息管理的基础。它既充分利用了图像内部所包含的信息,又结合了传统数据库技术,是一项在理论研究和实际应用中都极有前途的新技术。在浩如烟海的信息中,寻找感兴趣的资料是极其耗时的,人们对信息检索和系统的依赖日益加强。传统的政府办公系统已经无法适应快速发展的信息化社会的需求。近年来,多媒体数据库在政府政务信息处理中越来越显示出其快速、便捷的优越性能,受到各国政府的广泛重视。它不是简单的办公自动化、网络化、电子化,而是一个综合的信息系统,它是各有关部门和地方各级政府利用信息和网络通信技术,是加强政府管理,实现政务公开、提高效率、改进和完善服务职能的重要手段。 1.2 国内外研究现状 早在70年代,人们就开始了图像检索技术的研究,实现了基于文本方式的图像检索。典型框架是

特征工程之特征预处理

狂风中的少年 提交于 2020-10-21 02:02:55
    在前面我们分别讨论了特征工程中的特征选择与特征表达,本文我们来讨论特征预处理的相关问题。主要包括特征的归一化和标准化,异常特征样本清洗与样本数据不平衡问题的处理。 1. 特征的标准化和归一化      由于标准化和归一化这两个词经常混用,所以本文不再区别标准化和归一化,而通过具体的标准化和归一化方法来区别具体的预处理操作。     z-score标准化:这是最常见的特征预处理方式,基本所有的线性模型在拟合的时候都会做 z-score标准化。具体的方法是求出样本特征x的均值mean和标准差std,然后用(x-mean)/std来代替原特征。这样特征就变成了均值为0,方差为1了。在sklearn中,我们可以用StandardScaler来做z-score标准化。当然,如果我们是用pandas做数据预处理,可以自己在数据框里面减去均值,再除以方差,自己做z-score标准化。     max-min标准化:也称为离差标准化,预处理后使特征值映射到[0,1]之间。具体的方法是求出样本特征x的最大值max和最小值min,然后用(x-min)/(max-min)来代替原特征。如果我们希望将数据映射到任意一个区间[a,b],而不是[0,1],那么也很简单。用(x-min)(b-a)/(max-min)+a来代替原特征即可。在sklearn中,我们可以用MinMaxScaler来做max

图中的谱聚类详解

こ雲淡風輕ζ 提交于 2020-10-19 08:47:15
在Neural network还未使用在graph里时, 图聚类就有着很大的需求, 比如在社交网络中的群体分类,如何在图中完成相应地工作,本文基于对cs224w 《Spectral Clustering》的学习笔记,尝试描述清楚,这方面经典的工作。 Graph Partitioning 何谓graph partitioning, 如下图,给定无向图 , 将这些节点分为两个组: 逻辑很简单,但是难点在于: 如何定义一个尺度,来保证图的切分是合理的: 组内成员连接尽可能多; 组与组之间连接尽可能少; 如何高效地识别这些分区; Criterion Cut(A,B): 如下图,图当中,两个点分别在两个分组的边的数量; Minimum-cut 最小化图分组间的连接(如果有权重,则考虑权重): 这样会存问题: 仅仅考虑图当中分组的外部连接; 未考虑图中分组的内部连接; 因此,在下面图中,会出现,假如是minimum cut不是optimal cut : Conductance 与Minimum-cut逻辑不一样, Conductance不仅仅考虑分组间的连接, 也考虑了分割组内的“体积块”, 保证分割后得到的块更均衡,Conductance指标如下: 其中 指分组块A内节点所有的权重度之和; 但是,得到最好的Conductance是一个np难题。 Spectral Graph

通俗易懂的Harris 角点检测

半腔热情 提交于 2020-10-12 01:45:54
点击上方“3D视觉工坊”,选择“星标” 干货第一时间送达 Harris 角点检测 认为 特征点具有局部差异性 。 如何描述“特征点具有局部差异性”: 以每一个点为中心,取一个窗口,窗口大小为5*5或7*7像素大小。 这个 窗口描述了这个特征点周围的环境 。 如果这个特征点具有局部差异性,那么以这个特征点为中心,把窗口向360度任意一个方向移动,窗口的变化比较大,则这个特征点的周围环境变化比较大。 数学公式: (x,y):表示像素的位置。 :表示窗口内的每个像素。 w(x,y):表示 这个位置的权重。 若w=1,则说明窗口中所有的像素贡献是一样的。 若w设置为以这个特征点为中心的高斯, 高斯权重,说明距离这个特征点越近,权重越大;越往周围发散,权重越小。 I(x,y):表示(x,y)这个位置的像素值。如果是灰度图,I就是灰度值,如果是彩色图,I就是RGB值。 u和v表示窗口移动的方向。 I(x+u,y+v) - I(x,y):表示对应像素的灰度差异。 :在整个窗口内,即在局部环境内求这个像素灰度差异的加权和。 对 I(x+u,y+v) - I(x,y)进行一阶泰勒展开,得到 在(x,y)处的灰度值,再加上u方向和v方向的偏导数。 整理后,结果为: u和v表示窗口移动的方向, H表示Harris矩阵,主要由图像梯度表示。 对Harris矩阵进行特征分解: 得到两个特征值

基于异质图神经网络的未知恶意程序检测

安稳与你 提交于 2020-10-10 22:45:47
©PaperWeekly 原创 · 作者|张安琪 学校|东华大学硕士生 研究方向|隐私保护、Security 论文标题: Heterogeneous Graph Matching Networks for Unknown Malware Detection 论文链接: https://www.ijcai.org/Proceedings/2019/522 引言 信息系统中存在大量的恶意软件/程序攻击,恶意软件/程序检测作为抵御攻击的第一道防线,主要使用两种方法:基于签名的方法(signature-based)和基于行为的方法(behavior-based)。但均用于检测已知的恶意软件,并且易于逃避技术。 此外,signature-based 很难抵御零时差攻击,behavior-based 会导致培训成本过高。综上,设计一种有效的数据驱动方法来检测未知恶意程序,是急需解决的问题。 检测未知恶意程序主要存在以下四个挑战: 1. 系统实体之间具有非线性和分层异构关系。 程序执行的操作具有非线性和层次结构上的异构依赖性,忽略这些依赖关系的简单方法仍可能产生较高的误报率。 2. 两个程序之间缺乏距离/相似性度量。 在实际的计算机系统中,给定两个程序,具有与之相关的数千个系统事件,根据分类的事件数据来测量它们的距离/相似度不是一项简单的任务。 3. 指数级别的事件空间。