对角线

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

南笙酒味 提交于 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

XDOJ—190—3*3矩阵对角线求和

家住魔仙堡 提交于 2019-12-30 02:44:54
XDOJ—190—3*3矩阵对角线求和 2019.12.29日 3*3矩阵对角线求和 时间限制:1S 内存限制:10000Kb 问题描述: 求一个的整型矩阵对角线元素之和。 输入说明: 输入3*3的整型矩阵。 输出说明: 输出一个整数,即对角线的和。 输入样例: 1 2 3 4 5 6 7 8 9 输出样例: 15 # include <stdio.h> # define n 3 int main ( ) { int i , j , a [ n ] [ n ] , sum = 0 ; for ( i = 0 ; i < n ; i ++ ) for ( j = 0 ; j < n ; j ++ ) { scanf ( "%d" , & a [ i ] [ j ] ) ; } for ( i = 0 ; i < n ; i ++ ) sum + = a [ i ] [ i ] ; printf ( "%d\n" , sum ) ; return 0 ; } 来源: CSDN 作者: 小眠眠 链接: https://blog.csdn.net/qq_45550139/article/details/103747014

组合数学之格路径和Schroder数

為{幸葍}努か 提交于 2019-12-26 23:52:44
参考博客:https://www.cnblogs.com/rhythmic/p/5988529.html 1.格路径 假设向上走为H,向右走为R,则从(r,s)到(p,q)的一条格路径为: H,R,H,R,H,R,H,R. 即从p+q-r-s中选p-r个H。 因此,从( r ,s )到(p,q)的矩形格路径的数目是等于二项式系数: 2.下对角线格路径 从(r,s)到(p,q)但不能经过x=y对角线的格路径叫做下对角线格路径。 p<q时,是不存在下对角线格路径。因此只考虑p>=q的情况。 当从(0,0)到(n,n)时,下对角线格路径数正是Catalan数。 当从(0,0)到(p,q)采用容斥原理,即不考虑x=y这条线的格路径数-经过x=y的格路径数L 很简单,就是下移后的路径与(1,0)到(p,q)的路径数相同。 蓝色的路径==紫色的路径 来源: CSDN 作者: 木子若鱼 链接: https://blog.csdn.net/jane_6091/article/details/103722957

### 1120:同行列对角线的格

