———————————————
转自:https://mp.weixin.qq.com/s/qUw1voXllWhG3Rdl7IYlfw
分享个人经验,保留阅读记录,做时间的朋友
———————————————
转自:https://mp.weixin.qq.com/s/qUw1voXllWhG3Rdl7IYlfw
2018年,法国巴黎发生了一场50年来的最大动乱,史称“黄马甲运动”,起因是:法国交通部长宣布将柴油税每公升上涨了7欧分,汽油税每公升上涨4欧分(约0.28元),引起法国人的不满,从而发展成为一场参与人数规模庞大、持续时间长达两年的反政府运动。
2019年,智利发生了一场严重的暴力冲突事件,史称“10·19智利暴力冲突事件”,起因是:2019年10月6日,智利圣地亚哥宣布,地铁早晚高峰各两个小时时段的票价较原来上涨30比索(约合0.2元),从而引起一场大规模的暴力冲突事件。
……
为什么这些国家一个很小的事件能在极短的时间内就发展成为一个规模庞大的全国性对抗的大事件?
原因很简单,这些国家的经济面临着重大问题——因为高福利导致的债务陷阱,在当前的体制下完全看不到出路,于是老百姓只能通过非理性的方式来发泄自己的绝望!
没错,就是绝望!那种眼睁睁看着自己向深渊里滑落却无能为力的绝望!
讲一讲背后的深层原因。
过去我们总是很羡慕欧洲一票国家——特别是北欧国家人民享受的高福利。
以法国为例,一个法国公民从出生到死亡据说要享受400多项福利,任何适龄劳动力失业,在最初两年每月可以领取最高可达5000欧元的失业救济,尼玛,比在职工作的人收入还高!
那么,法国过去凭什么能给予老百姓如此高的福利呢?
两个原因:大航海时代抢劫攒下的家底+提前实现工业化对发展中国家掠夺的红利。
现在这两个因素都有问题——大航海时代抢劫的家底已经花光了,非洲一些过去的殖民地还能通过资本输出挖一点利益,不过却非常有限。
21世纪之前还能通过工农业剪刀差在发展中国家剪羊毛,现在由于中国的崛起,基本上中低端制造业全被中国拿走了。
现在北欧国家还好一点,毕竟人口少,占有的资源还很丰富(森林、海洋)——卖点木材、海产品就足够国民衣食无忧了。比如挪威,光是把国内的森林砍掉卖木材就可以维持国民目前的福利126年。
法国怎么办?
只能拼命提高税收来维持高福利。
法国税负在欧洲一票国家是最高的,宏观税负达到46.2%。这还没完,一部劳工法,重量达到2公斤,基本可以当板砖拍死任何一个资本家——吓得资本家纷纷关闭工厂跑到境外去投资开厂。
就算留在国内的,因为解雇工人代价太高,所以谁也不敢轻易雇佣工人,两项原因叠加导致法国失业率居高不下——年轻人失业率长期在20%以上,5个人就有一个没工作。同时由于高税负导致法国经济增长非常疲软,在欧洲远远低于英国与德国。
就这样高的税负还是无法维持高福利的开支,更何况在法国加入欧盟之后,就丧失了印钞的权利。
于是,法国政府只能拼命扩大债务来维系。
到2020年2月,法国政府债务已经达到2.8万亿欧元,占GDP比重达到120%。已经是不堪重负——相当于一个人每个月只能靠信用卡透支来维持开销。目前透支金额已经超过全年年收入,而且还看不到尽头,不但收入增长乏力,而且每月负债金额还不断扩大。
正是在这样的背景下,马克龙上台后准备大刀阔斧的推出改革计划——其实就是准备削减福利(节流)+提高收入(开源)来解决法国严重的债务问题。
结果刚刚开了一个头,试探性的提高一点燃油税就引发了黄马甲运动,马克龙的改革遭遇重创!
为了安抚黄马甲们,还只能硬着头皮增加福利支出:自2019年起上调月最低工资标准100欧元;对加班期间所获薪酬免予征税;不增加月收入2000欧元以下的退休者须缴纳的普遍社会保险捐税;要求有能力的企业为员工发放年终奖,这笔奖金将享受免税待遇……
这就是饮鸩止渴!
法国未来的债务问题将越来越严重。不出意外的话,几年之内,法国将变成另一希腊甚至是委内瑞拉。
通过法国的案例你有何感想?
一句话:资本主义制度是有重大缺陷的!
这个重大缺陷就是两条不归路:
或者被民粹绑架,整个国家掉进福利陷阱中永世不得翻身。阿根廷、巴西、委内瑞拉、希腊、法国就是如此;
或者被资本绑架导致整个社会被严重撕裂,早晚爆发巨大的危机。公知的爸爸——美利坚就是如此。
我们一个一个来说。
先讲讲被民粹绑架。
在资本主义国家,怎么样才能摄取最高权力?
最简单的办法就是:不负责任的承诺福利!
群民就是群氓,老百姓是没有什么国家治理概念的,在所谓的选票制度下——谁承诺的好处多,老百姓就会投谁的票。
委内瑞拉的查韦斯就是一个典型。这位查韦斯同学为了竞选总统,就拼命承诺福利——免费医疗、免费住房、食品能源白菜价等等,最后当然高票当选。
查尔斯同学当选后确实履行了自己的承诺——杀鸡取卵,刷卡透支嘛,简直不要太容易!委内瑞拉人民也确实过了几年好日子……
但是,这些高福利已经远远超过了委内瑞拉经济发展水平,就如同一个人借钱去买奢侈品去5星级酒店消费一样,最终是要买单的!
委内瑞拉有全世界储量最丰富的石油,如果不是查韦斯这么作死的乱来,本来老百姓可以过上非常不错的日子,结果高福利积累的债务超过临界点后,委内瑞拉的经济就崩溃了!货币以惊人的速度贬值,经济负增长,所有的商品全面短缺,老百姓成群结队的变成乞丐只能去垃圾桶找吃的。
啥是守着金山却讨饭?
这就是!
同样的案例包括巴西、阿根廷,这就是西方媒体宣称的所谓“中等收入陷阱”?狗屁!其实就是一个被民粹绑架的福利债务陷阱!
后来者包括希腊,包括现在的法国,统统如此。
在资本主义现有的制度下,这个陷阱就是无解。
那么,有没有办法在资本主义体系中靠制度设计中避免民粹泛滥呢?
有!
我大美利坚在制度设计上就能在一定程度上避免民粹泛滥。
美国政治体系是这样的模式:国会掌握立法权,总统是行政权,法院是司法权。其中立法权是核心,不管你总统在竞选时承诺什么政策,都要通过国会同意才能实施(美国总统竞选与普通的直选也有区别)。
国会又分众议院与参议院。众议院负责提出政策或者法律议案,参议院负责是否通过(但是没有修改的权力)。
这么层层制约的权力格局在一定程度上确实能够防止某个政客绑架民粹把国家带入深渊。
那么,美国这套制度是不是很完美?
同样两个字:狗屁!
“三权分立”模式有一个无解的缺陷就是——不可控规律。
什么是“不可控规律”?
就是立法、行政、司法总有一个环节不可控。
简单的给大家讲一下。
所谓的三权分立、依法治国大致有两种模式。
模式一:立法很严谨,公众充分参与讨论,再立法实施。但是弊端是,立法较慢,跟不上时代的发展。
模式二:立法很快,少数精英参与就能立法,这个能跟上时代的发展,对实施环节也能有效的约束,但是有更严重的缺陷,这个先按下不表——美国就是这种模式。
模式一的特点就是立法跟不上时代,怎么办呢?就只能授予执行环节(司法、行政)较大的自由裁量权,这就为权力寻租提供了空间。
比如,这种模式下所有的法律法规制定中不但弹性很大,而且一定会有“口袋条款”——这个“口袋条款”就是:定义模糊,由实施者具体裁量。
这个“自由裁量权”就是权力可以寻租的空间,就是腐败的源泉。这个模式下,当官就是香饽饽,大家都会挤破头去考公务员。
模式二,由于立法很快,对于实施环节约束也够,所以这个权力寻租空间很少,西方的公务员就没有什么吸引力。
但是,有两个弊端:
一个是法律变化太快,普通人守法成本非常高,比如美国人民报税自己是没法准确报税的,只有聘请专业人士来解决,这就是将执法成本转嫁给老百姓。
另一个简直无解:谁来监控立法?
重要的问题说三遍:谁来监控立法?谁来监控立法?谁来监控立法?
答案是:没有!
因为立法很快,少数精英参与就能立法(主要是议员),那么就存在巨大的无法控制“合法的利益输送”。
所以,权力使用的三个环节(立法、司法、行政)中,模式一是实施环节权力寻租空间大,容易滋生腐败;模式二,立法不可控,“合法”的利益输送就更不可控。
我来给大家讲第二种模式:为什么美国没有腐败大案?
原因就是:在立法不可控的模式下,利益输送权钱交易统统可以合法化!
可以通过立法将腐败合法化,煞笔才去腐败。
这个说出来简直是骇人听闻!
为什么美国老百姓对公务员不感兴趣,挤破脑袋也要去竞选议员?就像模式一挤破脑袋也要去当官一样?
就是这个位置含金量太高了,而且TM的还是合法的、不被清算的。
美国就有一个强大的“院外游说集团”,其实就是政治掮客群体。平均一个议员背后就有4-5个政治掮客,这些政治掮客什么事情都不用干,只要围着议员屁股转就可以吃香喝辣,大家想一想这是多大的产业链?
议员理论上是“民选”,但本质是被资本绑架,为资本的需求提供“立法”的服务,这种从立法的层面进行利益输送比腐败可怕一百倍。
由于立法与老百姓的生活距离较远,不像实施环节(司法与行政)直接与老百姓打交道,所以,一般老百姓对于这块不大敏感,但是这个被忽略的领域才是美国制度体系中最大的黑箱。
议会是一个封闭的系统,虽然表面上不同党派的议员存在各种“党争”,但是涉及个人具体利益时,大家想一想,从博弈的观点来看,他们的最优选择是相互拆台还是相互抬轿子?
举一个例子,过去中国交警现场执法权很大,在执法管理不规范的时候,是不是只要认识一个交警就可以处理整个城市所有的违章?一个电话过去,即使执法的交警与这个交警不认识,也都要卖面子。
为什么?因为这个交警明天也可能有违章需要他来帮忙!所以,相互抬轿子的结果就是任何一个普通交警拥有了整个城市的罚单处理权!
议员也是如此,今天我与某个企业(资本)的利益诉求提交议会表决,大家是一定会抬轿子的,因为明天你也会遇到这个问题。真正撕逼的是不同党派不同族群的群体性诉求,其实这也是皿煮秀,真正议员个人的利益诉求是一般都能满足的。
在美国,议员出去演讲,一定会有丰厚的“演讲费”,而且是明码实价,成立一个基金就可以明正言顺打电话找企业要钱,这个“基金”可以任意安插自己的三亲六戚任职并且拿着高薪,基金怎么花也是一句话的事情。
富人可以合法的“自愿”免息借钱给议员,并且成为死账,反正民不举、官不纠;议员与官员可以经商,议员退休马上就有企业高薪聘请……这一切统统合法!
最牛逼的是:成为议员就拿到“免责金牌”。比如,美国国会议员不仅没有任何监督,而且任何部门也不能对议员进行调查。
议员有这么多好处,想想一下他能给资本输出多少利益?
举一个的例子。
美国波士顿铁路,全长2.4公里,前期预算是20亿美元,最后实际造价多少呢?说出来骇人听闻——整整200亿美元!
你没看错,是200亿美元,折合人民币1300亿元,平均每公里造价540亿人民币。比较一下,重庆轻轨也是在地下挖隧道造铁路,平均每公里造价1亿元人民币,美国波士顿铁路是我们的540倍。
造价太贵只是一个方面,关键还是一个豆腐渣工程!
波士顿铁路在修建过程中,地下建筑多次发生坍塌事故,造成多人伤亡。2003年本就该竣工的工程,却发现有几千处漏水,不得不返工,2006年交付使用后,由于天花板脱落砸死开车司机,又继续返工(当时就检测出有6万处天花板钉子松动)。最后2008年总算完工,不过还有大量的工程隐患需要继续修缮,预计该工程总投资要超过220亿美元。
在国内一个工程超过预算50%就要重新审计,美国不需要。
这么大一个工程60%的预算是联邦政府买单,40%才是麻州政府。预算超过10倍又出多起事故,但是工程方却屁事没有,这得益于参议院资深议员爱德华—肯尼亚在国会的运作。
看看参议院议员的能量,简直非同凡响。
所以,这个案件当然没有“腐败”,对吧。民主的美国只有合法的利益输送,是绝对没有腐败的。
同样的案例看看美国军购丑闻,比如1200美元的杯子,10000美元的马桶圈,16700美元的小冰箱等等……
再来一个,美国有很多“公益”“慈善”基金,美国富翁非常热衷于给这些基金捐款。是不是美国富翁的道德水平很高,特别热爱公益慈善事业?不是,是美国法律规定,捐款给这些挂着“公益”“慈善”名义的基金可以抵税!
你想想,同样是要交出一笔钱,是交给政府纳税好,还是捐款给这些挂着“公益”“慈善”名义的基金更好?用脚指头想也是要交给基金啊!
能搞这些基金的都不是普通人,很多就是国会两院议员,把本来是给国家上税的钱转交给这些议员名下的基金——好处就太大了。
特朗普同志在竞选总统的一个电视辩论中直言:所有的政客都是资本家的狗!希拉里收我的钱所以给我办事!在场这些与我辩论的,几个没收我的钱?
言论一出,舆论哗然,希拉里竞选团队发言人詹妮弗第一时间表态称:特朗普伤害了希拉里的“感情”。
美国法律规定——嗯,也是国会通过的法律,“公益”“慈善”基金投资于公益慈善不得低于基金总额的5%。
这个“法律”真是妙不可言——也就是说,美国这些挂着“公益”“慈善”名义的基金只要拿出基金总数的5%用于公益、慈善,其他的95%做什么都可以。
那么这些基金会把剩余的95%拿去干什么呢?
看看伟大的希拉里克林顿基金的神操作。
希拉里的女婿搞了一个公司,评估10亿美元,然后被A财团以10亿美元收购,接着A财团又以10亿美元价格卖给B财团,最后是希拉里克林顿基金以10亿美元从B财团买下来。过了不久,AB两个财团拿到俄罗斯两个油田的开采权。
嗯,这一切都是合法的。
来来来,我给大家勾勒一下美国资本家与政客偷国库的路径,让大家见识一下在这个路径中“法律”是怎么全程保驾护航的:
现在明白美国为什么没有腐败?
可以“合法”的利益输送,傻逼才会去搞腐败!
如果没有道德洁癖,我可以讲一个常识:任何制度都不可能是完美的,它都有缺陷,它都有实施成本。
所以,关注制度的缺陷最重要的是:这个制度实施成本是否可控?
讲一个简单的道理。腐败是非法的,是要被清算的——只要存在被清算的可能,就是可控的——对于整个经济蛋糕分配的影响就是有限的。
美国那套制度,利益输送合法化才是最可怕的,因为不可控,所以对经济蛋糕分配的影响就是决定性的。
先看一组美国的数据——这是美国权威部门统计的数据。
1999年美国家庭中位数收入为57000美元,到了2015年居然是56000美元,16年不增反减,到了2017年才勉强达到6万美元,18年收入增长5%,考虑到通胀因素,美国人民的实际收入水平其实是一直在下降。
1999年美国GDP为10万亿美元,2019年是19万亿美元,经济增长将近1倍,人口基本没有增长,老百姓收入也没有增加,请问钱去哪里了?呃,在这个期间,全美占人口比例不到1%的200万最富裕的人群财富增加了1倍以上!
这就是合法利益输送的“伟大贡献”,政客与资本将全民创造的财富蛋糕吃干抹尽,连口汤也没给老百姓留下。
有兴趣的同学推荐看一本美国畅销书《乡下人的悲歌》,这本书真实记录了近20年美国经济欣欣向荣的背景下底层老百姓令人绝望的生活状态。
再比较一下中国。
2000年中国人均居住面积是8平米,去年是40平米,增长5倍;2000年全国人民汽车保有量1600万台,去年是2.17亿台,增长14倍;2000年空调销售是1000万台,去年是12000万台,增长12倍;还有食物消费、手机保有量、恩格尔系数等等都是巨大的变化……
这些数据说明什么?
说明最近十几年中国老百姓生活水平有了翻天覆地的变化!
说明中国老百姓最大程度分享了经济发展的红利!
所以,不要给我吹嘘什么三权分立普世自由,这套理论也就是忽悠一下脑残愤青。
一个制度好不好衡量标准很简单:
1、能不能推动经济的可持续发展?
从建国70年的维度,从改革开放40年的维度,有那个国家敢说经济发展速度能与中国相比?
2、老百姓能不能分享经济发展的红利?
比较一下中美老百姓近20年的状况,答案不言而喻。
为什么我鄙视西方那套制度?
除了上述原因,还有一个深层次原因:在人类文明还处于存量博弈的阶段,在生产力水平还不能保证让全人类过上舒适生活的时期,一定要有一个强大的公权力去压制人性“恶”的一面!
内在原因就不展开了,只给大家描述一个被忽略却是非常重要的现象:
向前追溯70年历史,西方社会作为一个个运行模式大致相同的系统是不是从有序走向无序?难民危机、街头运动、毒品泛滥、治安恶化——从物理学的角度,这是不是一个熵在不断提高的系统?
同样向前追溯70年历史,中国社会作为运行模式与西方完全不同的系统是不是从无序走向有序?
只举两个指标:第一改革开放40年十几亿人口的贫困率降低了94.4%;第二恶性凶杀案发案率,知道中国是多少吗?2015年是十万分之0.8,16年是0.62,全世界最低!未来还将继续下降(我大美利坚是十万分之5,中国的8倍)——这是不是一个熵在不断降低的系统?
熵是一个热力学名词,是物理学描述系统的一个状态函数。熵的数值越高代表着系统越混乱无序,熵值越低代表着系统越有序而稳定。熵值超过一个临界点系统就会崩溃。
假如全球都搞西方那套制度,在人工可控核聚变实现之前——也就是人类能够走出地球进入星际探索之前,地球就是一个封闭的系统。
这个系统按照西方那套模式运转——国家力量越来越无法压制人性“恶”的一面,就是一个整体熵值不断上升的封闭系统。很大可能科技还没发展到星际探索阶段,人类文明就提前崩溃了!
幸运的是,人类文明还有中国探索出另一种发展道路——也就是另一种系统运行模式——这种模式经过改革开放40年的运行验证,已经证明不仅可以将自身系统的熵值不断降低,而且可以通过全球化经贸联系,对冲掉其它系统增加的熵值。
所以,中国搞“一带一路”,构建“人类命运共同体”对于人类文明的未来有着非凡的意义。
人类的希望在华夏,地球的未来看中国。
现在,请你把这段话记下来,告诉你的儿子,未来几十年后,我们与后辈们共同见证这个预言!
所以,美国作为一个熵不断增加的系统,还大搞保护主义,孤立主义,拼命建墙把自己搞成一个孤立的系统,短期内也许钱包要鼓一点,中长期来看,就是TM的找死!
中国有一票公知与“自由经济学家”天天在鼓吹这样的“真理”——
让一个经济发展速度6%+的国家去学习一票经济发展速度不超过3%国家的“先进经验”;
让一个社会治安水平最高的国家去学习充斥着抢劫、吸毒、枪击国家的治理模式;
让一个越来越有序的系统去复制一票越来越无序系统的运行体系;
……
你觉得这票人是什么居心?
非蠢即坏!
最后我们反思法国黄马甲运动,就应该明白一个真理:社会福利是体现一个文明社会公平与正义的标志,但是这个必须要与经济发展水平相匹配。
好的社会福利应该是鼓励劳动,而不是奖励懒惰,既要给老百姓提供优质普惠的公共用品,更要给最底层的人民更多的人文关怀。
在这个意义上,中国给老百姓的福利是最好的。
呃,喷子又要跳出来喷了,我也懒得给你们解释,只提几个问题:
中心城市3甲医院挂号费10元,主任级别的专家50元——你以为这是市场价?
大学公立本科一年学费几千元——你以为这是市场价?
大学宿舍住宿费一年1200元的白菜价——你以为这是市场价?
高铁平均1公里0.36元的客运价,铁路平均1公里不到0.1元的客运价——你以为是市场价?
城市地铁几元钱可以环游半个城市——你以为是市场价?
全国高铁、地铁都提供安检——你以为这不是福利?
戈壁、山区手机信号都能满格——你以为全世界都这样?
哪怕不到100人的偏远村庄都给你开山架桥通电通水——你以为全世界都这样?
一个村庄建一个4G基站最后收取的通讯费还不够基站的电费——你以为是理所当然?
发生火灾或者险情你一个电话消防官兵就迅速赶到而且免费服务——你以为全世界都这样?
发生天灾,军队3小时就立即出动不顾危险迅速救援——你以为全世界都这样?
城市晚上10点之后你仍然可以喝酒K歌乱串乱逛——你以为这是理所当然?
最好的医院都是国家公立医院,都对最贫穷的民众敞开大门——你以为这是理所当然?
政府官员直接入住贫困家庭,挖空心思帮助贫困人群脱贫致富——你以为是理所当然?
社会精英不管是政府官员还是企业家大都出自公立学校——你知不知道这意味着什么?
……
呃,你当然不会承认这些都是福利,对吧,反正只要没有把钞票发到你的手上就不是福利,你们在公知的洗脑下坚定的认为中国的福利为零。
你开心就好。
话说,我最喜欢看着公知与愤青们咬牙切齿还不得不跟随我们一起建设社会主义的样子。
为什么我坚信中华民族实现伟大复兴一定会实现?
一个重要的原因就是对我们有中国特色的社会制度充满信心!
转自:https://mp.weixin.qq.com/s/2OHUGmnjrbbjIiCC1g3inw
1、世界强国与数学强国
数学实力往往影响着国家实力,世界强国必然是数学强国。数学对于一个国家的发展至关重要,发达国家常常把保持数学领先地位作为他们的战略需求。17-19世纪英国、法国,后来德国,都是欧洲大国,也是数学强国。17世纪英国牛顿发明了微积分,用微积分研究了许多力学、天体运动的问题,在数学上这是一场革命,由此英国曾在数学上引领了潮流。
法国本来就有良好的数学文化传统,一直保持数学强国的地位。19世纪德、法争雄,在数学上的竞争也非常激烈,到了20世纪初德国哥廷根成为世界数学的中心。
俄罗斯数学从19世纪开始崛起,到了20世纪前苏联时期成为世界数学强国之一。特别是苏联于1958年成功发射了第一颗人造地球卫星,震撼了全世界。
当时美国总统约翰·肯尼迪决心要在空间技术上赶超苏联。他了解到:苏联成功发射卫星的原因之一,是苏联在与此相关的数学领域处于世界的领先地位。此外,苏联重视基础科学教育(包含数学教育)也是它在基础科学研究中具有雄厚实力的一个重要原因,于是下令大力发展数学。
第二次世界大战前美国只是一个新兴国家,在数学上还落后于欧洲,但是今天他已经成为唯一的数学超级大国。战前德国纳粹排犹,大批欧洲的犹太裔数学家被迫移居美国,大大增强了美国的数学实力,为美国打胜二战、提升战后的经济实力做出了巨大贡献。苏联发射第一颗人造地球卫星后,美国加强了对数学研究和数学教育的投入,使得本来在科技界、工商界、军事部门等方面就有良好应用数学基础的美国,迅速成为一个数学强国。苏联、东欧解体后,美国又吸纳了其中大批的优秀数学家。
2、数学及其基本特征
数学是一门“研究数量关系与空间形式”(即“数”与“形”)的学科。一般地说,根据问题的来源把数学分为纯粹数学与应用数学。研究其自身提出的问题的(如哥德巴赫猜想等)是纯粹数学(又称基础数学);研究来自现实世界中的数学问题的是应用数学。利用建立数学“模型”,使得数学研究的对象在“数”与“形”的基础之上又有扩充。各种“关系”,如“语言” “程序” “DNA排序” “选举”、“动物行为” 等都能作为数学研究的对象。数学成为一门形式科学。
纯粹数学与应用数学的界限有时也并不那么明显。一方面由于纯粹数学中的许多对象,追根溯源是来自解决外部问题(如天文学、力学、物理学等)时提出来的;另一方面,为了要研究从外部世界提出的数学问题(如分子运动、网络、动力系统、信息传输等)有时需要从更抽象、更纯粹的角度来考察才有可能解决。
数学的基本特征是:
一是高度的抽象性和严密的逻辑性。
二是应用的广泛性与描述的精确性。
它是各门科学和技术的语言和工具,数学的概念、公式和理论都已渗透在其他学科的教科书和研究文献中;许许多多数学方法都已被写成软件,有的数学软件作为商品在出售,有的则被制成芯片装置在几亿台电脑以及各种先进设备之中,成为产品高科技含量的核心。
三是研究对象的多样性与内部的统一性。
数学是一个“有机的”整体,它像一个庞大的、多层次的、不断生长的、无限延伸的网络。高层次的网络是由低层次网络和结点组成的,后者是各种概念、命题和定理。各层次的网络和结点之间是用严密的逻辑连接起来的。这种连接是客观事物内在逻辑的反映。
数学家,包括纯粹数学家和部分应用数学家,他们的工作就在于:建立新的结点,寻找新的连接,清理和整合众多的连接,并从客观世界吸取营养来丰富、延伸这个网络。在研究现实世界的问题当中,一旦建立的数学模型和我们已有的结点或者低层次的网络相关,所有建立起来的连接都可能发挥作用,为我们提供解决问题的思路、理论和方法。
在现代社会,人们的生活愈来愈离不开数学,我们天天享受着数学的服务,但许多人可能根本不知道!这种例子俯拾皆是。人人都用手机,但并不是人人都知道其中许多关键技术是数学提供的。
3、数学与当代科学技术
(一)数学与科学革命和技术革命
第一次科学革命的标志是近代自然科学体系的形成。是以哥白尼的“日心说”为代表, 后经开普勒、伽利略, 特别是牛顿等一大批科学家的推动完成的。牛顿为了研究动力学,发明了微积分。他的著作《自然哲学的数学原理》影响遍布经典自然科学的所有领域。
被称为19世纪自然科学三大发现的能量守恒与转化定律、细胞学说和进化论是第二次科学革命的主要内容。19世纪末到20世纪初,X射线、电子、天然放射性、DNA双螺线结构等的发现,使人类对物质结构的认识由宏观进入微观,相对论和量子力学的诞生使物理学理论和整个自然科学体系以及自然观、世界观都发生了重大变革,成为第三次科学革命。
在这次革命中,数学起了很大作用。建立相对论需要黎曼几何,爱因斯坦本人就承认,是几何学家走到前头去了,他不过学了几何学家的东西,才发明了相对论。在量子力学中用到的概率、算子、特征值、群论等基本概念和结论都是数学上预先准备好了的,所以数学对第三次科学革命起到了推动作用。
第一次技术革命是蒸汽机和机械的革命。
第二次技术革命是电气和运输的革命。
虽然我们很难说出其中哪一项发明直接来自数学,但19世纪和20世纪数学家们发展了常微分方程、偏微分方程、变分学和函数论等数学分支,并把它们用于研究力学—包括流体力学和弹性力学、热学、电磁学等中的物理问题和工程问题,推动了这些学科的发展。此外还值得一提的是:电磁波的发现是麦克斯韦先从数学推导中预见,然后由赫兹用实验验证的。
第三次技术革命以原子能技术、航天技术、电子计算机的应用为代表。
电子计算机从设想、理论设计、研制一直到程序存储等过程,数学家在其中起决定性的主导作用。从理论上哥德尔创建了可计算理论和递归理论,图灵第一个设计出通用数字计算机,他们都是数学家。冯·诺依曼是第一台电子计算机的研制、程序和存储的创建人,维纳和香农分别是控制论和信息论的创始人,他们也都是数学家。由此可见,数学差不多在历次科技革命中,都起过先导和支柱的作用。
(二)数学与自然科学
任何一门成熟的科学都需要用数学语言来描述,在数学模型的框架下来表达它们的思想和方法。当代数学不仅继续和传统的邻近学科保持紧密的联系,而且和一些过去不太紧密的领域的关联也得到发展,形成了数学化学、生物数学、数学地质学、数学心理学等众多交叉学科。数学在模拟智能和机器学习中也起了很重要的作用,包括:环境感知、计算机视觉、模式识别与理解以及知识推理等。
(三)数学与社会科学
数学在社会科学,如经济学、语言学、系统科学、管理科学中占居重要位置。现代经济理论的研究以数学为基本工具。通过建立数学模型和数学上的推演,来探求宏观经济和微观经济的规律。从1969年到2001年间,50名诺贝尔经济学奖得主中,有27人其主要贡献是运用数学方法解决经济问题。数学与金融科学的交叉—金融数学是当代十分活跃的研究领域。冯·诺依曼与摩根斯登的“对策论与经济行为”使“决策”成为一门科学。
控制理论与运筹学,特别是线性规划、非线性规划、最优控制、组合优化等在交通运输、商业管理、政府决策等许多方面得到广泛的应用。在工业管理方面,统计质量管理起很大的作用。在运用数学理论之前,质量管理是通过事后检验把关来完成的,难以管控,而且成本也很高。根据概率分布的原理,可以将数理统计的方法应用到质量管理当中去,产生了统计质量管理的理论和方法。
(四)数学与数据科学
人们利用观察和试验手段获取数据,利用数据分析方法探索科学规律。数理统计学是一门研究如何有效地收集、分析数据的学科,它以概率论等数学理论为基础,是“定量分析”的关键学科,其理论与方法是当今自然科学、工程技术和人文社会科学等领域研究的重要手段之一。为了处理网络上的大量数据,挖掘、提取有用的知识,需要发展“数据科学”。
近年来大家都从媒体上知道掌握“大数据”的重要性。美国启动了“大数据研究与发展计划”,欧盟实施了“开放数据战略”,举办了“欧盟数据论坛和大数据论坛”。大数据事实上已成为信息主权的一种表现形式,将成为继边防、海防、空防之后大国博弈的另一个空间。此外,大数据创业将成就新的经济增长点(电子商务—产品和个性化服务的大量定制成为可能,疾病诊断、推荐治疗措施,识别潜在罪犯等)。
所以“大数据”已经成为各国政府管理人员、科技界和媒体十分关注的一个关键词。“大数据”的核心是将数学算法运用到海量数据上,预测事情发生的可能性。人们普遍认识到研究大数据的基础是:数学、计算机科学和统计科学。
(五)数学与技术科学
马克思说过:“一门科学只有当它达到了能够成功地运用数学时,才算真正发展了。”
今天的技术科学如信息、航天、医药、材料、能源、生物、环境等都成功地运用了数学。信息科学与数学的关系最为密切。信息安全、信息传输、计算机视觉、计算机听觉、图象处理、网络搜索、商业广告、反恐侦破、遥测遥感等都大量地运用了数学技术。
高性能科学计算被认为是最重要的科学技术进步之一,也是21世纪发展和保持核心竞争力的必需科技手段。例如核武器、流体、星系演化、新材料、大工程等的计算机模拟都要求高性能的科学计算。但有了最快的计算机并不等于高性能科学计算就达到了国际先进水平。应用好高性能计算机解决科学问题,基础算法与可计算建模是关键。相对于计算机硬件,我国在基础算法与可计算建模研究方面的投入不足,不利于我国高性能计算机的持续发展。
药物分子设计已经成为发现新药的主要方向。其中计算机辅助设计扮演着不可替代的角色。用计算的方法从小分子库中搜索发现各种与酶可能的结合构象来筛选药物,或者采用基于受体结构的特征,以及受体和药物分子之间的相互作用方式来进行药物设计,已成为当前耗费计算资源最多的领域之一。
4、数学与国防
一是帮助洛斯阿拉莫斯找到了数学化的途径。“数学化”是指用快速计算机去模拟计算原子弹的爆炸过程和爆炸威力。
二是研究爆聚炸弹,就是把一些炸弹、原子弹捆绑起来发出更大的威力。
5、数学与国民经济
6、数学与文化教育
(一)数学是一种文化
数学作为现代理性文化的核心,提供了一种思维方式。这种思维方式包括:抽象化、运用符号、建立模型、逻辑分析、推理、计算,不断地改进、推广,更深入地洞察内在的联系,在更大范围内进行概括,建立更为一般的统一理论等一整套严谨的、行之有效的科学方法。按照这种思维方式,数学使得各门学科的理论知识更加系统化、逻辑化。
作为一种文化,它的特点在于:
追求一种完全确定的、完全可靠的知识。在数学上是非分明,没有模棱两可。即使对于“偶然”发生的随机现象,对于“不确定”的事件,也要提出精确的概念和研究方法,确切回答某个事件发生的概率是多少,在什么确切的范围以内等等。
追求更深层次的、更为简单的、超出人类感官的基本规律。数学家们是把原始的来自实际的问题,经过了层层抽象,在抽象的、仍然是客观事物真实反映的更深层次上来考察、研究其内在规律。
它不仅研究宇宙的规律,而且也研究它自己。特别是研究自身的局限性,并在不断否定自身中达到新的高度。
由此可见,数学文化是一种非常实事求是的文化,它体现了一种真正的探索精神,一种毫不保守的创新精神。
(二)数学教育的重要性
在知识社会,数学对于国民素质的影响至关重要。1984年美国国家研究委员会在《进一步繁荣美国数学》中提出:“在现今这个技术发达的社会里,扫除‘数学盲’的任务已经替代了昔日扫除文盲的任务,而成为当今教育的主要目标”。
1993年美国国家研究委员会又发表了《人人关心数学教育的未来》的报告,提出:“除了经济以外,对数学无知的社会和政治后果给每个民主政治的生存提出了惊恐的信号。因为数学掌握着我们的基于信息的社会的领导能力的关键。”当年读了这后一段话,很不理解,发生“棱镜事件”之后才恍然大悟。
在我国有没有扫除“数学盲”的必要?答案是肯定的。
普及数学知识。信息社会对于公民的逻辑能力要求明显提高。中、小学数学教育最主要的目的之一,应当在于提高学生的逻辑能力。因此数学作为一种“思想的体操”,应该是中、小学义务教育最重要的组成部分。此外,多举办各种科学普及讲座,向公众普及数学知识,介绍数学在各个领域中的应用也是必要的。
数学开阔人的视野,增添人的智慧。一个人是否受过这种文化熏陶,在观察世界、思考问题时会有很大差别。数学修养不但对于一般科学工作者很重要,就是有了数学修养的经营者、决策者,在面临市场有多种可能的结果,技术路线有多种不同选择时,也有可能减少失误。
亿万富翁詹姆斯·赛蒙斯就是一个最好的例证。在进入华尔街之前,赛蒙斯是个优秀的数学家,进入华尔街之后,他和巴菲特的“价值投资”理念不同,赛蒙斯依靠数学模型和电脑管理旗下的巨额基金,用数学模型捕捉市场机会,由电脑做出交易决策。他称自己为“模型先生”,认为建立好的数学模型可以有效地降低风险。
发达国家在大型公共设施建设,管道、网线铺设以及航班时刻表的编排等方面,早已普遍应用运筹学的理论和方法,既省钱、省力又提高效率。可惜,运筹学的应用在我国还不普遍。其实我们不能要求决策者本人一定要懂得很多数学,但至少要经常想想工作中有没有数学问题需要请数学家来咨询。
加强和改善高等数学教育,培养创新人才。在1988年召开的国际数学教育大会上,美国数学教育家在 “面向新世纪的数学的报告”中指出,“对于中学后数学教育,最重要的任务是使数学成为一门对于怀着各种各样不同兴趣的学生都有吸引力的学科,要使大学数学对于众多不同的前程都是一种必要的不可少的预备”。
对于我们来说,就是改革“高等数学课”,使得它对于非数学专业的学生都有吸引力,而且也使他们学到的内容能在今后工作中发挥作用。因为数学是科技创新的一种资源,是一种普遍适用的并赋予人以能力的技术,改善高等数学教育,提高大学生的数学水平,定将促进这种资源的开发和科技的创新。
壮大应用数学队伍,重视纯粹数学的研究和人才。今天,数学几乎已经深入到我们能想到的一切方面。这么多有用处的数学,表面上看都属于应用数学,然而,纯粹数学与应用数学的关系如同一座冰山,浮在水面上的是应用数学,而埋在水下的是纯粹数学。没有埋于水下的深厚积累,这些“应用”是建立不起来的。
数学是一个有机的整体,许多深刻的纯粹数学理论把看似毫不相关的概念和结论链接了起来,为研究现实世界中的问题提供强有力的思想和方法。无数事例证明:许多当时看不到有任何应用前景的纯粹数学理论,后来在现实世界应用中发挥了巨大作用。例如:数论与现代密码学,调和分析与模式识别,几何分析与图像处理,随机分析与金融等等不胜枚举。
来源:程序员数学之美
转自:https://mp.weixin.qq.com/s/il2vgwgqko4VFCLd_EvvFQ
今天来教大家如何使用Python去除照片背景,说到去除照片背景的方法,我们首先想到的是第三方接口(如:百度AI),但本文重点在于免费使用,不花钱的那种。
下面就开始介绍两种免费去除照片背景的方法
第一种
第一种方法是:removebg(实际上还是第三方接口,不过removebg是免费的)
remove官方地址:
https://www.remove.bg/
首先先注册一个账号,然后访问下方链接获取api_keys(代码里面会用到)
https://www.remove.bg/api#remove-background
点击Get API Key 即可获取key值
获取到key值后,咱们就开编写python程序
# 导入库
from removebg import RemoveBg
api_keys = "上面获取到的key值"
rmbg = RemoveBg(api_key, "error.log")
#rmbg.remove_background_from_img_file("图片路径")
rmbg.remove_background_from_img_file("chen.jpg")
样例效果:
(图片来源网络)
总结
优点:不限于证件照,任何图片都可以去除背景(包括全身照片以及多人合影照片等)
缺点:这个方法只能免费使用50次,超过50次就会提示报错(如下所示)
第二种
第二种方法就是backgroundremover,其实就是一个Python库
github地址:
https://github.com/nadermx/backgroundremover
使用很简单:就两步(github介绍安装中有一些没必要安装,可忽略)
第一步:安装库
pip install backgroundremover
第二步:执行命令
# backgroundremover -i "带背景照片" -o "去除背景照片"
backgroundremover -i "cg.jpg" -o "cg_outopt.jpg"
Python方式调用:
# 导入库
import os
os.system('backgroundremover -i "cg.jpg" -o "cg_output.jpg"')
原理:实际上就是python通过os去执行终端命令。
注意:
在第二步时,初次使用需要下载模型(大概170m),下载地址是google,因此需要能够访问google,才能下载。
我们已经把模型下载好了,关注 Python开发者 公号,后台回复 u2net 即可获取。
(模型文件名称)
下载好的模型需要放到当前系统用户的目录下:
## Window:
c:/Windows/user/.u2net/u2net.pth
## Mac:
/Users/lyc/.u2net/u2net.pth
## Linux:
/root/.u2net/u2net.pth
如果找不到这个位置的,直接搜索.u2net文件夹位置,将模型放到.u2net文件夹也可以
(图片来源网络)
同一张照片,使用这两种不同的方法去除背景
效果差别不大(推荐第二种方法)
总结
优点:不限次数使用,不仅可以对照片去除背景,还可以对视频去除背景(github上有使用方法,感兴趣的可以去看看)
总结
– EOF –
转自:https://mp.weixin.qq.com/s/nTTDN9NhYYlwlb9gKKSqXQ
近年来,随着技术的发展,机器学习和深度学习在金融资产量化研究上的应用越来越广泛和深入。目前,大量数据科学家在Kaggle网站上发布了使用机器学习/深度学习模型对股票、期货、比特币等金融资产做预测和分析的文章。从金融投资的角度看,这些文章可能缺乏一定的理论基础支撑(或交易思维),大都是基于数据挖掘。但从量化的角度看,有很多值得我们学习参考的地方,尤其是Pyhton的深入应用、数据可视化和机器学习模型的评估与优化等。下面借鉴Kaggle上的一篇文章《Building an Asset Trading Strategy》,以上证指数为例,构建双均线交易策略,以交易信号为目标变量,以技术分析指标作为预测特征变量,使用多种机器学习模型进行对比评估和优化。文中的特征变量构建和提取,机器学习模型的对比评估和结果可视化都是很好的参考模板。
先引入需要用到的libraries,这是Python语言的突出特点之一。这些涉及到的包比较多,包括常用的numpy、pandas、matplotlib,技术分析talib,机器学习sklearn和数据包tushare等。
#先引入后面可能用到的libraries
import numpy as np
import pandas as pd
import tushare as ts
#技术指标
import talib as ta
#机器学习模块
from sklearn.linear_model import LogisticRegression
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import GradientBoostingClassifier
from xgboost import XGBClassifier,XGBRegressor
from catboost import CatBoostClassifier,CatBoostRegressor
from sklearn.ensemble import RandomForestClassifier,RandomForestRegressor
from sklearn.model_selection import train_test_split,KFold,cross_val_score
from sklearn.metrics import accuracy_score
import shap
from sklearn.feature_selection import SelectKBest,f_regression
from sklearn import preprocessing
#画图
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.graph_objects as go
import plotly.express as px
%matplotlib inline
#正常显示画图时出现的中文和负号
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False
用tushare获取上证行情数据作为分析样本。
#默认以上证指数交易数据为例
def get_data(code='sh',start='2000-01-01',end='2021-03-02'):
df=ts.get_k_data('sh',start='2005')
df.index=pd.to_datetime(df.date)
df=df[['open','high','low','close','volume']]
return df
df=get_data()
df_train,df_test=df.loc[:'2017'],df.loc['2018':]
以交易信号作为目标变量,使用价格信息和技术指标作为特征变量进行预测分析。以双均线交易策略为例,当短期均线向上突破长期均线时形成买入信号(设定为1),当短期均线向下跌破长期均线时发出卖出信号(设定为0),然后再使用机器学习模型进行预测和评估。这里将短期移动平均值(SMA1)和长期移动平均值(SMA2)的参数分别设置为10和60,二者的设定具有一定的任意性,参数的选择会影响后续结果,所以理想情况下需要进行参数优化来找到最优值。
def trade_signal(data,short=10,long=60,tr_id=False):
data['SMA1'] = data.close.rolling(short).mean()
data['SMA2'] = data.close.rolling(long).mean()
data['signal'] = np.where(data['SMA1'] >data['SMA2'], 1.0, 0.0)
if(tr_id is not True):
display(data['signal'].value_counts())
df_tr1 = df_train.copy(deep=True)
df_te1 = df_test.copy(deep=True)
trade_signal(df_tr1) #
trade_signal(df_te1,tr_id=True)
plt.figure(figsize=(14,12), dpi=80)
ax1 = plt.subplot(211)
plt.plot(df_tr1.close,color='b')
plt.title('上证指数走势',size=15)
plt.xlabel('')
ax2 = plt.subplot(212)
plt.plot(df_tr1.signal,color='r')
plt.title('交易信号',size=15)
plt.xlabel('')
plt.show()
df_tr1[['SMA1','SMA2','signal']].iloc[-250:].plot(figsize=(14,6),secondary_y=['signal'])
plt.show()
#删除均线变量
df_tr1=df_tr1.drop(['SMA1','SMA2'], axis=1)
df_te1=df_te1.drop(['SMA1','SMA2'], axis=1)
#画目标变量与其他变量之间的相关系数图
cmap = sns.diverging_palette(220, 10, as_cmap=True)
def corrMat(df,target='demand',figsize=(9,0.5),ret_id=False):
corr_mat = df.corr().round(2);shape = corr_mat.shape[0]
corr_mat = corr_mat.transpose()
corr = corr_mat.loc[:, df.columns == target].transpose().copy()
if(ret_id is False):
f, ax = plt.subplots(figsize=figsize)
sns.heatmap(corr,vmin=-0.3,vmax=0.3,center=0,
cmap=cmap,square=False,lw=2,annot=True,cbar=False)
plt.title(f'Feature Correlation to {target}')
if(ret_id):
return corr
corrMat(df_tr1,'signal',figsize=(7,0.5))
当前的特征open、high、low、close、volumes与目标变量的线性相关值非常小,这可能意味着存在高非线性,相对平稳值的稳定振荡(圆形散射),或者也许它们不是理想的预测特征变量,所以下面需要进行特征构建和选取。
为方便分析,下面以常见的几个技术指标作为特征引入特征矩阵,具体指标有:
移动平均线:移动平均线通过减少噪音来指示价格的运动趋势。
随机振荡器%K和%D:随机振荡器是一个动量指示器,比较特定的证券收盘价和一定时期内的价格范围。%K、%D分别为慢、快指标。
相对强弱指数(RSI):动量指标,衡量最近价格变化的幅度,以评估股票或其他资产的价格超买或超卖情况。
变化率(ROC):动量振荡器,测量当前价格和n期过去价格之间的百分比变化。ROC值越高越有可能超买,越低可能超卖。
动量(MOM):证券价格或成交量加速的速度;价格变化的速度。
#复制之前的数据
df_tr2=df_tr1.copy(deep=True)
df_te2=df_te1.copy(deep=True)
#使用talib模块直接计算相关技术指标
#下面参数的选取具有主观性
def indicators(data):
data['MA13']=ta.MA(data.close,timeperiod=13)
data['MA34']=ta.MA(data.close,timeperiod=34)
data['MA89']=ta.MA(data.close,timeperiod=89)
data['EMA10']=ta.EMA(data.close,timeperiod=10)
data['EMA30']=ta.EMA(data.close,timeperiod=30)
data['EMA200']=ta.EMA(data.close,timeperiod=200)
data['MOM10']=ta.MOM(data.close,timeperiod=10)
data['MOM30']=ta.MOM(data.close,timeperiod=30)
data['RSI10']=ta.RSI(data.close,timeperiod=10)
data['RSI30']=ta.RSI(data.close,timeperiod=30)
data['RS200']=ta.RSI(data.close,timeperiod=200)
data['K10'],data['D10']=ta.STOCH(data.high,data.low,data.close, fastk_period=10)
data['K30'],data['D30']=ta.STOCH(data.high,data.low,data.close, fastk_period=30)
data['K20'],data['D200']=ta.STOCH(data.high,data.low,data.close, fastk_period=200)
indicators(df_tr2)
indicators(df_te2)
corrMat(df_tr2,'signal',figsize=(15,0.5))
上图可以看到明显线性相关的一组特征是作为特征工程的结果创建的。如果在特征矩阵中使用基本数据集特征,很可能对目标变量的变化影响很小或没有影响。另一方面,新创建的特征具有相当宽的相关值范围,这是相当重要的;与目标变量(交易信号)的相关性不算特别高。
#删除缺失值
df_tr2 = df_tr2.dropna()
df_te2 = df_te2.dropna()
下面使用常用的机器学习算法分别对数据进行拟合和交叉验证评估。
models.append(('RF', RandomForestClassifier(n_estimators=25)))
models = []
#轻量级模型
#线性监督模型
models.append(('LR', LogisticRegression(n_jobs=-1)))
models.append(('TREE', DecisionTreeClassifier()))
#非监督模型
models.append(('LDA', LinearDiscriminantAnalysis()))
models.append(('KNN', KNeighborsClassifier()))
models.append(('NB', GaussianNB()))
#高级模型
models.append(('GBM', GradientBoostingClassifier(n_estimators=25)))
models.append(('XGB',XGBClassifier(n_estimators=25,use_label_encoder=False)))
models.append(('CAT',CatBoostClassifier(silent=True,n_estimators=25)))
构建模型评估函数
def modelEval(ldf,feature='signal',split_id=[None,None],eval_id=[True,True,True,True],
n_fold=5,scoring='accuracy',cv_yrange=None,hm_vvals=[0.5,1.0,0.75]):
''' Split Train/Evaluation <DataFrame> Set Split '''
# split_id : Train/Test split [%,timestamp], whichever is not None
# test_id : Evaluate trained model on test set only
if(split_id[0] is not None):
train_df,eval_df = train_test_split(ldf,test_size=split_id[0],shuffle=False)
elif(split_id[1] is not None):
train_df = df.loc[:split_id[1]]; eval_df = df.loc[split_id[1]:]
else:
print('Choose One Splitting Method Only')
''' Train/Test Feature Matrices + Target Variables Split'''
y_train = train_df[feature]
X_train = train_df.loc[:, train_df.columns != feature]
y_eval = eval_df[feature]
X_eval = eval_df.loc[:, eval_df.columns != feature]
X_one = pd.concat([X_train,X_eval],axis=0)
y_one = pd.concat([y_train,y_eval],axis=0)
''' Cross Validation, Training/Evaluation, one evaluation'''
lst_res = []; names = []; lst_train = []; lst_eval = []; lst_one = []; lst_res_mean = []
if(any(eval_id)):
for name, model in models:
names.append(name)
# Cross Validation Model on Training Se
if(eval_id[0]):
kfold = KFold(n_splits=n_fold, shuffle=True)
cv_res = cross_val_score(model,X_train,y_train, cv=kfold, scoring=scoring)
lst_res.append(cv_res)
# Evaluate Fit Model on Training Data
if(eval_id[1]):
res = model.fit(X_train,y_train)
train_res = accuracy_score(res.predict(X_train),y_train); lst_train.append(train_res)
if(eval_id[2]):
if(eval_id[1] is False): # If training hasn't been called yet
res = model.fit(X_train,y_train)
eval_res = accuracy_score(res.predict(X_eval),y_eval); lst_eval.append(eval_res)
# Evaluate model on entire dataset
if(eval_id[3]):
res = model.fit(X_one,y_one)
one_res = accuracy_score(res.predict(X_one),y_one); lst_one.append(one_res)
''' [out] Verbal Outputs '''
lst_res_mean.append(cv_res.mean())
fn1 = cv_res.mean()
fn2 = cv_res.std();
fn3 = train_res
fn4 = eval_res
fn5 = one_res
s0 = pd.Series(np.array(lst_res_mean),index=names)
s1 = pd.Series(np.array(lst_train),index=names)
s2 = pd.Series(np.array(lst_eval),index=names)
s3 = pd.Series(np.array(lst_one),index=names)
pdf = pd.concat([s0,s1,s2,s3],axis=1)
pdf.columns = ['cv_average','train','test','all']
''' Visual Ouputs '''
sns.set(style="whitegrid")
fig,ax = plt.subplots(1,2,figsize=(15,4))
ax[0].set_title(f'{n_fold} Cross Validation Results')
sns.boxplot(data=lst_res, ax=ax[0], orient="v",width=0.3)
ax[0].set_xticklabels(names)
sns.stripplot(data=lst_res,ax=ax[0], orient='v',color=".3",linewidth=1)
ax[0].set_xticklabels(names)
ax[0].xaxis.grid(True)
ax[0].set(xlabel="")
if(cv_yrange is not None):
ax[0].set_ylim(cv_yrange)
sns.despine(trim=True, left=True)
sns.heatmap(pdf,vmin=hm_vvals[0],vmax=hm_vvals[1],center=hm_vvals[2],
ax=ax[1],square=False,lw=2,annot=True,fmt='.3f',cmap='Blues')
ax[1].set_title('Accuracy Scores')
plt.show()
modelEval(df_tr1,split_id=[0.2,None])
结果显示,cross_val_score徘徊在准确度= 0.5的区域,这表明仅使用指数/股票的价格数据(开盘、最高、最低、成交量、收盘)很难准确预测价格变动的方向性。大多数模型的训练得分往往高于交叉验证得分。有意思的是,DecisionTreeClassifier & RandomForest即使很少估计可以达到非常高的分数,但交叉验证的得分却很低,表明对训练数据可能存在过度拟合了。
modelEval(df_tr2,split_id=[0.2,None],cv_yrange=(0.8,1.0),hm_vvals=[0.8,1.0,0.9])
结果表明,与基准模型相比,准确率得分有了非常显著的提高。线性判别分析(LDA)的表现非常出色,不仅在训练集上,而且在交叉验证中,得分显著提高。毫无疑问,更复杂的模型GBM,XGB,CAT,RF在全样本中评估得分较高。与有监督学习模型相比,kNN和GaussianNB的无监督模型表现较差。
def feature_importance(ldf,feature='signal',n_est=100):
# Input dataframe containing feature & target variable
X = ldf.copy()
y = ldf[feature].copy()
del X[feature]
# CORRELATION
imp = corrMat(ldf,feature,figsize=(15,0.5),ret_id=True)
del imp[feature]
s1 = imp.squeeze(axis=0);s1 = abs(s1)
s1.name = 'Correlation'
# SHAP
model = CatBoostRegressor(silent=True,n_estimators=n_est).fit(X,y)
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
shap_sum = np.abs(shap_values).mean(axis=0)
s2 = pd.Series(shap_sum,index=X.columns,name='Cat_SHAP').T
# RANDOMFOREST
model = RandomForestRegressor(n_est,random_state=0, n_jobs=-1)
fit = model.fit(X,y)
rf_fi = pd.DataFrame(model.feature_importances_,index=X.columns,
columns=['RandForest']).sort_values('RandForest',ascending=False)
s3 = rf_fi.T.squeeze(axis=0)
# XGB
model=XGBRegressor(n_estimators=n_est,learning_rate=0.5,verbosity = 0)
model.fit(X,y)
data = model.feature_importances_
s4 = pd.Series(data,index=X.columns,name='XGB').T
# KBEST
model = SelectKBest(k=5, score_func=f_regression)
fit = model.fit(X,y)
data = fit.scores_
s5 = pd.Series(data,index=X.columns,name='K_best')
# Combine Scores
df0 = pd.concat([s1,s2,s3,s4,s5],axis=1)
df0.rename(columns={'target':'lin corr'})
x = df0.values
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x)
df = pd.DataFrame(x_scaled,index=df0.index,columns=df0.columns)
df = df.rename_axis('Feature Importance via', axis=1)
df = df.rename_axis('Feature', axis=0)
pd.options.plotting.backend = "plotly"
fig = df.plot(kind='bar',title='Scaled Feature Importance')
fig.show()
feature_importance(df_tr2)
注意到,对于很多特征,相关性(Pearson’s value)小的在其他方法中也会给出小的得分值。同样,高相关的特征在其他特征重要性方法中得分也很高。当谈到特征的重要性时,有一些特征显示出一些轻微的不一致,总的来说,大多数方法都可以观察到特征评分的相似性。在机器学习中,某些特征对于大多数方法来说都有一个非常低的相对分数值,因此可能没有什么影响,即使把它们删除,也不会降低模型的准确性。删除可能不受影响的特性将使整个方法更加有效,同时可以专注于更长和更深入的超参数网格搜索,可能得到比原来模型更准确的结果。
df_tr2_FI = df_tr2.drop(columns=['open','high','low','close','EMA10'])
modelEval(df_tr2_FI,split_id=[0.2,None],cv_yrange=(0.8,1.0),hm_vvals=[0.8,1.0,0.9])
结果显示,删掉预测能力较弱的特征后,某些机器学习方法的预测得分提高了,如线性判别(LDA)、决策树(TREE)和随机森林(RF)等。
本文只是以上证指数为例,以技术指标作为特征,使用机器学习算法对股票交易信号(注意这里不是股价或收益率)进行预测评估,目的在于向读者展示Python机器学习在金融量化研究上的应用。从金融维度来看,分析的深度较浅,实际上对股价预测有用的特征有很多,包括(1)外在因素, 如股票相关公司的竞争对手、客户、全球经济、地缘政治形势、财政和货币政策、资本获取等。因此,公司股价可能不仅与其他公司的股价相关,还与大宗商品、外汇、广义指数、甚至固定收益证券等其他资产相关;(2)股价市场因素,如很多投资者关注技术指标。(3)公司基本面因素,如公司的年度和季度报告可以用来提取或确定关键指标,如净资产收益率(ROE)和市盈率(price -to – earnings)。此外,新闻可以预示即将发生的事件,这些事件可能会推动股价向某个方向发展。当关注股票价格预测时,我们可以使用类似的方法来构建影响预测变量的因素,希望本文能起到抛砖引玉的作用。
资料来源:
https://www.kaggle.com/shtrausslearning/building-an-asset-trading-strategy
作者:CuteHand
转自:https://mp.weixin.qq.com/s/7NP0AAYi4F-v-OQlFQSNtA