概率论概述

为什么学习概率

  • 因果意味着定理般的必然性,而概率则意味着例外、疑问、缺乏规律性。
  • 概率论特别能够容忍无法解释的例外情况,因此它使我们能够专注于因果关系的主要问题,而不必处理这类矛盾。
  • 容忍例外只解决了与因果关系相关的部分问题。剩下的问题包括推断、干预、识别、分歧、混杂、反事实以及解释。

概率论的基本概念

  • 概率的贝叶斯解释:根据概率描述对事件的信念程度,并使用数据来增强、更新或削弱这些信念程度。
  • P(A∣K)P(A|K)P(A∣K)代表一个人在给定知识体系KKK的条件下对AAA所描述事件的主观信念。在定义概率表达式时,我们通常简单写成P(A)P(A)P(A),忽略符号KKK。然而,当背景信息发生变化时,我们需要明确地识别解释信念的假定,并明确地表示KKK(或KKK的部分元素)
  • 在贝叶斯形式化中,信念测度服从概率演算的三个基本公理:
    0≤P(A)≤1P(确定命题)=1如果A与B互斥,则P(A或B)=P(A)+P(B)\begin{gather*} 0 \leq P(A) \leq 1\\ P(\text{确定命题}) = 1\\ 如果A与B互斥,则P(A或B) = P(A)+P(B)\\ \end{gather*} 0≤P(A)≤1P(确定命题)=1如果A与B互斥,则P(A或B)=P(A)+P(B)​
  • 第3条公理表明,任何一组事件的信念是其非相交成分的信念的总和。因此对应的概率可写为:
    P(A)=P(A,B)+P(A,¬B)P(A) = P(A,B) + P(A,\neg B) P(A)=P(A,B)+P(A,¬B)
    其中P(A,B)P(A,B)P(A,B)是P(A∧B)P(A \wedge B)P(A∧B)的简写,¬\neg¬表示逻辑“非”,∧\wedge∧表示逻辑“与”。
  • 如果Bi(i=1,2,⋯,n)B_i(i= 1,2,\cdots,n)Bi​(i=1,2,⋯,n)是一组完备的互斥命题(称为划分或变量),那么P(A)P(A)P(A)可通过对P(A,Bi)(i=1,2,⋯,n)P(A,B_i)(i= 1,2,\cdots,n)P(A,Bi​)(i=1,2,⋯,n)求和得到:
    P(A)=∑iP(A,Bi)P(A) = \sum_{i}P(A,B_i) P(A)=i∑​P(A,Bi​)
    该式被称为“全概率公式”。在所有B_i上的概率求和操作也称为“边缘化于B”,获得的概率P(A)P(A)P(A)称为A的边缘概率。
  • 贝叶斯形式化的基本表达式是关于条件概率的陈述,例如,P(A∣B)P(A|B)P(A∣B)刻画了在BBB完全已知的条件下对AAA的信念。
  • 如果P(A∣B)=P(A)P(A|B) = P(A)P(A∣B)=P(A),那么我们认为AAA与BBB独立。因为在获悉B的事实后,我们对于A的信念并没有改变。
  • 如果P(A∣B,C)=P(A∣C)P(A|B,C) = P(A|C)P(A∣B,C)=P(A∣C),那么我们认为A与B在给定C时条件独立,即一旦我们了解C,那么获悉B将不能改变我们对于A的信念。
  • 传统做法利用联合事件定义条件概率,数学表达式:
    P(A∣B)=P(A,B)P(B)P(A|B) = \frac{P(A,B)}{P(B)} P(A∣B)=P(B)P(A,B)​
  • 与之相反,贝叶斯派学者认为条件关系比联合事件的关系更基本,即更符合人类知识结构的组织。在这种观点中,BBB作为指向知识背景或框架的指针,A∣BA|BA∣B表示由BBB确定的背景中的事件AAA(例如,在疾病BBB背景下的症状AAA)
  • 因此,经验知识必然被描述到条件概率陈述中,而对联合事件的信念可通过乘积计算得到:
    P(A,B)=P(A∣B)P(B)P(A,B) = P(A|B)P(B) P(A,B)=P(A∣B)P(B)
  • 任何时间A的概率都可通过对任意一组完备的互斥事件Bi(i=1,2,⋯,n)B_i(i= 1,2,\cdots,n)Bi​(i=1,2,⋯,n)取条件,然后求和计算得到:
    P(A)=∑iP(A∣Bi)P(Bi)P(A) = \sum_{i}P(A|B_i)P(B_i) P(A)=i∑​P(A∣Bi​)P(Bi​)
  • 上述公式表明任何事件AAA的信念是对所有可能实现AAA的不同方法的信念的加权和。例如,如果想要计算第1个骰子的结果XXX大于第2个骰子的结果YYY的概率,我们可以在XXX的所有可能值上对事件AAA:X>YX>YX>Y取条件获得:
    P(A)=∑i=16P(Y<X∣X=i)P(X=i)=∑i=16P(Y<i)16=∑i=16∑j=1i−1P(Y=j)16=16∑i=26i−16=512P(A) = \sum_{i=1}^{6}P(Y < X | X = i)P(X = i) = \sum^{6}_{i = 1}P(Y<i)\frac{1}{6}=\sum^{6}_{i = 1}\sum_{j=1}^{i-1}P(Y = j)\frac{1}{6} = \frac{1}{6}\sum_{i = 2}^{6}\frac{i-1}{6} = \frac{5}{12} P(A)=i=1∑6​P(Y<X∣X=i)P(X=i)=i=1∑6​P(Y<i)61​=i=1∑6​j=1∑i−1​P(Y=j)61​=61​i=2∑6​6i−1​=125​
  • 乘积法则的另一个有用推广是链式法则公式。该公式表明如果我们有nnn个事件E1,E2,⋯,EnE_1,E_2,\cdots,E_nE1​,E2​,⋯,En​,那么联合事件(E1,E2,⋯,EnE_1,E_2,\cdots,E_nE1​,E2​,⋯,En​)的概率可以写为nnn个条件概率的乘积:
    P(E1,E2,⋯,En)=P(En∣En−1,En−2,⋯,E1)⋯P(E2∣E1)P(E1)P(E_1,E_2,\cdots,E_n) = P(E_n|E_{n-1},E_{n-2},\cdots,E_1)\cdots P(E_2|E_1)P(E_1) P(E1​,E2​,⋯,En​)=P(En​∣En−1​,En−2​,⋯,E1​)⋯P(E2​∣E1​)P(E1​)
  • 贝叶斯推断的核心在于反演公式:
    P(H∣e)=P(e∣H)P(H)P(e)P(H|e) = \frac{P(e|H)P(H)}{P(e)} P(H∣e)=P(e)P(e∣H)P(H)​
    该公式表明,在获悉证据eee的条件下假设HHH的信念可通过将我们之前的信念P(H)P(H)P(H)与似然性P(e∣H)P(e|H)P(e∣H)相乘得到,后者表示如果HHH为真则eee为真的可能性。P(H∣e)P(H|e)P(H∣e)称为后验概率,P(H)P(H)P(H)称为先验概率。分母P(e)P(e)P(e)可通过令P(H∣e)P(H|e)P(H∣e)与P(¬H∣e)P(\neg H|e)P(¬H∣e)相加为1,得到P(e)=P(e∣H)P(H)+P(e∣¬H)P(¬H)P(e) = P(e|H)P(H)+P(e|\neg H)P(\neg H)P(e)=P(e∣H)P(H)+P(e∣¬H)P(¬H),它仅仅是一个归一化常数。
  • 贝叶斯主观主义者将反演公式看作依据证据更新信念的标准规则。尽管条件概率可以被看作纯粹的数学概念,但贝叶斯派拥护者将其看作语言的基本形式、语言表达“假定我知道AAA,…”的忠实翻译。
  • 相应地,条件概率公式不是一个定义,而是语言表述之间的一种经验可验证关系。条件概率公式断言,获悉AAA后人们对于BBB的信念不会低于获悉AAA之前人们对于A∧BA \wedge BA∧B的信念。此外这两个信念的比率会依据[P(A)]−1[P(A)]^{-1}[P(A)]−1的程度成比例增加,而[P(A)]−1[P(A)]^{-1}[P(A)]−1与AAA的获悉程度相关。
  • 反演公式的重要性在于,它利用直接由经验知识获得的数值表达度量P(H∣e)P(H|e)P(H∣e),这是一个通常很难估计的度量。
  • 联合分布函数很少可以明确刻画。在连续随机变量的分析中,分布函数由代数表达式给出,例如描述正态分布或指数分布的表达式。对于离散变量,已经发展了间接表示方法,即从部分变量之间的局部关系中推断总体分布。

