相信大家已经了解,逻辑回归能帮助我们解决的,是因变量有且只有两种类别的问题,比如我们之前例子里,一场选举中选民投票给两位候选人中的哪一位。通过逻辑回归,我们可以研究各种自变量与我们关心的二分类因变量之间的相关关系,而这些自变量既可以是二分类的(如性别),也可以是多分类的(如职业),还可以是连续的(如收入、教育程度)。

毫无疑问,这个世界上有不少问题的答案就是非此即彼的,因而逻辑回归的用途很广泛。尤其在医学领域,诸如是否患有某种疾病,某个疗法是否有效,这些几乎就是医学研究和实践的核心问题。运用逻辑回归,我们可以把病人的各种指标作为自变量,从而对疾病的风险因素、药物或手术的适应症等问题进行严谨的研究。

但是,同样也有很多其他我们关心的事情,其结果不一定只有两种情况。比方说,你辗转反侧地琢磨你暗恋多时的女神究竟对你有没有意思,可别傻乎乎地掰起花瓣儿「她爱我、她不爱我、她爱我……」了!谁知道除了这两种情况以外,是不是还有「想和你暧昧」「想拿你当备胎」「想培养你当男闺蜜」之类的其他可能性呢?

换回一张正经脸,实际工作和科研中同样存在类似的多分类(多于两种类别)问题。我们曾经在《数据到手了,第一件事该干啥?》里讲过,多分类变量可以进一步分成两种:名义变量(nominal variable)和定序变量(ordinal variable)。名义变量的不同分类是没有顺序可言的,比如说基因型、疾病的分型等;而有定序变量的不同分类则有逻辑上的顺序,比如客户满意度调查中的选项「非常不满意」「不满意」「一般」「满意」「非常满意」。现在我们的问题是,如果因变量是多分类变量,那么要用怎样的统计学模型研究与其相关的因素?多分类因变量的类别有或无顺序时,方法是否有所不同?

对于第二个问题的答案,也许你已经猜到,对付这两种情形,的确要用到不太一样(但是颇有共通之处)的方法。我们今天就先来讨论一下,当因变量的类别没有顺序(即为名义变量)时,要建立怎样的统计学模型。

既然多分类是二分类的拓展和延伸,那么我们就从已经熟悉的逻辑回归模型出发,来找找灵感:log⁡(p1−p)=β0+β1x1+β2x2+⋯+βkxk\log \left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1} x_{1}+\beta_{2} x_{2}+\cdots+\beta_{k} x_{k}log(1−pp​)=β0​+β1​x1​+β2​x2​+⋯+βk​xk​
这条式子大家已经看过许多遍了,右边与线性回归相似,是一堆自变量xi(i=1,2,…,k)的线性叠加(注意xi不仅可以是单个自变量,也可以是若干其他自变量的交互作用,例如x3·x5),对应的回归系数βi(i=1,2,…,k)代表各自对因变量的效应大小,当然还有一个我们通常不太关注的截距β0。而左边呢,p代表了在两个可能的类别中,因变量为某一个事先选定的类别(比如男/女中的女)的概率。

注意式子左边对数里头的分母1-p,它代表了什么?当因变量只有两个可能的类别时,既然p是取其中一个类别(称为类别1)的概率,那么1-p自然就是另一个类别(称为类别2)的概率了。也就是说,我们可以把前面的模型写成
log⁡(p类别 1p类别 2)=β0+β1x1+β2x2+⋯+βkxk\log \left(\frac{p_{\text {类别 } 1}}{p_{\text {类别 } 2}}\right)=\beta_{0}+\beta_{1} x_{1}+\beta_{2} x_{2}+\cdots+\beta_{k} x_{k}log(p类别 2​p类别 1​​)=β0​+β1​x1​+β2​x2​+⋯+βk​xk​

