java因子分析_因子分析(Factor Analysis)

1 问题

之前我们考虑的训练数据中样例a1450d213c92387eab15da6ccae3ccb3.png的个数m都远远大于其特征个数n,这样不管是进行回归、聚类等都没有太大的问题。然而当训练样例个数m太小,甚至m<

多元高斯分布的参数估计公式如下:

a344a1afad08b637996f1dbcfa7f6bfc.png

c53f1cc6fd305df2b11e30f35d091cd1.png

分别是求mean和协方差的公式,e881e0047c6c081cf1666e52e2b0a5d9.png表示样例,共有m个,每个样例n个特征,因此094522902db95f25e748110e98ec445c.png是n维向量,f6ff4fa9a21bf4206d224a6f85b16a50.png是n*n协方差矩阵。

当m<是奇异阵(cc610cf62960891505d689acc85dd9ab.png),也就是说b35680f6a9e86f98e48e7eeb00a95f74.png不存在,没办法拟合出多元高斯分布了,确切的说是我们估计不出来11f2af874f6e4f5e21a8024117124dad.png

如果我们仍然想用多元高斯分布来估计样本,那怎么办呢?

2 限制协方差矩阵

当没有足够的数据去估计5f8ebd79d189808773c38e5aa966a623.png时,那么只能对模型参数进行一定假设,之前我们想估计出完全的378b873f6798113e6ac977a80abd53a5.png(矩阵中的全部元素),现在我们假设3e50da7e2d21ace3168f9807e6f59650.png就是对角阵(各特征间相互独立),那么我们只需要计算每个特征的方差即可,最后的3698434dcfeaff278dbe83ece671ba57.png只有对角线上的元素不为0

067e91c2b520bbcb583bd0e491799522.png

回想我们之前讨论过的二维多元高斯分布的几何特性,在平面上的投影是个椭圆,中心点由ec0e05fa0618a5e84a732e619c08e3e7.png决定,椭圆的形状由e3170f5f3278b2910e26039ff18b85ad.png决定。7e6fcedc38c63e5b9b912da60278549b.png如果变成对角阵,就意味着椭圆的两个轴都和坐标轴平行了。

b0f9d23984c44c1d498e59e43479ce1d.png

如果我们想对24ccf49a54ff3424b1b7df55ce2e0f10.png进一步限制的话,可以假设对角线上的元素都是等值的。

ec87be0f72a2167d9cf4dc4ea7d0c334.png

其中

a6eaa40629b648388128131dee011927.png

也就是上一步对角线上元素的均值,反映到二维高斯分布图上就是椭圆变成圆。

当我们要估计出完整的ebe33da6b88b0d8525acb61bed8daa25.png时,我们需要m>=n+1才能保证在最大似然估计下得出的39981a78af6a4dffe1081ed4ead51e63.png是非奇异的。然而在上面的任何一种假设限定条件下,只要m>=2都可以估计出限定的82566d9ba4a844aa8ccd55faacac12f4.png

这样做的缺点也是显然易见的,我们认为特征间独立,这个假设太强。接下来,我们给出一种称为因子分析的方法,使用更多的参数来分析特征间的关系,并且不需要计算一个完整的16d026771eb9e1247455f972885560a5.png

3 边缘和条件高斯分布

在讨论因子分析之前,先看看多元高斯分布中,条件和边缘高斯分布的求法。这个在后面因子分析的EM推导中有用。

假设x是有两个随机向量组成(可以看作是将之前的19fb9292c83923b7dda97a4f1e837256.png分成了两部分)

57a7c950549ae3f06b745ceeec43bc10.png

其中5b184d9b6d5b14135c224752c7d0e18e.pngdb0cfd1ee0a24e77c0540ef764cf4dd8.png,那么ac0ecf59a92f20406d03a95214130018.png。假设x服从多元高斯分布a12fa7fcea85b157bd89227864869e73.png,其中

c8f8a146be817e17a3bd529ad9a734eb.png

其中8c1615c1e02369217a172972a18c77c5.pnga4827bae1f3fcb2bf0eb50de5c748033.png,那么8e7ab1418039dfa2e752acc53b6357d4.png3a6a6c4610736d71de3d9fa0d8eb7015.png,由于协方差矩阵是对称阵,因此21e69acedbb7ce723ecbd32b6385d637.png

整体看来ff1430f39c746c7aa7f0cdc9993b1dd8.png24bda209e91d1c96ccdb93c6363ae663.png联合分布符合多元高斯分布。

