精华内容
下载资源
问答
  • c语言之参数概念

    千次阅读 2021-03-09 13:08:30
    定义:全称"形式参数",用于定义方法的时候使用的参数,目的用来接收调用该方法时传递的参数。 说明:只有在被调用时才会分配内存单元,在调用结束,即刻释放所分配的内存单元。因此,只在方法内才有效。 2.2 实参 ...

    2.1 形参

    定义:全称"形式参数",用于定义方法的时候使用的参数,目的用来接收调用该方法时传递的参数。
    说明:只有在被调用时才会分配内存单元,在调用结束,即刻释放所分配的内存单元。因此,只在方法内才有效。

    2.2 实参

    定义:全称"实际参数",用于调用时传递给方法的参数,即传递给被调用方法的值
    说明:预先创建并赋予确定值。

    2.3 传值调用

    • 传值调用中,传递的参数类型是为常用的基本数据类型,参数视为形参,这里形参是局部变量。

    2.4 引用调用

    引用调用中,在Java中,传递的参数类型是为引用数据类型,参数视为实参。在调用机制里,将实参的地址传递给了形参,形参上的改变实际上都发生在实参上,可以视为全局变量。

    2.5 全局变量

     全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束。
     注意事项:
         当局部变量与全局变量重名时,起作用的是局部变量。
    

    2.6 局部变量

       在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。
    

    在这里插入图片描述

    展开全文
  • 【卷积神经网络中涉及的训练参数与超参数概念理解】文前白话网络超参数1. 输入图像大小2. 卷积层超参数卷积核尺寸、卷积核数量、卷积的步长3. 池化层超参数池化核尺寸、池化步长、池化方式4. 网络训练、优化超参数...

    文前白话

    在深度学习领域,参数(parameter)和超参数(hyperparameter)是两个相似但本质不同的概念。超参数是用来确定模型的一些参数,一般是根据经验和验证集效果确定的变量,超参数不同,模型是不同的。在卷积神经网络中,超参数有学习速率、迭代次数、层数、每层神经元的个数、批大小(batch size)及损失函数中各部分的权值等。而参数是可以根据模型自身的算法,通过数据迭代自动学习出的变量,如卷积核的权值w、偏置b等。如果将态积神经网络的训练看成多项式拟合问题,那么超参数是最高项次数,参数是各次项的系数。其中,参数可以用最小二乘法求解而超参数只能先人工设定,再根据验证集上的效果选取最优的

    在这里插入图片描述

    Ⅰ、 网络超参数

    创建整个神经网络模型前,首先要指定与网络结构相关的超参数,如输入图像大小、卷积层和池化层以及网络训练、优化相关超参数。

    1. 输入图像大小

    卷积神经网络结构是固定的,当处理不同尺寸图像时,卷积层的输出特征图尺寸也会随着输入图像大小而改变。尽管这对于分割问题的全卷积结构或检测问题的Rol pooling结构没有影响,但是会造成分类问题的全连接层输入维度不一致,因此需要在数据集处理中将图像尺寸调整到固定大小,使不同输入图像获得相同规格的输出。
    图像大小的选择要考虑多方面因素,为充分利用GPU效率,一些通用数据集的图像尺寸是固定的,如CIFAR-10中的图像为32×32像素,STL数据集中的图像为96×96像素。
    AlexNet 和VGG等经典模型的官方版本输入图像大小为224×224像素,如果要使用其全部参数,可选择默认大小、否则无法使用其全连接层参数,需要重新定义全连接层甚至卷积层。卷积神经网络的本质是模拟人脑对图像的感知,更高分辨率的图像有利于提升学习效率,但是,会增加全连接层单元的个数,从而大大增加计算量,这时可以增加1个卷积池化层,在增加表达能力的情况俩下减少参数数量

    2. 卷积层超参数

    卷积核尺寸、卷积核数量、卷积的步长

    卷积层的超参数包括卷积核尺寸、数量及卷积的步长等。通常认为较小尺寸的卷积核能够在相同参数数量下增加网络容量和模型复杂程度,并减少卷积核个数,因此经典的网络如LeNet-5、VGG-19、Inception 网络使用3×3、5×5甚至1×x1结构,而在实践中最常用的尺寸为3×3、5x5。也有工作使用不同尺寸卷积操作并联,提取不同分辨率特征。

    由于卷积操作对图像的边界有影响,因此在卷积前通常进行填充操作,可以充分利用图像的边缘信息,搭配合适的卷积步长以便控制图像输出大小,避免随着网络深度的增加,图像尺寸急剧下降。
    卷积的步长主要用于控制输出分辨率,如果填充操作使图像大小不变,步长为2的卷积输出为输入的1/4(长宽皆为1/2),对于一些需要降分辨率操作非常有效。
    空洞卷积(dilated convolution)是一种有效的减少卷积参数的手段,设置了固定空洞大小的卷积核在前后卷积层级联,可以大大增加感受野,达到大的卷积核无法获得的效果。

    卷积操作的输出尺寸不大于输入尺寸,而在图像到图像的生成任务中却需要增大图像大小,此时可以采用反卷积(又称转置卷积,transposed convolution)。反卷积本质上是一种分数步长卷积,是将输入图像内插变大后按卷积步骤的操作,内插也是超参数。

    3. 池化层超参数

    池化核尺寸、池化步长、池化方式

    池化层一般没有参与运算的参数,它的超参数主要是池化核尺寸、池化步长及池化方式
    池化的目的保留大的响应值并降低分辨率,与卷积层类似,池化核尺寸一般也设定为此较小的值,如2×2、3×3等,常用的是尺寸为2x2、步长为2。此外,池化方式也是可选超参数,
    “用的有最大池化(Mx Poling)、平均池化(Avamge Pooling)、K-iMax Poling等

    Ⅱ 、网络训练、优化超参数

    1、Epoch、Batch、Batch_size、Iteration(迭代)、学习率 Ir

    卷积神经网络训练可视为最小化损失函数的过程,训练网络需要初始化参数,设置合适的学习率,选择合适的批量归一化方法,再根据优化算法和策略不断迭代、更新参数,涉及的超参数有:Epoch(回合)、Batch(批)、Batch_size、iteration(迭代)、学习率 lr 等。

    Epoch(回合): 将全部的训练集数据投入神经网络模型完成一次完整的训练,这个过程称为一个Epoch。简单理解epoch的值就是整个训练集数据被输入神经网络训练了几次。

    随着 Epoch 数量增加,神经网络中的权重的更新次数也增加,网络训练的结果会有欠拟合或者过拟合

    Batch:使用训练集中的一小部分数据样本对模型权重进行一次反向传播的参数更新,这一小部分样本数据被称为:“一批数据”

    因为算力或者其他原因,不能将数据一次性通过神经网络的时候,就需要将数据集分成几个 batch,也就有了Batch_Size(一次投入网络模型中的图片数)

    batch_size主要用于批量梯度下降算法(Batch Gradient Descent)中,批量梯度下降算法是每次迭代都遍历批中的所有样本,由批中的样本共同决定最优的方向,Batch_Size 正是批中的样本数量。

    在训练深度神经网络时,训练数据的规模通常都比较大,如果在梯度下降时,每次迭代都要计算整个训练数据上的梯度,这就需要比较多的计算资源.另外大规模训练集中的数据通常会非常冗余,也没有必要在整个训练集上计算梯度.因此,在训练深度神经网络时,经常使用小批量梯度下降法(Mini-Batch Gradient Descent).

    对梯度下降优化算法不同方式的理解:
    每次的参数更新的方式不同

    基本梯度下降(BGD),基本的梯度下降算法使用所有的样本计算梯度,称为批量梯度下降(Batch Gradient Descent)。BGD一次迭代是 对所有样本进行计算,由全数据集确定的负梯度方向能够更好地代表 样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,BGD一定能够得到全局最优。然而在深度学习问题中,通常数据集很大,计算成本很高,并且所有样本取平均的负梯度方向通常使得收敛很慢,可能会陷人局部极小。不支持在线学习。

    随机梯度下降( Stochastic Gradient Descent. SGD )随机梯度下降在每轮迭代中随机使用1个样本xi来计算梯度并进行参数更新: 由于只在单个样本上计算梯度,使得每轮参数更新大大加快,但同时增加了不确定性,可能会陷人局部极小,也可能会跳出局部极小,搜索过程随机性大。造成收敛性能不太好,就会在最优点附近晃来晃去,获取不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。
    小批量梯度下降(Mini-Batch GD)
    这种方法把数据分为若干个批,按批来更新参数,每次用1个批量(batch sie )的样本计算梯度并更新,一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。是BGD和SGD的折中,Mini-Batch GD使得每轮迭代的计算量较少,训练时目标函数下降的随机性减小, batch size 可在收敛速度和内存、显存消耗上灵活选择,因此是深度学习的最常用策略。

    梯度下降法的几种方式的根本区别就在于上面公式中的 Batch Size不同:

    梯度下降方式训练集样本数Batch_sizeNumber of banchs
    基本梯度下降(BGD)NN1
    随机梯度下降(SGD)N1N
    小批量梯度下降(Mini-Batch)NBN/B or N/B + 1
    N / B + 1 是针对未整除的情况; 整除则是 N / B

    Batch_Size的设置与参考因素:

    在计算机硬件显存能允许的情况下,Batch_Size数值大,收敛速度是比较快,但有时会陷入局部最小的情况;Batch_Size数值小,引入的随机性会更大些,有可能会有更好的效果,但是收敛速度会慢一些;当Batch_Size太小,而类别数又比较多的时候,会导致loss函数震荡而不收敛。
    具体调试过程中,一般可根据GPU显存,设置为最大,Batch_Size数值通常设为2的n次幂,常用的包括64,128,256。实际训练时候,可以选择一部分数据,跑几个Batch看看loss是否在变小,再选择合适的Batch_Size。每完成Batch_Size个样本,网络会更新一次参数。

    iteration(迭代): 训练时,1个batch训练图像通过网络训练一次​(一次前向传播+一次后向传播),每迭代一次权重更新一次;测试时,1个batch测试图像通过网络一次​(一次前向传播)
    iteration(迭代)就是使用一个batch数据对模型进行一次参数更新的过程

    比如对于一个有 5000 个训练样本的数据集。将 5000 个样本分成大小为 100 的 batch(batch_size = 100, number of bachs = 5000/100 = 50),那么完成一个 epoch 需要 50个 iteration。

    即是:1个epoch包含的iteration次数=样本数量/batch_size
    整体的迭代次数:iterations = epochs×(images / batch_size)

    小栗子理解:

    假如你的数据集训练集数据有11000张图片, 划分训练集(10000)和验证集(1000)。若选择Batch_size = 128 对网络模型进行训练,则有:

    • 1 个 Epoch 要投入网络训练的图片数量: 10000
    • 数据集对应的 Batch 数值: 10000/128 = 78 + 1 =79 (非整除)
    • 每个 Epoch 需要完成的 Batch 个数: 79
    • 每个 Epoch 具有的 Iteration 个数: 79
    • 每个 Epoch 中发生模型权重更新的次数:79
    • 训练 100 代后(Epoch = 100),模型权重更新的次数:79 * 100 = 7900

    学习率 lr

    学习率是神经网络优化时的重要超参数.在梯度下降法中,学习率的取值非常关键,学习率决定了参数移动到最优值的速度快慢,如果学习率过大,很可能会越过最优值导致函数无法收敛,甚至发散;反之,如果学习率过小,优化的效率可能过低,收敛速度太慢,也易使算法陷入局部最优。合适的学习率应该是在保证收敛的前提下,能尽快收敛

    常用的学习率调整方法包括学习率衰减、学习率预热、周期性学习率调整以及一些自适应调整学习率的方法,比如AdaGrad、RMSprop、AdaDelta等.自适应学习率方法可以针对每个参数设置不同的学习率。

    在小批量梯度下降法中,当批量大小设置较大时候,通常要配置较大的学习率。但是,在刚开始训练时,由于参数是随机初始化的,梯度也往往比较大,再加上较大的学习率,会使得训练不稳定。为了提高训练稳定性,我们可以在最初几轮迭代时,采用比较小的学习率,等梯度下降到一定程度后再恢复到初始的学习率,这种方法称为学习率预热(Learning Rate Waarmup)

    设置较好的learning rate,需要不断尝试。在一开始的时候,可以将其设大一点,这样可以使weights快一点发生改变,在迭代一定的epochs之后人工减小学习率。

    2.神经网络优化的改善方法

    改善神经网络优化的目标是找到更好的局部最小值和提高优化效率,目前比较有效的经验性改善方法通常分为以下几点:

    (1)使用更有效的优化算法,来提高梯度下降优化方法的效率和稳定性,此如动态学习率调整、梯度估计修正等。
    (2)使用更好的参数初始化方法数据预处理方法来提高优化效率。
    (3)修改网络结构来得到更好的优化地形(Optimization Landscape),比如使用ReLU激活函数、残差连接、逐层归一化等。
    优化地形:指在高维空间中损失函数的曲面形状,好的优化地形通常比较平滑。
    (4)使用更好的超参数优化方法
    通过上面的方法,我们通常可以高效地、端到端地训练一个深度神经网络。

    reference

    https://blog.csdn.net/yimingsilence/article/details/79217180
    https://blog.csdn.net/yudiemiaomiao/article/details/72391316
    https://blog.csdn.net/qq_36447181/article/details/80149590
    https://blog.csdn.net/qq_18668137/article/details/80883350
    https://zhuanlan.zhihu.com/p/29409502

    展开全文
  • 第一篇 理解统计学中的基本概念

    千次阅读 2020-12-22 18:52:37
    参数(parameter):用来描述总体特征的概括性数字度量 参数是研究者想要了解的总体某种特征值。我们所关心的参数常有总体平均数、标准差、总体比例等。 由于总体数据通常是不知道的。所以参数也是一个未知数。例如...

    统计学(stastics)是收集、分析和解释数据的科学。

    描述统计(descriptive statistics)是研究数据还搜集、整理和描述的统计分支。描述统计的内容包括取得所需要的数据、用图表形式对数据进行加工处理和显示,进而通过综合、概括与分析,得出反映研究现象的一般性特征。

    推断统计(inferential statistics)是研究如何利用样本数据来推断总体特征的统计学分支。(研究者所关心的是总体的某些特征,但是血多总体太大,无法对每个个提进行测量,例如,一个地区的人口,be可能一一测量每个人的特征,有时。我们要得到所需要的数据,往往需要破坏性实验,抽取部分样本推断总体)

    统计数据的类型

    统计数据是对现象进行测量的结果。例如,对经济活动总量进行测量可以得到国内生产总是(GDP)的数据,对股票变动水平变动的额测量可以得到股票价格指数的数据。由于使用测量尺度不同,统计数据可以分为不同类型。

    1 按照剂量尺度的不同可以将统计数据分为分类数据、顺序数据和数值型数据。分类数据(categoricaldata):只能归于某一类别的非数字型数据。

    分类数据是对事物进行分类的结果,数据表现为类别,是用文字来表述的。它由分类尺度计量形成的。例如,人口按性别分为男、女两类;企业按照经济性质分为国有、集体、私营、合资、独资企业等,这些均属于分类数据。为了统计上的简便我们可以用数字代码来表示各个类别,例如,用1表示“男性”,0表示“女性”。顺序数据(rank data):只能归于某一有序类别的非数字型数据。

    顺序数据也是对事物进行分类的结果,但这些类别是有序的。他是有顺序尺度计量形成的。例如,将产品分为一等品、二等品、三等品、次等品等;考试成绩

    展开全文
  • 统计学中基础概念说明

    千次阅读 2020-12-31 07:00:42
    6)pandas中计算分位数的函数:describe()x = pd.Series(np.arange(10,19)) x.describe() x = pd.Series(np.arange(10,20)) x.describe() 结果如下: 注意:describe()中可以传入percentiles参数,获取指定分位数的...

    1、什么是描述性统计?

    描述性统计,就是从总体数据中提取变量的主要信息(总和、均值等),从而从总体层面上,对数据进行统计性描述。在统计的过程中,通常会配合绘制相关的统计图来进行辅助。2、统计量

    描述性统计所提取的含有总体性值的信息,我们称为统计量。

    1)常用统计量* 频数与频率

    + 预数

    + 频率

    * 集中趋势分析

    + 均值

    + 中位数

    + 众数

    + 分位数

    * 离散程度分析

    + 极差

    + 方差

    + 标准差

    * 分布形状

    + 偏度

    + 峰度

    2)变量的类型* 类别变量

    + 无序类别变量

    + 有序类别变量

    * 数值变量

    + 连续变量

    + 离散型变量

    3)本文章使用的相关python库import numpy as np

    import pandas as pd

    import matplotlib as mpl

    import matplotlib.pyplot as plt

    import seaborn as sns

    import warnings

    from sklearn.datasets import load_iris

    from scipy import stats

    sns.set(style='darkgrid')

    mpl.rcParams['font.family'] = 'SimHei'

    mpl.rcParams['axes.unicode_minus'] = False

    warnings.filterwarnings('ignore')3、频率与频数

    1)频率与频数的概念数据的频数与频率适用于类别变量。

    频数:指一组数据中类别变量的每个不同取值出现的次数。

    频率:指每个类别变量的频数与总次数的比值,通常采用百分数表示。

    2)代码:计算鸢尾花数据集中每个类别的频数和频率iris = load_iris()

    # iris是一个类字典格式的数据,data、target、feature_names、target_names都是键

    display(iris.data[:5],iris.target[:5])

    # feature_names是每一列数据的特征名。target_names是鸢尾花的属种名

    display(iris.feature_names,iris.target_names)

    # reshape(-1,1)表示将原始数组变为1列,但是行数这里我写一个-1,表示系统

    # 会根据我指定的列数,自动去计算出行数。reshape(1,-1)含义同理

    dt = np.concatenate([iris.data,iris.target.reshape(-1,1)],axis=1)

    df = pd.DataFrame(dt,columns=iris.feature_names + ['types'])

    display(df.sample(5))

    # 计算鸢尾花数据集中每个类别出现的频数

    frequency = df['types'].value_counts()

    display(frequency)

    percentage = frequency / len(df)

    display(percentage)

    frequency.plot(kind='bar')

    结果如下:

    4、集中趋势

    1)均值、中位数、众数概念

    均值:即平均值,其为一组数据的总和除以数据的个数。

    中位数:将一组数据升序排列,位于该组数据最中间位置的值,就是中位数。如果数据个数为偶数,则取中间两个数值的均值。

    众数:一组数据中出现次数对多的值。

    2)均值、中位数、众数三者的区别

    ”数值变量”通常使用均值与中值表示集中趋势。

    “类别变量”通常使用众数表示集中趋势。

    计算均值的时候,因此容易受到极端值的影响。中位数与众数的计算不受极端值的影响,因此会相对稳定。

    众数在一组数据中可能不是唯一的。但是均值和中位数都是唯一的。

    在正态分布下,三者是相同的。在偏态分布下,三者会所有不同。

    3)不同分布下,均值、中位数、众数三者之间的关系

    记忆方法:哪边的尾巴长,就叫做 “X偏”。左边的尾巴长,就叫做“左偏”;右边的尾巴长,就叫做“右偏”。并且均值离着尾巴最近,中位数总是在最中间,众数离着尾巴最远。

    4)代码:计算鸢尾花数据集中花萼长度的均值、中位数、众数mean = df['sepal length (cm)'].mean()

    display(mean)

    median = df['sepal length (cm)'].median()

    display(median)

    # 由于series中没有专门计算众数的函数,因此需要我们统计频数最大的那些值

    s = df['sepal length (cm)'].value_counts()

    s = s[s.values == s.values[0]]

    s.index.tolist()

    t = s.index[0]

    t

    # scipy的stats模块中,可以计算众数

    from scipy import stats

    t = stats.mode(df['sepal length (cm)'])

    # 注意:t展示的类字典格式的数据类型,mode展示众数,count用于展示众数出现的次数

    display(t.mode,t.count)

    sns.distplot(df['sepal length (cm)'])

    plt.axvline(mean,ls='-',color='r',label='均值')

    plt.axvline(median,ls='-',color='g',label='中值')

    plt.axvline(t,ls='-',color='indigo',label='众数')

    plt.legend(loc='best')

    结果如下:

    5、集中趋势:分位数

    1)分位数的概念

    分位数:将数据从小到大排列,通过n-1个分位数将数据分为n个区间,使得每个区间的数值的个数相等(近似相等)。

    以四分位数为例,通过3个分位数,将数据划分为4个区间。(十分位数含义相同)

    第一个分位数成为1/4分位数(下四分位数),数据中有1/4的数据小于该分位数。

    第二个分位数成为2/4分位数(中四分位数,也叫中位数),数据中有2/4的数据小于该分位数。

    第三个分位数成为3/4分位数(下四分位数),数据中有3/4的数据小于该分位数。

    2)怎么求分位数

    给定一组数据(存放在数组中),我们要如何计算其四分位值呢?首先要明确一点,四分位值未必一定等同于数组中的某个元素。

    在Python中,四分位值的计算方式如下:

    ① 首先计算四分位的位置。

    q1_index=1+(n-1)*0.25

    q2_index=1+(n-1)*0.5

    q3_index=1+(n-l)*0.75

    其中,位置index从1开始,n为数组中元素的个数。

    ② 根据位置计算四分位值。

    如果index为整数(小数点后为0),四分位的值就是数组中索引为index的元素(注意位置索引从1开始)。

    如果index不是整数,则四分位位置介于ceil(index)与floor(index)之间,根据这两个位置的元素确定四分位值。

    3)分位数是数组中的元素的情况x = np.arange(10,19)

    n = len(x)

    # 计算每个分位数的位置,这个位置是从1开始的。但是数组元素索引从0开始的

    q1_index=1+(n-1)*0.25

    q2_index=1+(n-1)*0.5

    q3_index=1+(n-1)*0.75

    # 这里计算出来的数字是浮点类型,需要转化为小数,才能当作索引

    q1_index,q2_index,q3_index

    # 计算分位数

    index = np.array([q1_index,q2_index,q3_index]).astype(np.int32)

    index -= 1

    q = x[index]

    q

    结果如下:

    绘制图形:plt.figure(figsize=(15,4))

    plt.xticks(x)

    plt.plot(x,np.zeros(len(x)),ls='',marker='D',ms=15,label='元素值')

    plt.plot(x[index],np.zeros(len(index)),ls='',marker='X',ms=15,label='四分位值')

    plt.legend()

    结果如下:

    4)分位数不是数组中的元素的情况x = np.arange(10,20)

    n = len(x)

    # 计算每个分位数的位置,这个位置是从1开始的。但是数组元素索引从0开始的

    q1_index=1+(n-1)*0.25

    q2_index=1+(n-1)*0.5

    q3_index=1+(n-1)*0.75

    q1_index,q2_index,q3_index

    # 计算分位数

    index = np.array([q1_index,q2_index,q3_index])

    index

    left = np.floor(index).astype(np.int32)

    left

    right = np.ceil(index).astype(np.int32)

    right

    weight = np.modf(index)[0]

    weight

    q = x[left] + (x[right] - x[left]) *weight

    q

    结果如下:

    绘制图形:plt.figure(figsize=(15,4))

    plt.xticks(x)

    plt.plot(x,np.zeros(len(x)),ls='',marker='D',ms=15,label='元素值')

    plt.plot(q,np.zeros(len(q)),ls='',marker='X',ms=15,label='四分位值')

    plt.legend()

    for v in q:

    plt.text(v,0.01,v,fontsize=15)

    plt.legend()

    结果如下:

    5)numpy中计算分位数的函数:quantile()x = np.arange(10,19)

    np.quantile(x,[0.25,0.5,0.75])

    x = np.arange(10,20)

    np.quantile(x,[0.25,0.5,0.75])

    结果如下:

    从结果中可以看到:上述我们自己计算的分位数结果,和使用该函数计算的分位数的结果,是一样的。

    6)pandas中计算分位数的函数:describe()x = pd.Series(np.arange(10,19))

    x.describe()

    x = pd.Series(np.arange(10,20))

    x.describe()

    结果如下:

    注意:describe()中可以传入percentiles参数,获取指定分位数的值。x = pd.Series(np.arange(10,19))

    x.describe(percentiles=[0.25,0.5,0.75,0.9])

    结果如下:

    6、离散程度

    1)极差、方差、标准差的概念

    2)极差、方差、标准差的作用

    极差的计算非常简单,但是极差没有充分的利用数据信息。

    方差(标准差)可以体现数据的“分散性”,方差(标准差)越大,数据越分散,方差(标准差)越小,数据越集中。

    方差(标准差)也可以体现数据的“波动性”(稳定性)。方差(标准差)越大,数据波动性越大。

    方差(标准差)越小,数据波动性越小。

    当数据较大时,也可以使用n代替n-1。

    3)代码:计算鸢尾花数据集中花萼长度的极差、方差、标准差iris = load_iris()

    dt = np.concatenate([iris.data,iris.target.reshape(-1,1)],axis=1)

    df = pd.DataFrame(dt,columns=iris.feature_names + ['types'])

    display(df.sample(5))

    sub = df['sepal length (cm)'].max() - df['sepal length (cm)'].min()

    sub

    var = df['sepal length (cm)'].var()

    var

    std = df['sepal length (cm)'].std()

    std

    var == std ** 2

    结果如下:

    绘制图形:plt.figure(figsize=(15,4))

    plt.ylim(-0.5,1.5)

    plt.plot(df['sepal length (cm)'],np.zeros(len(df)),ls='',marker='o',ms=10,color='g',label='花瓣长度')

    plt.plot(df['sepal width (cm)'],np.ones(len(df)),ls='',marker='o',ms=10,color='b',label='花瓣宽度')

    plt.axvline(df['sepal length (cm)'].mean(),ls='--',color='g',label='花瓣长度均值')

    plt.axvline(df['sepal width (cm)'].mean(),ls='-',color='b',label='花瓣宽度均值')

    plt.legend()

    结果如下:

    7、分布形状:偏度和峰度

    1)偏度① 概念偏度是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。

    如果数据对称分布(例如正态分布),则偏度为0。

    如果数据左偏分布,则偏度小于0,如果数据右偏分布,则偏度大于0。

    ② 代码如下t1 = np.random.randint(1,11,100)

    t2 = np.random.randint(11,21,500)

    t3 = np.concatenate([t1,t2])

    left_skew = pd.Series(t3)

    t1 = np.random.randint(1,11,500)

    t2 = np.random.randint(11,21,100)

    t3 = np.concatenate([t1,t2])

    right_skew = pd.Series(t3)

    display(left_skew.skew(),right_skew.skew())

    sns.kdeplot(left_skew,shade=True,label='左偏')

    sns.kdeplot(right_skew,shade=True,label='右偏')

    plt.legend()

    结果如下:

    2)峰度

    ① 概念

    峰度是描述总体中所有取值分布形态陡缓程度的统计量,可以讲峰度理解为数据分布的高矮程度,峰度的比较是相对于标准正态分布的。

    对于标准正态分布,峰度为0。

    如果峰度大于0,说明数据在分布上比标准正态分布密集,方差(标准差)较小。

    如果峰度小于0,说明数据在分布上比标准正态分布分散,方差(标准差)较大。

    ② 代码如下standard_normal = pd.Series(np.random.normal(0,1,10000))

    display('标准正态分布峰度',standard_normal.kurt(),'标准差:',standard_normal.std())

    display('花萼长度峰度',df['sepal length (cm)'].kurt(),'标准差:',df['sepal length (cm)'].std())

    display('花萼宽度峰度',df['sepal width (cm)'].kurt(),'标准差:',df['sepal width (cm)'].std())

    sns.kdeplot(standard_normal,label='标准正态分布')

    sns.kdeplot(df['sepal length (cm)'],label='花萼长度')

    sns.kdeplot(df['sepal width (cm)'],label='花萼宽度')

    结果如下:

    山东掌趣网络科技

    展开全文
  • 《统计学》名词解释及公式

    千次阅读 2020-12-22 18:52:35
    章节主要内容学习要点1.1统计及其应用领域什么是统计学概念:统计学,描述统计,推断统计。统计的应用领域统计在工商管理中的应用。统计的其他应用领域。1.2数据的类型分类数据、顺序数据、数值型数据概念:...
  • 二、房室概念与房室模型1、一室模型:假定身体由一个房室组成,给药后药物立即均匀地分别于整个房室,并以一定的速率从该室消除。单次静注给药时,时量(对数浓度)曲线呈单指数消除。2、二室模型:假定身体由两个房室...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼好吧,加段代码申精吧。Java代码:------------------------------------------------------public class Main {public static void modify(int a) {a = 5;...
  • 文章目录机器人学一些概念2四元数D-H 参数 机器人学一些概念2 四元数 ​ 这里是机器人旋转中用到的四元数,总结来看主要是用于运算方便,避免θ\thetaθ接近0的时候造成旋转矩阵无法求解。 ​ 我们将旋转的参数...
  • 在前两节中,介绍了order使用...在《订单的一些基本信息》里面,分享了开平的一些基本方法,使用self.buy,self.sell,self.close,每个函数使用的时候都需要用到响应的参数。 order的参数,self.buy和self.sell类似,
  • 匿名用户1级2010-12-28 回答统计学中把总体的指标统称为参数。而由样本算得的相应的总体指标称为统计量。参数一般是确定但未知的,统计量是变化但可知的。统计量统计量是统计理论中用来对数据进行分析、检验的变量。...
  • RabbitMQ中队列的参数

    千次阅读 2021-07-29 20:52:07
    Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete, ...queue参数用来指定创建的队列的名字。 durable持久化 durable=true:持久化队列,会被保存在磁盘中,固定
  • 飞机基本参数大全: 机翼(airfoil):产生飞行所需升力,支持飞机在空中飞行,也有稳定操纵的作用。 副翼(aileron):是指安装在机翼翼梢后缘的一小块可动的翼面。飞行员操纵左右副翼差动偏转所产生的滚转力矩...
  • 5G NR物理层概念总结

    2021-04-09 19:28:33
    5G引入了参数集的概念,针对不同环境选择不同的参数集大大增加了通信的灵活性。 子载波:不同参数集下,子载波间隔的变化,在上一篇中做了比较详细的介绍。 ** 1 Numerology** Numerology这个概念可翻译为参数集,...
  • 首先实现下拉参数联动1.参数的定义→添加控件绑定数据→参数过滤和参数面板样式下拉复选框控件注意事项:select * from tablewhere 1=1${if(len(控件名称)=0,"","and 字段名称 in ('"+控件名称+"')")}2.为订单编号...
  • 动态调整线程池参数实践

    千次阅读 热门讨论 2021-04-26 22:19:35
    欢迎大家关注我的微信公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决...开发人员个人经验与水平参差不齐,配置线程池参数都是按照自己想法来,没有统一.
  • ADS S参数仿真介绍

    2020-12-24 15:14:12
    1.S参数概念在低频电路中,元器件的尺寸相对于信号的波长而言可以忽略(通常小于波长的1/10),这种情况下的电路被称为节点(Lump)电路,此时可以采用常规的电压、电流定律来进行电路计算。但是在高频/微波电路中,...
  • matlab求解变参数方程

    2021-04-19 06:23:45
    求解含参数方程组以及带入数值 一、求解含参方程组 举个简单例子,解方程组 x+A*y=10 x-B*y=1? ??其中 x,y 为变量,A,B为字母系数。 只要在 Matlab中......(三)用Matlab软件求常微分方程的数值解 [t,x]=solver(’f’,...
  • SIMULINK仿真参数的设置

    千次阅读 2021-04-22 07:34:24
    《SIMULINK仿真参数的设置》由会员分享,可在线阅读,更多相关《SIMULINK仿真参数的设置(13页珍藏版)》请在人人文库网上搜索。1、SIMULINK仿真的运行,一、设置仿真参数和选择解法器 设置仿真参数和选择解法器,选择...
  • java传入数组参数

    千次阅读 2021-03-15 23:12:49
    7) arraycopy()的最后一个参数指明 复制元素的个数 。 8) 向方法传递数组参数时,......Java新特性对数组的支持_信息与通信_工程科技_专业资料。可变参数和增强的for循环是JDK1.5提出的众多特性中的两个新特性,是...
  • java中参数是什么?

    千次阅读 2021-02-12 14:11:39
    java中参数是什么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!java中参数是什么?参数分为实参和形参。方法名括号里面的参数是形参,调用方法...
  • 文章目录 webpack 是什么 webpack 五个核心概念 1. Entry 2. Output 3. Loader 4. Plugins 5. Mode 基本的webpack配置结构 环境参数 参考 webpack 是什么 webpack 是一种前端资源构建工具,一个静态模块打包器...
  • mysql连接参数配置

    千次阅读 2021-01-17 17:11:10
    mysql性能优化涉及到很多方面,在上一篇中通过explain打印出sql的执行计划可以作为指导开发人员进行sql优化是一个方面,另外,mysql自身的参数配置也很多,比如连接参数(connection),查询缓存等,合理的设置mysql...
  • Java基本概念:多态

    千次阅读 2021-03-01 06:16:25
    父类引用作为形式参数,调有时用子类引用作为实际参数,就是利用了向上转型。 强制类型转换语法: (targetType) object 示例: public class Test { public static void main(String[] args) { Person person1 = new...
  • 【ML】什么是参数模型和非参数模型

    千次阅读 2020-12-18 11:20:11
    第一次接触这个概念是在总结LR和SVM之间的区别的时候,LR是参数模型,SVM是非参数模型。 今天来总结一下参数模型和非参数模型。 一、前言 参数模型(parametric model)和非参数模型(non-parametric model)作为数理...
  • 现在为了节省时间,我的解决方案只使用了2个命令行参数,但是您可以对需要传递的所有6个参数使用相同的概念。。。当然,在python端也有更干净的方法来捕获args,但这只是基本的想法。 希望有帮助!
  • 如何在Java中将函数作为参数传递?

    千次阅读 2021-02-12 12:23:10
    如何在Java中将函数作为参数传递?这个问题在这里已有答案:Java Pass方法作为参数 14个答案是否可以将方法作为参数传递给Java方法? 如果是这样,有人可以指导我吗? 这似乎并不重要Jason asked 2019-01-26T17:30:...
  • Python的可变长参数

    2021-01-29 05:08:29
    一、*args和**kwargs的概念1、可以接收所有的实参,就是万能参数,也叫可变长参数,比如: *args,**kwargs2、*的使用定义函数定义时: *代表聚合合数调用时: *代表打散(拆包)3、*args:表示可以接收任意个数的位置...
  • java传递动态参数demo

    2021-02-12 14:21:48
    JDK1.5之后,为了使方法的调用更加灵活,java引入了动态参数概念。当时在学校里跟老师学java基础的时候听都没听过这个东东,前两天同事提到这个东东,自己看了一下,写个小demo记录一下。其实,也没啥难理解的就是...
  • 求iPhone7具体参数配置

    千次阅读 2021-02-06 20:58:07
    展开全部iPhone 7基本参数:e69da5e6ba9032313133353236313431303231363533313333656462381,型号:iPhone7Plus2,机身尺寸mm158.1*77.8*7.33,机身重量188g4,屏幕尺寸5.5英寸5,屏幕技术ForceTouch6,分辨率1920*...
  • /*** 获取客户端请求参数中所有的信息* @param request* @return*/private Map getAllRequestParam(final HttpServletRequest request) {Map res = new HashMap();Enumeration> temp = request.getParameterNames...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,290,702
精华内容 516,280
关键字:

参数概念