这样一来,我们就能更加清楚地看到,这个模型描绘的是因变量取两个类别的概率的比值P类别1P类别2\frac{P_{类别1}}{P_{类别2}}P类别2​P类别1​​。因此,对于逻辑回归来说,回归系数βi\beta_iβi​描述了当其它自变量都保持不变,而自变量增加时,因变量在类别1和2之间的【倾向性】的变化。更具体来说,如果βi\beta_iβi​是正数,则xix_ixi​越大,因变量更可能取类别1;如果βi\beta_iβi​是负数,则xix_ixi​越大,因变量更可能取类别2。

现在,我们将踏出关键的一步——类别个数不止两个的时候呢?比如说,5个类别?

在这种情况下,我们5个类别之间两两比较有多少种不同的组合?这个可就多了(回忆一下高中学过的组合数,5选2一共有10种组合),但我们并不需要穷尽所有的组合。一种方便的做法是,选定一个类别固定做分母(比如说类别5,称其为【参考类别】),然后让剩下的类别轮流做分子,因此有P类别1P类别5\frac{P_{类别1}}{P_{类别5}}P类别5​P类别1​​,P类别2P类别5\frac{P_{类别2}}{P_{类别5}}P类别5​P类别2​​,P类别3P类别5\frac{P_{类别3}}{P_{类别5}}P类别5​P类别3​​,P类别4P类别5\frac{P_{类别4}}{P_{类别5}}P类别5​P类别4​​四个比例。

为什么这样就够了呢?首先,有了这四个比例,所有涉及类别5的组合都照顾到了。其次,如果我们要关心不涉及类别5的组合,比如说P类别2P类别4\frac{P_{类别2}}{P_{类别4}}P类别4​P类别2​​,那又怎么办呢?好办,我们只需要将P类别2P类别5\frac{P_{类别2}}{P_{类别5}}P类别5​P类别2​​除以P类别4P类别5\frac{P_{类别4}}{P_{类别5}}P类别5​P类别4​​,把分母上共同的类别5消掉,就得到P类别2P类别4\frac{P_{类别2}}{P_{类别4}}P类别4​P类别2​​了。因此,我们只需要对P类别1P类别5\frac{P_{类别1}}{P_{类别5}}P类别5​P类别1​​,P类别2P类别5\frac{P_{类别2}}{P_{类别5}}P类别5​P类别2​​,P类别3P类别5\frac{P_{类别3}}{P_{类别5}}P类别5​P类别3​​,P类别4P类别5\frac{P_{类别4}}{P_{类别5}}P类别5​P类别4​​四个比例建立统计模型,就能全方位地覆盖这5个类别之间的概率比例关系了。

究竟选哪个类别做参考类别,其实不影响模型德奥的结论,但回归系数的解读会有所不同,这里的思想和哑变量方法是一脉相承的,只不过哑变量是对名义变量作为自变量时的处理方式,而我们今天讲的是名义变量做因变量时的建模方法。推广到一般情形,如果因变量有k种分类,那么我们需要对k-1个比例关系进行建模。

既然如此,我们依葫芦画瓢,按照一般的二分类逻辑回归模型的样子,写出关于上面的四个比例的模型(注意,为了简明起见,下面我们省略了关于第几个数据点的下标,但是我们仍要记住,对于每一个数据点,自变量x1,x2,...,xkx_1,x_2,...,x_kx1​,x2​,...,xk​取值不同,各等式左边的P类别1,P类别2,...,P类别3P_{类别1},P_{类别2},...,P_{类别3}P类别1​,P类别2​,...,P类别3​也会不同):