那么只知道联合分布的情况下,如何求得1cc3cf295bae9c31ffd0a20062cc2632.png的边缘分布呢?从上面的df303cb89c5796a61ce1ee716da6fc95.pngf2da872699eb88c5e9f199c7eb3772fb.png可以看出,

f10ae1fd86984abac34fc1e2d3ea1b65.png,39c6156cfe024e92f3232a4eb1467647.png,下面我们验证第二个结果

fcb096e1ea84e7c9b08c572c936333ac.png

由此可见,多元高斯分布的边缘分布仍然是多元高斯分布。也就是说a1a4f667998f58d32ee82df55b105f52.png

上面Cov(x)里面有趣的是bc80b82aab04d318849a9526d97fe8bd.png,这个与之前计算协方差的效果不同。之前的协方差矩阵都是针对一个随机变量(多维向量)来说的,而1407a8e8f9367fee2711f209cbb7143a.png评价的是两个随机向量之间的关系。比如000d2af1f3fb1b471a9b9f1457ac8e6f.png={身高,体重},a98988ca65230dade3b277f5b1012e41.png={性别,收入},那么6e58ef3944ebb23395d5098dc8856c35.png求的是身高与身高,身高与体重,体重与体重的协方差。而54af8d736e8da257c32d54414e5a763f.png求的是身高与性别,身高与收入,体重与性别,体重与收入的协方差,看起来与之前的大不一样,比较诡异的求法。

上面求的是边缘分布,让我们考虑一下条件分布的问题,也就是40b4b79590eaa53f801aeecadda6a659.png的问题。根据多元高斯分布的定义,c59a1d9400071eea7203f03d95728e85.png

dc062bd057073f42bcb52c5c2fe7bacb.png

这是我们接下来计算时需要的公式,这两个公式直接给出,没有推导过程。如果想了解具体的推导过程,可以参见Chuong B. Do写的《Gaussian processes》。

4 因子分析例子

下面通过一个简单例子,来引出因子分析背后的思想。

因子分析的实质是认为m个n维特征的训练样例06319bbea6b2de163d6d7d168ded1a6d.png的产生过程如下:

1、 首先在一个k维的空间中按照多元高斯分布生成m个8b9f5cdf3354a365bbe68d01a0be1d09.png(k维向量),即

45cb465d38df5453334d16b113f78ea9.png

2、 然后存在一个变换矩阵555eea7a1b77be46d80714c09f06c43f.png,将337b19c6f65bf4af3cd995f926e911f4.png映射到n维空间中,即

f652e7578fd9302a48b58398fc1cec8b.png

因为0f62e7a6afde351dc00bcdb243418d3b.png的均值是0,映射后仍然是0。

3、 然后将2c5d4c7dabc11a0ebe4c376e5da548ba.png加上一个均值d105aafa47196c8671b6ea8318a6e172.png(n维),即

262ab6e0c2d3f544b34ec3591101e87d.png

对应的意义是将变换后的bbdf34e56d88e97d22a673454ce251e8.png(n维向量)移动到样本a44168a0745477297d8c813359231701.png的中心点f2e1acf3995e2b0d031a0ece562efaee.png

4、 由于真实样例6337156ee214296d4017a24ec6a121ba.png与上述模型生成的有误差,因此我们继续加上误差d03277a562a04c0a1d180b87d5eaf0af.png(n维向量),

而且cfd8f7d2945e72f3307c8536db551ffd.png符合多元高斯分布,即

f0953bb8441a10292c6aaf91871f507d.png

d30df09a69bc1420dff3cc40b802bfec.png

5、 最后的结果认为是真实的训练样例48a7d7016dcabe9264a03cdfb7e91cbc.png的生成公式

f5930ce877c1ad7a9845ee14633edfb1.png

让我们使用一种直观方法来解释上述过程:

假设我们有m=5个2维的样本点83474d1d587f7e760ae1b03b461beba1.png(两个特征),如下:

3679d64b212042a798ae098c649d6910.png

那么按照因子分析的理解,样本点的生成过程如下:

1、 我们首先认为在1维空间(这里k=1),存在着按正态分布生成的m个点13d2d53a0bdd104e063b97f2b900933e.png,如下

4fa7fd1220df0ec84e3475777b56408c.png

均值为0,方差为1。

2、 然后使用某个737ea0e74e6ea43632c7231ecab73091.png将一维的z映射到2维,图形表示如下:

ee84a3468a7825251f820e6d92cda89d.png

