数组公式

opencv归一化函数normalize详解

核能气质少年 提交于 2019-12-08 02:32:09
opencv 2 归一化函数normalize详解 1. 归一化定义与作用 归一化 就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。 归一化的目的 简而言之,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。 在使用机器学习算法的数据预处理阶段,归一化也是非常重要的一个步骤。例如在应用SVM之前,缩放是非常重要的。Sarle的神经网络FAQ的第二部分(1997)阐述了缩放的重要性,大多数注意事项也适用于SVM。缩放的最主要优点是能够避免大数值区间的属性过分支配了小数值区间的属性。另一个优点能避免计算过程中数值复杂度。因为关键值通常依赖特征向量的内积(inner products),例如,线性核和多项式核,属性的大数值可能会导致数值问题。我们推荐将每个属性线性缩放到区间[-1,+1]或者[0, 1]。 当然,我们必须使用同样的方法缩放训练数据和测试数据。例如,假设我们把训练数据的第一个属性从[-10,+10]缩放到[-1,

opencv笔记(二十八)——OpenCV中矩阵的归一化

匆匆过客 提交于 2019-12-08 02:28:14
1. 归一化定义与作用 归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。 归一化的目的简而言之, 即归一化数据 。是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。 图像处理中,图片像素点单通道值一般是[0-255]的unsigned char类型,将其转化到[0,1]之间,更方便计算,这就需要用到矩阵的归一化运算。 注 : normalize的原矩阵必须是单通道(src.channel==1) ,函数执行完,无论之前是否初始化结果矩阵,结果矩阵的大小和类型与原矩阵相同。 在使用机器学习算法的数据预处理阶段,归一化也是非常重要的一个步骤。例如在应用SVM之前,缩放是非常重要的。Sarle的神经网络FAQ的第二部分(1997)阐述了缩放的重要性,大多数注意事项也适用于SVM。缩放的最主要优点是能够避免大数值区间的属性过分支配了小数值区间的属性。另一个优点能避免计算过程中数值复杂度。因为关键值通常依赖特征向量的内积

动态规划&&状压

北城余情 提交于 2019-12-06 14:07:21
目录 一、动态规划 案例一、简单的一维 DP 二、状态压缩 UVA1099 一、动态规划 动态规划,无非就是利用 历史记录 ,来避免我们的重复计算。而这些 历史记录 ,我们得需要一些 变量 来保存,一般是用 一维数组 或者 二维数组 来保存。下面我们先来讲下做动态规划题很重要的三个步骤, 如果你听不懂,也没关系,下面会有很多例题讲解,估计你就懂了。之所以不配合例题来讲这些步骤,也是为了怕你们脑袋乱了 第一步骤 :定义 数组元素的含义 ,上面说了,我们会用一个数组,来保存历史数组,假设用一维数组 dp[] 吧。这个时候有一个非常非常重要的点,就是规定你这个数组元素的含义,例如你的 dp[i] 是代表什么意思? 第二步骤 :找出 数组元素之间的关系式 ,我觉得动态规划,还是有一点类似于我们高中学习时的 归纳法 的,当我们要计算 dp[n] 时,是可以利用 dp[n-1],dp[n-2].....dp[1],来推出 dp[n] 的,也就是可以利用 历史数据 来推出新的元素值,所以我们要找出数组元素之间的关系式,例如 dp[n] = dp[n-1] + dp[n-2],这个就是他们的关系式了。而这一步,也是最难的一步,后面我会讲几种类型的题来说。 学过动态规划的可能都经常听到 最优子结构 ,把大的问题拆分成小的问题,说时候,最开始的时候,我是对 最优子结构 一梦懵逼的。估计你们也听多了

排序算法之——归并排序和快速排序

最后都变了- 提交于 2019-12-06 10:59:24
冒泡排序、插入排序、选择排序这三种算法的时间复杂度都为 \(O(n^2)\) ,只适合小规模的数据。今天,我们来认识两种时间复杂度为 \(O(nlogn)\) 的排序算法——归并排序(Merge Sort)和快速排序(Quick Sort),他们都用到了 分治思想 ,非常巧妙。 1. 归并排序(Merge Sort)? 1.1. 归并排序算法实现 归并排序 的核心思想其实很简单,如果要排序一个数组,我们先把数组从中间分成前后两部分,然后分别对前后两部分进行排序,再将排好序的两部分数据合并在一起就可以了。 归并排序使用的是分治思想,分治也即是分而治之,将一个大问题分解为小的子问题来解决。分治算法一般都是用递归来实现的。 分治是一种解决问题的处理思想,递归是一种编程技巧 。 如果要对数组区间 [p, r] 的数据进行排序,我们先将数据拆分为两部分 [p, q] 和 [q+1, r],其中 q 为中间位置。对两部分数据排好序后,我们再将两个子数组合并在一起。当数组的起始位置小于等于终止位置时,说明此时只有一个元素,递归也就结束了。 递推公式: merge_sort(p…r) = merge(merge_sort(p…q), merge_sort(q+1…r)) 终止条件: p >= r 不用再继续分解 对两个子数组进行合并的过程如下所示,我们先建立一个临时数组

python-前端JS

♀尐吖头ヾ 提交于 2019-12-06 10:23:23
JavaScript JS(JavaScript)和 JAVA是没有任何关系的,使前端语言动作的基础 特点 :现在对前端所有的动作操作都是基于JS操作的。是一门逻辑语言 简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。 解释执行( 解释语言 ):事先不编译、逐行执行、无需进行严格的变量声明。 基于对象:内置大量现成对象,编写少量程序可以完成目标 JS的开发周期为10天。 Node.js就是基于Chrome V8 引擎的 JavaScript 运行环境。 作用 : 对于前端页面的展示开发 语法逻辑不够严谨 Javascript主要组成: ECMAscript js的标准语法 BOM (Browser Object Mode) 浏览器对象模型 JS提供的一种操作浏览器的一种语法 DOM (Document Object Mode) 文档对象模型 JS的引入 JS的引入有两种方法: 文件引入(在另外一个单独的文件中写JS代码,然后在需要的HTML代码中 推荐在head标签中引入JS,或者最后再引入): <script src="./demo1.js"></script> 直接写在script标签中 <script>console.log('cc')</script> 控制台输出 console.log 在控制台输出内容: console.log('ccc')

Leetcode简单题41~60

╄→尐↘猪︶ㄣ 提交于 2019-12-06 06:34:03
41.思路:分别在列表中存放两个单词的索引,再用两次遍历求距离# 给定一个单词列表和两个单词 word1 和 word2,返回列表中这两个单词之间的最短距离。# 示例:# 假设 words = ["practice", "makes", "perfect", "coding", "makes"]# 输入: word1 = “coding”, word2 = “practice”# 输出: 3# 输入: word1 = "makes", word2 = "coding"# 输出: 1#meclass Solution0(object): def shortestDistance(self, words, word1, word2): result = [] idwords1 = [id_ for id_,word in enumerate(words) if word == word1] idwords2 = [id_ for id_,word in enumerate(words) if word == word2] for id1 in idwords1: for id2 in idwords2: result.append(abs(id1-id2)) return min(result)#other 复杂度O(n)class Solution1(object): def

C语言程序设计100例之(18):火柴棒等式

房东的猫 提交于 2019-12-05 13:55:56
例18 火柴棒等式 用n根火柴棍,可以拼出多少个形如“A+B=C”的等式?等式中的A、B、C是用火柴棒拼出的整数(若该数非零,则最高位不能是0)。用火柴棒拼数字0~9的拼法如图1所示。 图1 用火柴棒拼的数字0~9 另外,加号与等号各自需要两根火柴棒。 编写一个程序,输入火柴棒的根数n,输出能拼成的不同等式的数目。说明:(1)如果A≠B,则A+B=C与B+A=C视为不同的等式(A、B、C>=0);(2)A和B最多为3位数;(3)n根火柴棒必须全部用上。 例如,输入18,输出应为9。即18根火柴棒可以拼出0+4=4、0+11=11、1+10=11、2+2=4 、2+7=9、4+0=4、7+2=9、10+1=11、11+0=11这9个等式。 (1)编程思路1。 用一个数组保存0~9每个数字所需火柴棒数,另外加号和等号需用去4根。 编写一个函数int needMatch(int num)用于统计数 num 需要的火柴棒个数。 程序中用二重循环对A(0~999)和B(0~999)的取值组合进行穷举,调用函数needMatch(A)、needMatch(B)和needMatch(A+B)分别返回等式中三个数所需的火柴棒的数目,若needMatch(A)+needMatch(B)+needMatch(A+B)+4==n,则计数。 (2)源程序1。 #include <stdio.h> int

LeetCode|413. Arithmetic Slices

我怕爱的太早我们不能终老 提交于 2019-12-05 13:39:20
A zero-indexed array A consisting of N numbers is given. A slice of that array is any pair of integers (P, Q) such that 0 <= P < Q < N. A slice (P, Q) of array A is called arithmetic if the sequence: A[P], A[p + 1], ..., A[Q - 1], A[Q] is arithmetic. In particular, this means that P + 1 < Q. The function should return the number of arithmetic slices in the array A. Example: A = [1, 2, 3, 4] return: 3, for 3 arithmetic slices in A: [1, 2, 3], [2, 3, 4] and [1, 2, 3, 4] itself. Solution 本题是一道动态规划问题。我们用动态规划的思想来解答这个问题。 这道题是要找出一个等差数列中有多少子等差数列。那么我们可以提出两个问题。 什么是等差数列以及等差数列最少需要几个数 一个任意数组有多少个子数组

BZOJ3160 万径人踪灭

自古美人都是妖i 提交于 2019-12-05 10:43:06
给定一个长度为 $n$ 的 01 串 $s$,求它的非连续回文子串的数量。 题目链接 首先考虑如何求连续回文子串的数量。 一种可行的方法是使用 Manacher 算法,它设计的初衷是用于求最长回文子串,但在实现的过程中,它求出了一个数组 $R_i$ 代表将原串每两个相邻的字符中间插入分隔符 ‘#’ 之后,以位置 $i$ 为对称轴的最长对称长度,这就意味着以 $i$ 为对称轴有一共有 $leftlfloorfrac {R_i}2 rightrfloor$ 个回文串。这一步的时间复杂度为 $O(N)$. 接下来考虑如何求回文子串的数量。 假定有一个回文子串对称轴为 $i$, 那么这个子串上的任何两个对应的字符 $u,v$ 的下标 $u_p,v_p$ 一定满足 $u_p+v_p=2i$. 如果我们能够求得一个数组 $f$, 其中 $f_i$ 代表有多少对字符关于 $i$ 对称,那么 $i$ 这个对称轴对答案的贡献就是 $2^{f_i}-1$, 因为每对字符都有选和不选两种选择,最终减去空串。 我们在求多项式的卷积的时候,公式为 $C_i=sum_{j+k=i}A_jB_k$, 与此处的情形非常相似,我们处理一个数组 $a$, 其中 $a_i=[s_i=a]$. 然后求 $a$ 和自己的卷积,然后再处理一个数组 $b$, 其中 $b_i=[s_i=b]$. 然后求 $b$ 和自己的卷积

MNIST 手写数字识别(一)

不羁的心 提交于 2019-12-05 09:04:02
MNIST 手写数字识别模型建立与优化 本篇的主要内容有: TensorFlow 处理MNIST数据集的基本操作 建立一个基础的识别模型 介绍 S o f t m a x Softmax S o f t m a x 回归以及交叉熵等 MNIST是一个很有名的手写数字识别数据集(基本可以算是“Hello World”级别的了吧),我们要了解的情况是,对于每张图片,存储的方式是一个 28 * 28 的矩阵,但是我们在导入数据进行使用的时候会自动展平成 1 * 784(28 * 28)的向量,这在TensorFlow导入很方便,在使用命令下载数据之后,可以看到有四个数据集: 模型 来看一个最基础的模型建立,首先了解TensoFlow对MNIST数据集的一些操作 1.TensorFlow 对MNIST数据集的操作 下载、导入 from tensorflow.examples.tutorials.mnist import input_data # 第一次运行会自动下载到代码所在的路径下 mnist = input_data.read_data_sets('location', one_hot=True) # location 是保存的文件夹的名称 打印MNIST数据集的一些信息,通过这些我们就可以知道这些数据大致如何使用了 # 打印 mnist 的一些信息 from tensorflow