预测支持与诊断支持结合

  • 贝叶斯规则(反演公式)的本质是使用概率和似然比这样的参数来方便地描述问题,将反演公式除以其互补式P(¬H∣e)P(\neg H|e)P(¬H∣e),可以得到
    P(H∣e)P(¬H∣e)=P(e∣H)P(e∣¬H)P(H)P(¬H)\frac{P(H|e)}{P(\neg H|e)} = \frac{P(e|H)}{P(e|\neg H)}\frac{P(H)}{P(\neg H)} P(¬H∣e)P(H∣e)​=P(e∣¬H)P(e∣H)​P(¬H)P(H)​
    定义HHH的先验概率为:
    O(H)=P(H)P(¬H)=P(H)1−P(H)O(H) = \frac{P(H)}{P(\neg H)} = \frac{P(H)}{1-P(H)} O(H)=P(¬H)P(H)​=1−P(H)P(H)​
    HHH的似然比为:
    L(e∣H)=P(H∣e)P(e∣¬H)L(e|H) = \frac{P(H|e)}{P(e|\neg H)} L(e∣H)=P(e∣¬H)P(H∣e)​
    后验概率:
    O(H∣e)=P(H∣e)P(¬H∣e)O(H|e) = \frac{P(H|e)}{P(\neg H|e)} O(H∣e)=P(¬H∣e)P(H∣e)​
    由如下乘积得到:
    O(H∣e)=L(e∣H)O(H)O(H|e) = L(e|H)O(H) O(H∣e)=L(e∣H)O(H)
  • 贝叶斯规则说明,基于先验知识KKK和观察到的证据eee,我们对于假设HHH的总体信念强度应该是两个因素的乘积:先验概率O(H)O(H)O(H)和似然比L(e∣H)L(e|H)L(e∣H)。第一个因子衡量的是仅通过背景知识获得的对HHH的预测性支持或预期性支持,而第二个因子表示实际观察到的证据对HHH的诊断性支持或回顾性支持。
  • 严格来说,似然比L(e∣H)L(e|H)L(e∣H)可能依赖与隐形知识库KKK的内容。然而,贝叶斯方法的影响主要来自于事实:在因果推理中,关系P(e∣H)P(e|H)P(e∣H)是非常局部的关系——由于eee通常不依赖于知识库中的其他命题,因此假定HHH为真,那么eee的概率可以很自然的被估计出来。
  • 条件概率P(e∣H)P(e|H)P(e∣H)而非P(H∣e)P(H|e)P(H∣e)是贝叶斯分析中的原子关系。前者具有类似逻辑规则的模块化特征,传达了类似“如果HHH则eee”的具有逻辑化的信念强度,这是一种不管知识库中存在什么其他规则或事实都能成立的信念。