log⁡(p类别 1p类别 5)=β0,类别 1+β1,类别 1x1+β2,类别 1x2+⋯+βk,类别 1xk=∑i=1kβi,类别 1xi\log \left(\frac{p_{\text {类别 } 1}}{p_{\text {类别 } 5}}\right)=\beta_{0, \text { 类别 } 1}+\beta_{1, \text { 类别 } 1} x_{1}+\beta_{2, \text { 类别 } 1} x_{2}+\cdots+\beta_{k, \text { 类别 } 1} x_{k}=\sum_{i=1}^{k} \beta_{i, \text { 类别 } 1} x_{i}log(p类别 5​p类别 1​​)=β0, 类别 1​+β1, 类别 1​x1​+β2, 类别 1​x2​+⋯+βk, 类别 1​xk​=i=1∑k​βi, 类别 1​xi​log⁡(p类别 2p类别 5)=β0,类别 2+β1,类别 2x1+β2,类别 2x2+⋯+βk,类别 2xk=∑i=1kβi,类别 2xi\log \left(\frac{p_{\text {类别 } 2}}{p_{\text {类别 } 5}}\right)=\beta_{0, \text { 类别 } 2}+\beta_{1, \text { 类别 } 2} x_{1}+\beta_{2, \text { 类别 } 2} x_{2}+\cdots+\beta_{k, \text { 类别 } 2} x_{k}=\sum_{i=1}^{k} \beta_{i, \text { 类别 } 2} x_{i}log(p类别 5​p类别 2​​)=β0, 类别 2​+β1, 类别 2​x1​+β2, 类别 2​x2​+⋯+βk, 类别 2​xk​=i=1∑k​βi, 类别 2​xi​log⁡(p类别 3p类别 )=β0,类别 3+β1,类别 3x1+β2,类别 3x2+⋯+βk类别 3xk=∑i=1kβi,类别 3xi\log \left(\frac{p_{\text {类别 } 3}}{p_{\text {类别 }}}\right)=\beta_{0 \text { ,类别 } 3}+\beta_{1, \text { 类别 } 3} x_{1}+\beta_{2, \text { 类别 } 3} x_{2}+\cdots+\beta_{k \text { 类别 } 3} x_{k}=\sum_{i=1}^{k} \beta_{i, \text { 类别 } 3} x_{i}log(p类别 ​p类别 3​​)=β0 ,类别 3​+β1, 类别 3​x1​+β2, 类别 3​x2​+⋯+βk 类别 3​xk​=i=1∑k​βi, 类别 3​xi​log⁡(p类别 4p类别 )=β0,类别 4+β1,类别 4x1+β2,类别 4x2+⋯+βk类别 4xk=∑i=1kβi,类别 4xi\log \left(\frac{p_{\text {类别 } 4}}{p_{\text {类别 }}}\right)=\beta_{0 \text { ,类别 } 4}+\beta_{1, \text { 类别 } 4} x_{1}+\beta_{2, \text { 类别 } 4} x_{2}+\cdots+\beta_{k \text { 类别 } 4} x_{k}=\sum_{i=1}^{k} \beta_{i, \text { 类别 } 4} x_{i}log(p类别 ​p类别 4​​)=β0 ,类别 4​+β1, 类别 4​x1​+β2, 类别 4​x2​+⋯+βk 类别 4​xk​=i=1∑k​βi, 类别 4​xi​

其中,等式最右边使用了求和符号,只是为了把中间一长串公式写的简单一些,而且对后续的表述会有帮助。

