精华内容
下载资源
问答
  • 常见的无关变量有哪些
    千次阅读
    2021-04-27 00:38:04

    e1c45e435d7f5f966537e183d0fde62a.png

    python常见模块有三种:

    1、os模块,python的目录文件操作需要用到os模块

    一、Os

    python的标准库中的os模块主要涉及普遍的操作系统功能。可以在Linux和Windows下运行,与平台无关。os.sep 可以取代操作系统特定的路径分割符。

    os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。

    os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径。

    os.getenv()和os.putenv()函数分别用来读取和设置环境变量。

    os.listdir()返回指定目录下的所有文件和目录名。

    os.remove()函数用来删除一个文件。

    os.system()函数用来运行shell命令。

    os.linesep字符串给出当前平台使用的行终止符。

    os.path.split()函数返回一个路径的目录名和文件名。

    os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录。

    os.path.exists()函数用来检验给出的路径是否真地存在

    os和os.path模块

    os.listdir(dirname):列出dirname下的目录和文件

    os.getcwd():获得当前工作目录

    os.curdir:返回但前目录('.')

    os.chdir(dirname):改变工作目录到dirname

    os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false

    os.path.isfile(name):判断name是不是一个文件,不存在name也返回false

    os.path.exists(name):判断是否存在文件或目录name

    os.path.getsize(name):获得文件大小,如果name是目录返回0L

    os.path.abspath(name):获得绝对路径

    os.path.normpath(path):规范path字符串形式

    os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

    os.path.splitext():分离文件名与扩展名

    os.path.join(path,name):连接目录与文件名或目录

    os.path.basename(path):返回文件名

    os.path.dirname(path):返回文件路径

    2、sys模块可以实现从程序外部向程序内部传递参数sys.argv: 实现从程序外部向程序传递参数。

    sys.exit([arg]): 程序中间的退出,arg=0为正常退出。

    sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。

    sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )

    sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.

    sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

    sys.platform: 获取当前系统平台。

    sys.stdin,sys.stdout,sys.stderr stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

    sys._getframe()

    3、paltform模块可以获取系统的一些信息platform.system() 获取操作系统类型,windows、linux等

    platform.platform() 获取操作系统,Darwin-9.8.0-i386-32bit

    platform.version() 获取系统版本信息 6.2.0

    platform.mac_ver()

    platform.win32_ver() ('post2008Server', '6.2.9200', '', u'Multiprocessor Free')

    您可能感兴趣的文章:

    更多相关内容
  • 注释跟程序无关,属于程序员的需要 2.注释的分类 单行注释:# 多行注释: |- 多个# |- 使用三个引号 3.注意:python的语法规则是通过换行符作为一个语句结束的标识 变量: //变量定义 Java c c++ c# 强数据类型语言...
  • 借鉴传统软件安全中的边界检查思想,提出了一种基于边界值不变量的对抗样本检测防御方法,该方法通过拟合分布来寻找深度神经网络中的不变量,且训练集的选取与对抗样本无关。实验结果表明,在 LeNet、vgg19 模型和 ...
  • 本文实例讲述了Android编程中context及全局变量的用法。分享给大家供大家参考,具体如下: 今天在研究context的时候,对application和activity context了一定的了解,下面是从网上复制过来的资料 Application ...
  • 常见的方法是将 p 个因变量转换为 p-1 个线性无关的成对差异分数。 对这些 p-1 新因变量进行分析。 在这种情况下最常测试的零假设是差异分数的总体均值为零,使用 Hotelling T2 的 F 变换(Lewis,1993 年;...
  • 1. 介绍连续型随机变量的分布函数及其概率密度 2. 介绍均匀分布,指数分布,正态分布的性质以及必要性证明

    1. 随机变量的分布函数

    • 背景: 对于非离散型的随机变量 X X X,其取值不能一一列举出来,因此就不能像离散型随机变量那样使用分布律描述它。非离散型随机变量有很多种,其中连续型随机变量极其常见,因此我们重点研究连续型随机变量。对于连续性随机变量,在某个点的概率为 0 0 0,另外,实际中,对于元件的寿命,测量的误差等,研究其落在某个区间的概率更有意义,因此我们引出了随机变量的分布函数

    • 定义: 设 X X X是一个随机变量, x x x 是任意实数,函数 F ( x ) = P { X ≤ x } , − ∞ < x < ∞ F(x)=P\{X \leq x\}, -\infty<x<\infty F(x)=P{Xx},<x< 则为 X X X分布函数

      虽然对于离散型随机变量,我们可以使用分布律来全面地描述它,但为了从数学上能够统一地对随机变量进行研究,因此,我们针对离散型随机变量和非离散型随机变量统一地定义了分布函数。

    • 性质

      1 o F ( x ) 1^o \quad F(x) 1oF(x)是一个不减函数

      对于任意实数 x 1 , x 2 ( x 1 < x 2 ) x_1,x_2(x1<x_2) x1,x2(x1<x2),有 F ( x 2 ) − F ( x 1 ) = P { x 1 < X ≤ x 2 } ≥ 0 F(x_2)-F(x_1) = P\{x_1<X \leq x_2\} \geq 0 F(x2)F(x1)=P{x1<Xx2}0 成立

      2 o 2^o\quad 2o 0 ≤ F ( x ) ≤ 1 , F ( − ∞ ) = 0 , F ( ∞ ) = 1 0\leq F(x)\leq 1,\quad F(-\infty) = 0,\quad F(\infty) = 1 0F(x)1F()=0F()=1

      3 o 3^o\quad 3o F ( x + 0 ) = F ( x ) F(x+0)=F(x) F(x+0)=F(x), 即 F ( x ) F(x) F(x) 是右连续的

    • 用分布函数表示事件概率

      • P { X ≤ b } = F ( b ) P\{X\leq b\}=F(b) P{Xb}=F(b)
      • P { X > a } = 1 − P { X ≤ a } = 1 − F ( a ) P\{X> a\}=1-P\{X\leq a\} = 1-F(a) P{X>a}=1P{Xa}=1F(a)
      • P { a < X ≤ b } = P { X ≤ b } − P { X < = a } = F ( b ) − F ( a ) P\{ a<X\leq b\}=P\{X\leq b\}-P\{X<=a\} = F(b)-F(a) P{a<Xb}=P{Xb}P{X<=a}=F(b)F(a)
      • P { X < b } = F ( b − 0 ) P\{X< b\}=F(b-0) P{X<b}=F(b0)
      • P { X ≥ b } = 1 − P { X < b } = 1 − F ( b − 0 ) P\{X\geq b\}=1-P\{X< b\} = 1- F(b-0) P{Xb}=1P{X<b}=1F(b0)
      • P { X = b } = P { X ≤ b } − P { X < b } = F ( b ) − F ( b − 0 ) P\{X = b\}=P\{X \leq b\}-P\{X < b\} = F(b)-F(b-0) P{X=b}=P{Xb}P{X<b}=F(b)F(b0)
      • 注意
      1. 这里的 F ( b − 0 ) F(b-0) F(b0)表示 分布函数 F ( x ) F(x) F(x) x = b x=b x=b处理左极限。 同理, F ( b + 0 ) F(b+0) F(b+0)表示 分布函数 F ( x ) F(x) F(x) x = b x=b x=b处理右极限 。
      2. 细心的同学也许注意到背景部分提到连续型随机变量在某一个点的概率为0,这里还整 F ( b − 0 ) F(b-0) F(b0) F ( b + 0 ) F(b+0) F(b+0) 搞这么麻烦是为了啥? 原因是这部分内容,对连续型和离散型随机变量都成立,离散型随机变量在某一个点有具体的不为0的概率值,因此不能忽略!

    2. 连续型随机变量及其概率密度

    • 定义,如果随机变量 X X X的分布函数 F ( x ) F(x) F(x),存在非负函数 f ( x ) f(x) f(x),使对于任意实数 x x x F ( x ) = ∫ − ∞ x f ( t ) d t , F(x)=\int_{-\infty}^xf(t)dt, F(x)=xf(t)dt, 则称 X X X连续型随机变量 ,其中函数 f ( x ) f(x) f(x)称为 X X X概率密度函数,简称概率密度

    • 概率密度具有以下性质:

      1 o 1^o\quad 1o f ( x ) ≥ 0 f(x)\geq0 f(x)0

      2 o 2^o\quad 2o ∫ − ∞ + ∞ f ( x ) d x = 1 \int_{-\infty}^{+\infty}f(x)dx=1 +f(x)dx=1

      3 o 3^o\quad 3o 对于任意实数 x 1 , x 2 ( x 1 ≤ x 2 ) x_1,x_2(x_1\leq x_2) x1,x2(x1x2) P x 1 < X ≤ x 2 = F ( x 2 ) − F ( x 1 ) = ∫ x 1 x 2 f ( x ) d x ; P{x_1< X\leq x_2}=F(x_2)-F(x_1)= \int_{x_1}^{x_2}f(x)dx; Px1<Xx2=F(x2)F(x1)=x1x2f(x)dx;

      4 o 4^o\quad 4o f ( x ) f(x) f(x) x x x处连续,则有 F ′ ( x ) = f ( x ) . F^{\prime}(x)=f(x). F(x)=f(x).

    • 连续型随机变量 X X X,任取一个指定实数 a a a的概率为 0 0 0,即 P { X = a } = 0 P\{X=a\}=0 P{X=a}=0

      证明如下:

      根据分布函数定义,有 P { X = a } = P { X ≤ a } − P { X < a } = F ( a ) − F ( a − 0 ) P\{X = a\}=P\{X \leq a\}-P\{X < a\} = F(a)-F(a-0) P{X=a}=P{Xa}P{X<a}=F(a)F(a0) ,我们知道 F ( a − 0 ) F(a-0) F(a0) 表示 F ( x ) F(x) F(x) x = a x=a x=a处理左极限,即 lim ⁡ x → a − F ( x ) \lim\limits_{x\rightarrow a^-}F(x) xalimF(x) , 由于 F ( x ) F(x) F(x) 在定义域内连续,所以有 F ( a − 0 ) = lim ⁡ x → a − F ( x ) = F ( a ) F(a-0)=\lim\limits_{x\rightarrow a^-}F(x)=F(a) F(a0)=xalimF(x)=F(a) . ∴ P { X = a } = F ( a ) − F ( a − 0 ) = 0 \therefore P\{X = a\}= F(a)-F(a-0) = 0 P{X=a}=F(a)F(a0)=0

      相关推论:

      1. 这里虽然 P { X = a } = 0 P\{X=a\}=0 P{X=a}=0 , 但随机变量 X X X是可以取到 a a a 点的, 也就是说 对于事件 A A A,如果其发生的概率 P ( A ) = 0 P(A)=0 P(A)=0, A A A不一定是 不可能事件, 但是如果已经知道 A A A 是不可能事件,则必有 P ( A ) = 0 P(A)=0 P(A)=0

      2. 连续型随机变量,计算区间概率时,区间端点可有可无,即 P { a < X ≤ b } = P { a ≤ X ≤ b } = P { a ≤ X < b } = P { a ≤ X < b } P\{a<X\leq b\} = P\{a\leq X\leq b \}=P\{a\leq X<b\}=P\{a\leq X<b\} P{a<Xb}=P{aXb}=P{aX<b}=P{aX<b} .

      3. 由第二条可知,我们假设 P { a < X ≤ b } = P { a ≤ X ≤ b } = 1 P\{a<X\leq b\} = P\{a\leq X\leq b \}=1 P{a<Xb}=P{aXb}=1, 会发现虽然 P { a < X ≤ b } = 1 P\{a<X\leq b\}=1 P{a<Xb}=1, 但是却不能取到 a a a 点,所以得出结论:对于事件 A A A,如果其发生的概率 P ( A ) = 1 P(A)=1 P(A)=1,则 A A A不一定是必然事件,但是如果已经知道 A A A 是必然事件,则必有 P ( A ) = 1 P(A)=1 P(A)=1.

    3. 重要的连续型随机变量分布

    3.1 均匀分布

    • 若连续型随机变量 X X X具有概率密度 f ( x ) = { 1 b − a , a < x < b , 0 , e l s e f(x)=\begin{cases} \frac{1}{b-a},\quad a<x<b, \\ 0,\quad else \end{cases} f(x)={ba1,a<x<b0,else 则称 X X X在区间 ( a , b ) (a,b) (a,b) 上服从均匀分布,记作 X ∼ U ( a , b ) \pmb{X\sim U(a,b)} XU(a,b)XU(a,b)XU(a,b)

      必要性证明

      ∫ − ∞ + ∞ f ( x ) d x = ∫ − ∞ a 0 d x + ∫ a b 1 b − a d x + ∫ b + ∞ 0 d x = x b − a ∣ a b = 1 \begin{aligned}\int_{-\infty}^{+\infty}f(x)dx = \int_{-\infty}^{a}0dx+\int_{a}^{b}\frac{1}{b-a}dx+\int_{b}^{+\infty}0dx = \left.\frac{x}{b-a}\right|_a^b = 1 \end{aligned} +f(x)dx=a0dx+abba1dx+b+0dx=baxab=1

    • 分布函数

      F ( x ) = { 0 , − ∞ < x ≤ a , x − a b − a , a < x < b , 1 , x ≥ b . \begin{aligned}F(x) = \begin{cases} 0,\quad & -\infty<x\leq a, \\ \frac{x-a}{b-a},\quad & a< x <b, \\ 1,\quad & x\geq b. \end{cases}\end{aligned} F(x)=0,baxa,1,<xa,a<x<b,xb.

    • 性质

      落在 ( a , b ) (a,b) (a,b)子区间内的概率,只跟子区间长度有关,跟子区间位置无关,证明很简单,不再赘述

    • 应用

      在公交站台的等车时间,针落在坐标纸上的倾斜角等

    3.2 指数分布

    • 若连续型随机变量 X X X具有概率密度 f ( x ) = { 1 θ e − x / θ , 0 < x , 0 , e l s e \begin{aligned}f(x)=\begin{cases} \frac{1}{\theta}e^{-x/\theta},\quad 0<x, \\ 0,\quad else \end{cases}\end{aligned} f(x)={θ1ex/θ,0<x0,else 其中 θ > 0 \theta>0 θ>0为常数,则称 X X X服从参数为 θ \theta θ指数分布,记作 X ∼ E ( θ ) \pmb{X\sim E(\theta)} XE(θ)XE(θ)XE(θ)

      必要性证明

      ∫ − ∞ + ∞ f ( x ) d x = ∫ − ∞ 0 0 d x + ∫ 0 + ∞ 1 θ e − x / θ d x = − e − x θ ∣ 0 + ∞ = 1 \begin{aligned} \int_{-\infty}^{+\infty}f(x)dx = \int_{-\infty}^{0}0dx+\int_{0}^{+\infty}\frac{1}{\theta}e^{-x/\theta}dx = \left.-e^{-\frac{x}{\theta}}\right|_0^{+\infty} = 1 \end{aligned} +f(x)dx=00dx+0+θ1ex/θdx=eθx0+=1

    • 分布函数

      F ( x ) = { 1 − e − x / θ , x > 0 0 , e l s e . \begin{aligned} F(x) = \begin{cases} 1-e^{-x/\theta},\quad &x>0 \\0,\quad &else. \end{cases} \end{aligned} F(x)={1ex/θ,0,x>0else.

    • 性质

      无记忆性,如果 X X X是某一元件的寿命,那么已知原件已经使用了 s s s小时,它总共能用至少 s + t s+t s+t 小时的条件概率,与从开始使用时算起它至少能用 t t t 小时的概率相等,数学表达式为 P { X > s + t ∣ X > s } = P { X > t } P\{X>s+t|X>s\} = P\{X>t\} P{X>s+tX>s}=P{X>t}

      证明如下

      P { X > s + t ∣ X > s } = P { ( X > s + t ) ∩ ( X > s ) } P { X > s } = P { X > s + t } P { X > s } = 1 − F ( s + t ) 1 − F ( s ) = 1 − ( 1 − e − ( s + t ) / θ ) 1 − ( 1 − e − ( s ) / θ ) = e − t / θ = P { X > t } \begin{aligned} P\{X>s+t|X>s\} &= \frac{P\{(X>s+t)\cap (X>s)\}}{P\{X>s\}} \\ &=\frac{P\{X>s+t\}}{P\{X>s\}} \\&= \frac{1-F(s+t)}{1-F(s)} \\&= \frac{1-(1-e^{-(s+t)/\theta})}{1-(1-e^{-(s)/\theta})} \\&= e^{-t/\theta} = P\{X>t\}\end{aligned} P{X>s+tX>s}=P{X>s}P{(X>s+t)(X>s)}=P{X>s}P{X>s+t}=1F(s)1F(s+t)=1(1e(s)/θ)1(1e(s+t)/θ)=et/θ=P{X>t}

    • 应用

      服务系统的服务时间,通话时间,某消耗品的寿命等

    3.3 正态分布

    • 若连续型随机变量 X X X具有概率密度 f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 , − ∞ < x < + ∞ \begin{aligned}f(x)= \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} , \quad -\infty<x<+\infty \end{aligned} f(x)=2π σ1e2σ2(xμ)2,<x<+ 其中 μ , ( σ > 0 ) \mu,(\sigma>0) μ,(σ>0)为常数,则称 X X X服从参数为 μ , σ \mu,\sigma μ,σ正态分布高斯(Gauss)分布,记作 X ∼ N ( μ , σ 2 ) \pmb{X\sim N(\mu,\sigma^2)} XN(μ,σ2)XN(μ,σ2)XN(μ,σ2)

      必要性证明

      很明显 f ( x ) ≥ 0 f(x)\geq0 f(x)0, 下面证明 ∫ − ∞ + ∞ f ( x ) d x = 1 \int_{-\infty}^{+\infty}f(x)dx=1 +f(x)dx=1

      x − μ σ = t \frac{x-\mu}{\sigma} = t σxμ=t ,则 f ( x ) = 1 2 π σ e − t 2 2 , d x = σ d t f(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{t^2}{2}}, dx = \sigma dt f(x)=2π σ1e2t2,dx=σdt

      ∫ − ∞ + ∞ f ( x ) d x = ∫ − ∞ + ∞ 1 2 π σ e − t 2 2 σ d t = 1 2 π ∫ − ∞ + ∞ e − t 2 2 d t \begin{aligned} \int_{-\infty}^{+\infty}f(x)dx = \int_{-\infty}^{+\infty} \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{t^2}{2}}\sigma dt = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt \end{aligned} +f(x)dx=+2π σ1e2t2σdt=2π 1+e2t2dt

      我们先求 ∫ − ∞ + ∞ e − t 2 2 d t \int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt +e2t2dt 的积分,很难直接求出其积分,我们需要用到一个技巧,令 I = ∫ − ∞ + ∞ e − t 2 2 d t I=\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt I=+e2t2dt

      I 2 = ∫ − ∞ + ∞ e − t 2 2 d t ⋅ ∫ − ∞ + ∞ e − u 2 2 d u ( 定 积 分 的 值 与 积 分 变 量 无 关 , 与 被 积 函 数 和 积 分 上 下 限 有 关 ) = ∫ − ∞ + ∞ ∫ − ∞ + ∞ e − t 2 + u 2 2 d t d u = ∫ 0 2 π ∫ 0 + ∞ ρ e − ρ 2 2 d ρ d θ ( 利 用 极 坐 标 求 解 定 积 分 值 ) = ∫ 0 2 π − e − ρ 2 2 ∣ 0 + ∞ d θ = ∫ 0 2 π 1 d θ = 2 π ∵ I = ∫ − ∞ + ∞ e − t 2 2 d t > 0 ∴ I = 2 π \begin{aligned} I^2 &= \int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt \cdot\int_{-\infty}^{+\infty} e^{-\frac{u^2}{2}}du \quad(定积分的值与积分变量无关,与被积函数和积分上下限有关) \\&= \int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty} e^{-\frac{t^2+u^2}{2}}dtdu \\&=\int_{0}^{2\pi}\int_{0}^{+\infty} \rho e^{-\frac{\rho^2}{2}}d\rho d\theta \quad(利用极坐标求解定积分值) \\&=\int_{0}^{2\pi} -e^{-\frac{\rho^2}{2}}|_0^{+\infty} d\theta = \int_{0}^{2\pi}1d\theta \\&= 2\pi \\ &\because I=\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt>0 \quad \therefore I = \sqrt{2\pi} \end{aligned} I2=+e2t2dt+e2u2du()=++e2t2+u2dtdu=02π0+ρe2ρ2dρdθ()=02πe2ρ20+dθ=02π1dθ=2πI=+e2t2dt>0I=2π

      ∴ ∫ − ∞ + ∞ f ( x ) d x = 1 2 π ∫ − ∞ + ∞ e − t 2 2 d t = 1 2 π ⋅ 2 π = 1 \begin{aligned} \therefore \int_{-\infty}^{+\infty}f(x)dx = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{+\infty} e^{-\frac{t^2}{2}}dt = \frac{1}{\sqrt{2\pi}} \cdot {\sqrt{2\pi}} = 1 \end{aligned} +f(x)dx=2π 1+e2t2dt=2π 12π =1

    • 分布函数

      F ( x ) = 1 2 π σ ∫ − ∞ x − ( t − μ ) 2 2 σ 2 d t F(x) = \frac{1}{\sqrt{2\pi}\sigma}\int_{-\infty}^{x}{-\frac{(t-\mu)^2}{2\sigma^2}}dt F(x)=2π σ1x2σ2(tμ)2dt

    • 性质

      1 o 1^o\quad 1o 正态分布曲线关于 x = μ x=\mu x=μ 对称.

      2 o 2^o\quad 2o x = μ x=\mu x=μ 时取得最大值, f ( μ ) = 1 2 π σ f(\mu)=\frac{1}{\sqrt{2\pi}\sigma} f(μ)=2π σ1

      其他特性,可参考下图理解

      1. 曲线在 x = μ ± σ x=\mu\pm\sigma x=μ±σ 处有拐点
      2. 曲线以 0 x 0x 0x轴为渐近线
      3. x x x μ \mu μ越远, f ( x ) f(x) f(x)的值就越小,这表明对于同样长度的区间,当区间离 μ \mu μ越远, X X X落在这个区间的概率就越小
      4. 如果固定 σ \sigma σ,改变 μ \mu μ的值,则图形沿着 0 x 0x 0x轴平移,而不改变其形状。 μ \mu μ被称作位置参数(参考下图黄色和蓝色的线)
      5. 如果固定 μ \mu μ,改变 σ \sigma σ的值,由于其最大值 f ( μ ) = 1 2 π σ f(\mu)=\frac{1}{\sqrt{2\pi}\sigma} f(μ)=2π σ1 随着 σ \sigma σ变小,而变得越尖,因而 X X X落在 μ \mu μ附近的概率变大 (参考下图红色和黄色的线)
        正态分布
    • μ = 0 , σ = 1 \mu=0,\sigma=1 μ=0,σ=1 时称随机变量 X X X服从标准正态分布,其概率密度和分布函数分别用 ϕ ( x ) \phi(x) ϕ(x) Φ ( x ) \Phi(x) Φ(x)表示,则有 ϕ ( x ) = 1 2 π e − x 2 2 \phi(x)=\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}} ϕ(x)=2π 1e2x2,

      Φ ( x ) = 1 2 π ∫ − ∞ x − t 2 2 d t \Phi(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{x}{-\frac{t^2}{2}}dt Φ(x)=2π 1x2t2dt , 由性质很容易推知: Φ ( − x ) = 1 − Φ ( x ) \Phi(-x)=1-\Phi(x) Φ(x)=1Φ(x)

    • 引理,若 X ∼ N ( μ , σ ) X\sim N(\mu,\sigma) XN(μ,σ),则 Z = X − μ σ ∼ N ( 0 , 1 ) Z=\frac{X-\mu}{\sigma} \sim N(0,1) Z=σXμN(0,1).

      证明如下:

      Z = X − μ σ Z=\frac{X-\mu}{\sigma} Z=σXμ的分布函数为

      P { Z ≤ x } = P { X − μ σ ≤ x } = P { X ≤ σ x + μ } = ∫ − ∞ σ x + μ 1 2 π σ e − ( t − μ ) 2 2 σ 2 d t = F ( x ) ∴ f ( x ) = F ′ ( x ) = 1 2 π e − x 2 2 = ϕ ( x ) ( 变 上 限 积 分 求 导 规 则 : 上 限 带 进 去 乘 以 上 限 对 变 量 求 导 ) ∴ 命 题 得 证 \begin{aligned}P\{Z\leq x\}&=P\{\frac{X-\mu}{\sigma}\leq x\}=P\{X\leq \sigma x+\mu\}\\&=\int_{-\infty}^{\sigma x+\mu}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt = F(x) \\ \therefore &f(x) = F'(x) = \frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}} = \phi(x) \quad(变上限积分求导规则:上限带进去乘以上限对变量求导) \\\therefore 命题得证 \end{aligned} P{Zx}=P{σXμx}=P{Xσx+μ}=σx+μ2π σ1e2σ2(tμ)2dt=F(x)f(x)=F(x)=2π 1e2x2=ϕ(x)()

      第二种证明方法, 令 t − μ σ = u , \frac{t-\mu}{\sigma}=u, σtμ=u,

      P { Z ≤ x } = ∫ − ∞ σ x + μ 1 2 π σ e − ( t − μ ) 2 2 σ 2 d t = 1 2 π ∫ − ∞ u e − u 2 2 d u = Φ ( x ) ∴ 命 题 得 证 \begin{aligned}P\{Z\leq x\}&=\int_{-\infty}^{\sigma x+\mu}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(t-\mu)^2}{2\sigma^2}}dt \\&= \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{u}e^{-\frac{u^2}{2}}du =\Phi(x) \\ \therefore 命题得证 \end{aligned} P{Zx}=σx+μ2π σ1e2σ2(tμ)2dt=2π 1ue2u2du=Φ(x)

      由该引理可知 F ( x ) = P { X ≤ x } = P { X − μ σ ≤ x − μ σ } = Φ ( x − μ σ ) F(x)=P\{X\leq x\} = P\{\frac{X-\mu}{\sigma}\leq \frac{x-\mu}{\sigma}\} = \Phi(\frac{x-\mu}{\sigma}) F(x)=P{Xx}=P{σXμσxμ}=Φ(σxμ)

      P { x 1 ≤ X ≤ x 2 } = P { x 1 − μ σ ≤ X − μ σ ≤ x 2 − μ σ } = Φ ( x 2 − μ σ ) − Φ ( x 1 − μ σ ) P\{x_1\leq X\leq x_2\}=P\{\frac{x_1-\mu}{\sigma} \leq \frac{X-\mu}{\sigma}\leq \frac{x_2-\mu}{\sigma}\} = \Phi(\frac{x_2-\mu}{\sigma})-\Phi(\frac{x_1-\mu}{\sigma}) P{x1Xx2}=P{σx1μσXμσx2μ}=Φ(σx2μ)Φ(σx1μ)

      P { μ − σ ≤ X ≤ μ + σ } = Φ ( 1 ) − Φ ( − 1 ) = 2 Φ ( 1 ) − 1 = 68.26 % . P\{\mu-\sigma\leq X\leq \mu+\sigma\} = \Phi(1)-\Phi(-1) = 2\Phi(1)-1 = 68.26\%. P{μσXμ+σ}=Φ(1)Φ(1)=2Φ(1)1=68.26%.

      P { μ − 2 σ ≤ X ≤ μ + 2 σ } = Φ ( 2 ) − Φ ( − 2 ) = 2 Φ ( 2 ) − 1 = 95.44 % . P\{\mu-2\sigma\leq X\leq \mu+2\sigma\} = \Phi(2)-\Phi(-2) = 2\Phi(2)-1 = 95.44\%. P{μ2σXμ+2σ}=Φ(2)Φ(2)=2Φ(2)1=95.44%.

      P { μ − 3 σ ≤ X ≤ μ + 3 σ } = Φ ( 3 ) − Φ ( − 3 ) = 2 Φ ( 3 ) − 1 = 99.74 % . P\{\mu-3\sigma\leq X\leq \mu+3\sigma\} = \Phi(3)-\Phi(-3) = 2\Phi(3)-1 = 99.74\%. P{μ3σXμ+3σ}=Φ(3)Φ(3)=2Φ(3)1=99.74%.

      我们看到,正态分布的值落在 ( μ − 3 σ , μ + 3 σ ) (\mu-3\sigma, \mu+3\sigma) (μ3σ,μ+3σ)内几乎时肯定的事情,这就是 3 σ \pmb{3\sigma} 3σ3σ3σ法则

    • X ∼ N ( 0 , 1 ) X\sim N(0,1) XN(0,1),若 z a z_a za 满足条件 P { X > z a } = a , 0 < a < 1 , P\{X>z_a\}=a, \quad 0<a<1, P{X>za}=a,0<a<1则称点 z a z_a za为标准正态分布的 α \pmb{\alpha} ααα分位点

    • 应用

      在自然现象和社会现象中,大量随机变量都服从或者近似服从正态分布。例如,一个地区的男性成年人身高,测量某零件长度的误差,海洋波浪的高度,半导体器件中的热噪声电流或电压等。 后续我们还会介绍正态分布的其他重要特性

    展开全文
  • 本文以SPSSAU系统为例,针对线性回归的常见问题进行汇总说明。关于线性回归的分析思路及操作步骤,可阅读下方链接文章:①问题一:SPSSAU多元线性回归在哪儿?【通用方法】--【线性回归】。当考察一个自变量对因变量...

    本文以SPSSAU系统为例,针对线性回归的常见问题进行汇总说明。

    关于线性回归的分析思路及操作步骤,可阅读下方链接文章:

    ①问题一:SPSSAU多元线性回归在哪儿?

    【通用方法】--【线性回归】。

    当考察一个自变量对因变量的影响称为一元线性回归,多于一个自变量的情况称为多元线性回归。

    ②问题二:控制变量如何放置?

    控制变量指可能干扰模型的项,比如年龄,学历等基础信息。从软件角度来看,并没有“控制变量”这样的名词。“控制变量”就是自变量,所以直接放入“自变量X”框中即可。

    ③问题三:自变量为定类数据如何分析?

    如果自变量X为定类数据,一般作为控制变量(可能对模型有干扰因而放入的项)放入模型,但并不对其进行分析。如果一定要分析,此时应该进行虚拟变量(也称哑变量)。

    使用【数据处理】--【生成变量】里的哑变量设置后再放入。

    【生成变量】--【虚拟变量】

    了解哑变量相关理论,可阅读下方链接文章:

    ④问题四:数据里有多个Y,线性回归Y只能放一个

    线性回归模型中要求只有一个因变量,一个或多个自变量。

    如果是同一个维度的题,因变量超过1个,可以使用SPSSAU【数据处理】--【生成变量】里的平均值功能。将多个Y合并成一个整体,再进行分析。

    【生成变量】--【平均值】

    如果是不同维度的指标可以将因变量一个一个单独进行分析。或用路径分析、结构方程模型进行分析。

    ⑤问题五:线性回归有效样本量不足,需要多少样本量?

    有效样本不足是指分析时,可以进行分析的样本量低于方法需要的样本量。解决方法是加大样本量。一般来说,至少要求样本量起码是变量数的5-10倍,结果更具备参考意义。

    ⑥问题六:相关分析显示正相关,回归分析显示负相关,如何解释?

    相关分析是只简单考虑两个变量之间的关系,分析时不考虑其他控制变量的影响。

    回归分析则是综合所有进入模型的自变量对因变量的结果而成的,在控制了其他进入回归方程的变量之后得到的影响关系。

    所以得出结果不一致也非常正常。当相关分析、线性回归结果出现以下的矛盾情况:

    ①回归分析存在影响关系,但是却没有相关关系。此时建议以‘没有相关关系作为结论’。

    ②有负向影响关系,但却是正向相关关系。此时建议以‘有相关关系但没有回归影响关系作为结论’。

    ⑦问题七:回归结果看标准化还是非标准化?

    标准化回归系数是消除了量纲影响后的回归系数,可以用来比较各个自变量的“重要性大小”。

    如果目的在于预测模型,一般使用非标准化回归系数。

    ⑧问题八:线性回归因变量不在样本问题中?

    有时候由于问卷设计问题,导致直接缺少了Y(没有设计对应的问卷题项),建议可以考虑将X所有题项概括计算平均值来表示Y。(使用“ 生成变量”的 平均值功能)

    如果问卷中并没有设计出Y对应的题项,没有其它办法可以处理。

    ⑨问题九:逐步回归与分层回归、线性回归的区别,结果不一致怎么解释?

    逐步回归是多元线性回归中一种选择自变量的方法。分别把每一个变量都选入模型中,每次都保留系数显著水平最高的变量,剔除不显著的变量,通过多次的选入和剔除最终得到系数的显著的回归方程。适合自变量个数较多时使用。

    分层回归本质是线性回归,区别在于分层回归可分为多层,主要用于模型的对比。

    如果出现逐步回归、分层回归与线性回归结果不一致的情况,主要是用于选入模型的自变量不同导致。逐步回归会让系统自动识别出有影响的自变量X,最终得到的模型与线性回归中,自己分析的结果很可能出现不一致的情况。

    最终以哪个结果为准,应结合专业知识和研究目的选择。比如某个核心研究项很重要,在逐步回归结果中没有体现,此时更应选择其他方法进行研究。

    以上就是今天分享的内容,更多干货内容登录SPSSAU官网查看。

    展开全文
  • JavaScript常见变量和函数命名示例

    万次阅读 2020-07-21 15:16:17
    JavaScript作为前端开发从业人员必须掌握的3大基础知识中最重要的一环,也是平是接触时间最长、写得最多的。在开发过程中必然会遇到命名的问题,你会词穷...JavaScript常见变量和函数命名示例思维导图 需要注意的是由

    JavaScript作为前端开发从业人员必须掌握的3大基础知识中最重要的一环,也是平是接触时间最长、写得最多的。在开发过程中必然会遇到命名的问题,你会词穷、纠结、惆怅吗?本文的出现相信能够解决大部分烦恼,让你轻松写出符合规范、易读、简短的代码。

    本文将通过大量的实例来试图自圆其说,形成一套系统化、实用的变量命名理化体系。通过按JavaScript的数据类型分类着手、细到一个函数的参数命名,并提供众多可选方案,并尽量给出其适用范围和利弊。

    JavaScript常见变量和函数命名示例思维导图
    JavaScript常见变量和函数命名示例思维导图

    需要注意的是由于个人写作水平、和知识有限,很多方面叙述上有些生硬,在分类上也没有什么特别的依据,文章也没有人审稿,所以有什么纰漏还请留言告知。由于写作仓促,内容可能不全,后续会随着工作和学习的深入而不断地调整和更新。

    布尔值(Boolean)命名

    Boolean值是两种逻辑状态的变量,它包含两个值:。在JavaScript中对应 truefalse,在实践中通常使用数字1表示真值,0来表示假值。

    虽然Boolean的状态只有两种但是在命名时可以进一步分类,这里给出几种场景:

    场景一:表示可见性、进行中的状态

    解释可见性在通常指页面中的元素、组件是否显示(或者组件挂载到DOM上,但并不可见)。进行中主要是说明某种状态是处于持续进行中。

    推荐命名方式为 is + 动词(现在进行时)/形容词,同时这种方式也可以直接不写 is,但是为了更好的作区分,建议还是加上。

    {
      isShow: '是否显示',
      isVisible: '是否可见',
      isLoading: '是否处于加载中',
      isConnecting: '是否处于连接中',
      isValidating: '正在验证中',
      isRunning: '正在运行中',
      isListening: '正在监听中'
    }
    

    注意: 在Java中使用这种方式是有一定副作用的,为什么请移步:为什么阿里巴巴禁止开发人员使用 “isSuccess” 作为变量名?

    场景二:属性状态类

    解释:通常用来描述实体(例如:HTML标签、组件、对象)的功能属性,而且定法比较固定。

    {
      disabled: '是否禁用',
      editable: '是否可编辑',
      clearable: '是否可清除',
      readonly: '只读',
      expandable: '是否可展开',
      checked: '是否选中',
      enumberable: '是否可枚举',
      iterable: '是否可迭代',
      clickable: '是否可点击',
      draggable: '是否可拖拽'
    }
    

    场景三:配置类、选项类

    解释:主要是指组件功能的开启与关闭,功能属性的配置。

    这是一种比较常见的情景,目前命名方式也有很多种,但是归纳起来也不多。推荐使用 withXx 来表示组件在基本功能形态外的其它功能,比如组件的基础功能到高级功能的开启;使用 enableXx 来表示组件某些功能的开启;使用 allowXx 来表示功能属性的配置;使用 noXx 用于建议功能使用者这个不建议开启。

    {
      withTab: '是否带选项卡',
      withoutTab: '不带选项卡',
      enableFilter: '开启过滤',
      allownCustomScale: '允许自定义缩放',
      shouldClear: '是否清除',
      canSelectItem: '是否能选中元素',
      noColon: '不显示label后面的冒号',
      checkJs: '检查Js',
      emitBOM: 'Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.'
    }
    

    注意:如果嫌分类太多,可以只使用其中一种方式,比如在Typescript中使用了 allownXxnoXx

    除了上面这些带有特定的前置介词、动词方式外还有一些在语义上带有疑问性质的组合通常也是作为Boolean命名的一种参考。

    {
      virtualScroll: '是否启用虚拟滚动模式',
      unlinkPanels: '在范围选择器里取消两个日期面板之间的联动',
      validateEvent: '输入时是否触发表单的校验'
    }
    

    函数命名

    函数在不同的上下文中的叫法也不一样,在对象中称为方法,在类中有构造函数、在异步处理时有回调函数,还有立即执行函数、箭头函数、柯里函数等。

    函数命名的方式常常是和业务逻辑耦合在一起的,但是在命名规则上也有一些常见的模式可以遵循。

    场景一:事件处理

    事件处理函数是前端平时用到最多的,包括浏览器原生事件、异步事件和组件自定义事件。在写法上最常见的两种命名分别为 onXxonXxClickhandleXxhandleXxChange

    这里如何在二者之间选择,可以从二方面来归类。一是,原生事件采用 onXx,而自定义事件使用handleXx。二是,事件主动监听采用 onXx,被动处理使用 handleXx

    从实践及三大主流框架的文档关于事件部分的内容来看,推荐使用 handleXx 这种方式,而在表单提交的时候通常采用 onSubmit 函数。

    其实,在实际项目中很少严格这样来命名事件处理函数,因为这种方式有一定的局限性,比如点击按钮打开一个对话框,使用 handleOpenDlgonOpenDlg 都没有直接写 openDlg 方便,如果页面有多个不同功能的对话框采用这种方式会显得变量名过长,而handle和on就显得没有必要了,比如hanldeOpenCommentDlg 就没有 openCommentDlg 直白。

    下面列出了一些约定成俗的适用例子:

    {
      onSubmit: '提交表单',
      handleSizeChange: '处理分页页数改变',
      handlePageChange: '处理分页每页大小改变',
      onKeydown: '按下键'
    }
    

    场景二:异步处理

    这里主要是指在写数据层服务、状态管理中的Action命名,以及Ajax回调的命名规则。

    {
      getUsers: '获取用户列表',
      fetchToken: '取得Token',
      deleteUser: '删除用户',
      removeTag: '移除标签',
      updateUsrInfo: '更新用户信息',
      addUsr: '添加用户',
      createAccount: '创建账户'
    }
    

    命名主要围绕数据的增删查找来划分,获取数据通常是 getXxfetchXx,在作者看来两者在使用上的区分在于 getXx 的数据来源不一定直接取自异步的原始数据,可能是加工处理后的,而 fetchXx 是直接拿的原始数据。当然在实际项目中并没有区分,看个人喜好。

    deleteXx 主要用于数据删除,而 removeXx 在语义上是移除数据,通常情况数据是还存在的,只是没有显示或数据假删除。updateXx 是指数据更新操作,addXx 是在已有列表数据中添加新的子项、而createXx主要是创建新的实例,比如新建一个账户。

    场景三: 跳转路由

    在实际开发过种中,比如在使用react-router/vue-router时,在模板或者JSX中可以直接在标签中写上目标地址,但有些时候跳转的目标地址是经过判断或者组合后的,并且通过事件触发跳转的,这个时候就需要一个函数来处理,那么在函数命名的时候可以考虑使用

    {
      toTplDetail: '跳转到模板详情页面',
      navigateToHome: '导航到首页',
      jumpHome: '跳转首页',
      goHome: '跳转首页',
      redirectToLogin: '重定向到登录页',
      switchTab: '切换Tab选项卡',
      backHome: '回到主页'
    }
    

    推荐使用 toXxgoXx 这两种方式,如果不是在当前页面打开/跳转页面,可以使用 toBlankTplDetail 或者 goBlankHome 这种方式来进一步语义化。如果前端页面是位于Webview中,也可以考虑采用toNativeShare 这种方式来命名。

    场景四:框架相关特定方法

    这里主要是针对前端3大主流流行框架,有一些命名是带有特定标识符的,还有就是一些生命周期的命名方式。

    {
      formatTimeFilter: '在AngularJs和Vue中,通常用于过滤器命名',
      storeCtrl: '用于AngularJs定义控制器方法',
      formatPipe: '用于Angular中,标识管道方法',
      $emit: 'Vue中的实例方法',
      $$formatters: 'AngularJs中的内置方法',
      beforeCreate: 'Vue的生命周期命名',
      componentWillMount: 'React生命周期命名',
      componentDidMount: 'React生命周期命名',
      afterContentInit: 'Anuglar生命周期命名',
      afterViewChecked: 'Angula生命周期命名',
      httpProvider: 'AngularJs服务',
      userFactory: '工厂函数',
      useCallback: 'React钩子函数'
    }
    

    场景五:数据的加工

    这类场景在处理列表的时候经常会碰到,比如排序、过滤、添加额外的字段、根据ID和索引获取特定数据等。

    情形一:根据特定属性获取属性

    这里可以参考DOM方法的命名,比如:getElememtById()getElementsByTagName()getElementsByClassName()getElementsByName(),然后提炼出一个比较实用的模板:getXxByYy()。其中 Xx 可以是:element, item, option, data, selection,list, options 以及一些特定上下文的名字,比如:user(s), menu(s) 等。Yy 相对来说比较固定,经常用到的就是 id, index, key, value, selected, actived 等。

    除了使用 get,还可以使用 queryfetch,但是需要注意和上面提到的异步数据处理作一个区分。

    {
      getItemById: '根据ID获取数据元素',
      getItemsBySelected: '根据传入的已选列表ID来获取列表全部数据',
      queryUserByUid: '根据UID查询用户'
    }
    

    注意:在 getItemsBySelected 这种情形下直接写成 getItemsSelected 更好,但只适用于 Yy 为形容词的场景

    情形二:格式化数据

    这里的格式化操作包括排序、调整数据结构、过滤数据、添加属性。命名通常使用 formatXx, convertXx,inverseXx, toggleXx, parseXx, flatXx, 也可以结合数组的一些操作方法来命名,比如 sliceXx, substrXx,spliceXx, sortXx, joinXx 等来命名。

    {
      formatDate: '格式化日期',
      convertCurrency: '转换货币单位',
      inverseList: '反转数据列表',
      toggleAllSelected: '切换所有已选择数据状态',
      parseXml: '解析XML数据',
      flatSelect: '展开选择数据',
      sortByDesc: '按降序排序'
    }
    

    数组命名

    数组的命名推荐使用复数形式来命名,还有就是名词和具有列表意思的单词组合。常见的词汇有options, list, maps, nodes, entities, collection 等。

    {
      users: '用户列表',
      userList: '用户列表',
      tabOptions: '选项卡选项',
      stateMaps: '状态映射表',
      selectedNodes: '选中的节点',
      btnGroup: '按钮组',
      userEntities: '用户实体'
    }
    

    选项元素、下拉元素命名

    主要针对的是在下拉选择框、选项卡元素、Radio、Checkbox等数据源每个选项数据的命名。常见的词汇有:title, name, key, label, field, value, id, children, index, nodes 等。

    基中 title/name/key/label/field 作为选项显示名, value/id 用于唯一标识选项,children/nodes 用于包含子节点内容。如果选项元素的语义很明确的情况下也可以直接使用特定单词来代替提到的这些泛指的词汇,例如菜单列表就可以使用 menu 来作为显示名。

    // 最常见组合
    {
      title: '标题',
      value: 'ID值'
    }
    
    // 组合二
    {
      label: '标签名',
      value: 'ID值'
    }
    
    // 组合三
    {
      name: '元素名',
      id: 'ID值'
    }
    
    // 组合四
    {
      field: '字段',
      value: '标识',
      index: '索引'
    }
    

    当前选项、激活项命名

    适用列表的选中项、菜单选中项、步骤操作的当前进行步骤、页面路由当前路由等的命名。

    {
      activeTab: '当前选中选项卡',
      currentPage: '当前页',
      selectedData: '当前选项中数据',
    }
    

    临时数据、比对数据命名

    针对在代码中有时会使用一些临时的变量来存储数据、保存数据快照的场景下的命名。

    {
      swapData: '临时交换数据',
      tempData: '临时数据',
      dataSnapshot: '数据快照'
    }
    

    数据循环语句中变量命名

    在使用 for 循环时,多层嵌套请依次使用 i/j/k,超过3层可以使用 x/y/zm/n 来命名。使用 forEach,map, filter 等方法时,每一个元素命名可以根据不同语境下的特殊名字来命名,比如遍历 menus,那么每个元素可以命名为 menu,不然则使用上下文无关的词汇,比如:item, option, data, key, object 等。至于索引通常使用 index,如果多层可以使用 index + 数字 的形式,也可以直接使用 i/j/k 来作为索引,甚至还可以使用 subIndex/grandIndex 这种方式来命名。

    对于在使用 for 循环时数组长度如果需要单独命名的话,可以使用 xxlength/xxLens,或者 xxCount

    在循环的过程中通常还会统计某个条件下数据匹配的次数、重复元素数量、记录中间结果等情况。这里推荐使用 count 表示次数,skipped 表示跳过的数量,result 表示结果。

    // for 循环
    for (let i = 0; i < 10; i++) {
      for (let j = 0; j < 10; j++) {
        for (let k = 0; k < 10; k++) {
          // do something
        }
      }
    }
    
    for (let i = 0, lens = this.options.length; i < lens; i++) {
      // do something
    }
    
    // forEach
    users.forEach((item, index) => {
      // do something
    })
    
    menus.forEach((menu, index) => {
      if (menu.children) {
        menu.children.forEach((subMenu, subIndex) => {
          if (subMenu.children) {
            subMenu.children.forEach((grandMenu, grandIndex) => {
              // 一个不常用的示例
            })
          }
        })
      }
    })
    

    方法参数命名

    方法的参数名称和数量在不同的方法中各不相同,但是还是有一些固定的模式可以参考,比如在Vue中监听属性变化的新值和旧值;reduce 方法的上一个值,当前值;回调函数的命名、剩余参数的命名等。

    情形一:新值、旧值

    常见于Vue中watch 对像中的属性监听回调函数,推荐使用

    {
      oldVal: '旧值',
      newVal: '新值'
    }
    

    情形二:上一个值、下一个值和当前值

    这种情形见于路由的钩子方法,Object.assign 数据拷贝的参数。

    // 组合一
    {
      from: '从...',
      to: '到...'
    }
    
    // 组合二
    {
      prev: '上一个...',
      next: '下一个...',
      cur: '当前'
    }
    
    // 组合三
    {
      source: '源',
      target: '目标'
    }
    
    // 组合四
    {
      start: '开始',
      end: '结束'
    }
    

    情形三:异步数据返回

    用于Promise的then方法参数,await 的返回的Promise等。可选择的词汇有:res, data, json, entity,推荐使用 res

    demoPromise.then(res => {
      // do something
    })
    

    情形四:其它情况

    一些使用不多,但是在编程时约定成俗的命名方式。例如 ch 表示单个字符,str 表示字符串, n 代表次数, reg 表示正则, expr 表示表达式, lens 表示数组长度, count 表示数量, p 表示数据的精度, q 表示查询(query), src 表示数据源(source), no 表示数字(number), rate 表示比率, status 表示状态, bool 表示布尔值, arr 表示数组值, obj 表示对象值, xy 表示坐标两轴, func 表示函数, ua表示User Agent, size 表示大小, unit 表示单位, hoz 表示水平方向, vert 表示垂直方向, radix 表示基数,根

    // 传入单个字符
    function upper(ch) {}
    
    // 数量重复
    function repeat(str, n)
    
    // 正则
    'abab'.replace(reg, 'bb')
    

    事件命名

    这里根据DOM、nodejs和一些框架和UI组件的事件进行归纳

    DOM事件

    这里列举DOM中常见的事件命名

    {
      load: '已完成加载',
      unload: '资源正在被卸载',
      beforeunload: '资源即将被卸载',
      error: '失败时',
      abort: '中止时',
      focus: '元素获得焦点',
      blur: '元素失去焦点',
      cut: '已经剪贴选中的文本内容并且复制到了剪贴板',
      copy: '已经把选中的文本内容复制到了剪贴板',
      paste: '从剪贴板复制的文本内容被粘贴',
      resize: '元素重置大小',
      scroll: '滚动事件',
      reset: '重置',
      submit: '表单提交',
      online: '在线',
      offline: '离线',
      open: '打开',
      close: '关闭',
      connect: '连接',
      start: '开始',
      end: '结束',
      print: '打印',
      afterprint: '打印机关闭时触发',
      click: '点击',
      dblclick: '双击',
      change: '变动',
      select: '文本被选中被选中',
      keydown/keypress/keyup: '按键事件',
      mousemove/mousedown/mouseup/mouseleave/mouseout: '鼠标事件',
      touch: '轻按',
      contextmenu: '右键点击 (右键菜单显示前)',
      wheel: '滚轮向任意方向滚动',
      pointer: '指针事件',
      drag/dragstart/dragend/dragenter/dragover/dragleave: '拖放事件',
      drop: '元素在有效释放目标区上释放',
      play: '播放',
      pause: '暂停',
      suspend: '挂起',
      complete: '完成',
      seek: '搜索',
      install: '安装',
      progress: '进行',
      broadcast: '广播',
      input: '输入',
      message: '消息',
      valid: '有效',
      zoom: '放大',
      rotate: '旋转',
      scale: '缩放',
      upgrade: '更新',
      ready: '准备好',
      active: '激活'
    }
    

    自定义事件

    在封装组件时提供的事件名除了参考DOM事件外,在命名上也可以参考Github Api 采用 动词过去时 + Event 的方式, Visual Studio Code Api的 `on +

    {
      assignedEvent: '分配事件',
      closedEvent: '关闭事件',
      labeledEvent: '标签事件',
      lockedEvent: '锁事件',
      deployedEvent: '部署事件'
    }
    

    此外,很多命名方式可以根据场景使用 元素 + click元素 + changeselect + 范围等方式灵活运用

    {
      selectAll: '选择所有',
      cellClick: '当某个单元格被点击时会触发该事件',
      sortChange: '当表格的排序条件发生变化的时候会触发该事件'
    }
    

    状态管理命名

    如果在项目中用到了状态管理(redux/vuex/ngrx),下面给出一些ActionType,Mutation, Action的命名参考。

    // Redux 的 actionType
    LOAD_SUCCESS
    LOAD_FAIL
    TOGGLE_SHOW_HISTORY
    ON_PLAY
    ON_LOAD_START
    FETCH_SONGS_REQUEST
    RECEIVE_PRODUCTS
    
    // ngrx
    const SET_CURRENT_USER = '[User] Set current';
    const ADD_THREAD = '[Thread] Add';
    const UPDATE_TRIP_SUCCESS = 'Update [Trip] Success';
    

    时间变量命名

    // 日期、时间
    // --------------------------------------------------------
    sentAt: '发送时间'
    addAt: '添加时间'
    updateAt: '更新时间'
    startDate: '开始日期'
    endDate: '结束日期'
    startTime: '开时时间'
    endTime: '结束时间'
    

    参考资料

    文章的写作过程中参考大量优秀的文章、优秀开源项目的源码、流行框架的最佳实践指南以及一些SDK的接口文档。

    展开全文
  • ubuntu环境变量

    千次阅读 2021-09-16 13:47:15
    常见的环境变量:  PATH:决定了shell将到哪些目录中寻找命令或程序  HOME:当前用户主目录  MAIL:是指当前用户的邮件存放目录。  SHELL:是指当前用户用的是哪种Shell。  HISTSIZE:是指保存历史命令记录的条...
  • 概率论 —— 随机变量的数字特征

    千次阅读 2021-02-11 14:51:44
    文章目录一、一维随机变量的数字特征1. 数学期望(1)概念定义(2)说明(3)性质2. 方差、标准差(1)概念(2)性质3. 切比雪夫不等式二、二维随机变量的数字特征1. 数学期望2. 协方差与相关系数(1)概念(2) ...
  • 15种分类变量编码方法

    千次阅读 2021-02-16 11:04:34
    机器学习问题建模中,15种分类变量编码方法。
  • 文章目录1 理论介绍1.1 Instrumental variable解释1.2 因果推断中:内生性的一个有意思的例子1.2 与代理变量(proxy variable)的对比1.3 连玉君老师的简易解读2 econML实现 DeepIV 同系列可参考: 因果推断笔记...
  • 这篇文章给大家介绍python中单下划线_,具体内容如下所示...0x02作为一个无关紧要的变量 例如下面这个例子: for _ in range(10): print 'hello world!' 上面的语句执行结果是在屏幕上打印十行hello world,我们并不
  • env 环境变量

    千次阅读 多人点赞 2019-03-19 14:23:34
    ##########################################...如果兴趣的话可以加入进来一起学习,共同进步。 个体的精力总是有限的,分享经验,互助互利才是快速上升的捷径。 ###############################################...
  • 看懂什么是环境变量!

    2021-03-11 13:32:12
    前言相信大家初学java时,肯定会涉及到“配置环境变量”,而在网上搜索大多是教我们如何如配置,真正说明为什么要去配置环境变量的不多。不管在windows里还是liunx里都少不了环境变量的配置,一键Copy是解决不了问题...
  • 详解线程本地变量ThreadLocal

    千次阅读 2019-04-30 10:56:07
    并发应用的一个关键地方就是共享数据。如果你创建一个类对象,实现Runnable接口,然后多个Thread对象使用同样的Runnable对象,... Java 并发 API提供了一个很清楚的机制叫本地线程变量即ThreadLocal。 模拟ThreadL...
  • 变量和标识符

    千次阅读 2020-11-01 20:37:45
    变量和标识符* 2.1注释 在 Java 中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。  单行注释 单行注释使用“//”开头,“//”后面的单行内容均为注释。  多行注释 多行注释以“/”开头以“/”结尾...
  • 概率论总结(二):连续随机变量

    千次阅读 2021-05-09 07:40:37
    骨骼图: 连续随机变量定义及性质 定义: PDF与离散随机变量的分布列是对应的。 特别的,当B是一个区间时, 这个积分可以理解为,PDF和区间[a,b]所形成的曲边梯形...常见的连续概率分布 均匀随机变量: 假设X取值
  • 1. 时间趋势项与时间虚拟变量 1.1 时间趋势项 1.2 时间虚拟变量 1.3 二者的区别 2. Stata 范例 2.1 加入时间趋势项 3.2 改变划分时间虚拟变量的时间跨度 3. 拓展:DID 中加入时间趋势项 3.1 理论...
  • 探索变量之间的关系(python3)

    千次阅读 2020-02-10 15:42:29
    在做数据分析的过程中。我们往往是--理解需求--获取数据--清洗数据--简单描述统计-...大致步骤变量的类型:类别型/数值型 可视化给出可能的方向:散点图、箱型图、直方图、... 需建立更严格的分析方式:假设检验。
  • 进程间的通信方式有哪些

    千次阅读 2021-12-15 22:51:05
    进程间通信常见方式如下: 管道 FIFO 消息队列 信号量 共享内存 UNXI域套接字 套接字(Socket) 管道 管道是一种古老的IPC通信形式。 它的特点: 1.它是半双工的,具有固定的读端和写端; 2.它只能用于父子进程或者...
  • ,今天给大家写工具变量和孟德尔随机化,文章略微有些长,请大家准备好清醒的头脑,和半个小时的阅读时间哈。 啥是工具变量回归 Instrumental variable procedures are needed when some regressors are ...
  • 这里值得注意的是,笔者曾经在以前的博客提到,指针变量的所指向的存储空间与它指向哪一种数据类型无关,而与当前的机器字长有关。在32位机中,指针变量的大小是4个字节。当程序运行需要变量a时,它开始执行以下几步...
  • 什么是环境变量

    万次阅读 多人点赞 2019-08-26 14:31:29
    相信大家初学java时,肯定会涉及到“配置环境变量”,而在网上搜索大多是教我们如何如配置,真正说明为什么要去配置环境变量的不多。 不管在windows里还是liunx里都少不了环境变量的配置,一键Copy是解决不了问题的...
  • 11.1 变量间是否相关关系,且关系强度如何? 11.1.2 相关关系的描述与测量 相关关系:变量之间存在的不确定的数量关系,称为相关关系。 相关分析就是对两个变量之间线性关系的描述与度量,要解决的问题如下: ...
  • 环境变量NLS_LANG

    千次阅读 2020-06-05 09:02:02
    NLS_LANG是一个环境变量,用于定义语言,地域以及字符集属性。对于非英语的字符集,NLS_LANG的设置就非常重要。 NLS:‘NationalLanguageSupport(NLS)’当我们设定一种nls的时候实际上我们是为oracle在存放数据时...
  • 机器学习中的变量选择——进阶篇

    万次阅读 2019-03-03 13:42:17
    机器学习中的变量选择变量选择回顾单变量筛选通过模型选择变量变量选择进阶只用模型就能选好变量么数据处理模型介绍实验结果...在高维情况下,时候我们需要预先筛选部分变量,然后再训练模型。筛选过程需要做到...
  • 一维随机变量及分布分布函数性质常见随机变量及其分布离散型分布律常见离散型随机变量及分布0-1分布二项分布泊松分布连续型性质随机变量函数的概率分布 分布函数 随机变量:通俗说,随机变量就是一次随机试验产生的...
  • A1 正交假定:误差项...偏效应:在控制变量下,各自变量X对因变量Y的净效应 残差项:针对具体模型而言,被定义为样本回归模型中观测值与预测值之差 误差项:针对总体真实回归模型而言,它由一些不可观测因素或测量...
  • 文章目录 函数中this指向问题 原型 变量/函数 提升 全局执行上下文: 测试题 var可重复声明 作用域 闭包 更深入理解闭包的原理 闭包的作用 终极题目 ES5的继承

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,255
精华内容 42,502
热门标签
关键字:

常见的无关变量有哪些