例题

  想象一下,有一天晚上你被防盗警报器的尖锐声音吵醒。你对于发生盗窃的信念强度是多少?为了便于说明,我们做出以下判断:(a)企图盗窃触发警报系统的可能性为95%,即P(警报∣盗窃)=0.95P(警报|盗窃) = 0.95P(警报∣盗窃)=0.95;(b)基于已知的错误警报次数,由企图盗窃之外的因素触发警报系统的可能性为1%,即P(警报∣非盗窃)=0.01P(警报|非盗窃) = 0.01P(警报∣非盗窃)=0.01;(c)以往的犯罪模式表明,某所房子在某天晚上被盗的可能性为万分之一,即P(盗窃)=0.0001P(盗窃) = 0.0001P(盗窃)=0.0001;

  • 整合这些假定,我们得到:
    O(盗窃∣警报)=L(警报∣盗窃)O(盗窃)=0.950.01×10−41−10−4=0.0095O(盗窃|警报) = L(警报|盗窃)O(盗窃) = \frac{0.95}{0.01} \times \frac{10^{-4}}{1-10^{-4}} = 0.0095 O(盗窃∣警报)=L(警报∣盗窃)O(盗窃)=0.010.95​×1−10−410−4​=0.0095
    依据:
    O(A)=P(A)P(¬A)1+O(A)=P(A)+P(¬A)P(¬A)O(A)1+O(A)=P(A)P(¬A)⋅P(¬A)P(A)+P(¬A)=P(A)P(A)+P(¬A)=P(A)O(A) = \frac{P(A)}{P(\neg A)}\\ 1+O(A) = \frac{P(A)+P(\neg A)}{P(\neg A)}\\ \frac{O(A)}{1+O(A)} = \frac{P(A)}{P(\neg A)} \cdot \frac{P(\neg A)}{P(A) + P(\neg A)} = \frac{P(A)}{P(A) + P(\neg A)} = P(A)\\ O(A)=P(¬A)P(A)​1+O(A)=P(¬A)P(A)+P(¬A)​1+O(A)O(A)​=P(¬A)P(A)​⋅P(A)+P(¬A)P(¬A)​=P(A)+P(¬A)P(A)​=P(A)
    得到:
    P(盗窃∣警报)=0.00951+0.0095=0.00941P(盗窃|警报) = \frac{0.0095}{1+0.0095} = 0.00941 P(盗窃∣警报)=1+0.00950.0095​=0.00941
  • 因此,由警报证据获得的对盗窃假设的回顾性支持将盗窃可能的信念强度几乎提高了一百倍,从110000\frac{1}{10000}100001​提升到94.110000\frac{94.1}{10000}1000094.1​。考虑到系统几乎每三个月就会触发一次误报。盗窃信念仍低于1%。