很容易看到,这几条式子与二分类的逻辑回归模型很相似,这样的一组模型,称为多项逻辑回归,但是着重点出的是,在多项逻辑回归里,因变量除了参考类别以外的每一个类别,都拥有自己的一套回归系数,因此,大家会注意到,回归系数不像以前那样只有一个对应自变量xix_ixi​的下标iii。在本文中,各个β\betaβ下标的第一部分依然表明该回归系数对应于哪一个自变量,而第二部分表示该回归系数对应的是因变量的哪一个类别。比如说,β2,类别3\beta_{2,类别3}β2,类别3​对应于自变量x2x_2x2​和类别3,它的意义是,当自变量x2x_2x2​增长一个单位,而其他自变量保持不变时,因变量取类别3的概率与取类别5的概率之比例的对数值(或称两者的分对数)log(P类别3P类别5)log(\frac{P_{类别3}}{P_{类别5}})log(P类别5​P类别3​​)会相应发生多少变化。推广到一般情况,如果我们有k个自变量,因变量总共有m个类别(包含选做参考类别的那一个)的话,多项逻辑回归模型里就一共包含(m−1)(k−1)(m-1)(k-1)(m−1)(k−1)个回归系数(含截距)。
根据上面的模型,我们还可以进一步推出,对于任何一个数据点,如果我们知道了它所有的自变量x1,x2,...,xkx_1,x_2,...,x_kx1​,x2​,...,xk​的取值,那么它因变量取各个不同类别的可能性(概率P类别P_{类别}P类别​)是多少。根据对数的定义,前面四个式子可以变成:
p类别 1p类别 5=e∑i=1kβi,类别 1xi\frac{p_{\text {类别 } 1}}{p_{\text {类别 } 5}}=e^{\sum_{i=1}^{k} \beta_{i, \text { 类别 } 1} x_{i}}p类别 5​p类别 1​​=e∑i=1k​βi, 类别 1​xi​p类别 2p类别 5=e∑i=1kβi,类别 2xi\frac{p_{\text {类别 } 2}}{p_{\text {类别 } 5}}=e^{\sum_{i=1}^{k} \beta_{i, \text { 类别 } 2} x_{i}}p类别 5​p类别 2​​=e∑i=1k​βi, 类别 2​xi​p类别 3p类别 5=e∑i=1kβi,类别 3xi\frac{p_{\text {类别 } 3}}{p_{\text {类别 } 5}}=e^{\sum_{i=1}^{k} \beta_{i, \text { 类别 } 3} x_{i}}p类别 5​p类别 3​​=e∑i=1k​βi, 类别 3​xi​p类别 4p类别 5=e∑i=1kβi,类别 4xi\frac{p_{\text {类别 } 4}}{p_{\text {类别 } 5}}=e^{\sum_{i=1}^{k} \beta_{i, \text { 类别 } 4} x_{i}}p类别 5​p类别 4​​=e∑i=1k​βi, 类别 4​xi​

别看右边eee的幂那么一大堆很复杂的样子,现在我们关心的是P类别1,P类别2,P类别3,P类别4,P类别5P_{类别1},P_{类别2},P_{类别3},P_{类别4},P_{类别5}P类别1​,P类别2​,P类别3​,P类别4​,P类别5​,所以其它的都可以看做是常数。此时,简单做个移项,把左边的分母都挪到右边去,我们就能发现,这四条式子只不过是类似于简单的一次方程组而已:p类别 1=eΣi=1kβi类別 1xi⋅p类别 5p_{\text {类别 } 1}=e^{\Sigma_{i=1}^{k} \beta_{i \text { 类別 }} 1} x_{i} \cdot p_{\text {类别 } 5}p类别 1​=eΣi=1k​βi 类別 ​1xi​⋅p类别 5​p类别 2=eΣi=1kβi类別 2xi⋅p类别 5p_{\text {类别 } 2}=e^{\Sigma_{i=1}^{k} \beta_{i \text { 类別 }} 2} x_{i} \cdot p_{\text {类别 } 5}p类别 2​=eΣi=1k​βi 类別 ​2xi​⋅p类别 5​p类别 3=eΣi=1kβi类別 3xi⋅p类别 5p_{\text {类别 } 3}=e^{\Sigma_{i=1}^{k} \beta_{i \text { 类別 }} 3} x_{i} \cdot p_{\text {类别 } 5}p类别 3​=eΣi=1k​βi 类別 ​3xi​⋅p类别 5​p类别 4=eΣi=1kβi类別 4xi⋅p类别 5p_{\text {类别 } 4}=e^{\Sigma_{i=1}^{k} \beta_{i \text { 类別 }} 4} x_{i} \cdot p_{\text {类别 } 5}p类别 4​=eΣi=1k​βi 类別 ​4xi​⋅p类别 5​

