矩阵

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阶行列式的值等于它的任意一行(列

关于深度学习的评价指标的概念与理解

南笙酒味 提交于 2020-01-04 17:03:24
在深度学习中我们经常会遇到一下评价指标,但是有时候却又很模糊,不能彻底的理解其中的含义与作用,下面就常用的几个评价指标作一些阐述与理解。 我们 常见的评价指标 大概有下面的几种:混淆矩阵 (Confusion Matrix),准确率 (Accuracy),精确率(Precision),召回率(Recall),平均精确度(AP), 平均精度均值 mean Average Precision(mAP),交并比(IoU),ROC + AUC,非极大值抑制(NMS)。下面我们进行一一学习与了解。 1、混淆矩阵 (Confusion Matrix) 混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。混淆矩阵中的横轴是模型预测的类别数量统计,纵轴是数据真实标签的数量统计。 对角线 , 表示模型预测和数据标签一致的数目, 所以对角线之和除以测试集总数就是 准确率 。对角线上数字越大越好,在可视化结果中颜色越深,说明模型在该类的预测准确率越高。如果按行来看,每行不在对角线位置的就是错误预测的类别。总的来说,我们希望对角线越高越好,非对角线越低越好。对于二分类问题,真实的样本标签有两类,我们学习器预测的类别有两类,那么根据二者的类别组合可以划分为四组,如下表所示: 混淆矩阵 真实值 Positive Negative 预测值 Positive TP FP (Type

Java学习入门06

徘徊边缘 提交于 2020-01-04 00:48:33
方法概述 方法: 就是将一个 功能 抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。(方法就是完成特定功能的代码块) 方法的定义 定义格式: 修饰符 返回值类型 方法名 (参数列表){ 代码(方法体)... return ; } 定义格式解释: 修饰符 :目前固定写法 public static 返回值类型 用于限定返回值的数据类型 方法名 一个名称,为了方便我们调用方法 参数类型 限定调用方法时传入参数的数据类型 参数名 是一个变量,接收调用方法时传入的参数 方法体 完成功能的代码 return 结束方法以及返回方法指定类型的值 返回值 程序被return带回的结果,返回给调用者 有明确返回值的方法调用: 单独调用,没有意义 输出调用,有意义,但是不够好,因为我不一定非要把结果输出 赋值调用,推荐方式 方法定义注意事项 : 方法不调用不执行 方法与方法是平级关系,不能嵌套定义 方法定义的时候参数之间用逗号隔开 方法调用的时候不用在传递数据类型 如果方法有明确的返回值,一定要有return带回一个值 没有明确返回值的函数调用 其实就是void类型方法的调用 只能单独调用 方法重载概述 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可 方法重载的特点

[矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats

旧城冷巷雨未停 提交于 2020-01-04 00:42:03
矩阵快速幂习题 复习矩阵乘法及快速幂模板 乘法模板 快速幂模板 T1:Arc of Dream 题目 题解 code T2:Recursive sequence 题目 题解 code T3:233 Matrix 题目 题解 code T4:Training little cats 题目 题解 code 做题的时候后悔没有保存过模板,还到处去找自己曾经写过的模板,然并卵,还是重新写了一遍,其实如果知道原理,就不用背模板了 每次复习的时候打完就觉得自己记住了,然而 复习矩阵乘法及快速幂模板 具体怎么乘的,移步 百度百科 乘法模板 struct Matrix { int n , m ; LL c [ MAXN ] [ MAXN ] ; Matrix ( ) { memset ( c , 0 , sizeof ( c ) ) ; } Matrix operator * ( const Matrix & a ) const { Matrix res ; res . n = n ; res . m = a . m ; for ( int i = 1 ; i <= n ; i ++ ) for ( int j = 1 ; j <= a . m ; j ++ ) for ( int k = 1 ; k <= m ; k ++ ) res . c [ i ] [ j ] = ( res . c [

推荐系统:MovieLens上的SAR单节点(SAR Single Node on MovieLens)

丶灬走出姿态 提交于 2020-01-04 00:18:51
步骤 1.计算物品相似度矩阵S(Item-Item Similarity matrix) 2.计算用户与物品的关系矩阵A(User_Item affinity matrix) 3.计算得分,得到分数矩阵A*S,推荐分数最高的几件商品(Top-k recommendations) 4.可以通过时间衰退与删除浏览过的商品来增加准确度 计算项目共现和项目相似度(计算S) SAR基于项目之间的共性数据(两个项目对于给定用户一起出现的次数)定义相似性。 构建了m*m的矩阵C, c i , j c_{i,j} c i , j ​ 代表的是项目i与项目j一起出行的次数,m是项目的总和 对称, c i , j = c j , i c_{i,j} = c_{j,i} c i , j ​ = c j , i ​ 非负 c i , j ≥ 0 c_{i,j} \geq 0 c i , j ​ ≥ 0 项目单独出现的次数肯定比两个项目同时出现的次数少 c i , i , c j , j ≥ c i , j c_{i,i} , c_{j,j} \geq c_{i,j} c i , i ​ , c j , j ​ ≥ c i , j ​ 计算相似度 Jaccard : s i j = c i j ( c i i + c j j − c i j ) s_{ij}=\frac{c_{ij}}{(c_{ii}+c_

opengl学习笔记

不羁的心 提交于 2020-01-03 08:38:56
准备: 1、准备资源: 从 GLEW1.13.0 下载GLEW,并且解压出glew-1.13.0目录。 从FreeGLUT官网下载3.0.0版本。直接从这里下的 编译后的FreeGLUT ,选for MSVC,下载后解压。 2、将所有的x64(64位)版本的.h和.lib拷贝到vs2015安装目录下的vc文件夹里的include和lib里 将所有.dll文件拷贝到C:\Windows\SysWOW64这个目录下 如果是32位系统就不一样了 3、打开ivs2015,创建新的控制台应用程序 #include <glut.h> #include <glew.h> 包括上边的两个头文件 1 void myDisplay(void) 2 { 3 glClear(GL_COLOR_BUFFER_BIT); 4 glColor3f(0.0f, 1.0f, 0.0f); 5 glRectf(-0.5f, -0.5f, 0.5f, 0.5f); 6 glFlush(); 7 } 8 9 int main(int argc, char *argv[]) 10 { 11 glutInit(&argc, argv); 12 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 13 glutInitWindowPosition(100, 100); 14

【LDA】线性判别式分析

邮差的信 提交于 2020-01-03 06:57:05
1. LDA是什么 线性判别式分析(Linear Discriminant Analysis),简称为LDA。也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典 算法 ,在1996年由Belhumeur引入模式识别和人工 智能 领域。 基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有 最大的类间距离 和 最小的类内距离 ,即模式在该空间中有最佳的可分离性。 LDA的目标: 可以看到两个类别,一个绿色类别,一个红色类别。左图是两个类别的原始数据,现在要求将数据从二维降维到一维。直接投影到x1轴或者x2轴,不同类别之间会有重复,导致分类效果下降。右图映射到的直线就是用LDA方法计算得到的,可以看到,红色类别和绿色类别在映射之后之间的距离是最大的,而且每个类别内部点的离散程度是最小的(或者说聚集程度是最大的)。 2. LDA的一些说明 第一,降维后的维度是多少? PCA降维是直接和数据维度相关的,比如原始数据是n维的,那么PCA后,可以任意选取1维、2维,一直到n维都行(当然是对应特征值大的那些)。 LDA 降维是直接和类别的个数相关的,与数据本身的维度没关系,比如原始数据是n维的,一共有C个类别,那么LDA降维之后,一般就是1维,2维到C-1维进行选择

python: numpy--函数 shape用法

流过昼夜 提交于 2020-01-03 04:04:09
概述 shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩阵或者数组的维数。 举例说明: 建立一个3×3的单位矩阵e, e.shape为(3,3),表示3行3列,第一维的长度为3,第二维的长度也为3 >> > e = eye ( 3 ) >> > e array ( [ [ 1 . , 0 . , 0 . ] , [ 0 . , 1 . , 0 . ] , [ 0 . , 0 . , 1 . ] ] ) >> > e . shape ( 3 , 3 ) 建立一个一维矩阵b, b.shape 为矩阵的长度 >> > b = array ( [ 1 , 2 , 3 , 4 ] ) >> > b . shape ( 4 , ) #可以简写 >> > shape ( [ 1 , 2 , 3 , 4 ] ) ( 4 , ) >> > 建立一个4×2的矩阵c, c.shape[1] 为第一维的长度,c.shape[0] 为第二维的长度。 >> > c = array ( [ [ 1 , 1 ] , [ 1 , 2 ] , [ 1 , 3 ] , [ 1 , 4 ] ] ) >> > c . shape ( 4 , 2 ) >> > c . shape [ 0 ] 4 >> > c . shape [ 1 ] 2 一个单独的数值,返回值为空 >> > shape

Opencv中Mat图的长、宽、行、列以及图像像素的概念问题

廉价感情. 提交于 2020-01-03 03:55:38
今天在看矩形滤波的时候忽然脑子短路,把一些概念全弄混了,现总结一下,以便下次再混的时候可以参考确认下,自己的理解,有错的地方还请指正。 首先,在Opencv2中基本上都是用的Mat来表示图像了,C++的函数调用中基本上也都是Mat图,从根本上说,一张图像是一个由数值组成的矩阵,矩阵的每一个元素代表一个像素。对于灰度图像而言,像素有8位无符号数表示,其中0代表黑色,255代表白色。那么矩阵和图像间到底是一个什么样的关系呢。 第一:Mat图有行和列,即cv::Mat中有公有成员变量cols和rows,注意,这里的cols就是图像的宽度width,rows就是图像的高度height。这个width和height我们可以在其它Opencv的成员中得到,比如矩形Rect,而矩形Rect就是一个经常会用到的结构了,我自己接触到的就包括鼠标选择矩形区域、框住目标的矩形区域、滤波器矩形模版、目标的矩形特征、矩形内的运算等等。可以说Rect是一个非常常用的结构,也是Opencv里非常有用的一个结构,本质上矩形区域就是图像的一个子部分,或者说图像矩阵的一个子矩阵。 这里我引用《OpenCV学习笔记(四十一)——再看基础数据结构core》中关于Rect的介绍,Rect_类有些意思,成员变量x、y、width、height,分别为左上角点的坐标和矩形的宽和高。常用的成员函数有Size(

利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

时光总嘲笑我的痴心妄想 提交于 2020-01-03 02:33:16
概念理解 索引 即通过一个无符号整数值获取数组里的值。 切片 即对数组里某个片段的描述。 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为array[index1:index2],意思是从index1索引位置开始,到index2索引(不包括index2)位置结束的一段数组。例如: 当把一个值赋值为一个切片时,该值会作用于此数组片段里每一个元素,例如: 二维数组 二维数组的索引 当以一维数组的索引方式访问一个二维数组的时候,获取的元素不在是一个标量而是一个一维数组。例如: 既然二维数组的索引返回是一维数组,那么就可以按照一维数组的方式访问其中的某个标量了,例如: 二维数组的切片 既然二维数组的索引对应的是一维数组,则二维数组的切片是一个由一维数组组成的片段: 多维数组 多维数组的索引 在一维数组里,单个索引值返回对应的标量; 在二维数组里,单个索引值返回对应的一维数组; 则在多维数组里,单个索引值返回的是一个纬度低一点的数组,例如: 布尔值索引 布尔值索引指的是一个由布尔值组成的数组可以作为一个数组的索引,返回的数据为True值对应位置的值,例如: 花式索引 花式索引指的是用整数数组进行索引。例如: 接下来一篇随笔内容是:利用Python进行数据分析(6) NumPy基础: ndarray矢量运算