随机变量与期望

  • 本书的变量指的是属性、度量或问题,从特定域取得一些可能的结果或值。
  • 如果我们对变量的可能取值赋予某种信念(即概率),那么我们称这个变量为随机变量。
  • 继续使用缩写P(x)P(x)P(x)表示概率P(X=x)P(X = x)P(X=x),x∈Dxx \in D_xx∈Dx​。同样,如果ZZZ代表集合{X,Y}\{X,Y\}{X,Y},那么P(z)P(z)P(z)定义为(≜\triangleq≜是定义的意思):
    P(z)≜P(Z=z)=P(X=x,Y=y),x∈Dx,y∈DyP(z) \triangleq P(Z = z) = P(X=x,Y=y),x \in D_x,y \in D_y P(z)≜P(Z=z)=P(X=x,Y=y),x∈Dx​,y∈Dy​
    当随机变量XXX的值是实数时,XXX称为实随机变量,XXX的均值或期望值定义为:
    E(X)≜∑xxP(x)E(X) \triangleq \sum_{x}xP(x) E(X)≜x∑​xP(x)
  • 给定事件Y=yY = yY=y,XXX的条件均值定义为:
    E(X∣y)≜∑xP(x∣y)E(X|y) \triangleq \sum_{x}P(x|y) E(X∣y)≜x∑​P(x∣y)
    关于XXX的函数ggg的期望定义为:
    E[g(X)]≜∑xg(x)P(x)E[g(X)] \triangleq \sum_{x}g(x)P(x) E[g(X)]≜x∑​g(x)P(x)
  • 函数g(X)=(X−E(X))2g(X) = (X-E(X))^2g(X)=(X−E(X))2尤其受到关注,它的期望称为XXX的方差,表示为σX2\sigma_X^2σX2​:
    σX2≜E[(X−E(X))2]\sigma_X^2 \triangleq E[(X-E(X))^2] σX2​≜E[(X−E(X))2]
  • 变量XXX和YYY的函数g(X,Y)的期望需要用到联合概率P(x,y),定义如下:
    E[g(X,Y)]≜∑x,yg(x,y)P(x,y)E[g(X,Y)] \triangleq \sum_{x,y}g(x,y)P(x,y) E[g(X,Y)]≜x,y∑​g(x,y)P(x,y)

