指尖上的数据|“数据分析”- 前沿之“Logistic回归的应用”(原创)!
作者:豹伯
导言:
化繁为简:将复杂理论简单化,将简单理论说极简化。
触类旁通:深度挖掘一个行业,以一生二,二生万业。
感谢您关注昊睿咨询今天“指尖上的数据”频道。
前面详细介绍了《指尖上的数据|“数据分析”之回归分析!》,今天介绍一下在前沿应用比较多的回归方法,Logistic回归的实际应用。
Logistic回归可能对某些人来说并不陌生,普通的分析工具做Logistic回归并不容易,对数据的形式和参数的要求很高,但是在Python环境下,结合人工智能的算法和工具实现起来只要“两句代码”。
首先来了解一下人工智能,机器学习和深度学习这三个概念,在网上找到一幅图很好的诠释了这三者的关系和历史。人工智能始于1956年,由一帮计算机专家在达特茅斯会议提出的概念,人工智能的先驱们想利用当时计算机的发展,来赋予计算机一定的智能,如:逻辑判断,问题解决等;当时计算机所具有的智能完全需要靠人力输入代码来实现特定的任务;然而人类的智能太广泛,根本无法依赖手工输入代码来涵盖。为此,科学家想到了如何让机器有学习能力,于是催生了机器学习,机器学习的本质是通过大量历史数据进行分析和学习,让机器自己掌握规律,并能根据实际情况对未来做出判断和预测。赋予机器学习的能力也得通过代码实现,发展到现在机器学习已经有了10大经典算法,每个算法对应着不同的应用场景和要求。深度学习其实是机器学习的一个分支,当科学家受到人脑运作原理的启发发明了神经网络,既为深度学习奠定了基础。深度学习通过复杂的神经网络(不仅是维度,更多是层数),使得机器可以突破线性的要求,从而进行各类复杂模型的学习、建立和预测。
回归目前是人工智能的基础,为了建立合理的回归模型,机器需要对大量的数据进行分析,这个过程定义为学习;为了保证模型的正确性,可以通过必要的数据进行验证,以确保误差的最小化,这个过程定义为测试;当模型建立符合要求后,就可以输入新的数据和条件让机器来做预测了。
回头看看Logistic回归是什么?
所有的回归都能使用一个方程来表达: Y = F(X), 既输入变量在一定形式下影响输出变量,Logistic回归特殊之处在于Y不是连续变量,如果想研究一下学生学习时间和考试的通过率的关系,那X则学习时间,Y为考试通过或者不通过(0,1),通过Logistic回归,可以很快建立二者之间的关系。如果我们还考虑学生的性别,学生智力因素,学生的家庭属性等等,行不行?答案当然是可以!无非增加X的维度而已。继续将这个例子引申到质量管理中,只需要将学习时间,学生性别,学生智力因素对应成产品参数,既多维度的X描述了产品特性参数,大量的历史数据将帮助建立X和Y(合格或者不合格率)的关系,一旦获得该模型,未来很容易根据产品特性对不合格率做出预测。
下面将简要看看Python环境下机器学习和深度学习这两种方法来对二维X建立Logistic回归的差异(二维X比较容易图形化,帮助理解)
机器学习
首先建立学习数据,通过随机函数产生200组数据,其结构是X1i,X2i,分别对应着Yi(0或者1),如图表示为红点和蓝点。
通过调用数据扩展包,进行Logistic回归建模。可以看到,机器通过200组数据的自我学习和校验,形成了一条分界线(既Logistic回归模型),除去画图语句,整个模型学习建立真的只需要“两句代码”--代码的头两句,且第一句还是一个为了简化而做的赋值语句。是不是超级容易!
结合图形,可以看出来,分界线可以帮助我们来做预测,如:给出任意新的X1和X2的值,我们根据分界线就能判断对应的Y是0还是1。但是也可以看到,针对原始200组学习数据,该分界线还是有一定误差,部分蓝色的点在分界线以上,部分红点在分界线以下。毕竟Logistic回归也是广义的线性回归,所以分界线只能做到直线,那该如何提升预测精准度,既降低误差呢?这个则需要深度神经网络算法的闪亮登场了。
深度学习
通过建立一个三层的神经网络(一个输入层,一个隐藏层,一个输出层),基于第一组学习数据中的X11和X21,根据初始赋值(每个神经元链接之间的权重)通过前向传播进行一次对Y的结果计算,然后通过反向传播,既根据正向计算的Y值和实际Y值的误差,反向传回并依此误差修正初始赋值的链接权重,经过200组数的不停迭代,最终会获得一套比较精准的权重分配,从而实现精准的预测。(代码太长,太复杂,只放上结果图片)
通过图片可以看到,经过神经网络的自我迭代学习,原来的分界线已经发生了变化,同时突破了线性的限制,变成了曲线。原始的200组数据被划分得更精确。用这个模型去做未来的预测,精度明显要高于上面介绍的机器学习的模型。
就我理解,机器学习中的Logistic回归属于一次性回归,即便有一定的验证方法提升精度,但只是一次性的计算回归模型,除非更改原始学习数据,否则很难再去优化回归模型。而神经网络的深度学习则通过不停的迭代来实现误差最小化的逼近(学术用语:梯度下降),既利用原始200组学习数据,它对回归模型进行了199次优化,所以学习数据样本越大,模型被优化的程度就越高,未来做预测也就越精确。当然如果神经网络参数设置不好,可能会出现过拟合现象,这是个技术问题,需要根据实际情况采用正则化的方式来做限制,比较复杂就不在此展开了。
不论是机器学习还是深度学习的神经网络,针对二维的输入变量处理起来都简单易行。其实几十维、上百维的数据的处理起来也是信手拈来。针对在产品质量预测上的应用,可以将产品划分几个阶段,如:研发阶段,量产阶段,市场使用阶段。对历史产品,每个阶都去收集到必要的数据,如:研发阶段的规格定义,测试数据;生产阶段的过程测试数据;市场使用阶段的环境参数数据等,那就能得到大量的几十维的X来对产品进行描述,结合市场维修信息,能得到对应几十维X的Y,配合搭建好的神经网络,完全能建立一个高纬度的预测模型。当新设计产品,生产产品,客户使用产品时,只要数据能被及时收集回来放入模型,模型就能对产品的质量状态做出合理预测,甚至能协助重新定义新的产品。所以,人工智能在质量管理中的应用并不难,只需我们能对人工智能有一定的了解以及我们能脑洞大开,应用的场景比比皆是。
以上既为最近学习的心得分享。案例是教材中二分类的一个例子,本人也还在人工智能知识的海洋中慢慢摸索和学习。这次的分享就到这里,我们下次再见!
(本篇完)
你的点赞和转发,将激励我们做得更好!
如果你希望看到类似的文章,扫一扫!还有更多!
如果你希望看到类似的文章,扫一扫!还有更多!
领取专属 10元无门槛券
私享最新 技术干货