3、 之后加上6384e447734c471502785cb612306eaa.png,即将所有点的横坐标移动e37889c72b5cc99cb0513c2a1b9c61b5.png,纵坐标移动9d61ce5f85e748547d68c288f61f7967.png,将直线移到一个位置,使得直线过点56b0d9e34117df4ec763e4cde28d5b24.png,原始左边轴的原点现在为9e7d56ecec64371d84ee4fe9906f6e03.png(红色点)。

d6f202ba04daf12c84e5357a8e8025cc.png

然而,样本点不可能这么规则,在模型上会有一定偏差,因此我们需要将上步生成的点做一些扰动(误差),扰动6d75417ae28ddd926e4f8c66b7aee7b4.png

4、 加入扰动后,我们得到黑色样本e2c275de4c5ad9ac8fa06c4f6e3ea6f9.png如下:

447a200de5d6be9532537ab1e6521a74.png

5、 其中由于z和0448145096a310b8d3064b594d770480.png的均值都为0,因此ffd463b82c9907480c99c080125d70c8.png也是原始样本点(黑色点)的均值。

由以上的直观分析,我们知道了因子分析其实就是认为高维样本点实际上是由低维样本点经过高斯分布、线性变换、误差扰动生成的,因此高维数据可以使用低维来表示。

5 因子分析模型

上面的过程是从隐含随机变量z经过变换和误差扰动来得到观测到的样本点。其中z被称为因子,是低维的。

我们将式子再列一遍如下:

5a0d8fda510a61f9a419ad7afe38642d.png

0171bf12a8b5bf3adc50a02ecd788584.png

1d6a1ccf8d787e03c0d1a0a789510ef2.png

其中误差552c652b7a33a4a8bc75d46eec4848a3.png和z是独立的。

下面使用的因子分析表示方法是矩阵表示法,在参考资料中给出了一些其他的表示方法,如果不明白矩阵表示法,可以参考其他资料。

矩阵表示法认为z和x联合符合多元高斯分布,如下

e16d75cf6b1561d2286907f71a92dd3e.png

04f4c08b39f51463491c2aaa8dc0be4a.png之前需要求E[x]

a048187da7c90c050367547685f1c394.png

01a808581a30da447f025da3d279903c.png

deb50a1f5a133fea15802eb084a8d675.png

我们已知E[z]=0,因此

482cf946e276923f0281b8a918eca7ac.png

下一步是计算aac32c2362958a9eb334f4ef06cc0312.png

其中7985a4fbba169e64d8de365c9585e150.png

接着求71b117f5161e054c6f3ff3ce82f4572c.png

67d83d28d20cd48390bfde684a55a987.png

这个过程中利用了z和2d62346651e4fc7e5daf62675bf0045b.png独立假设(74a5df44039761b473459d443386a556.png)。并将72adb150a05af7842c70892e3aaa07dd.png看作已知变量。

接着求3ae6ab4397f97105549b288a8ef13ec1.png

0b0388740fd205796486ec5b57bda44e.png

然后得出联合分布的最终形式

a3898d73e3c75417e33b663ee42b8b2a.png

从上式中可以看出x的边缘分布0e78f5afedf62e2ce633bc8ed6302efb.png

那么对样本df9552849b773e146974906ad3659e13.png进行最大似然估计

ba8c5520d6c3f2b7da8e7082dcd810e5.png

然后对各个参数求偏导数不就得到各个参数的值了么?

可惜我们得不到closed-form。想想也是,如果能得到,还干嘛将z和x放在一起求联合分布呢。根据之前对参数估计的理解,在有隐含变量z时,我们可以考虑使用EM来进行估计。

6 因子分析的EM估计

我们先来明确一下各个参数,z是隐含变量,dee2f74d5dbad0062f5247767a8e77eb.png是待估参数。

回想EM两个步骤:

循环重复直到收敛 {

(E步)对于每一个i,计算

e507c28a674c28f72c4f9a8ba47fbc6f.png

(M步)计算

afef04c4dc047eeacadad5e2620ea78c.png

我们套用一下:

(E步):

77e8acb7330f85653c4e6a3063939653.png

根据第3节的条件分布讨论,

a13ee42fbbd3ecaf584886cadfa14a3a.png

因此

e325f81edc6575f84e02dae910aabd10.png

那么根据多元高斯分布公式,得到

27d18462f426be94de793b1397547e22.png

(M步):

直接写要最大化的目标是

c92b4dfc23996dddc634b7d4b627c898.png

其中待估参数是bdd6fa439776bade8676548f29674374.png

下面我们重点求121697c8bbb7e4654640052bbf984ac7.png的估计公式

首先将上式简化为:

16b5b10ef0a5d61aa4ae182dd274b498.png

这里ac02ad71f095d399450ba9ad8d1663ed.png表示020f8ea087e12372ea4d9caa3e966e86.png服从81fb4558c0192f521d8b510be64c1897.png分布。然后去掉与c175b5f643cf9051bd2bae0fa7bf28d5.png不相关的项(后两项),得

cd2bdbeb6fd6f5bea015d39c48c417e3.png

去掉不相关的前两项后,对bf903e5c194924deb4eaecdfa79cbdb1.png进行导,

57482aee803836cda1fb811924983b21.png

第一步到第二步利用了tr a = a(a是实数时)和tr AB = tr BA。最后一步利用了

c2073abaab8489d0fbe04f0c1de32fe5.png

tr就是求一个矩阵对角线上元素和。

最后让其值为0,并且化简得

b0ea7c1b4cf8e890e2c5d8f21a539aa5.png

然后得到

f6f0a3f3a2792e606680ba7c81b31470.png

到这里我们发现,这个公式有点眼熟,与之前回归中的最小二乘法矩阵形式类似

eaf4afb61a73ab26f66c4972c09c33f7.png

这里解释一下两者的相似性,我们这里的x是z的线性函数(包含了一定的噪声)。在E步得到z的估计后,我们找寻的a13aad9749ed39de1463d19cebd247fa.png实际上是x和z的线性关系。而最小二乘法也是去找特征和结果直接的线性关系。

到这还没完,我们需要求得括号里面的值

根据我们之前对z|x的定义,我们知道

c8fbadfff7345c769688012c01b9ccd1.png

第一步根据z的条件分布得到,第二步根据5e6270ffa1b22dd3ee02582336fd76ec.png得到

将上面的结果代入(7)中得到

d0758350c2aed08780ff710a559208f8.png

至此,我们得到了4e2d1101f0b643c1eb5a2b6310a2281c.png,注意一点是E[z]和6ee9c104d2e819d026ab39ddb258fe5f.png的不同,后者需要求z的协方差。

其他参数的迭代公式如下:

5aa180db9ff902df864badd7dd0481a3.png

均值b15873cf9df7a0785ae921a3563ef133.png在迭代过程中值不变。

090f196d09b0f1ccd65ac1bb254f1d40.png

然后将b47bbea4fbf60dce8897939050200cf1.png上的对角线上元素抽取出来放到对应的6c84037b07767e0f26aedd9f33640ade.png中,就得到了b6716d761858987afe07323d1850b353.png

7 总结

根据上面的EM的过程,要对样本X进行因子分析,只需知道要分解的因子数(z的维度)即可。通过EM,我们能够得到转换矩阵c8e053951fd4187a5db392b268c1c619.png和误差协方差c2c64611891a825c49370e6b56448771.png

因子分析实际上是降维,在得到各个参数后,可以求得z。但是z的各个参数含义需要自己去琢磨。

下面从一个ppt中摘抄几段话来进一步解释因子分析。

因子分析(factor analysis)是一种数据简化的技术。它通过研究众多变量之间的内部依赖关系,探求观测数据中的基本结构,并用少数几个假想变量来表示其基本的数据结构。这几个假想变量能够反映原来众多变量的主要信息。原始的变量是可观测的显在变量,而假想变量是不可观测的潜在变量,称为因子。

例如,在企业形象或品牌形象的研究中,消费者可以通过一个有24个指标构成的评价体系,评价百货商场的24个方面的优劣。

但消费者主要关心的是三个方面,即商店的环境、商店的服务和商品的价格。因子分析方法可以通过24个变量,找出反映商店环境、商店服务水平和商品价格的三个潜在的因子,对商店进行综合评价。而这三个公共因子可以表示为:

96bf46b8c48516ce8a787fda3eff8bcb.png

这里的3a51f828af87d4fa8fe703723cb7fbe8.png就是样例x的第i个分量,c89cc37880f537a97255e1875ed02167.png就是184fa274fe9129ffc715aeefa3da40b9.png的第i个分量,9e4c417c68deaf3d08fe4172dcb59af7.png就是a88703e242eeb2da691e6eecd058e735.png的第i行第j列元素,9242248f5c26734a5394614c713925eb.png是z的第i个分量,600aae23827d5fc991cf10491e42263c.pngafc6cec3f3328d56e9dd8028702ecb18.png

d5dd58a60d483f88f6db0626b1da9ee6.png是不可观测的潜在因子。24个变量共享这三个因子,但是每个变量又有自己的个性,不被包含的部分871eee7d0827ac8b97cce9e33f8bb8c1.png,称为特殊因子。

注:

因子分析与回归分析不同,因子分析中的因子是一个比较抽象的概念,而回归因子有非常明确的实际意义;

主成分分析分析与因子分析也有不同,主成分分析仅仅是变量变换,而因子分析需要构造因子模型。

主成分分析:原始变量的线性组合表示新的综合变量,即主成分;

因子分析:潜在的假想变量和随机影响变量的线性组合表示原始变量。

PPT地址

其他值得参考的文献

An Introduction to Probabilistic Graphical Models by Jordan Chapter 14

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL+多线程+Redis+算法+网络

开头 我们面试的时候 &#xff0c;经常会被问这种到问题:Spring中bean的循环依赖怎么解决&#xff1f; Spring中bean的加载过程&#xff1f; spring相关的问题一直是大厂面试常问到的一个问题,也是一直困扰这我们&#xff0c;不知道从哪里下手&#xff0c;今天举例分析大厂的一…

python 函数进度条怎么_python输出结果刷新及进度条的实现操作

print函数python输出主要使用print函数&#xff0c;print函数介绍&#xff1a;print(*objects, sep" ", end"", filesys.stdout, flushFalse)*objects表示要打印的值&#xff0c;表示多个无名参数或需要打印的值&#xff1b;sep" "&#xff0c;对…

MySQL优化原理分析及优化方案总结

前言 今天中午收到我司安全部发了一封邮件&#xff1a;Jackson存在安全漏洞。查了一下&#xff0c;这件事并不算很新鲜了&#xff08;已经过了5天的样子&#xff09;&#xff0c;本文来聊聊吧。 说起来还蛮戏剧化&#xff1a;阿里云向Jackson官方提交了一个Jackson序列化安全…

MySQL千万数据量深分页优化

前言 提到MySQL的事务&#xff0c;我相信对MySQL有了解的同学都能聊上几句&#xff0c;无论是面试求职&#xff0c;还是日常开发&#xff0c;MySQL的事务都跟我们息息相关。 而事务的ACID&#xff08;即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durabili…

Mysql和Redis数据同步该怎么做

前言 算法血拼&#xff1a;Google百度Alibaba字节Tencent网易360拼夕夕美团 不知不觉双11就来了,轰轰烈烈的秋招也完美结束了,不知算法与数据结构成为了多少小伙伴进击大厂的绊脚石&#xff1f; 恰好&#xff0c;我这两天花了点时间&#xff0c;整理了些各大厂&#xff08;G…

java源代码保存在扩展名为,看完跪了

正文 在实际的工作项目中&#xff0c; 缓存成为高并发、高性能架构的关键组件 &#xff0c;那么Redis为什么可以作为缓存使用呢&#xff1f;首先可以作为缓存的两个主要特征&#xff1a; 在分层系统中处于内存/CPU具有访问性能良好&#xff0c;缓存数据饱和&#xff0c;有良好…

java源码文件丢恢复需要多少钱,上岸蚂蚁金服!

京东Java研发岗一面&#xff08;基础面&#xff0c;约1小时&#xff09; 自我介绍&#xff0c;主要讲讲做了什么和擅长什么 springmvc和spring-boot区别 Autowired的实现原理 Bean的默认作用范围是什么&#xff1f;其他的作用范围&#xff1f; 索引是什么概念有什么作用&am…

java特性多态,90%的人看完都说好

01.第一份资料是图解网络 根据读者阅读偏好不同&#xff0c;共出了两个版本风格的 PDF&#xff0c;分别是亮白版本和暗黑版本。 02.第二份资料是计算机的相关知识 看完能让你对计算机有一个基础的了解和入门&#xff0c;是培养你 内核 的基础&#xff0c;我们看下目录大纲 基…

java环境变量怎么配置,详解系列文章

Git是什么 在回忆Git是什么的话&#xff0c;我们先来复习这几个概念哈~ 什么是版本控制&#xff1f; 百度百科定义是酱紫的~ 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理&#xff0c;是软件配置管理的核心思想之一。 那些年&#xff0c;…

java环境变量的配置与详解,这些知识你必须拿下

1.三重心智模型 先给大家科普一个概念&#xff0c;“三重心智模型”。 认知科学家斯坦诺维奇&#xff0c;将人的心智模式&#xff0c;分成了三个部分。 第一层是自主心智&#xff0c;自主心智是我们通过进化与内隐学习获得。比如&#xff0c;我们看到蛇就会害怕&#xff0c;情…

centos php安装redis扩展,Centos7编译安装redis、php安装phpredis扩展

解压 进入 make&#xff1a;# tar zxvf redis-4.0.9.tar.gz# cd redis-4.0.9/# make# cd src# make install为了方便管理&#xff0c;将Redis文件中的配置文件和常用命令移动到统一文件中&#xff1a;# mkdir –p /usr/local/redis/bin# mkdir –p /usr/local/redis/etc# cp /t…

java环境变量的配置步骤,实现原理分析

1.笔试常见的问题&#xff1f; 面试常见的问题上面给的面试题链接基本都有。我只提几点&#xff1a; 写SQL&#xff1a;写SQL很常考察group by、内连接和外连接。手写代码&#xff1a;手写代码一般考单例、排序、线程、消费者生产者。我建议排序算法除了冒泡排序&#xff0c;…

java环境安装包出现覆盖,请查收

正文 先问小伙伴们一个问题&#xff0c;登录难吗&#xff1f;“登录有什么难得&#xff1f;输入用户名和密码&#xff0c;后台检索出来&#xff0c;校验一下不就行了。”凡是这样回答的小伙伴&#xff0c;你明显就是产品思维&#xff0c;登录看似简单&#xff0c;用户名和密码…

java生成json字符串,威力加强版

策略 1——停止挖掘 Law of Holes 是说当自己进洞就应该停止挖掘。对于单体式应用不可管理时这是最佳建议。换句话说&#xff0c;应该停止让单体式应用继续变大&#xff0c;也就是说当开发新功能时不应该为旧单体应用添加新代码&#xff0c;最佳方法应该是将新功能开发成独立微…

java生成二维码读取二维码,面试真题解析

拼多多一面 首先自我介绍 参加过哪些项目 并发编程三要素&#xff1f; 实现可见性的方法有哪些&#xff1f; 多线程的价值&#xff1f; 创建线程的三种方式的对比&#xff1f; 画出线程的状态流转图 常用的并发工具类有哪些&#xff1f; CyclicBarrier 和 CountDownLatch 的区…

Java春招实习面试经验汇总,面试篇

Part1 SpringIOC 学习Spring最重要的无非是Spring IOC以及Spring AOP&#xff0c;首先咱们把Spring IOC吃透&#xff0c;以下内容将截图展示。 Spring IOC主要学习内容分为以下7点&#xff1a; ①Spring框架 ②Spring lOC容器Bean对象实例化模拟实现 ③Spring IOC容器Bean对象…

Java最新大厂面试真题总结,瞬间高大上了!

什么是分布式锁&#xff1f;在回答这个问题之前&#xff0c;我们先回答一下什么是锁。 普通的锁&#xff0c;即在单机多线程环境下&#xff0c;当多个线程需要访问同一个变量或代码片段时&#xff0c;被访问的变量或代码片段叫做临界区域&#xff0c;我们需要控制线程一个一个…

php列表框怎么用,PHP+Mysql+jQuery查询和列表框选择操作实例讲解

这篇文章主要介绍了PHPMysqljQuery查询和列表框选择操作实现过程&#xff0c;需要的朋友可以参考下本文讲解如何通过ajax查询mysql数据&#xff0c;并将返回的数据显示在待选列表中&#xff0c;再通过选择最终将选项加入到已选区&#xff0c;可以用在许多后台管理系统中。本文列…

Java未来路在何方?图文详解!

Spring Security观后感——手绘思维脑(供参考) Spring Security手绘思维脑图 手绘的思维导图&#xff0c;是我自己根据自身的情况读完这套阿里出品的Spring Security王者晋级文档之后所绘的&#xff0c;相当于是一个知识的总结与梳理&#xff0c;我将其分为***“核心组件”与“…

Java未来路在何方?挑战大厂重燃激情!

字节跳动一面&#xff1a; 自我介绍,主要讲讲做了什么和擅长什么看你项目做Spring比较多, 问一下Spring相关的东西, IoC是什么概念?Bean的默认作用范围是什么?其他的作用范围?索引是什么概念有什么作用? MySQL里主要有哪些索弓|结构?哈希索弓和B树索引比较?平常用线程主…