条件独立与图

  • (X⊥⁣ ⁣ ⁣⊥Y∣Z)(X \perp \!\!\! \perp Y|Z)(X⊥⊥Y∣Z)表示给定ZZZ的XXX与YYY的条件独立,因此:
    (X⊥⁣ ⁣ ⁣⊥Y∣Z)p当且仅当  P(x∣y,z)=P(x∣z)(X \perp \!\!\! \perp Y|Z)_p\ \ 当且仅当\ \ P(x|y,z) = P(x|z) (X⊥⊥Y∣Z)p​  当且仅当  P(x∣y,z)=P(x∣z)
    对于所有满足P(y,z)>0P(y,z)>0P(y,z)>0的值x,y,zx,y,zx,y,z。无条件独立(也称为边缘独立)表示为(X⊥⁣ ⁣ ⁣⊥Y∣∅)(X \perp \!\!\! \perp Y|\varnothing)(X⊥⊥Y∣∅)。即:
    (X⊥⁣ ⁣ ⁣⊥Y∣∅)当且仅当  P(x∣y)=P(x)只要P(y)>0(X \perp \!\!\! \perp Y|\varnothing)\ \ 当且仅当\ \ P(x|y) = P(x)\ \ 只要P(y)>0 (X⊥⊥Y∣∅)  当且仅当  P(x∣y)=P(x)  只要P(y)>0
  • 注意,(X⊥⁣ ⁣ ⁣⊥Y∣Z)(X \perp \!\!\! \perp Y|Z)(X⊥⊥Y∣Z)意味着任何变量对Vi∈XV_i \in XVi​∈X与Vj∈YV_j \in YVj​∈Y的条件独立,但反之未必为真。
  • 条件独立关系(X⊥⁣ ⁣ ⁣⊥Y∣Z)(X \perp \!\!\! \perp Y|Z)(X⊥⊥Y∣Z)满足的部分性质:
    对称性:(X⊥⁣ ⁣ ⁣⊥Y∣Z)⇒(Y⊥⁣ ⁣ ⁣⊥X∣Z)(X \perp \!\!\! \perp Y|Z)\Rightarrow(Y \perp \!\!\! \perp X|Z)(X⊥⊥Y∣Z)⇒(Y⊥⊥X∣Z)
    分解性:(X⊥⁣ ⁣ ⁣⊥YW∣Z)⇒(X⊥⁣ ⁣ ⁣⊥Y∣Z)(X \perp \!\!\! \perp YW|Z)\Rightarrow(X \perp \!\!\! \perp Y|Z)(X⊥⊥YW∣Z)⇒(X⊥⊥Y∣Z)
    弱联合性:(X⊥⁣ ⁣ ⁣⊥YW∣Z)⇒(X⊥⁣ ⁣ ⁣⊥Y∣ZW)(X \perp \!\!\! \perp YW|Z)\Rightarrow(X \perp \!\!\! \perp Y|ZW)(X⊥⊥YW∣Z)⇒(X⊥⊥Y∣ZW)
    收缩性:(X⊥⁣ ⁣ ⁣⊥Y∣Z)&(X⊥⁣ ⁣ ⁣⊥W∣ZY)⇒(X⊥⁣ ⁣ ⁣⊥YW∣Z)(X \perp \!\!\! \perp Y|Z) \& (X\perp \!\!\! \perp W|ZY)\Rightarrow(X \perp \!\!\! \perp YW|Z)(X⊥⊥Y∣Z)&(X⊥⊥W∣ZY)⇒(X⊥⊥YW∣Z)
    相交性:(X⊥⁣ ⁣ ⁣⊥W∣ZY)&((X⊥⁣ ⁣ ⁣⊥Y∣ZW)⇒(X⊥⁣ ⁣ ⁣⊥YW∣Z)(X\perp \!\!\! \perp W|ZY)\& ((X\perp \!\!\! \perp Y|ZW)\Rightarrow(X \perp \!\!\! \perp YW|Z)(X⊥⊥W∣ZY)&((X⊥⊥Y∣ZW)⇒(X⊥⊥YW∣Z)
    相交性在严格的正概率分布条件下成立。
  • 在图中,如果我们将(X⊥⁣ ⁣ ⁣⊥Y∣Z)(X \perp \!\!\! \perp Y|Z)(X⊥⊥Y∣Z)解释为“从节点子集X到节点子集Y的任何路径均被节点子集Z阻断”
  • 对称性公理表明,无论以何种形式获悉ZZZ后,如果YYY不能告诉我们关于XXX的任何新信息,那么XXX也不能告诉我们关于YYY的任何新信息。
  • 分解性公理断言,如果判定两个合并的信息项与XXX不相关,那么每一个分项也与XXX不相关。
  • 弱联合性公理表明,获悉WWW与XXX不相关的信息不能使原来与XXX不相关的YYY变得与XXX相关
  • 收缩性公理表明,如果获悉YYY与XXX不相关的信息后判定WWW与XXX无关,那么获悉YYY之前WWW一定与XXX无关。
  • 相交性公理表明,如果获悉WWW后YYY与XXX不相关且获悉YYY后WWW与XXX不相关,那么WWW与YYY(或者它们的组合)都与XXX不相关。

因果论 —— 模型、推理和推断(概率、图及因果模型)①相关推荐

  1. er图转换成关系模型的例题,将ER图转换为关系模型

    I know how to convert an entity set, relationship, etc. into the relational model but what i wonder ...

  2. 【模型推理加速系列】05: 推理加速格式TorchScript简介及其应用

    简介 本文紧接前文:模型推理加速系列|04:BERT模型推理加速 TorchScript vs. ONNX 实验结果:在动态文本长度且大batch size的场景下,TorchScript 格式的in ...

  3. 深度学习实战——模型推理优化(模型压缩与加速)

    忆如完整项目/代码详见github:https://github.com/yiru1225(转载标明出处 勿白嫖 star for projects thanks) 目录 系列文章目录 一.实验思路综 ...

  4. MindSpore模型推理

    MindSpore模型推理 如果想在应用中使用自定义的MindSpore Lite模型,需要告知推理器模型所在的位置.推理器加载模型的方式有以下三种: • 加载本地模型. • 加载远程模型. • 混合 ...

  5. ML之回归预测:利用Lasso、ElasticNet、GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(模型评估、模型推理)

    ML之回归预测:利用Lasso.ElasticNet.GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集[12+1]进行回归预测(模型评估.模型推理) 目录 ...

  6. 【模型推理加速系列】06: 基于resnet18加速方案评测

    简介 花雪随风不厌看,更多还肯失林峦.愁人正在书窗下,一片飞来一片寒.小伙伴们好,我是微信公众号小窗幽记机器学习的首席称重师:卖麻辣烫的小男孩.今天这篇文章以resnet18模型为例,对比Pytorc ...

  7. 因果论 —— 模型、推理和推断(概率、图及因果模型)②

    图与概率 图的符号与术语 图由顶点集(或节点集)VVV和连接顶点对的边集(或链接集)EEE组成.图中的顶点对应用于变量,边表示变量对之间的某种关系.由边连接的两个变量称为相邻变量. 我们会使用&quo ...

  8. 机器学习-白板推导-系列(九)笔记:概率图模型: 贝叶斯网络/马尔可夫随机场/推断/道德图/因子图

    文章目录 0 笔记说明 1 背景介绍 1.1 概率公式 1.2 概率图简介 1.2.1 表示 1.2.2 推断 1.2.3 学习 1.2.4 决策 1.3 图 2 贝叶斯网络 2.1 条件独立性 2. ...

  9. 因果推断(二)-Causal effect 因果效应推理

    1.因果效应推理定义 套用一个发券和购买转化率的关系,已知发优惠券与购买转化率有因果关系,发优惠券是因,购买转化率是果,我们想知道,当发券的情况下,购买转化率会增加多少? 2.因果效应推理估计对象 估 ...

  10. NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型...

    LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...

最新文章

  1. 被陆奇看好的项目都好奇葩
  2. Python之路【第一篇】:Python简介和入门
  3. Flink 异步IO访问外部数据(mysql篇)
  4. windows连接投影仪后桌面画面和白板画面不一致
  5. CentOS7 上安装 Zookeeper-3.4.9 服务
  6. 大道至简,大数据的小窍门
  7. 使用Remoting技术
  8. c语言双人贪吃蛇-基于图形库实现
  9. python爬取贴吧数据_【python】利用requests爬取百度贴吧用户信息
  10. 基于CCII+的电流模式二阶带通滤波器仿真
  11. Ph0thon字符串
  12. 【JSTL】JSP 标准标签库JSTL学习
  13. Spring -从走火到入魔
  14. 打造个人版微信小程序(1)——本地开发api接口调用
  15. Python爬虫入门学习实战项目(一)
  16. android dat怎么打开方式,安卓手机如何打开.dat文件?
  17. 互联网思维,发现身边的痛点和痒点
  18. 七、CSS背景(background简写)
  19. Go语言进阶推荐这样三本书
  20. 2022 如何进行有结果的绩效改进对话

热门文章

  1. 不用软件测试火车速度,实测八款抢火车票软件 优先出票权仅拼速度非真正优先...
  2. [小说]魔王冢(47)程强之死
  3. 前端Vue之发布订阅模式
  4. 人人网官方Android客户端源码分析(1)
  5. 国嵌 c语言,专题3-6.#和##运算符使用解析(国嵌C语言视频)
  6. 模型的评价方法和指标
  7. 十一、提取、搜索、拆分字符串
  8. 微信公众号接入智能聊(ga)天(liao)机器人
  9. 小数为何叫成浮点数 ?
  10. RSA+3DES 加密