既然是一次方程组,我们知道,要能解得处理,有几个未知数就要有几个方程。现在我们有5个未知数P类别1,P类别2,P类别3,P类别4,P类别5P_{类别1},P_{类别2},P_{类别3},P_{类别4},P_{类别5}P类别1​,P类别2​,P类别3​,P类别4​,P类别5​,可以上面只有四个方程,缺了一个怎么办呢?仔细想想,其实对于这5个未知数,还有一个条件我们没用上:因为已经知道因变量y只可能取这5个类别中的一个,没有别的可能,那么这5个概率加起来一定是1:P类别1+P类别2+P类别3+P类别4+P类别5=1P_{类别1}+P_{类别2}+P_{类别3}+P_{类别4}+P_{类别5}=1P类别1​+P类别2​+P类别3​+P类别4​+P类别5​=1这下好了,5个未知数,5个一次方程,我们可以解出:P类别1=e∑i=1kβi,类别1xie∑i=1kβi,类别1xi+e∑i=1kβi,类别2xi+e∑i=1kβi,类别3xi+e∑i=1kβi,类别4xi+1P_{类别1}=\frac{e^{\sum_{i=1}^k\beta_{i,类别1}x_i}}{e^{\sum_{i=1}^k\beta_{i,类别1}x_i}+e^{\sum_{i=1}^k\beta_{i,类别2}x_i}+e^{\sum_{i=1}^k\beta_{i,类别3}x_i}+e^{\sum_{i=1}^k\beta_{i,类别4}x_i}+1}P类别1​=e∑i=1k​βi,类别1​xi​+e∑i=1k​βi,类别2​xi​+e∑i=1k​βi,类别3​xi​+e∑i=1k​βi,类别4​xi​+1e∑i=1k​βi,类别1​xi​​P类别2=e∑i=1kβi,类别2xie∑i=1kβi,类别1xi+e∑i=1kβi,类别2xi+e∑i=1kβi,类别3xi+e∑i=1kβi,类别4xi+1P_{类别2}=\frac{e^{\sum_{i=1}^k\beta_{i,类别2}x_i}}{e^{\sum_{i=1}^k\beta_{i,类别1}x_i}+e^{\sum_{i=1}^k\beta_{i,类别2}x_i}+e^{\sum_{i=1}^k\beta_{i,类别3}x_i}+e^{\sum_{i=1}^k\beta_{i,类别4}x_i}+1}P类别2​=e∑i=1k​βi,类别1​xi​+e∑i=1k​βi,类别2​xi​+e∑i=1k​βi,类别3​xi​+e∑i=1k​βi,类别4​xi​+1e∑i=1k​βi,类别2​xi​​P类别3=e∑i=1kβi,类别3xie∑i=1kβi,类别1xi+e∑i=1kβi,类别2xi+e∑i=1kβi,类别3xi+e∑i=1kβi,类别4xi+1P_{类别3}=\frac{e^{\sum_{i=1}^k\beta_{i,类别3}x_i}}{e^{\sum_{i=1}^k\beta_{i,类别1}x_i}+e^{\sum_{i=1}^k\beta_{i,类别2}x_i}+e^{\sum_{i=1}^k\beta_{i,类别3}x_i}+e^{\sum_{i=1}^k\beta_{i,类别4}x_i}+1}P类别3​=e∑i=1k​βi,类别1​xi​+e∑i=1k​βi,类别2​xi​+e∑i=1k​βi,类别3​xi​+e∑i=1k​βi,类别4​xi​+1e∑i=1k​βi,类别3​xi​​P类别4=e∑i=1kβi,类别4xie∑i=1kβi,类别1xi+e∑i=1kβi,类别2xi+e∑i=1kβi,类别3xi+e∑i=1kβi,类别4xi+1P_{类别4}=\frac{e^{\sum_{i=1}^k\beta_{i,类别4}x_i}}{e^{\sum_{i=1}^k\beta_{i,类别1}x_i}+e^{\sum_{i=1}^k\beta_{i,类别2}x_i}+e^{\sum_{i=1}^k\beta_{i,类别3}x_i}+e^{\sum_{i=1}^k\beta_{i,类别4}x_i}+1}P类别4​=e∑i=1k​βi,类别1​xi​+e∑i=1k​βi,类别2​xi​+e∑i=1k​βi,类别3​xi​+e∑i=1k​βi,类别4​xi​+1e∑i=1k​βi,类别4​xi​​P类别5=1e∑i=1kβi,类别1xi+e∑i=1kβi,类别2xi+e∑i=1kβi,类别3xi+e∑i=1kβi,类别4xi+1P_{类别5}=\frac{1}{e^{\sum_{i=1}^k\beta_{i,类别1}x_i}+e^{\sum_{i=1}^k\beta_{i,类别2}x_i}+e^{\sum_{i=1}^k\beta_{i,类别3}x_i}+e^{\sum_{i=1}^k\beta_{i,类别4}x_i}+1}P类别5​=e∑i=1k​βi,类别1​xi​+e∑i=1k​βi,类别2​xi​+e∑i=1k​βi,类别3​xi​+e∑i=1k​βi,类别4​xi​+11​