99封情书 提交于 2019-12-22 23:31:06
1120:同行列对角线的格 【题目描述】 输入三个自然数N,i,j(1≤i≤n,1≤j≤n),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。 如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子, 当n=4,i=2,j=3时,输出的结果是: (2,1) (2,2) (2,3) (2,4) 同一行上格子的位置 (1,3) (2,3) (3,3) (4,3) 同一列上格子的位置 (1,2) (2,3) (3,4) 左上到右下对角线上的格子的位置 (4,1) (3,2) (2,3) (1,4) 左下到右上对角线上的格子的位置 【输入】 一行,三个自然数N,i,j,相邻两个数之间用单个空格隔开(1≤N≤10)。 【输出】 第一行:从左到右输出同一行格子位置; 第二行:从上到下输出同一列格子位置; 第三行:从左上到右下输出同一对角线格子位置; 第四行:从左下到右上输出同一对角线格子位置。 其中每个格子位置用如下格式输出:(x,y),x为行号,y为列号,采用英文标点,中间无空格。相邻两个格子位置之间用单个空格隔开。 【输入样例】 4 2 3 【输出样例】 (2,1) (2,2) (2,3) (2,4) (1,3) (2,3) (3,3) (4,3) (1,2) (2,3) (3,4) (4,1) (3,2) (2,3) (1,4

分辨率、DPI、PPI和屏幕尺寸,你都知道是啥么?

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-18 18:36:25
分辨率、DPI、PPI和屏幕尺寸 分辨率 DPI/PPI 坑爹的屏幕尺寸 Reference 手机开发中不免会遇到分辨率、DPI、PPI和屏幕尺寸等术语,那就弄弄清楚这些概念的真正含义。 分辨率 分辨率这个词在很多地方都有,比如相机、视频、扫描仪。这里说的就是显示器的分辨率。显示器是由一个个像素点(pixel)所组成的,一般所说的显示器分辨率是1280x720就表示这个显示器水平方向有1280个像素,垂直方向上有720个像素。但是并非分辨率越高屏幕显示效果越好,还需要根据屏幕的大小来决定。也就是要看像素的密度(pixel density),这个指标就是DPI(Dots Per Inch)或者PPI(Pixels Per Inch),即英尺屏幕上像素或者是点的个数。 DPI/PPI DPI = Dots Per Inch PPI = Pixel Per Inch 两个参数的区别就在于Dot和Pixel的区别,dot值的是显示器上每一个物理的点,而pixel指的是屏幕分辨率中的最小单位。这个两个难道会不一样么?会!当一个像素需要多于一个屏幕上的物理点来显示的时候dot就跟pixel不一样了。这个有另一个叫法叫做dppx(dot per pixel),即每个像素中有多少个点。大部分的显示器中一个像素即一个点,但目前一些比较好的屏幕和一些手机屏幕中dppx会大于1。比如说Mac

10.基础编程:求一个3*3矩阵对角线元素之和。

眉间皱痕 提交于 2019-12-16 02:29:51
1.代码: package demo10; //求一个3*3矩阵对角线元素之和。 public class Demo10 { public static void main(String[] args) { int[][] arr = new int[3][3]; arr[0] = new int[]{1,2,3}; arr[1] = new int[]{4,5,6}; arr[2] = new int[]{7,8,9}; sum1(arr); sum2(arr); } private static void sum2(int[][] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) { for (int i1 = 0; i1 < arr[i].length; i1++) { if(i + i1 == arr.length + 1){ sum += arr[i][i1]; } } } System.out.println("次对角线的和为:"+sum); } private static void sum1(int[][] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) { for (int i1 = 0; i1 < arr[i].length; i1+

【Python学习之路】Numpy 对角线

我的未来我决定 提交于 2019-12-16 00:27:34
对角线 这里,使用与之前不同的导入方法: import numpy as np 使用numpy中的函数前,需要加上 np. : a = np . array ( [ 11 , 21 , 31 , 12 , 22 , 32 , 13 , 23 , 33 ] ) a . shape = 3 , 3 a array([[11, 21, 31], [12, 22, 32], [13, 23, 33]]) 查看它的对角线元素: a . diagonal ( ) array([11, 22, 33]) 可以使用偏移来查看它的次对角线,正数表示右移,负数表示左移: a . diagonal ( offset = 1 ) array([21, 32]) a . diagonal ( offset = - 1 ) array([12, 23]) 可以使用花式索引来得到对角线: i = [ 0 , 1 , 2 ] a [ i , i ] array([11, 22, 33]) 可以更新对角线的值: a [ i , i ] = 2 a array([[ 2, 21, 31], [12, 2, 32], [13, 23, 2]]) 修改次对角线的值: i = np . array ( [ 0 , 1 ] ) a [ i , i + 1 ] = 1 a array([[ 2, 1, 31], [12, 2,

求一个3*3矩阵对角线元素之和

我们两清 提交于 2019-12-15 04:48:22
求一个3*3矩阵对角线元素之和 Problem Description 给定一个3*3的矩阵,请你求出对角线元素之和。 Input 按照行优先顺序输入一个3*3矩阵,每个矩阵元素均为整数。 Output 从左下角到右上角这条对角线上的元素之和 Sample Input 1 2 3 3 4 5 6 0 1 Sample Output 13 # include <stdio.h> # include <stdlib.h> int main ( ) { int a [ 3 ] [ 3 ] , i , j , sum = 0 ; for ( i = 0 ; i < 3 ; i ++ ) { for ( j = 0 ; j < 3 ; j ++ ) { scanf ( "%d" , & a [ i ] [ j ] ) ; if ( i + j == 2 ) sum + = a [ i ] [ j ] ; } } printf ( "%d\n" , sum ) ; return 0 ; } 来源: CSDN 作者: 咕咕咕咕咕~ 链接: https://blog.csdn.net/qq_45666654/article/details/103533245

C++实验八:魔方问题

情到浓时终转凉″ 提交于 2019-12-14 09:46:08
首先现在看到题目的我一脸懵。毕竟是最后一个实验呀。还不用写实验报告,,,看正题: 魔方问题 : 编写函数createArithmeticSeq(),提示用户输入两个数字first和diff。然后函数创建一个按算术顺序排列的、有16个元素的数组并输出该算术序列。例如,如果first=21,diff=5,那么算术序列是21 26 31 36 41 ……96。 编写函数matricize(),它将一个有16个元素的一维数组和一个4行4列的二维数组作为参数。(其它的值,例如数组的大小,也必须作为参数来传递。)该函数将一维数组的元素放入到二维数组中。例如,如果A是在a中创建的一维数组,B是二维数组,那么将A的元素放入到B中后,数组B是: 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 编写一个函数reverseDiagonal(),倒转二维数组的两个对角线。例如,如果二维数组如b所示,那么在倒转两个对角线后,二维数组是: 96 26 31 81 41 71 66 56 61 51 46 76 36 86 91 21 编写一个函数magicCheck(),它将一个有16个元素的一维数组、一个4行4列的二维数组以及数组的大小作为参数。通过将一维数组的所有元素相加后被4除,该函数得到了magicNumber。该函数然后将每一行

Problem H: 矩阵对角线求和

一笑奈何 提交于 2019-12-11 05:57:05
Problem H: 矩阵对角线求和 Description 输入一个n×n的整数矩阵,分别计算两个对角线的和。 Input 输入矩阵的阶数n(n≤10),另起一行后输入一个n×n的整数矩阵,每列数据用空格隔开,每行数据用回车分隔。 Output 输出主对角线和副对角线的和。 Sample Input 3 1 2 3 3 2 1 9 7 8 Sample Output 11 14 # include <stdio.h> int main ( ) { int n , m , i , j , k , a [ 30 ] [ 30 ] , b [ 30 ] ; while ( scanf ( "%d" , & n ) != EOF ) { int sum1 = 0 , sum2 = 0 ; for ( i = 0 ; i < n ; i ++ ) { for ( j = 0 ; j < n ; j ++ ) { scanf ( "%d" , & a [ i ] [ j ] ) ; } } for ( i = 0 ; i < n ; i ++ ) { for ( j = i ; j < i + 1 ; j ++ ) { sum1 + = a [ i ] [ j ] ; } } for ( i = 0 ; i < n ; i ++ ) { for ( j = n - 1 - i ; j > n