A. 正螺旋效应是怎么产生的
沪深A股市场价格混沌特性研究
Study on Chaos process of stock price in Shanghai and Shenzhen A shares Stock market
研究领域: 金融学
1、前言
现代金融经济学理论假定投资者是理性的,证券价格等于其内在“基本价值”,在这种理想的市场环境中,市场是有效率的。Fama(1970)提出有效市场假说(Efficient Market Hypothesis,EMH),认为在一个有效率的市场中,证券的价格充分反映了所有可获得的信息。为了检验市场是否有效,所采用的方法一般是通过检验证券价格收益率序列是否符合随机游走模型。关于市场效率的实证研究持续了近半个世纪,但结论仍然是存在极大争议的。
自然科学的研究成果表明,一个非线性正反馈系统的演化过程可能产生混沌(Chaos)。许多经济行为模式都是非线性的,例如,投资者对风险与收益的偏好、市场参与者之间的决策博弈、一些经济合同及金融工具的选择性条款等。行为金融学派认为,投资者并非完全理性的,而是存在“代表性直觉(Representativeness heuristic)”等认知偏差(Kahneman 与 Tversky,1979),在这些认知偏差影响下,由于羊群效应(Scharfstein 与 Stein,1990)、外推预期等因素,证券市场存在正反馈机制(De Long等,1990b)。因此,证券价格形成过程中,存在非线性正反馈机制, 在这种机制的驱动下,证券价格有可能出现混沌(Chaos)现象,使证券价格的演变表现出复杂性(Complexity)。
混沌概念是E.Lorenz(1963)最早在研究大气运动时提出的,它是指确定性系统的内在不规则的、永不重复的非周期性运动,这种系统存在内在非线性正反馈动力,其定常状态是一种性态复杂、紊乱但却使终有限的运动状态,且系统的运动路径受系统初始条件及参数影响很大。混沌表面上看起来像随机运动,它能通过所有传统的随机性检验,例如,在许多计算机系统中,类似于Logistic映射这样的混沌过程算法就被作为伪随机数发生器(Pseudo Random Number Generators)产生随机数序列。混沌貌似随机性(Randomness),但它不是随机性。随机性是随机过程,是噪声扰动引起的。而混沌则是由内在确定性的非线性正反馈引起的,因此也被称为确定性混沌(Deterministic Chaos)。
混沌的概念提出以后,对现代金融经济学中有效市场理论的冲击是巨大的。Fama(1970)通过检验证券价格收益率序列在统计上能通过随机行走模型检验,从而认为市场是有效的。但是,如果证券价格收益率序列存在确定性混沌过程,它在数学上也完全能够通过所有随机性检验,但它却不是随机运动,而是受内部确定性过程驱动,这样,传统金融经济学有效市场理论的基础将变得十分脆弱。
本文将简要回顾混沌理论的研究成果及其在金融市场研究中的应用,并对沪深A股市场价格的混沌特性进行实证研究。本文的研究表明,沪深A股市场存在低维确定性过程。
本文余下部分安排如下,第二部分是对混沌理论及相关研究成果进行简要回顾,第三部分对沪深A股市场股票价格混沌特性进行实证研究,第四部分是全文的总结。
2、混沌理论及证券价格的混沌特性
Lorenz(1963)在研究气象预测时发现,大气运动这样的复杂系统存在混沌过程,在一定的条件下,系统运动的轨迹将是围绕两个不动点(即奇异吸引子,Strange Attractor)的发散的螺旋,并局限在一个有界的、体积为零的曲面上,进行不断无规则的振荡。这种不规则的来回振荡,好像飞蛾看到两个光源,飞向一个光源,当靠近时感到太热又飞向另一光源,如此不规则地来回飞腾,其飞行的轨迹永不重复。由于它的形状类似蝴蝶的双翼,所以也被称为Lorenz蝴蝶结,如图1所示。
图1 Lorenz 蝴蝶结
周期运动或周期性振荡是大量存在的,但上述Lorenz过程是非周期振荡,好像永不结束的过程,然而它既不发散也不消失,一直是不规则的振荡。这种振荡的轨迹在三维相空间上是螺旋线,非常密集的曲线在无穷多层平面上呈分形结构(Fractal Structure,参见Mandelbrot, 1985),无穷长,且对初始条件敏感,初始条件中无足轻重的误差能够被系统迅速放大,导致系统的演变路径大相径庭。正如Lorenz 所指出的那样:“巴西一只蝴蝶的扇动可以引发得克萨斯洲的飓风”,即所谓“蝴蝶效应(Butterfly Effect)”。
混沌是作为确定性过程与随机性过程的桥梁,确定性过程是完全可预测的,而随机性过程则是完全不可预测的,而混沌过程则是界于确定性过程与随机性过程之间。由于混沌过程对初始条件敏感,初始细微的误差可以成倍地放大,因此,对于长期来看,系统的演变是不可预测的。但是,如果初始条件保持稳定,运用混沌过程对系统的短期演化状态进行预测,得到的结果将比采用线性随机过程可能得到的预测结果精确得多,因此,混沌过程对经济分析与预测的意义是明显的。这可以解释为什么传统经典金融理论认为奉行图表分析的技术分析是无意义的,但在金融市场仍然存在为数众多的投资者采用技术图表分析,追随证券价格趋势(Murphy, 1986),而且这些交易者并不像传统理论所认为的那样,在与理性交易者长期博弈过程中,这些交易者将因遭受亏损而被赶出市场。
在行为金融学分析框架下,由于证券市场投资者并非完全是古典意义上的理性经济人,投资者存在认知偏差,对同一事件不同投资者具有不同的价值判断,从而表现出不同的决策行为。事实上,按照Kahneman 与 Tversky(1974,1979)提出的前景理论(Prospect Theory),各类投资者的风险偏好并不是固定不变的,存在风险偏好的反转。投资者的价值函数是根据参考点进行定义的,在赢利时是凹函数,在亏损时是凸函数,即在赢利时是风险厌恶型的,而在亏损时是风险追求型的,而且在亏损区间比在赢利区间更陡峭,人们对亏损比对赢利更加敏感。
此外,在前景理论中,投资者权重函数也是非线性的。在极端低概率及极端高概率处,权重函数都存在跳跃,某一事件如果其发生的概率极端地高,明显地接近于1,则决策者在编辑阶段将明确地将其视为确定性的事件,相反,如果某一事件发生的概率极端地小,接近于零,则决策者在编辑阶段可能就将其忽略。因此,人们倾向于对那些极端不可能的事件或者忽略或者高估,而对于一些极端高概率的事件则或者忽视或者夸大。
投资者在决策时存在保守主义(Edwards, W., 1968),不会轻易对新收到的信息做出反应,除非人们确信得到足够的信息表明环境已经改变。而且投资者的行为模式一般是当环境的变化已经达到一定阀值以后,才一起对所有的信息集中做出反应。例如,对理性投资者来说,其对证券的需求并不完全与证券价格偏离基础价值的程度呈线性关系。在投资实务中,证券分析师与投资经理会经常设定一个他们认为安全的价格线, 价格在此安全价格线以上, 他将进一步等待, 而一旦价格低于这一预先判定的价格时, 他们将迅速大量买入。例如,价值投资理论的创立者本杰明•格拉厄姆(Benjamin Graham)特别强调投资的安全边际(Safety Margin),只有投资者的预期收益达到一定程度以上时,才会建议买入证券。
总之,在证券市场,由于噪声交易者的存在、从众心理及羊群效应等产生的群体性非理性行为可能形成正反馈效应,这种正反馈机制会使证券价格的演变产生十分复杂的运动,在一定条件下产生混沌过程,导致证券价格收益率分布呈现分形等复杂结构,表现出高度的复杂性。例如,价格的突然大幅度波动则导致分布产生胖尾现象,而混沌及局部奇异吸引子的出现,导致证券价格胶着于一些价格附近,来回进行无规则的反复振荡,则使证券价格分布出现局部尖峰的特征。
现实市场中的非线性特性将进一步增加证券价格形成的复杂程度,使市场交易在本质上变成一种不同投资者之间的多轮博弈。由于证券价格的演变可能形成混沌过程,系统的初始状态对证券价格的演变路径影响很大,初始状态细微的差别将导致长期结果的巨大差别,即所谓“失之毫厘,谬以千里”的蝴蝶效应。因此,就长时间跨度来说,证券价格波动的方向及波动的幅度都是难于预测的。股票价格的波动形式既可以呈现出稳定的均衡(即通常所说的“盘整”),也可以是非周期性的振荡,还可以突然出现暴发性上涨(泡沫)或者大幅度下跌(泡沫破灭或者负泡沫)等剧烈波动,局部可能与整体相似,但永不重复且不可逆转,呈现分形等复杂且不规则的分形结构,表现出高度的复杂性。混沌过程所拥有的“蝴蝶效应”还可以解释一些偶然性局部事件所引发的全球性金融市场异常波动,例如,上世纪90年代初的“墨西哥金融危机”及90年代后期的东南亚金融危机等。如果证券价格存在混沌特性,则意味着证券价格变化在短期内存在一定的可预测性,而进行长期预测则是极为困难的,从投资策略角度看,这意味着基于证券价格短期变化的交易者可能存在生存的空间。
在实证研究方面,Fama 1970年提出有效市场假说以后,关于资本市场效率的实证研究不胜枚举,大量经验研究表明,证券价格收益率分布不是高斯分布,具有尖峰与胖尾的特点,经常产生一些极端数值,而且,按不同的时间间隔建立收益率分布曲线,得到的都具有相似的尖峰与胖尾的特征,具有时间分形的特征。Mandelbrot(1972)提出重标极差分析法(Rescaled Range Analysis, R/S分析方法)以后,许多学者运用R/S方法研究了股票市场效率及检验股票市场价格是否存在记忆特性。这方面的文献包括:Peters(1989,1991,1996),Lo(1991), Pandey,Kohers与Kohers(1998)等。这些经验研究结果显示,金融数据具有长期记忆的特征,即是说,股票当前价格运动受到以前的价格运动的影响。这意味着股票价格存在一定时间区间内的趋势持续效应,这也在一定程度上印证了股票价格形成过程中存在正反馈效应。
Lorenz(1963)提出混沌理论以后,Grassberger and Procaccia(1983a)提出了关联维数(Correlation Dimension)的分析方法,用以识别时间序列是否存在低维确定性过程。Scheinkman 与Lebaron(1989)根据美国证券价格研究中心(CRSP)提供的以市值为权重的美国股票收益率指数,对始于1960年代初期的共1226个周收益率数据考察了其关联维数(Correlation Dimension, CD), 他们研究得到CD值为6,从而认为美国股票周收益率序列总体表现出了非线性关联,并认为这种非线性关联可以解释金融资产分布的尖峰、胖尾等特性。Brock与Back(1991)再度扩展了Scheinkman 与LeBaron的研究,得到的CD值在7-9之间,因此,也拒绝了股票价格收益率是独立同分布(Independent Identical Distribution,IID)的假设,倾向于支持股价收益率分布存在低维确定性过程的备择假设,但他们同时指出,并不能就此认为存在混沌过程。Urrutia等(2002)的研究则提出了针锋相对观点,他们研究了1984年至1998年期间美国保险公司股票收益率特性,研究表明保险公司股票收益率存在非线性特征,并且进一步验证导致这种非线性的原因就是低维混沌过程。总体而言,这些经验研究提供了实质性的证据表明,股票、汇率、商品期货等金融数据序列存在非线性结构,但就是否明确存在低维确定性混沌过程,则结论不完全一致,仍然存在争论。
对于中国大陆股票市场,戴国强等(1999)对上证综合指数及深证成份指数进行R/S分析,计算得到Hurst指数分别为0.661和0.643;史永东(2000)所作的R/S分析显示,上海证券交易所股票市场的Hurst指数为0.687,而深圳证券交易所股票市场的Hurst指数为0.667;曹宏铎等(2003)计算的深证证券交易所股票市场日收益率、周收益率、月收益率的Hurst指数分别为0.6507,0.7000,0.6906及0.7576。上述经验研究表明,上海及深圳股票市场并不呈随机行走的特征,而具有状态持续特征,同时也意味着中国股票市场不是弱式有效的。
事实上,关于中国股票市场是否弱式有效,一致存在极大争议。正如张亦春与周颖刚(2001)所意识到的那样,一方面,多数研究人士凭经验就感觉到中国股票市场投机性强,远未达到有效状态。例如,沪深A股市场近年来上市公司财务造假不断案发 ,庄家操作市场盛行 ,股价严重脱离内在价值,上海A股市场在2000年及2001年平均市盈率高达60多倍,被很多学者斥为“赌场”,宣称这样一个市场已达到弱式有效状态,确实让人们难以接受。另一方面,许多学者所作的实证研究却表明,证券价格收益率序列十分接近随机行走模型,因而无法有力地拒绝有效市场假设。经验感觉与理论研究结论大相径庭,这其中的原因究竟是什么?到底是现实错了?还是学术理论研究有问题?混沌的思想让我们豁然开朗!因为,如果证券价格存在混沌过程,或者是在混沌过程基础上迭加一个随机过程,那么,市场显然是无效的,但证券价格收益率序列同样能通过随机性检验。例如,假设证券价格波动序列是一个Logistic 映射过程,它显然是一个确定性的混沌过程,但是,这一过程在许多计算机系统是被当作伪随机数发生器,常规的检验方法根本无法识别确定性过程,而是将其视为随机序列!如果这样的话,所有通过考察证券价格是否能够通随机性检验的方法来考察资本市场有效性的研究,其理论基础及研究结论都将受到质疑。
3、沪深A股市场价格混沌特性实证研究
本文同时采用R/S分析方法及关联维数(Correlation Dimension,CD)分析方法考察沪深A股市场的非线性特征。通过R/S分析方法能够识别出证券价格序列是否存在持续效应,这在某种程度上可以验证股票市场是否存在正反馈交易机制,正反馈过程是产生混沌的前提。采用关联维数分析,可以识别股价序列是否存在混沌特征。我们的数据来源于乾隆公司的钱龙资讯系统。
3.1 R/S分析
Hurst(1951),Mandelbrot(1972)及Lo(1991)等所发展并完善了赫斯特指数(Hurst Index)的分析方法,即重标定域(Re-scaled range,R/S)分析方法。
赫斯特指数(H)可以用来识别时间序列的非随机性, 还可以识别序列的非周期性循环,因而可以用于识别时间序列的非线性特征。如果序列的赫斯特指数不等于0.50,则观测就不是独立的,每一个观测值都带着在它之前发生的所有事件的“记忆”,这种记忆不是短期的,它是长期的,理论上讲,它是永远延续的。虽然远期事件的影响不如近期事件的影响大,但残留影响总是存在的。在更宽泛的尺度上,一个表现出赫斯特统计特性的系统是一长串相互联系的事件的结果。今天发生的事情影响未来,今天我们所处的地位是过去我们所曾处的地位的一个结果。
关于Hurst赫斯特指数的详细计算参见文献Mandelbrot(1972)及Lo(1991)等,其计算过程如下:
1.对一个时间序列 ,考察长度为n的时间窗口内的子序列, ,n=1,2,3,……K,计算序列的平均值为:
………………………………(1)
2.计算子序列偏离均值的差值
………………………………(2)
显然, 的均值为零,这是重标定或归一化(标准化)。
3.计算偏离均值的累加值
……………………………(3)
4.计算时子序列的域
………………………………(4)
5.计算采样子序列的标准差
………………………………(5)
6.计算子序列重标定域
……………………………(6)
7.求解全序列 的均值
………………………………(7)
8.求解赫斯特指数
与 有幂关系,即:
……………………………(8)
……………………………(9)
在对数坐标上,设水平轴n,纵轴为 ,对 与 进行回归, 则线性回归的斜率为赫斯特指数。
我们选取上海证券交易所A股综合指数从1990年12月19日至2003年12月23日,以及深圳证券交易所A股综合指数从1992年10月4日至2003年12月23日期间的交易数据,分别计算其日收益率及周收益率序列的赫斯特指数,从而考察沪深A股市场的证券价格是否存在非线性特征。
采用上述方法,计算得到沪深A股综合指数的赫斯特指数,如表1所示,在图2—图5中,还详细地列出了R/S分析图。
表1 沪深A股综合指数Hurst 指数
上海A股指数 深圳A股指数
日收益率序列H值 0.66(t=336) 0.63(t=306)
周收益率序列H值 0.69(t=84 ) 0.69(t=97 )
图2 上证A股指数日收益率序列 图3 上证A股指数周收益率序列
图4 深圳A股指数日收益率序列 图5 深圳A股指数周收益率序列
从表中数据我们可以看到,沪深A股市场的赫斯特指数无论以周数据统计还是以日数据统计,结果基本一致,均在0.60以上。H值大于0.50,意味着今天的事件确实影响明天,即是说,今天收到的信息在其被接收到之后继续被市场计算进去, 这从另一侧面印证沪深A股市场价格并不呈随机行走状态,收益序列之间存在一定的关联性,这是一种持续效应(Persistence effect)。如果股价序列在前一个期间是向上运动的,则它在下一个期间将更可能继续向上运动的趋势,反之,在前一个期间是向下运动的,则它在下一个期间更可能持续向下运动的趋势。股价序列的这一特性与经验感觉是一致的,无论是国内股票市场还是全球其它地区的股票市场,典型的牛市或者熊市,并非短暂的数日或者数月,往往持续数年。而股票市场极其异常的波动,例如,美国股市1929年股灾、1987年的暴跌等,均使投资者对市场的信心受到严重打击,市场在其后很长一段时间深受其影响。股价的持续效应在某种程度上印证了股票市场存在的正反馈效应机制。
3.2 关联维数分析
Grassberger 与Procaccia(1983a,1983b)提出了关联维数(Correlation Dimension,CD)方法,用以考察时间序列的非线性特性。其基本思想是:如果一个混沌过程是n维确定性过程,则该过程将充满n维空间,但如将其置于更高维的空间里,该过程将留下许多“洞眼”。一般地,关联维数度量的是相空间被一组时间序列“填充”的程度,关联维数越大,填充程度越高,表示时间序列内部结构越复杂,它类似随机过程时间序列的程度越强。需要指出的是,我们仅对低维混沌过程感兴趣。 如果股票价格真的是高复杂性的混沌过程,我们采用有限的样本数据是永远也无法识别出其复杂的结构的。此时,它可能与一个良好的“伪随机数发生器”产生的数据相近,高维混沌过程与随机过程将没有实际意义的区别。
设时间序列 由具有 个自由度的非线性动态系统产生,可以构造 维相空间失量:
………………(10)
其中, 被称为镶嵌维(Embedding dimension), 为适当的时滞单位。时间序列过程在相空间的运行轨道是由一系列 维失量构成。如果该系统最终收敛为一组确定性过程,则该系统的运行轨道将收敛于相空间中维数低于 的相空间子集,即吸引子(Attractor),在这些吸引子周围的运动是混沌过程,具有非周期性且长期运动状态无法预测。
考虑吸引子附近的失量集合 ,关联积分(Correlation Integral) 定义为对于任意给定的 ,那些彼此之间的距离小于 的点数对(Pairs of Points) 的数量占所有可能的点数对的比例,即:
……………………(11)
其中, ……………(12)
当 时,对任意小 ,可以预期C遵循指数幂变化规律,即:
,从而关联幂(Correlation Exponent)可以通过对 与 对回归计算得到:
……………………………(13)
如果系统存在确定性混沌过程,随着镶嵌维数的增加,关联幂D值达到饱和值以后,将大约保持不变,这一关联幂指数的饱和值就是吸引子的关联维数。如果系统是随机过程,则随着镶嵌维数的增加,D值亦将成比例地增加,趋向无穷大 。
图6 上证A股指数在不同镶嵌维空间中的关联积分
图7 上证A股指数关联维
我们考察上海证券交易所A股综合指数从1990年12月19日至2003年12月31日期间日收益率时间序列的关联维。图6为上证A股综合指数在1-8维相空间中关联积分 随 值的变化情况。从图中我们可以看到,在 值处于0.0003-0.005区间时, 与 的变化呈现出指数幂关系。图7是关联幂D随镶嵌维数m的变化情况,我们可以看到,随着镶嵌维数m超过2以后,关联幂D值不再增加,而是稳定于大约 区间, 即上证A股综合指数的关联维数大约为1.4, 因此, 我们可以推测, 上证A股综合指数存在关联维数大约为 的低维确定性混沌过程。
相对于Scheinkman 与Lebaron(1989)及Brock与Back(1991)等计算得到的成熟资本市场关联维数,我们计算得到的上海A股市场的关联维数明显更低。如果时间序列是一个低维确定性过程,则意味着时间序列在短期是具有一定的可预测性的。从这个意义上看,我们认为,相对成熟资本市场,上海A股市场指数的随机性程度更低,而短期可预测性更强,这在某程度上也说明市场效率程度相对更低。另外,由于混沌特性,证券价格在短期具有一定的预测性,但进行长期预测则是极为困难的,从投资策略角度看,意味着基于证券价格短期变化的交易者可能存在获取利润的空间。
4、结论
在一个存在非线性正反馈机制的系统中,系统的演化理论上可能出现混沌过程。 证券市场由于噪声交易者的存在、从众心理及羊群效应等产生的群体性非理性行为,形成正反馈效应,从而可能导致证券价格的演变呈现出混沌过程,表现出复杂性。
本论文所做的实证研究表明,沪深A股市场指数的赫斯特指数大于0.5,这意味着沪深A股市场价格并不呈随机行走状态,收益序列之间存在趋势持续的特性,这也在一定程度上说明了股价形成过程中存在正反馈效应。对上海A股市场指数的考察进一步表明,上海A股市场指数收益率序列存在低维确定性混沌过程,其关联维数大约为1.4。 这一数值远低于成熟资本市场的指标,这表明上海股票市场指数收益率序列随机性低于成熟资本市场, 市场在短期的可预测性更强一些, 这在某种程度上表明市场的效率程度更低一些。市场存在确定性混沌过程,市场显然是无效的,但是,由于混沌过程同样能够通过随机行走模型检验, 我们认为, 这也许是为什么关于资本市场效率的传统实证检验结果仍然存在极大争议的原因。因为常规检验方法无法区分混沌过程与随机过程,因此,本论文认为,所有采用常规方法,通过考察证券价格是否符合随机游走模型,从而推断资本市场有效性的研究,其理论基础及研究结论均存在严重缺陷。由于证券价格运动的混沌特性,这意味着证券价格在短期具有一定的可预测性,但进行长期预测则是极为困难的。证券价格的这种混沌特性,从投资策略角度看,意味着基于证券价格短期变化的交易者可能存在生存的空间。
内 容 提 要
行为金融理论认为,投资者不是完全理性的,而是存在各种认知偏差。由于噪声交易者的存在、从众心理及羊群效应等产生的群体性非理性行为,证券市场存在正反馈效应。而且,投资者行为模式都是非线性的,在一个存在非线性正反馈机制的系统中,证券价格的演化可能出现混沌过程。
本论文所做的实证研究表明,沪深A股市场价格并不呈随机行走状态,而是存在非线性结构;上海A股市场指数收益率序列存在低维确定性混沌过程,其维数大约为1.4, 这一数值远低于成熟资本市场的指标,这表明上海股票市场指数收益率序列随机性低于成熟资本市场。由于市场存在确定性混沌过程,市场虽然是无效的,但同样能够通过随机行走模型检验,这也从某一角度说明了,为什么关于资本市场效率的传统实证检验结果仍然存在极大争议。由于混沌的存在,证券价格变化在短期具有一定的可预测性,但进行长期预测则是十分困难的。
B. 为什么我用逻辑回归预测股票涨跌的效果非常好
机器学习量化交易策略的制定,是通过从海量历史数据中,利用计算机强大的处理能力,挖掘并分析出那些能够为投资者带来收益的各种大概率可行的投资方式来实现的。通过数学模型对这些策略进行分析并加以验证,以期望让投资者获得更高更稳定的收益,或更合理地规避风险。
逻辑回归模型主要用来解决二分类问题,计算效率高,鲁棒性较优
预测股票涨跌趋势本质上是一个二分类问题。逻辑回归作为处理二分类问题常见的分类方法,既能提供类概率估计又能提高预测精度。逻辑回归可以处理大量的数据,并且受到多重共线性的影响相对较小。它不仅能预测出类别,而且可以得到近似概率预测,这对许多需利用概率辅助决策的任务很有用。
基于逻辑回归模型的择时策略具有高收益,高夏普比率,低回撤率等特点
由于逻辑回归模型可以预测股票的涨跌趋势,并且具有较高预测精度,所以可以根据模型对股票涨跌趋势的判断进行交易,通过在沪深300 上的回测表明模型具有高收益,高夏普比率,低回撤率的优点。
C. 明年一月股票价格属于逻辑回归问题吗
是的,明年一月股票价格属于逻辑回归问题。逻辑回归这个模型很神奇,虽然它的本质也是回归,但是它是一个分类模型,并且它的名字当中又包含”回归“两个字,未免让人觉得莫名其妙。
如果是初学者,觉得头晕是正常的,没关系,让我们一点点捋清楚。
让我们先回到线性回归,我们都知道,线性回归当中 y = WX + b。我们通过W和b可以求出X对应的y,这里的y是一个连续值,是回归模型对吧。但如果我们希望这个模型来做分类呢,应该怎么办?很容易想到,我们可以人为地设置阈值对吧,比如我们规定y > 0最后的分类是1,y < 0最后的分类是0。从表面上来看,这当然是可以的,但实际上这样操作会有很多问题。
最大的问题在于如果我们简单地设计一个阈值来做判断,那么会导致最后的y是一个分段函数,而分段函数不连续,使得我们没有办法对它求梯度,为了解决这个问题,我们得找到一个平滑的函数使得既可以用来做分类,又可以解决梯度的问题。
很快,信息学家们找到了这样一个函数,它就是Sigmoid函数,它的表达式是:
.png
它的函数图像如下:
.png
可以看到,sigmoid函数在x=0处取值0.5,在正无穷处极限是1,在负无穷处极限是0,并且函数连续,处处可导。sigmoid的函数值的取值范围是0-1,非常适合用来反映一个事物发生的概率。我们认为
σ(x) 表示x发生的概率,那么x不发生的概率就是 1 - σ(x) 。我们把发生和不发生看成是两个类别,那么sigmoid函数就转化成了分类函数,如果 σ(x) > 0.5 表示类别1,否则表示类别0.
到这里就很简单了,通过线性回归我们可以得到
.png
也就是说我们在线性回归模型的外面套了一层sigmoid函数,我们通过计算出不同的y,从而获得不同的概率,最后得到不同的分类结果。
损失函数
下面的推导全程高能,我相信你们看完会三连的(点赞、转发、关注)。
让我们开始吧,我们先来确定一下符号,为了区分,我们把训练样本当中的真实分类命名为y,y的矩阵写成 Y 。同样,单条样本写成 x , x 的矩阵写成 X。单条预测的结果写成 y_hat,所有的预测结果写成Y_hat。
对于单条样本来说,y有两个取值,可能是1,也可能是0,1和0代表两个不同的分类。我们希望 y = 1 的时候,y_hat 尽量大, y = 0 时, 1 - y_hat 尽量大,也就是 y_hat 尽量小,因为它取值在0-1之间。我们用一个式子来统一这两种情况:
.png
我们代入一下,y = 0 时前项为1,表达式就只剩下后项,同理,y = 1 时,后项为1,只剩下前项。所以这个式子就可以表示预测准确的概率,我们希望这个概率尽量大。显然,P(y|x) > 0,所以我们可以对它求对数,因为log函数是单调的。所以 P(y|x) 取最值时的取值,就是 log P(y|x) 取最值的取值。
.png
我们期望这个值最大,也就是期望它的相反数最小,我们令
.png
这样就得到了它的损失函数:
.png
如果知道交叉熵这个概念的同学,会发现这个损失函数的表达式其实就是交叉熵。交叉熵是用来衡量两个概率分布之间的”距离“,交叉熵越小说明两个概率分布越接近,所以经常被用来当做分类模型的损失函数。关于交叉熵的概念我们这里不多赘述,会在之后文章当中详细介绍。我们随手推导的损失函数刚好就是交叉熵,这并不是巧合,其实底层是有一套信息论的数学逻辑支撑的,我们不多做延伸,感兴趣的同学可以了解一下。
硬核推导
损失函数有了,接下来就是求梯度来实现梯度下降了。
这个函数看起来非常复杂,要对它直接求偏导算梯度过于硬核(危),如果是许久不碰高数的同学直接肝不亚于硬抗苇名一心。
.png
为了简化难度,我们先来做一些准备工作。首先,我们先来看下σ 函数,它本身的形式很复杂,我们先把它的导数搞定。
.png
因为 y_hat = σ(θX) ,我们将它带入损失函数,可以得到,其中σ(θX)简写成σ(θ) :
.png
接着我们求 J(θ) 对 θ 的偏导,这里要代入上面对 σ(x) 求导的结论:
.png
代码实战
梯度的公式都推出来了,离写代码实现还远吗?
不过巧妇难为无米之炊,在我们撸模型之前,我们先试着造一批数据。
我们选择生活中一个很简单的场景——考试。假设每个学生需要参加两门考试,两门考试的成绩相加得到最终成绩,我们有一批学生是否合格的数据。希望设计一个逻辑回归模型,帮助我们直接计算学生是否合格。
为了防止sigmoid函数产生偏差,我们把每门课的成绩缩放到(0, 1)的区间内。两门课成绩相加超过140分就认为总体及格。
.png
这样得到的训练数据有两个特征,分别是学生两门课的成绩,还有一个偏移量1,用来记录常数的偏移量。
接着,根据上文当中的公式,我们不难(真的不难)实现sigmoid以及梯度下降的函数。
.png
这段函数实现的是批量梯度下降,对Numpy熟悉的同学可以看得出来,这就是在直接套公式。
最后,我们把数据集以及逻辑回归的分割线绘制出来。
.png
最后得到的结果如下:
.png
随机梯度下降版本
可以发现,经过了1万次的迭代,我们得到的模型已经可以正确识别所有的样本了。
我们刚刚实现的是全量梯度下降算法,我们还可以利用随机梯度下降来进行优化。优化也非常简单,我们计算梯度的时候不再是针对全量的数据,而是从数据集中选择一条进行梯度计算。
基本上可以复用梯度下降的代码,只需要对样本选取的部分加入优化。
.png
我们设置迭代次数为2000,最后得到的分隔图像结果如下:
.png
当然上面的代码并不完美,只是一个简单的demo,还有很多改进和优化的空间。只是作为一个例子,让大家直观感受一下:其实自己亲手写模型并不难,公式的推导也很有意思。这也是为什么我会设置高数专题的原因。CS的很多知识也是想通的,在学习的过程当中灵感迸发旁征博引真的是非常有乐趣的事情,希望大家也都能找到自己的乐趣。
今天的文章就是这些,如果觉得有所收获,请顺手点个关注或者转发吧,你们的举手之劳对我来说很重要。
相关资源:【原创】R语言对二分连续变量进行逻辑回归数据分析报告论文(代码...
文章知识点与官方知识档案匹配
算法技能树首页概览
33030 人正在系统学习中
打开CSDN,阅读体验更佳
VGG论文笔记及代码_麻花地的博客_vgg论文
VGG论文笔记及代码 VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 牛津大学视觉组(VGG)官方网站:https://www.robots.ox.ac.uk/~vgg/ Abstract 在这项工作中,我们研究了在大规模图像识别环境中卷积网络深度对其...
...MNIST研究》论文和Python代码_通信与逆向那些事的博客_机器...
1、逻辑回归算法 逻辑回归(Logistic Regression),与它的名字恰恰相反,它是一个分类器而非回归方法,在一些文献里它也被称为logit回归、最大熵分类器(MaxEnt)、对数线性分类器等。 使用sklearn.linear_model中的LogisticRegression方法来训练...
两个重要极限的推导
两个重要极限 (1) limθ→0sinθθ=1 (θ为弧度) \underset{\theta \rightarrow 0}{\lim}\frac{\sin \theta}{\theta}=1\ \ \text{(}\theta \text{为弧度)} θ→0limθsinθ=1 (θ为弧度) (2) limx→∞(1+1x)x=e \underset{x\rightarrow \infty}{\lim}\left( 1+\frac{1}{x} \ri
继续访问
两个重要极限及其推导过程
一、 证明:由上图可知, 即 二、 证明:首先证明此极限存在 构造数列 而对于n+1 ...
继续访问
...是多项式回归】Jeff Dean等论文发现逻辑回归和深度学习一样好_qq...
其中,基线 aEWS(augmented Early Warning Score)是一个有 28 个因子的逻辑回归模型,在论文作者对预测患者死亡率的传统方法 EWS 进行的扩展。而 Full feature simple baseline 则是 Uri Shalit 说的标准化逻辑回归。 注意到基线模型(红...
数学模型——Logistic回归模型(含Matlab代码)_苏三有春的博客...
Logistic回归模型是一种非常常见的统计回归模型,在处理大量数据,揭示各自变量如何作用于因变量(描述X与Y之间的关系)时有着十分重要的作用。笔者在写Logit回归模型前参加了一次市场调研比赛,在这次比赛中学到了很多东西,同时发现,许多优秀获...
《神经网络设计》第二章中传递函数
import math #硬极限函数 def hardlim(data): if data < 0: a = 0 else: a = 1 print("fun:hardlim,result:%f"%a) #对称硬极限函数 def hardlims(data): if data < 0: a = -1 e
继续访问
两个重要极限定理推导
两个重要极限定理: limx→0sinxx=1(1) \lim_{x \rightarrow 0} \frac{\sin x}{x} = 1 \tag{1} x→0limxsinx=1(1) 和 limx→∞(1+1x)x=e(2) \lim_{x \rightarrow \infty} (1 + \frac{1}{x})^x = e \tag{2} x→∞lim(1+x1)x=e(2) 引理(夹逼定理) 定义一: 如果数列 {Xn}\lbrace X_n \rbrace{Xn},{Yn}
继续访问
【原创】R语言对二分连续变量进行逻辑回归数据分析报告论文(代码...
【原创】R语言对二分连续变量进行逻辑回归数据分析报告论文(代码数据).docx资源推荐 资源评论 鲸鱼算法(WOA)优化变分模态分解(VMD)参数python 5星 · 资源好评率100% 1.python程序 2.有数据集,可直接运行 matlab批量读取excel表格数据...
机器学习--逻辑回归_科技论文精讲的博客
机器学习-逻辑回归分析(Python) 02-24 回归和分类方法是机器学习中经常用到的方法区分回归问题和分类问题:回归问题:输入变量和输出变量均为连续变量的问题;分类问题:输出变量为有限个离散变量的问题。因此分类及回归分别为研究这两类问题...
常见函数极限
limx→0sinx=1\lim_{x\to 0}\frac{\sin}{x}=1x→0limxsin=1 limx→∞(1+1x)x=e\lim_{x\to \infty}(1+\frac{1}{x})^x=ex→∞lim(1+x1)x=e limα→0(1+α)1α=e\lim_{\alpha\to 0}(1+\alpha)^\frac{1}{\alpha}=eα→0lim(...
继续访问
逻辑回归原理及代码实现
公式自变量取值为任意实数,值域[0,1]解释将任意的输入映射到了[0,1]区间,我们在线性回归中可以得到一个预测值,再将该值映射到Sigmoid函数中这样就完成了由值到概率的转换,也就是分类任务预测函数其中,分类任务整合解释对于二分类任务(0,1),整合后y取0只保留,y取1只保留似然函数对数似然此时应用梯度上升求最大值,引入转换为梯度下降任务求导过程参数更新多分类的softmax。............
继续访问
python手写数字识别论文_Python利用逻辑回归模型解决MNIST手写数字识别问...
本文实例讲述了Python利用逻辑回归模型解决MNIST手写数字识别问题。分享给大家供大家参考,具体如下: 1、MNIST手写识别问题 MNIST手写数字识别问题:输入黑白的手写阿拉伯数字,通过机器学习判断输入的是几。可以通过TensorFLow下载MNIST手写数据集,...
逻辑回归问题整理_暮雨林钟的博客
逻辑回归问题整理 之前只是简单的接触过逻辑回归,今天针对于最近看论文的疑惑做一个整理; 逻辑回归与极大似然的关系: 逻辑回归的提出主要是在线性问题下为分类问题而提出的; 简单来说,针对于一个二分类问题,我们需要将线性函数映射为一...
机器学习算法-逻辑回归(一):基于逻辑回归的分类预测(代码附详细注释)
1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中。虽然现在深度学习相对于这些传统方法更为火热,但实则这些传统方法由于其独特的优势依然广泛应用于各个领域中。 而对于逻辑回归而且,最为突出的两点就是其模型简单和模型的可解释性强。 逻辑回归模型的优劣势: 优点:实现简单,易于理解和实现;计算代价不高,速度很快,存储资源低; 缺点:容易欠拟合,分类精度可能不高 1.2
继续访问
逻辑回归:原理+代码
(作者:陈玓玏) 逻辑回归算是传统机器学习中最简单的模型了,它的基础是线性回归,为了弄明白逻辑回归,我们先来看线性回归。 一、线性回归 假设共N个样本,每个样本有M个特征,这样就产生了一个N*M大小的样本矩阵。令矩阵为X,第i个样本为Xi,第i个样本的第j个特征为Xij。令样本的观测向量为Y,第i个样本的观测值为Yi,那么就会有以下公式: (X+[1]N*1)*W = Y 也就是说,...
继续访问
浅谈逻辑回归_jzhx107的博客
LMSE回归的回归平面受左上角两个绿色样本的影响而向上倾斜。 支持向量机的分离平面只由两个支持向量决定。 另外我们看到,在本例中逻辑回归和支持向量机得到的分离平面很接近,但是支持向量机的推导和训练过程要比逻辑回归复杂很多。所以加州...
论文研究-基于HBase的多分类逻辑回归算法研究.pdf_多分类逻辑回归...
论文研究-基于HBase的多分类逻辑回归算法研究.pdf,为解决在大数据环境下,用于训练多分类逻辑回归模型的数据集可能会超过执行计算的客户端内存的问题,提出了块批量梯度下降算法,用于计算回归模型的系数。将训练数据集存入HBase后,通过设置表...
【机器学习】 逻辑回归原理及代码
大家好,我是机器侠~1 Linear Regression(线性回归)在了解逻辑回归之前,我们先简单介绍一下Linear Regression(线性回归)。线性回归是利用连续性的变量来预估实际数值(比如房价),通过找出自变量与因变量之间的线性关系,确定一条最佳直线,称之为回归线。并且,我们将这个回归关系表示为2 Logistic Regression(...
继续访问
最新发布 【大道至简】机器学习算法之逻辑回归(Logistic Regression)详解(附代码)---非常通俗易懂!
逻辑回归详细推导,附github代码
继续访问
第二重要极限公式推导过程_机器学习——一文详解逻辑回归「附详细推导和代码」...
在之前的文章当中,我们推导了线性回归的公式,线性回归本质是线性函数,模型的原理不难,核心是求解模型参数的过程。通过对线性回归的推导和学习,我们基本上了解了机器学习模型学习的过程,这是机器学习的精髓,要比单个模型的原理重要得多。新关注和有所遗忘的同学可以点击下方的链接回顾一下之前的线性回归和梯度下降的内容。讲透机器学习中的梯度下降机器学习基础——线性回归公式推导(附代码和演示图)回归与分类在机器学习...
继续访问
机器学习之逻辑回归,代码实现(附带sklearn代码,小白版)
用小白的角度解释逻辑回归,并且附带代码实现
继续访问
热门推荐 两个重要极限及相关推导极限
两个重要极限: ①limx→0sinxx=1\lim_{x \to 0}\frac{\sin x}{x} = 1 ②limx→∞(1+1x)x=e\lim_{x \to \infty}(1 + \frac{1}{x})^x = e 关于重要极限①的推导极限可以参考: 无穷小的等价代换 由重要极限②可以推导出: limx→∞(1+1x)x⇒limx→0(1+x)1x=e\lim_{x \t
继续访问
(一)机器学习——逻辑回归(附完整代码和数据集)
什么是逻辑回归? 首先逻辑回归是一种分类算法。逻辑回归算法和预测类算法中的线性回归算法有一定的类似性。简单来讲,逻辑回归,就是通过回归的方法来进行分类,而不是进行预测,比如预测房价等。 逻辑回归解决的问题 先看下面的图,已知平面上分布的红点和蓝点,逻辑回归算法就是解决怎么根据一系列点,计算出一条直线(或者是平面)将平面上的点分成两类,一般的解决方法就是建立一个数学模型,然后通过迭代优化得到一个最优...
继续访问
机器学习:逻辑回归及其代码实现
一、逻辑回归(logistic regression)介绍 逻辑回归,又称为对数几率回归,虽然它名字里面有回归二字,但是它并不像线性回归一样用来预测数值型数据,相反,它一般用来解决分类任务,特别是二分类任务。 本质上,它是一个percetron再加上一个sigmoid激活函数,如下所示: 然后逻辑回归采用的损失函数是交叉熵: ...
继续访问
逻辑回归,原理及代码实现
Ⅰ.逻辑回归概述: 逻辑回归(LR,Logistic Regression)是传统机器学习中的一种分类模型,它属于一种在线学习算法,可以利用新的数据对各个特征的权重进行更新,而不需要重新利用历史数据训练。因此在实际开发中,一般针对该类任务首先都会构建一个基于LR的模型作为Baseline Model,实现快速上线,然后在此基础上结合后续业务与数据的演进,不断的优化改进。 由于LR算法具有简单、高效、易于并行且在线学习(动态扩展)的特点,在工业界具有非常广泛的应用。例如:评论信息正负情感分析(二分类)、用户点
继续访问
逻辑(logistic)回归算法原理及两种代码实现
①简单介绍了逻辑回归的原理 ②介绍了两种代码实现方法
继续访问
由两个重要极限推导常见等价无穷小以及常见导数公式
两个重要极限 第一个重要极限 limx→0xsinx=1 \lim_{x\rightarrow0}\frac{x}{sinx}=1x→0limsinxx=1 第二个重要极限 limx→+∞(1+1x)x=e \lim_{x\rightarrow+\infty}(1+\frac{1}{x})^x=ex→+∞lim(1+x1)x=e 等价无穷小 1. ln(1+x)~x limx→0ln(1+x)x=limx→0ln(1+x)1x=ln(limx→+∞(1+1x)x)=lne=1 \lim_{
继续访问
机器学习——逻辑回归算法代码实现
机器学习——逻辑回归算法代码实现前言一、逻辑回归是什么?二、代码实现1.数据说明2.逻辑回归代码 前言 最近准备开始学习机器学习,后续将对学习内容进行记录,该文主要针对逻辑回归代码实现进行记录!同时也准备建一个群,大家可以进行交流,微信:ffengjixuchui 一、逻辑回归是什么? 逻辑回归概念篇可看博主之前的文章,传送门 二、代码实现 1.数据说明 你想根据两次考试的结果来决定每个申请人的录取机会。你有以前的申请人的历史数据,你可以用它作为逻辑回归的训练集。