对于任何一个数据点,把自变量x1,x2,..,xkx_1,x_2,..,x_kx1​,x2​,..,xk​的具体数值代入上面的式子里,我们就能用各个回归系数βi,类别j(i=1,2,...,k;j=1,2,...,m)\beta_{i,类别j}(i=1,2,...,k;j=1,2,...,m)βi,类别j​(i=1,2,...,k;j=1,2,...,m)表示出P类别1,P类别2,P类别3,P类别4,P类别5P_{类别1},P_{类别2},P_{类别3},P_{类别4},P_{类别5}P类别1​,P类别2​,P类别3​,P类别4​,P类别5​。这个数据点的因变量y是哪个类别,那么相应的那一个P类别jP_{类别j}P类别j​就是这个数据点的似然函数。对所有数据点都这么做,然后把各数据点的似然函数乘起来,我们就能得到整个样本基于上述模型的似然函数。

有了似然函数,我们就可以像在线性回归和二分类逻辑回归那样,用极大似然估计方法来找出回归系数。

转载来源:协和八

逻辑回归能摆平二分类因变量,那……不止二分类呢?相关推荐

  1. ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性)

    ML之LoR:基于LoR(逻辑回归)算法对乳腺癌肿瘤(9+1)进行二分类预测(良/恶性) 目录 输出结果 设计思路 数据集 核心代码 输出结果 Testing accuracy (10 trainin ...

  2. 【Python机器学习】决策树、逻辑回归、神经网络等模型对电信用户流失分类实战(附源码和数据集)

    需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 电信用户流失分类 该实例数据来自kaggle,它的每一条数据为一个用户的信息,共有21个有效字段,其中最后一个字段Churn标志该用户是否流失 1 ...

  3. 吴恩达机器学习(十六)逻辑回归、简化代价函数、高级优化、多元分类

    文章目录 1.逻辑回归 2.简化代价函数与梯度下降 3.高级优化 4.多元分类:一对多 1.逻辑回归   以下是监督学习问题中的逻辑回归模型的拟合问题,我们有一个训练集: 我们如何选择参数θ   当y ...

  4. R语言构建无序多分类逻辑回归模型、mlogit.display函数获取无序多分类逻辑回归模型的汇总统计信息(各分组模型对应的系数及标准差、相对危险降低率RRR值及其置信区间、AIC值等)

    R语言使用nnet包的multinom函数构建无序多分类logistic回归模型.使用epiDisplay包的mlogit.display函数获取无序多分类logistic回归模型的汇总统计信息(各分 ...

  5. 实战7:机器学习实战之 随机森林、逻辑回归、SVM算法方法进行垃圾邮件过滤分类 代码+数据

    任务描述: 我们日常学习以及工作中会收到非常多的邮件,除了与学习工作相关的邮件,还会收到许多垃圾邮件,包括广告邮件.欺诈邮件等等.本任务通过邮件中包含的文本内容来判断该邮件是正常邮件(ham)还是垃圾 ...

  6. R语言 | 二分类和多分类的逻辑回归实现

    目录 二分类逻辑回归 数据准备 模型构建 模型检验 多分类逻辑回归 二分类逻辑回归 首先,我先展示下我逻辑回归的总体代码,如果有基础的同志需要的话,可以直接修改数据和参数拿去用呀: library(l ...

  7. logisticregression参数_通俗地说逻辑回归【Logistic regression】算法(二)sklearn逻辑回归实战...

    前情提要: 通俗地说逻辑回归[Logistic regression]算法(一) 逻辑回归模型原理介绍 上一篇主要介绍了逻辑回归中,相对理论化的知识,这次主要是对上篇做一点点补充,以及介绍sklear ...

  8. 浅谈对机器学习方法(决策树,SVM,knn最近邻,随机森林,朴素贝叶斯、逻辑回归)的理解以及用sklearn工具实现文本分类和回归方法...

    一.决策树 定下一个最初的质点,从该点出发.分叉.(由于最初质点有可能落在边界值上,此时有可能会出现过拟合的问题. 二.SVM  svm是除深度学习在深度学习出现之前最好的分类算法了.它的特征如下: ...

  9. python逻辑回归训练预测_[Python] 机器学习笔记 基于逻辑回归的分类预测

    导学问题 什么是逻辑回归(一),逻辑回归的推导(二 3),损失函数的推导(二 4) 逻辑回归与SVM的异同 逻辑回归和SVM都用来做分类,都是基于回归的概念 SVM的处理方法是只考虑 support ...

最新文章

  1. Android APP性能优化
  2. react 下拉选项自动滚动到可视区域
  3. 数据结构-单链表进阶之快慢指针原理(快速查找法)
  4. Python中小括号( )、中括号[ ]和大括号{}分别代表什么?
  5. 脑电信号特征提取算法c语言_应用深度学习EEGNet来处理脑电信号
  6. java scrollpane放按钮_java – 如何在BoxLayout上放置scrollPane?
  7. astride包括那几个维度_据说宇宙有13个维度,那么各个维度都代表着什么?
  8. 【Java程序设计】类与对象的基本概念(上)
  9. JAVA HttpURLConnection 获取网页内容
  10. Unity学习笔记:unity脚本常用API
  11. listary文件查找工具下载及使用
  12. 太阳影子定位问题研究
  13. Flash Cs4 安装之后打不开
  14. 3dmax如何导入ies灯
  15. ISO/OSI七层网络参考模型、TCP/IP四层网络模型和教学五层网络模型
  16. javascript 调用webservice 的几种方法
  17. ipad html兼容问题,如何处理ipad safari CSS 样式的兼容性?_html/css_WEB-ITnose
  18. MMWHS-文献阅读(图像分割)
  19. 微信小程序:智力考验看成语猜古诗句好玩解闷小游戏下载
  20. python3.6 base64转图片及图片转base

热门文章

  1. DreamFacotry 第6章 将业务逻辑集成到DreamFactory API中
  2. 基于Gitlab Jenkins Docker集群 微服务搭建自动化部署平台
  3. http GET 和 POST 请求的优缺点和误区 --前端优化
  4. Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(2)
  5. 【Java】判断学生成绩等级
  6. C#设计模式之5-单例模式
  7. 注册表操作命令reg
  8. JavaScript数组方法终极指南-地图
  9. url散列算法原理_如何列出与网站相关的所有URL
  10. 数据结构(Java)-哈希表