哈7下哈利从哈利波特和马尔福bl图庄园抢到了莱斯特兰琪的魔杖吗。为什么赫敏在金库

中国有一种产品,叫做rmbs,即个人住房抵押贷款支持证券。&br&&img src=&/eaaf1771874_b.jpg& data-rawwidth=&500& data-rawheight=&195& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/eaaf1771874_r.jpg&&&img src=&/203e801936cdb9e7e4ffe4c1c13a9eb5_b.png& data-rawwidth=&1350& data-rawheight=&2048& class=&origin_image zh-lightbox-thumb& width=&1350& data-original=&/203e801936cdb9e7e4ffe4c1c13a9eb5_r.png&&&br&&br&&br&目前国内规模9月已经突破800亿,预计年底能够突破1000亿。不仅银行发行,公积金中心也发行。&br&利率在5-7%左右。&br&&br&rmbs实质就是银行将抵押房贷打包成债券出售,让出部分房贷利息,从而回收资金。&br&&br&承销rmbs的渠道信托公司,为了转移自身的风险,会向保险公司买一份债券保险cds,即rbds。&br&保险费率在1-3%左右。&br&&br&保险公司将自己手上的rbds,向再保险公司比如中再再保险,等同抵押贴现,获得资金,即rrbds。费率在1.88-2.17%左右。&br&&br&也就是说,只要违约率大于7-5%,你买rbds,rrbds就有赚了,而杠杆率最大可以达到0.02%,即5000倍,最低是0.065%,即1500倍。&br&&br&那么怎样才会出现违约断供?违约多少能赚多少?&br&&br&如果房贷全是零首付,那么不上涨,即房价上涨幅度低于贷款利率,也会出现全面违约断供。&br&如果全是二成首付,跌80%才有可能因为无力补充抵押物而违约断供。&br&房价跌多少才会出现大于7-5%的违约率呢?取决于正在还房贷的人能承受房价跌多少,或者涨不了多少。&br&&br&……&br&这东西是百万为单位的,一是找渠道承销商的保险公司,一是找再保险公司,替别人的rmbs买保险。&br&如果没出事,别人赚钱了,你什么都没有。只有别人爆煲,你才可以赚对方亏损的差额值。&br&相当2元博1万的彩票,只不过一张彩票100万。&br&另外一个问题是,肯不肯赔,毕竟还没有过违约。国家认不认可,毕竟你是为别人买保险,收益人是你,一个政策下来啥都能无赖。&br&&br&······················&br&&img src=&/5b1dabeadacd0ec55eaaba_b.png& data-rawwidth=&597& data-rawheight=&221& class=&origin_image zh-lightbox-thumb& width=&597& data-original=&/5b1dabeadacd0ec55eaaba_r.png&&&img src=&/fd09f7ac9a454d9218f68_b.png& data-rawwidth=&593& data-rawheight=&101& class=&origin_image zh-lightbox-thumb& width=&593& data-original=&/fd09f7ac9a454d9218f68_r.png&&&br&……&br&最后一次补充,原答是9月14日。&br&这东西的用法是这样的:&br&一份100万的rbds覆盖大约3000万的rmbs,一份rrbds大概覆盖15亿rmbs。&br&如果断供违约率是10%,那么1份rbds可以获赔300万,rrbds获赔1.5亿。&br&但是违约达不到一定值,rmbs还能保本,没有赔付,买rbds的钱全打水漂。&br&如果某个疯子土豪,拿10亿买,那么10%违约率就可以赚30亿,即使其对应的rmbs只有3000万。&br&买这东西需要资质和门路。&br&阴谋论一下:&br&中国的保险公司都是有政治家族,党国要人为背景的。与虎谋皮非轻易,翻脸不认俱闲事。&br&能要他们乖乖守规则认栽,也非常人。&br&而赔付的钱从哪来?你还记得银行各种理财里的分红险,万能险么?&br&如果党国门阀如果发现不仅能从房价上涨中获利,也能从房价暴跌中获利,毕竟这东西就像股市的期指,那么他们会如何好好利用手中的权力和这个产品,为自己创造谋利的空间?&br&不再补充……
中国有一种产品,叫做rmbs,即个人住房抵押贷款支持证券。 目前国内规模9月已经突破800亿,预计年底能够突破1000亿。不仅银行发行,公积金中心也发行。 利率在5-7%左右。 rmbs实质就是银行将抵押房贷打包成债券出售,让出部分房贷利息,从而回收资金。 承销…
&img src=&/50/v2-a779f574eb8e9e9bb6a38_b.jpg& data-rawwidth=&1440& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&/50/v2-a779f574eb8e9e9bb6a38_r.jpg&&&p&&b&作者 郭瑞东&/b&&/p&&p&&b&给你一个有向带权图,需要你删除一些边,使这个图变成一个权值最小的树,这就是图论入门时最经典的最小生成树问题了,&/b&很多人都学过该算法。那我们要谈什么了。&/p&&p&&b&首先说的是该算法在实际中是很有用的&/b&,不止是将高速公路问题中的城市看做图中的顶点,城市之间修建的道路看做图中顶点之间的边,城市之间所修修建的公路的长度看做是图中个边上的权值。&b&这样我们就把高速公路问题转换成了求一个有向连通网的最小生成树问题。&/b&&/p&&p&&b&我们甚至可以将大脑中的神经元看成是一个图,而学习的过程就是去除无用的神经元连接,从而生成一颗最小生成树的过程&/b&,这其中也会有用到相应的,当然人脑内发生的事情可没有那么简单,不过实验已证明,人脑中的神经元连接,是童年时最为丰富,成年后连接减少,但这些连接稳固而快捷,学习的过程,就是去除那些不常在一起的连接。将思维的背景放宽,古代的帝王之术,也要求其统治下的官僚体系维持为一颗最小生成树,不能要官员自己有相互的勾结(形成环),官官相护。这就是为什么帝王要要打击腐败的原因,虽然他们做的都不够成功,这与其方法固然有关,这之后还要说起。 &/p&&p&再说解决该问题的俩种经典方法之前,&b&我先说说我拿到该问题时想到的方法,“破圈法”即见圈就破,破圈时去除圈里权值最大的边,&/b&具体来看,就是先将所有的边按权值进行降序排列.之后对于取出的每一个边来说,判断其连接的两个结点是否具有圈.(即先删除次边,然后判断这两个结点是否连接,之后对删除的边进行恢复)对于有圈的,将这条边删除,否则,往下查找.算法结束:当剩下的边=结点数-1的时候。学过算法的可以分析下该方法的复杂度,肯定比Prim和kruskal都差不止一个数量级,我认为该方法是O(n^3)级的,n为图中点的个数)。&/p&&p&回想起来,我在初学算法时为什么会想到这样的方法,多半是因为这种方法够直接,目的是要图中没有圈,那就破圈好了。&b&但是在图上的信息不明时,破圈实际是一种好策略,如果你面对的一张图,但你只能看到图的一部分,而每一次观察都要消耗能量,记忆住图上点自己的信息也需要消耗能量,那么当你看到一个圈时,将圈中权值较大的边破除,确实是一个好办法&/b&,这也就是中国古代帝王们做的,他们对庞大官僚系统,尤其当官僚系统成熟后,所能掌握的信息甚少,只能头痛医头,脚痛医脚。该问题也可以成为启发式算法研究的一个开放问题,对于一个agent,给点其信息存储空间,限定其观察信息的方式,使该agent无法在一开始就拥有全局信息,看该agent如何行动,以求得相对较小的生成树。&/p&&p&&b&接下来说该问题的俩种标准方法,Kruskal算法:所有的顶点放那,每次从所有的边中找一条代价最小的,同时保证加入的边不产生圈。&/b&Prime普利姆算法求最小生成树时候,和边数无关,只和定点的数量相关,所以适合求稀疏图的最小生成树,时间复杂度为O(n*n)。&b&Prim:算法:在U,(V – U)之间的边,每次找一条代价最小的,&/b&具体的说,1.将一个图的顶点分为两部分,一部分是最小生成树中的结点(A集合),另一部分是未处理的结点(B集合)。2.首先选择一个结点,将这个结点加入A中,然后,对集合A中的顶点遍历,找出A中顶点关联的边权值最小的那个(设为v),将此顶点从B中删除,加入集合A中。3.递归重复步骤2,直到B集合中的结点为空,结束此过程。4.A集合中的结点就是由Prime算法得到的最小生成树的结点,依照步骤2的结点连接这些顶点,得到的就是这个图的最小生成树。Prim适合稠密图,因此通常使用邻接矩阵储存,而Kruskal多用邻接表。&/p&&p&&img src=&/50/v2-845dac6fdd1a4ef_b.jpg& data-rawwidth=&720& data-rawheight=&540& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/50/v2-845dac6fdd1a4ef_r.jpg&&&b&图: Prime 算法示意&/b&&/p&&p&为什么要说这俩种算法了,&b&其实我想对比的是这俩种方法背后的世界观。简而言之,Prime算法背后是日拱一卒的保守主义的世界观,在算法开始时不假设已知全部信息,而将图分为一个已知的A集合,(包含最小生成树)以及一个B集合(将要加入最小生成树)的集合。而Kruskal算法则要求对所有边按照权值进行排序,然后再重头开始贪心的构建生成树,背后是建构主义的世界观。&/b&这也就对于了现实社会,当面对的情况越发复杂,我们需要改变打倒重来的策略,切换到保守主义的世界观上,不可一日不拱卒。&/p&&p&&b&而破圈法则是直线思维的产物,其背后的价值观是属于前现代化时代的&/b&。这也就解释了为什么当官僚机构发展到了晚期,例如嘉庆年间,尽管嘉庆是个道德很完善,也很勤政的皇帝,但当他面对盘根错节的官僚网络时,如救火队员般顾此失彼。嘉庆还在用着“破圈法”去在官僚集团这张网上去一个个的缠斗。这也可以解释为什么计划经济无法应对日益复杂的环境,即使在静态的环境,当你做好了排序,你需要的存储空间,时间成本,都远高于将世界分为已知与未知,并不断扩展已知世界的动态开放的经济系统。&/p&&p&&b&接下来想说说Prime 和Kruskal 算法并行化的问题,应该是Prime 的并行化更加有效率,Prime算法可以自然的套用Map -Reduce的框架&/b&,&a href=&/?target=http%3A///p-.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&基于MapReduce的图聚类算法的研究与实现&i class=&icon-external&&&/i&&/a&,这里就有一篇实现分布式环境下的MST(最小生成树)的论文。而Kruskal在并行化时需要先进行排序,生成树的时候其各个节点间的通信量也会很大,因为各个节点间的关系是相互影响的。这并不令人意外,这俩种算法底层的世界观就决定了这个。&/p&&p&&b&最后我想说的是,Kruskal算法本质是贪心算法,而Prime算法是动态规划&/b&。所谓动态规划,你可以给7岁的小孩说清,你问孩子1+1等于几,她告诉你2,那么你问她2+1了?她回答说3,然后你问她那你算2+1时还用不用再算1+1=2,她肯定会说不用了,你已经知道1+1=2了。其实动态规划就是记住自己已知的未知的,不要混淆已知与未知的界限,同时不断利用已知的知识以及自己对当前情况的判断去扩展已知的花式技法。重要的是你要有一个起点,一个能够不断等新已知与未知边界的迭代函数。这既是动态规划算法的精要,也是保守主义的核心价值观。&/p&
作者 郭瑞东给你一个有向带权图,需要你删除一些边,使这个图变成一个权值最小的树,这就是图论入门时最经典的最小生成树问题了,很多人都学过该算法。那我们要谈什么了。首先说的是该算法在实际中是很有用的,不止是将高速公路问题中的城市看做图中的顶点…
&img src=&/50/v2-dc99f336e2f7bf7fb011f_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/50/v2-dc99f336e2f7bf7fb011f_r.jpg&&一个是经管实证研究的必备利器,Stata。&p&一个是触手可及的胶水语言,Python。&/p&&p&爬虫获取数据,祭出神器Python,整理数据跑出漫天星星,亮出宝剑Stata。双剑合璧,驰骋于数据时代。&/p&&p&当时在&a href=&/p/?refer=staranalysts& class=&internal&&R语言与应用计量经济学&/a&已经提到Stata有一些不足需要弥补。其实在 Stata Conference Chicago 2016上,不仅有人在提及与Web交互绘图的问题,还提及到Reproducible research。Reproducible research在R语言中得到了较好的体现,感兴趣的读者可以阅读Dynamic Documents with R and Knitr(2nd)和Reproducible Research with R and RStudio(2nd)。Stata用户也想实现Reproducible research,其中一个比较便捷的方式就是借助Jupyter Notebook来实现。&/p&&p&不得不说Stata用户中也是牛人辈出呀,&a href=&/?target=https%3A///TiesdeKok& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Ties de Kok&i class=&icon-external&&&/i&&/a&开发出IPyStata实现了在Python环境下调用Stata。哈哈,放一张这个牛人的PPT。“The whole is greater than the sum of its parts.”&/p&&p&&img src=&/50/v2-08b105addeb4fa66f254b_b.jpg& data-rawheight=&541& data-rawwidth=&960& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/50/v2-08b105addeb4fa66f254b_r.jpg&&演示的环境:&/p&&ol&&li&Win10;&/li&&li&Anaconda 4.1.1 (64-bit);&br&&/li&&li&Stata/MP 14.1 (64-bit);&br&&/li&&li&IPystata 0.3.5。&/li&&/ol&&br&简要安装步骤:&p&1.在CMD环境下输入“pip install ipystata”;&br&&/p&&p&&img src=&/50/v2-0df07efebb46_b.jpg& data-rawheight=&91& data-rawwidth=&347& class=&content_image& width=&347&&2.在CMD环境(管理员模式)下切换到Stata的安装路径;&/p&&p&&img src=&/50/v2-ea80ecc53c982c_b.jpg& data-rawheight=&95& data-rawwidth=&303& class=&content_image& width=&303&&3.注册Stata,输入“StataMP-64.exe /Register”,“StataMP-64.exe”是Stata的exe文件名称;&/p&&p&&img src=&/50/v2-7cc1ffaf1b56b0dadfa8231_b.jpg& data-rawheight=&96& data-rawwidth=&378& class=&content_image& width=&378&&4.启动Jupyter,如图所示输入代码;&/p&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&kn&&import&/span& &span class=&nn&&ipystata&/span&
&span class=&kn&&from&/span& &span class=&nn&&ipystata.config&/span& &span class=&kn&&import&/span& &span class=&n&&config_stata&/span&
&span class=&n&&config_stata&/span&&span class=&p&&(&/span&&span class=&s1&&'F:\ProgramFiles\Stata\StataMP-64.exe'&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&&p&&img src=&/50/v2-b7e385ebb988c6ba01eae_b.jpg& data-rawheight=&338& data-rawwidth=&1256& class=&origin_image zh-lightbox-thumb& width=&1256& data-original=&/50/v2-b7e385ebb988c6ba01eae_r.jpg&&5.准备工作安装完毕。&/p&&p&下面来尝鲜一下具体的功能。&/p&&ul&&li&导入数据。&br&&/li&&/ul&&br&&img src=&/50/v2-afda5eaec7e63c_b.jpg& data-rawheight=&554& data-rawwidth=&986& class=&origin_image zh-lightbox-thumb& width=&986& data-original=&/50/v2-afda5eaec7e63c_r.jpg&&&ul&&li&描述性统计与相关性分析&/li&&/ul&&br&&img src=&/50/v2-566ef45f0b58aba503db2cebb718efe5_b.jpg& data-rawheight=&533& data-rawwidth=&770& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&/50/v2-566ef45f0b58aba503db2cebb718efe5_r.jpg&&&ul&&li&一图胜千言。&/li&&/ul&&br&&img src=&/50/v2-e9f5d7091_b.jpg& data-rawheight=&693& data-rawwidth=&777& class=&origin_image zh-lightbox-thumb& width=&777& data-original=&/50/v2-e9f5d7091_r.jpg&&&ul&&li&正常导入dta数据,再画图。&/li&&/ul&&br&注意导入数据的地址写法。&br&&img src=&/50/v2-35aa2e37fc1add3d16a3e529e8c80ab1_b.jpg& data-rawheight=&677& data-rawwidth=&768& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/50/v2-35aa2e37fc1add3d16a3e529e8c80ab1_r.jpg&&&ul&&li&导入在线数据。&/li&&/ul&&br&&img src=&/50/v2-596d08ede4f8f253bf78_b.jpg& data-rawheight=&249& data-rawwidth=&777& class=&origin_image zh-lightbox-thumb& width=&777& data-original=&/50/v2-596d08ede4f8f253bf78_r.jpg&&&ul&&li&终结者。&/li&&/ul&&br&&img src=&/50/v2-da01f17e1_b.jpg& data-rawheight=&707& data-rawwidth=&796& class=&origin_image zh-lightbox-thumb& width=&796& data-original=&/50/v2-da01f17e1_r.jpg&&IPystata使用情况简述:&br&&ol&&li&和Julia以Kernel的形式引入Jupyter不同,Stata是通过IPystata包的途径在Jupyter上显示。&/li&&li&基本可以使用,包括数据导入、描述性分析、绘图和回归。&/li&&li&不仅可以调用Stata原生命令,安装在本地的Stata插件也是可以使用,如图中的esttab。&/li&&li&Stata的有些操作不能很好的显示在Jupyter上面。如list(List values of variables)。&/li&&/ol&&br&更具体的信息可以关注&a href=&/?target=https%3A///TiesdeKok/ipystata& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub上的IPystata。&i class=&icon-external&&&/i&&/a&
一个是经管实证研究的必备利器,Stata。一个是触手可及的胶水语言,Python。爬虫获取数据,祭出神器Python,整理数据跑出漫天星星,亮出宝剑Stata。双剑合璧,驰骋于数据时代。当时在已经提到Stata有一些不足需要弥补。其实在 Stata C…
&p&很简单,就是换了造型师。她现在的造型师是Lucia Liu,一个神一样的金牌造型师,好多女明星在她的指导下完成惊艳的蜕变。有兴趣的可以围观她的微博@LuciaLiustylist&/p&&img src=&/558c23c4dc73643abb48ea_b.jpg& data-rawwidth=&750& data-rawheight=&331& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&/558c23c4dc73643abb48ea_r.jpg&&&p&&br&&/p&&p&虽然咱们请不起造型师,但周冬雨在她刚出道时颜值在娱乐圈绝对不算特别出众,所以造型的转变对于芸芸众生的我们相当有借鉴意义的,一起来看看她在发型、妆容、穿衣方面做了哪些转变~&/p&&p&&br&&/p&&p&探索一个人的个人风格,要做哪些事?&/p&&p&&br&&/p&&p&&b&Step 1:观察骨架&/b&&/p&&p&&br&&/p&&p&先看周冬雨整个人的骨架▼&/p&&img src=&/e1bd458a16ca6b_b.jpg& data-rawwidth=&690& data-rawheight=&667& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/e1bd458a16ca6b_r.jpg&&&p&&br&&/p&&p&&b&● 160cm左右的身高,妥妥的娇小身材。&/b&所以,注定与张雨绮、巩俐那种大骨架的御姐范无缘▼&/p&&img src=&/7c96bbc520e89_b.jpg& data-rawwidth=&987& data-rawheight=&1000& class=&origin_image zh-lightbox-thumb& width=&987& data-original=&/7c96bbc520e89_r.jpg&&&p&&br&&/p&&p&&b&● 身材苗条,细胳膊细腿。&/b&和她年龄差不多的邓紫棋身高也不太高,但邓紫棋更肉感一些,所以肉嘟嘟地扮可爱也没有违和感。扮可爱这种事,终究还是肉肉的圆圆脸最擅长啊▼&/p&&img src=&/01ebc147d0c0fe6513a2_b.jpg& data-rawwidth=&903& data-rawheight=&464& class=&origin_image zh-lightbox-thumb& width=&903& data-original=&/01ebc147d0c0fe6513a2_r.jpg&&&p&&br&&/p&&p&&b&Step 2:观察五官&/b&&/p&&p&&br&&/p&&p&&b&周冬雨是白白净净的皮肤、小巧的鼻子、小巧的嘴巴、小巧的眼睛,单眼皮,组合在一块儿给人天真单纯的感觉。&/b&虽然Angelababy也是小骨架,但那张脸实在是精致得无可挑剔,所以她的洋娃娃风格并不适合周冬雨。&/p&&img src=&/6f3f7b37ff3a990ca8afa3_b.jpg& data-rawwidth=&690& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/6f3f7b37ff3a990ca8afa3_r.jpg&&&p&&br&&/p&&p&周冬雨这么一个姑娘,不做任何造型,往那一站就是一副天真无邪的单纯面孔,也不难想象为啥老谋子当年花那么大力气海选《山楂树之恋》的女主角,最后看中了当时并没有受过专业表演训练的周冬雨。她的外形,简直就是专门为纯洁爱情故事女主角这种设计的好嘛~~&/p&&img src=&/c99ba9a56efca906c71d80d_b.jpg& data-rawwidth=&1543& data-rawheight=&1004& class=&origin_image zh-lightbox-thumb& width=&1543& data-original=&/c99ba9a56efca906c71d80d_r.jpg&&&p&&br&&/p&&p&但这样的设定很大程度上也是限制,缺少很鲜明的个性,造型一直都不抓眼,还经常被造型师往土气乡村女学生的路子上整……别笑呢,想想看她的这些造型身上有没有你自己的影子?科科。&/p&&img src=&/6a348f24c689c24c5e3fc4_b.jpg& data-rawwidth=&874& data-rawheight=&503& class=&origin_image zh-lightbox-thumb& width=&874& data-original=&/6a348f24c689c24c5e3fc4_r.jpg&&&p&&br&&/p&&p&好在厉害的Lucia Liu给周冬雨设计出了清新俏皮有灵气的风格,简直化腐朽为神奇啊!如果你外形条件和她相似,大力推荐你好好学学她的转变,绝对有用。话说咱们请不起金牌造型师,难道还不会模仿嘛?就是要变美变美变美~谁都别拦着,哼!&/p&&p&&br&&/p&&p&&b&&u&发型&/u&&/b&&/p&&p&&br&&/p&&p&发型这玩意,对周冬雨的整体造型的作用,强调再多遍都不为过~别看她现在清新俏皮的造型让我们赞不绝口。在这之前,糟糕的发型绝对是灵气的第一大杀手。快来看看,什么样的发型会把灵气淹没掉:&/p&&p&&br&&/p&&p&&b&● 杀手一:厚刘海&/b&&/p&&p&&br&&/p&&p&翻她以前的造型,几乎全是这样厚重的斜刘海(啊哈,有没有觉得好熟悉?学生时代很多女生都是这样的发型呢)▼&/p&&img src=&/ff6d1fc2bfeb06b8db3ad9_b.jpg& data-rawwidth=&1122& data-rawheight=&515& class=&origin_image zh-lightbox-thumb& width=&1122& data-original=&/ff6d1fc2bfeb06b8db3ad9_r.jpg&&&p&&br&&/p&&p&还凭借这么厚重的斜刘海荣登杂志封面▼&/p&&img src=&/2da07ed9c5a40ab4fd4aa_b.jpg& data-rawwidth=&768& data-rawheight=&987& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/2da07ed9c5a40ab4fd4aa_r.jpg&&&p&&br&&/p&&p&偶尔来一个吓死人的齐刘海▼&/p&&img src=&/cf196a8fd24c834f0eeb5962_b.jpg& data-rawwidth=&629& data-rawheight=&408& class=&origin_image zh-lightbox-thumb& width=&629& data-original=&/cf196a8fd24c834f0eeb5962_r.jpg&&&p&&br&&/p&&p&但请记住这句话:&/p&&p&&br&&/p&&p&&b&厚刘海(特别是厚重的齐刘海)是专门为大眼睛高鼻子尖下巴这种洋气的五官准备的。&/b&因为五官本身就够洋气,厚刘海并不会起负面作用,甚至有时还会有减龄的效果。比如柳岩、李小璐、张韶涵,留厚重的齐刘海就挺适合的▼&/p&&img src=&/6d8a3d9bd1b92bb34da8_b.jpg& data-rawwidth=&943& data-rawheight=&428& class=&origin_image zh-lightbox-thumb& width=&943& data-original=&/6d8a3d9bd1b92bb34da8_r.jpg&&&p&&br&&/p&&p&&b&如果你五官比较寡淡&/b&(比如周冬雨、董洁、刘诗诗),&b&脸型有一点方&/b&(比如孙俪、高圆圆),&b&留齐刘海就相当于把自己送往土气的不归路咯!▼&/b&&/p&&img src=&/9aabd017cc85f0bc32463ffa7a731611_b.jpg& data-rawwidth=&933& data-rawheight=&408& class=&origin_image zh-lightbox-thumb& width=&933& data-original=&/9aabd017cc85f0bc32463ffa7a731611_r.jpg&&&img src=&/c680fb54c4d3bd66aae74f_b.jpg& data-rawwidth=&685& data-rawheight=&470& class=&origin_image zh-lightbox-thumb& width=&685& data-original=&/c680fb54c4d3bd66aae74f_r.jpg&&&p&&br&&/p&&p&&b&那么问题来了,什么样的才好呢?&/b&有这么三种方案~&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&● 不留刘海,把头发全梳到后面去,但不要下面这样梳得很紧。&/b&呃,杂志封面图里的造型,也是够老气的▼&/p&&img src=&/a4b70deffc6dac208c44ba1e_b.jpg& data-rawwidth=&849& data-rawheight=&867& class=&origin_image zh-lightbox-thumb& width=&849& data-original=&/a4b70deffc6dac208c44ba1e_r.jpg&&&p&&br&&/p&&p&蓬松一点会更活泼,也可以放下最前面的一两缕头发▼&/p&&img src=&/d20e01f225bbbcbbab91193_b.jpg& data-rawwidth=&999& data-rawheight=&528& class=&origin_image zh-lightbox-thumb& width=&999& data-original=&/d20e01f225bbbcbbab91193_r.jpg&&&p&&br&&/p&&p&&b&● 如果实在喜欢斜刘海的感觉,像这样三七分,让发际线处的头发稍微挡一下额头边缘就好。&/b&总之别让刘海全耷拉在额头上就行▼&/p&&img src=&/352ddfa1fc0_b.jpg& data-rawwidth=&1049& data-rawheight=&678& class=&origin_image zh-lightbox-thumb& width=&1049& data-original=&/352ddfa1fc0_r.jpg&&&p&&br&&/p&&p&&b&● 如果实在喜欢齐刘海的感觉,剪一个细碎的空气刘海&/b&&/p&&p&&br&&/p&&p&看过《欢乐颂》的都会对王子文在里面精灵一样的个性印象深刻吧?她现在的造型多半也是以这种细碎的齐刘海为主。&/p&&p&&br&&/p&&p&对比一下王子文长发和她细碎齐刘海的造型,哪个更有灵气?▼&/p&&img src=&/43eaccfcef1a10b11060e5_b.jpg& data-rawwidth=&764& data-rawheight=&608& class=&origin_image zh-lightbox-thumb& width=&764& data-original=&/43eaccfcef1a10b11060e5_r.jpg&&&p&&br&&/p&&p&&b&● 杀手二:长发&/b&&/p&&p&&br&&/p&&p&对于外形寡淡,但是又想走俏皮路线的女生来说,长发确实不如短发好。&/p&&p&&br&&/p&&p&之前周冬雨也有把刘海梳起露出额头的造型,但长发披肩的样子还是会给人以“乖乖女学生”的印象▼&/p&&img src=&/7b2d3db98e65a9eb0f79e8_b.jpg& data-rawwidth=&884& data-rawheight=&508& class=&origin_image zh-lightbox-thumb& width=&884& data-original=&/7b2d3db98e65a9eb0f79e8_r.jpg&&&p&&br&&/p&&p&如果还烫成了乱七八糟的特别膨的卷发,直接老十岁,更不用说什么俏皮了▼&/p&&img src=&/d322c6fd1399aee7bbe9dc_b.jpg& data-rawwidth=&616& data-rawheight=&421& class=&origin_image zh-lightbox-thumb& width=&616& data-original=&/d322c6fd1399aee7bbe9dc_r.jpg&&&p&&br&&/p&&p&留短发的话,建议是刚过下巴的长度,头发稍微烫一点弧度。不管是把刘海梳到后面扎一个丸子头,还是三七分的发型,都挺不错。&/p&&p&&br&&/p&&p&&b&&u&妆容&/u&&/b&&/p&&p&&br&&/p&&p&其实周冬雨在妆容上倒没有什么大的变化。只是想提醒一下,&b&对于细眉细眼五官寡淡的女生,妆不要画得太重太浓,淡淡的就好。&/b&&/p&&p&&br&&/p&&p&看下面她和马思纯的同框照片就明白啦。无论是从骨架还是五官来说,马思纯都比周冬雨更大气,所以很明显地看到她的眉妆和眼妆都比周冬雨的浓一些▼&/p&&img src=&/c033cac4ffeee2b19c973_b.jpg& data-rawwidth=&665& data-rawheight=&834& class=&origin_image zh-lightbox-thumb& width=&665& data-original=&/c033cac4ffeee2b19c973_r.jpg&&&p&&br&&/p&&p&下面这种粗眼线粗眉毛,真。的。还。是。不。要。了。▼&/p&&img src=&/f2f255a8c1bf717da0ab66690bfff5f5_b.jpg& data-rawwidth=&640& data-rawheight=&843& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/f2f255a8c1bf717da0ab66690bfff5f5_r.jpg&&&p&&br&&/p&&p&再顺带提一下周冬雨的唇色很多都是西柚色的。这是一种“粉橘以上、橙色未满”的颜色,会显得人阳光活泼、元气满满,很符合周冬雨现在的风格设定▼&/p&&img src=&/6e982abe8a6b640d048da7_b.jpg& data-rawwidth=&686& data-rawheight=&511& class=&origin_image zh-lightbox-thumb& width=&686& data-original=&/6e982abe8a6b640d048da7_r.jpg&&&p&&br&&/p&&p&&b&&u&穿衣&/u&&/b&&/p&&p&&br&&/p&&p&学会穿对衣主要是从三个方面入手:&b&色彩、身材和风格&/b&。这里需要强调的就是,&b&这三者并不是孤立存在着的,色彩和身材这两方面,除了由理论支撑外,还很大程度上受到风格的影响。&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&◆ 色彩&/b&&/p&&p&&br&&/p&&p&我们经常会听到一句话:皮肤白穿什么颜色都好看。&/p&&p&在此,我要表示强烈反对~&/p&&p&如果单单从色彩的角度来看,OK,这话还真没错,毕竟白色和任何颜色搭配都没有违和感。&/p&&p&但,色彩的选择绝对不仅仅只是靠理论就能选对的,&b&风格在很大程度上都左右了穿衣的色彩。&/b&&/p&&p&&br&&/p&&p&对于周冬雨这样五官平平淡淡的女生而言,&b&如果全身都是暗色或全身都是荧光色,整个人都会被吞没掉。&/b&&/p&&p&&br&&/p&&p&看看全身灰或全身荧光色的造型,再加上妆容也没啥亮点,直接导致她hold不住这类颜色▼&/p&&img src=&/826bcdbc333dc2855bbab2240fd4ebc8_b.jpg& data-rawwidth=&609& data-rawheight=&931& class=&origin_image zh-lightbox-thumb& width=&609& data-original=&/826bcdbc333dc2855bbab2240fd4ebc8_r.jpg&&&img src=&/e1ab2d56c0a3c2c5f9dc82e058f668b6_b.jpg& data-rawwidth=&350& data-rawheight=&524& class=&content_image& width=&350&&&p&&br&&/p&&p&&b&以至于她现在穿亮色都是比较少也比较谨慎的,即便穿,也得适当地加重妆容。&/b&就拿大红色来说,没换造型师之前穿红色是这样子的▼&/p&&img src=&/e6b24d0c1dec6f4f005aa9c_b.jpg& data-rawwidth=&210& data-rawheight=&350& class=&content_image& width=&210&&&p&&br&&/p&&p&▲有没有一种五官糊掉的感觉?我们第一眼注意到的是她的红裙子,而不是她的五官&/p&&p&&br&&/p&&p&现在她偶尔也穿红裙子,但至少在妆容上也做到了配套,尤其是唇色。&/p&&p&&br&&/p&&p&把上面的图和下面的图对比一下,很明显妆要更浓更显眼一些,这是为了和身上的红裙子形成呼应,避免五官被大面积的红色冲淡▼&/p&&img src=&/de66ced2594_b.jpg& data-rawwidth=&479& data-rawheight=&408& class=&origin_image zh-lightbox-thumb& width=&479& data-original=&/de66ced2594_r.jpg&&&p&&br&&/p&&p&好嘛,那么问题来了,既然周冬雨不适合全身灰或全身荧光色,而且偶尔穿大红色这种饱和度高的颜色也需要好的妆容配合才能有不错的效果,那么她的风格最适合什么颜色呢?&/p&&p&&br&&/p&&p&我们再回味一下她的风格——清新俏皮。也就是说,带一点点文静,但是又比刘诗诗那样的端庄范要活泼;带一点点灵气,但又不至于像王子文那样古灵精怪。&/p&&p&&br&&/p&&p&所以,周冬雨造型师给出的方案就是——&/p&&p&&br&&/p&&p&&b&以沉稳文静的颜色为主色调,再加入活泼的元素作为点缀,这样才能兼顾两种感觉。(此处是本文的重点!敲黑板啦!!)&/b&&/p&&p&&br&&/p&&p&以至于她出镜最多的颜色就是:&b&黑色、白色、淡蓝色(或牛仔蓝)&/b&。&/p&&img src=&/e3e4e4bf911ff_b.jpg& data-rawwidth=&804& data-rawheight=&553& class=&origin_image zh-lightbox-thumb& width=&804& data-original=&/e3e4e4bf911ff_r.jpg&&&img src=&/a0e8761ec29efd1a809b0ab_b.jpg& data-rawwidth=&1545& data-rawheight=&926& class=&origin_image zh-lightbox-thumb& width=&1545& data-original=&/a0e8761ec29efd1a809b0ab_r.jpg&&&img src=&/caabf5a8eaf020_b.jpg& data-rawwidth=&833& data-rawheight=&1021& class=&origin_image zh-lightbox-thumb& width=&833& data-original=&/caabf5a8eaf020_r.jpg&&&p&&br&&/p&&p&这个就和王子文不一样,王子文这样古灵精怪的个性和稍立体的五官可以让她大胆玩鲜艳的色彩。但我们见多了周冬雨黑色/白色/淡蓝色/牛仔蓝的造型,就会觉得:嗯,算是一个五官秀气的小清新的姑娘哩。&/p&&img src=&/5c010fa7a7_b.jpg& data-rawwidth=&573& data-rawheight=&591& class=&origin_image zh-lightbox-thumb& width=&573& data-original=&/5c010fa7a7_r.jpg&&&p&&br&&/p&&p&但全身都是这样沉稳的色彩会缺少灵气呀,所以需要加入活泼的元素,来一个一个说~&/p&&p&&br&&/p&&p&&b&● 印花&/b&&/p&&p&&br&&/p&&p&她经常穿黑色连衣裙的,来,对比看看是不是有印花的这一款更活泼呀?&/p&&img src=&/fdb9d17d70bdd808c8cfec76c354b9d3_b.jpg& data-rawwidth=&744& data-rawheight=&962& class=&origin_image zh-lightbox-thumb& width=&744& data-original=&/fdb9d17d70bdd808c8cfec76c354b9d3_r.jpg&&&p&&br&&/p&&p&但我这里要好心提醒一下,印花是一种一不小心就能穿错的单品,穿不好就是全力以赴地作死啊。咱们把握两个原则就好~&/p&&p&&br&&/p&&p&&b&● 印花不要太密集,也就是说,印花之间的间距不要太小&/b&&/p&&p&&b&● 印花和底色加起来不要超过三个颜色&/b&&/p&&p&&br&&/p&&p&我们来看一个错误的示范,上面两个原则全违反了……简直就像偷的奶奶的衣服穿啊&/p&&p&▼&/p&&img src=&/abfeeca04b9d_b.jpg& data-rawwidth=&690& data-rawheight=&1035& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/abfeeca04b9d_r.jpg&&&p&&br&&/p&&p&正确的示范如下▼&/p&&img src=&/4ef1a2ad50eecc4cf56a_b.jpg& data-rawwidth=&647& data-rawheight=&979& class=&origin_image zh-lightbox-thumb& width=&647& data-original=&/4ef1a2ad50eecc4cf56a_r.jpg&&&p&&br&&/p&&p&&b&● 童趣元素&/b&&/p&&p&&br&&/p&&p&比如带可爱字母的白色T恤▼&/p&&img src=&/3d29e0d7ab91b08005bf73_b.jpg& data-rawwidth=&629& data-rawheight=&468& class=&origin_image zh-lightbox-thumb& width=&629& data-original=&/3d29e0d7ab91b08005bf73_r.jpg&&&p&&br&&/p&&p&比如衣领加入童趣图案的小黑裙▼&/p&&img src=&/f07c12e7ddb89f9f3fedb4a42a0b9fcd_b.jpg& data-rawwidth=&608& data-rawheight=&905& class=&origin_image zh-lightbox-thumb& width=&608& data-original=&/f07c12e7ddb89f9f3fedb4a42a0b9fcd_r.jpg&&&p&&br&&/p&&p&比如很设计很普通的一件衬衫裙加上了可爱的元素后顿时就妙趣横生▼&/p&&img src=&/42cdc466b171cf4fb2ae8_b.jpg& data-rawwidth=&640& data-rawheight=&840& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&/42cdc466b171cf4fb2ae8_r.jpg&&&p&&br&&/p&&p&&b&● 校园风元素&/b&&/p&&p&&br&&/p&&p&比如很有英伦校园气息的苏格兰格子裙,搭配的是童趣满满的卡通白T恤,风格混搭让人耳目一新▼&/p&&img src=&/98fbd89cde6ff9ff3520c8d_b.jpg& data-rawwidth=&690& data-rawheight=&1035& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/98fbd89cde6ff9ff3520c8d_r.jpg&&&p&&br&&/p&&p&如果没有混搭,只是穿一件飞天小女警的连衣裙,效果就一般般了▼&/p&&img src=&/a0c60ce7402e1_b.jpg& data-rawwidth=&310& data-rawheight=&506& class=&content_image& width=&310&&&p&&br&&/p&&p&&b&● 色彩拼接&/b&&/p&&p&&br&&/p&&p&她的造型师特别喜欢挑拼色的衣服,可以是&b&黑白两色&/b&之间的拼色,也可以是&b&黑色和其它彩色&/b&之间的拼色,这样既能保证端庄,又富有变化不会呆板▼&/p&&img src=&/282dda6e4dddf_b.jpg& data-rawwidth=&842& data-rawheight=&880& class=&origin_image zh-lightbox-thumb& width=&842& data-original=&/282dda6e4dddf_r.jpg&&&img src=&/bb97f065dac_b.jpg& data-rawwidth=&455& data-rawheight=&468& class=&origin_image zh-lightbox-thumb& width=&455& data-original=&/bb97f065dac_r.jpg&&&img src=&/dd0e72bd704f52e5a4238_b.jpg& data-rawwidth=&690& data-rawheight=&1035& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/dd0e72bd704f52e5a4238_r.jpg&&&p&&br&&/p&&p&&b&◆ 身材 &/b&&/p&&p&&br&&/p&&p&周冬雨是标准的纸片人。每次想起有些人会说“纸片人穿什么衣服都行”,我就又忍不住要翻白眼了。&/p&&p&&br&&/p&&p&纸片人的身材有什么特点?全身都瘦,平胸,也没有胯,这样子腰也不会太明显,不会像X型身材的人那样有凹凸有致的曲线。&b&所以和她差不多条件的女生穿衣时,需要着重考虑胸、腰、胯这三个部位。&/b&&/p&&p&&br&&/p&&p&先来说腰吧。&b&千万不要没有腰线,不然真是满屏的幼齿感。&/b&别人只会好奇:小姑娘,你是哪个初中的学生呀?&/p&&img src=&/580ba8d4e5de061cecb4bfe9_b.jpg& data-rawwidth=&535& data-rawheight=&748& class=&origin_image zh-lightbox-thumb& width=&535& data-original=&/580ba8d4e5de061cecb4bfe9_r.jpg&&&p&&br&&/p&&p&再来说胸和胯。只看穿衣和体型类的理论的话,都会讲,纸片人该怎么怎么穿衣才会显得胸部和胯部更丰满。&/p&&p&&br&&/p&&p&拜托,这是典型的不结合实际情况的纸上谈兵好吗。。。&b&一个纸片人,如果想要走熟女的路线,才需要思考怎样穿显胸大显胯大,毕竟多数情况下,熟女=身体曲线明显。&/b&&/p&&p&&br&&/p&&p&&b&但周冬雨是小清新的风格耶,难道不是正需要纸片人这样的身材吗?&/b&你看她造型师什么时候做过刻意让她上围丰满的造型啊?别闹了,这身材和小清新风格绝配。&/p&&p&&br&&/p&&p&所以,她穿的最多的连衣裙款式就是略带裙摆的A字裙,这样既保证了腰线,不会显幼稚,又不会像紧身包臀裙那样过分成熟▼&/p&&img src=&/0bafc5ca0ef0c421ec7dbef1cb0e5de1_b.jpg& data-rawwidth=&1118& data-rawheight=&887& class=&origin_image zh-lightbox-thumb& width=&1118& data-original=&/0bafc5ca0ef0c421ec7dbef1cb0e5de1_r.jpg&&&p&&br&&/p&&p&&b&◆ 配饰&/b&&/p&&p&&br&&/p&&p&很多女生都大呼周冬雨的饰品都好好看呐!她的饰品风格分为两种:&/p&&p&&br&&/p&&p&&b&● 优雅但又不俗气的&/b&&/p&&p&&br&&/p&&p&多数都是&b&设计别致的金属,有时还会配上珍珠,颜色多半是金色或银色。&/b&这一类和优雅、知性、精致的造型风格相呼应。她带过的比较火的品牌有celestine、YvMin、HEFANG Jewelry、OOAK、APM Monaco、Tiffany……具体的同款可以上网找,我就不多说了。&/p&&p&&br&&/p&&p&配饰:APM Monaco&/p&&img src=&/ea6a3cae5f156c79755e16_b.jpg& data-rawwidth=&690& data-rawheight=&1035& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/ea6a3cae5f156c79755e16_r.jpg&&&img src=&/cbc01fea3a35bf_b.jpg& data-rawwidth=&690& data-rawheight=&1035& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/cbc01fea3a35bf_r.jpg&&&p&&br&&/p&&p&配饰:HeFang&/p&&img src=&/30eaaca0d_b.jpg& data-rawwidth=&690& data-rawheight=&1035& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/30eaaca0d_r.jpg&&&p&&br&&/p&&p&&b&● 充满童真童趣的&/b&&/p&&p&&br&&/p&&p&这一类以&b&彩色&/b&的为主,也是少女心爆棚的设计。如果穿着偏可爱风格的话,配优雅风格的饰品,还真挺违和。下面她这一身衣服是飞天小女警的连衣裙(前面放过图片了),和这种彩色的小耳坠小项链相配,真是好和谐呀!&/p&&img src=&/d730e2ed095c0a0f87128_b.jpg& data-rawwidth=&516& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&516& data-original=&/d730e2ed095c0a0f87128_r.jpg&&&p&&br&&/p&&p&好啦,最后总结一下周冬雨的整体造型是怎样一步步修炼到现在这个地步的~&/p&&p&&br&&/p&&p&&b&发型:&/b&换掉厚刘海和长发,露出额头,把头发剪短让它刚过下巴&/p&&p&&br&&/p&&p&&b&妆容:&/b&保持淡妆,避免浓妆,多用西柚色的口红,元气满满&/p&&p&&br&&/p&&p&&b&穿衣:&/b&以沉稳的颜色为主色调,再加入活泼的元素作为点缀,这样才能兼顾两种感觉。衣服的版型突出腰线。在配饰的使用上,和整体风格保持一致。&/p&&p&&br&&/p&&p&讲真,前几年在《山楂树之恋》里看到土气的静秋时,我是绝对想不到她有朝一日也能扮得这么靓~&/p&&p&&br&&/p&&p&所以说嘛,每一个在爱美路上执着前行的姑娘都是潜力股。(给你一个鼓励的微笑 ^_^)&/p&&p&&br&&/p&&p&---------------------&/p&&p&公众号搜『Sophia爱美补习社』。在公众号里分析过的明星还有:倪妮、舒淇、汤唯、刘诗诗、高圆圆、全智贤、王子文、刘涛、陈妍希、宋慧乔、金高银、苍井优、章泽天、刘雯、阿娇。关注公众号后回复以上人名get更多分析~&/p&
很简单,就是换了造型师。她现在的造型师是Lucia Liu,一个神一样的金牌造型师,好多女明星在她的指导下完成惊艳的蜕变。有兴趣的可以围观她的微博@LuciaLiustylist 虽然咱们请不起造型师,但周冬雨在她刚出道时颜值在娱乐圈绝对不算特别出众,所以造型的转…
&img src=&/50/v2-4f091e211fdbc7e7b14fa093dece282e_b.jpg& data-rawwidth=&1157& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1157& data-original=&/50/v2-4f091e211fdbc7e7b14fa093dece282e_r.jpg&&&p&&b&导语&/b&:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算。kd 树算法偏于复杂,本篇将先介绍以二叉树的形式来记录和索引空间的思路,以便读者更轻松地理解 kd 树。&/p&&p&图较多,小心流量 &br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&作者:肖睿
编辑:宏观经济算命师
本文由JoinQuant量化课堂推出,本文的难度属于进阶(上),深度为level-1。
&/code&&/pre&&/div&&p&阅读本文之前请掌握 &a class=& wrap external& href=&/?target=https%3A///post/2227%3Ff%3Dstudy%26m%3Dmath& target=&_blank& rel=&nofollow noreferrer&&kNN(level-1)&i class=&icon-external&&&/i&&/a&的知识。&/p&&h4&&b&前言&/b&&/h4&&p&kd 树(k-dimensional tree)是一个包含空间信息的二项树数据结构,它是用来计算 kNN 的一个非常常用的工具。如果特征的维度是 D,样本的数量是N,那么一般来讲 kd 树算法的复杂度是O(D log(N)),相比于穷算的 O(DN) 省去了非常多的计算量。&/p&&p&因为 kd 树的概念和算法较为复杂,固将本教程分为“思路篇”和“&a class=& wrap external& href=&/?target=https%3A///post/2843& target=&_blank& rel=&nofollow noreferrer&&详细篇&i class=&icon-external&&&/i&&/a&”。
两篇的内容在一定程度上是重叠的,但是本篇注重于讲解 kd
树背后的思想和直觉,告诉读者一颗二项树是如何承载空间概念的,我们又该如何从树中读取这些信息;而之后的详细篇则详细讲解 kd
树的定义,如何构造它并且如何计算 kNN。出于教学起见,本文讲的例子和算法与严格的 kd
树有一些差异。有算法经验或者想尝试挑战的读者可以直接跳过本篇去读&a href=&/?target=https%3A///post/2843& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&详细篇&i class=&icon-external&&&/i&&/a&。&/p&&p&
关于在学习编程和算法时有没有必要自己制作轮子的问题,一直存在着很多的争议。作者认为,做不做轮子暂且不论,但是有必要去了解轮子是怎么做出来
的。Python 的 scikit-learn 机器学习包提供了蛮算、kd 树和 ball 树三种 kNN
算法,学完本篇的读者若无兴趣自撰算法,可以非常轻松地使用该包。&/p&&h4&&b&直觉&/b&&/h4&&p&
给定一堆已有的样本数据,和一个被询问的数据点(红色五角星),我们如何找到离五角星最近的15个点?&/p&&p&&img data-rawheight=&613& data-rawwidth=&885& src=&/v2-c89cc473fd5f4a517ac250_b.png& class=&origin_image zh-lightbox-thumb& width=&885& data-original=&/v2-c89cc473fd5f4a517ac250_r.png&&先忽略在编程上的实现,想一想一个人如何主观地执行。嗯,他一定会把在五角附近的一些点中,分别计算每一个的距离,然后选最近的15个。这样可能只需要进行二三十次距离计算,而不是300次。&/p&&img data-rawheight=&611& data-rawwidth=&888& src=&/v2-93eda7f287ce3fff609cc_b.png& class=&origin_image zh-lightbox-thumb& width=&888& data-original=&/v2-93eda7f287ce3fff609cc_r.png&&&p&如图,只对紫圈里的点进行计算。&/p&&p&啊哈!问题来了。我们讲到的“附近”已经包含了距离的概念,如果不经过计算我们怎么知道哪个点是在五角星的“附近”?为什么我们一下就认出了“附
近”而计算机做不到?那是因为我们在观看这张图片时,得到的输入是已经带有距离概念的影像,然而计算机在进行计算时得到的则是没有距离概念的坐标数据。如
果要让一个人人为地从300组坐标里选出最近的15个,而不给他图像,那么他也省不了功夫,必须要把300个全部计算一遍才行。&/p&&p&这样来说,我们要做的就是在干巴巴的坐标数据上进行加工,将空间分割成小块,并以合理地方法将信息进行储存,这样方便我们读取“附近”的点。&/p&&br&&h4&&b&切割&/b&&/h4&&p&
这只危险的兔子,它又回来了!它今天上了四个纹身,爱心、月牙、星星和眼泪,下面是它的照片。&/p&&img data-rawheight=&567& data-rawwidth=&568& src=&/v2-ba5d03de54030ecae3e90dfdf4bc2bc2_b.jpg& class=&origin_image zh-lightbox-thumb& width=&568& data-original=&/v2-ba5d03de54030ecae3e90dfdf4bc2bc2_r.jpg&&&p&我们来回答一个简单的问题:在这幅照片上,距离爱心最近的纹身是什么?记得&a href=&/?target=https%3A///post/2227%3Ff%3Dstudy%26m%3Dmath& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&上一篇文章&i class=&icon-external&&&/i&&/a&中,我们选用的特征是每一只兔子的身高和体重;这次就不一样了,在这个问题中,每个纹身的特征是照片平面上的横轴和竖轴的坐标。&/p&&p&对于这个问题,如果进行蛮算的办法我们需要计算 3 次距离(分别和月亮、眼泪和星星算一次)。下面我们要做的是把整个空间按照左右和上下进行等分,并且把分割后的小空间以二叉树形式进行记录,这样可以很快地读取邻近的点而省去计算量。&/p&&p&
好,我们先竖向沿中间把这个兔子切成两半&/p&&p&&img data-rawheight=&567& data-rawwidth=&730& src=&/v2-dae0db8ae8fb7_b.jpg& class=&origin_image zh-lightbox-thumb& width=&730& data-original=&/v2-dae0db8ae8fb7_r.jpg&&再沿横向从中间切成四份&/p&&p&&img data-rawheight=&337& data-rawwidth=&1270& src=&/v2-3d1bda1fcaf7_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1270& data-original=&/v2-3d1bda1fcaf7_r.jpg&&再沿着竖向平分八份&/p&&p&&img data-rawheight=&263& data-rawwidth=&1271& src=&/v2-0c1d7d6ca9c17a1dc88c4_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1271& data-original=&/v2-0c1d7d6ca9c17a1dc88c4_r.jpg&&最后再沿横向切一次。这次有些区域是完全空白的,我们就把它舍弃不要了,得到 14 份:&/p&&p&&img data-rawheight=&101& data-rawwidth=&1269& src=&/v2-de0bcb307a54db527b444cf9fce683a1_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-de0bcb307a54db527b444cf9fce683a1_r.jpg&&我们再按照上下左右的关系把切开的图片做成一个二叉树,树的每一个节点是一幅图,它的两个枝是这幅图平分出来的子图。&/p&&img data-rawheight=&1187& data-rawwidth=&1269& src=&/v2-44e56efd2d89e759f8385bcd11db5bc1_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-44e56efd2d89e759f8385bcd11db5bc1_r.jpg&&&p&可以看出这个树状结构包含了很多局部性的信息,因为它的每一个节点都是按照上下或者左右进行平分的,因此如果两个点在树中的距离较近,那么它们的实际距离就是比较近的。&/p&&br&&h4&&b&搜寻&/b&&/h4&&p&接下来我们要通过这棵二叉树找到离爱心最近的纹身。&/p&&p&
首先从树的最顶端开始,向下搜寻找到最底部包含爱心的节点。这个操作非常简单,因为每一次分割要么是沿着某纵线X=a要么是沿着横线Y=a,因此只需要判断爱心的x或y轴坐标是大于 a还是小于a,便知道是向左还是右边选择树枝。&/p&&p&&img data-rawheight=&1187& data-rawwidth=&1269& src=&/v2-d1fdeb4844f_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-d1fdeb4844f_r.jpg&&在找到了爱心之后,我们沿着相同的路径向上攀爬。只爬了一节就发现了屁股上的两个纹身:&/p&&p&&img data-rawheight=&195& data-rawwidth=&206& src=&/v2-7ee20ea2f881d9e1aa4f4d63e240777d_b.png& class=&content_image& width=&206&&这里看出,在8平分的情况下,爱心和月亮是在同一个区域的。在某种意义上来讲它们是“近”的,但是我们还不能确定它们是最近的,因此还要继续向上攀爬寻找。再继续向上爬两个节点,都没有出现爱心和月亮以外的纹身。在下面这个节点中&/p&&img data-rawheight=&555& data-rawwidth=&349& src=&/v2-f838d5193d74eed68d9e5_b.png& class=&content_image& width=&349&&&p&我们发现爱心和月亮之间的距离(红线)要小于爱心和分割线的距离(蓝线),也就是说,不论分割线的右边是什么情况,那边的纹身都不可能离爱心更近。因此可以判断,离爱心最近的图形是月亮。&/p&&p&
这样,我们只计算了一次爱心和月亮之间的距离和一次爱心和分割线之间的距离,而不是分别计算爱心和其他三个纹身的距离。并且,要知道,爱心和分割线之间距离的计算非常简单,就是爱心的x坐标和分割线的x坐标的差(的绝对值),相比于计算两点之间的距离:&/p&&img src=&/equation?tex=%5Csqrt%7B%28%28x_1-y_1%29%5E2%2B%28x_2-y_2%29%5E2%29%7D& alt=&\sqrt{((x_1-y_1)^2+(x_2-y_2)^2)}& eeimg=&1&&&p&&br&要省下很多计算量。&/p&&br&&h4&&b&麻烦&/b&&/h4&&p&啊,但也有可能这个搜寻最近点的过程没那么顺利。在上面的计算中,在找到了离爱心比较近的月亮之后,我们发现爱心距离分割线的距离比较远,因此确定月亮的确就是最近的。但是,在分割线的另一边有一个更近的纹身,那么情况就稍微复杂了。&/p&&p&
就说这个兔子,又去加了两个纹身,一片叶子和一个圆圈。&/p&&p&&img data-rawheight=&633& data-rawwidth=&651& src=&/v2-9fc43e120e4dd7dda86be7_b.png& class=&origin_image zh-lightbox-thumb& width=&651& data-original=&/v2-9fc43e120e4dd7dda86be7_r.png&&二叉树分割上也相应地多出这两个纹身。我们想找到离爱心最近的纹身,所以依旧向下搜寻先找到爱心。&/p&&p&&img data-rawheight=&1187& data-rawwidth=&1269& src=&/v2-d98e3a8a6eee83abd5c27e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-d98e3a8a6eee83abd5c27e_r.jpg&&我们找来一张纸,记下在已访问节点中距离爱心最近的纹身和所对应的距离。现在这张纸还是空的。&/p&&img data-rawheight=&1184& data-rawwidth=&1269& src=&/v2-6c7063dbd5a711b4fc968a5_b.png& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-6c7063dbd5a711b4fc968a5_r.png&&&p&向上爬了一节,发现那一节的另一个枝里有月亮,于是跑下去查看月亮的坐标,计算爱心和月亮的距离,并在纸上记录 (图形=月亮,距离=d1)。&/p&&p&
再回到蓝圈的节点向上爬,继续向上爬。我们发现,d1(红线)大于爱心和分割线的距离(蓝线)。&/p&&p&&img data-rawheight=&198& data-rawwidth=&218& src=&/v2-791dae31cf896e99b3fde0559dda3a7c_b.png& class=&content_image& width=&218&&也就是说分割线的另一边可能有更近的点,所以从另一个分枝开始向下搜,找到…&/p&&img data-rawheight=&1184& data-rawwidth=&1269& src=&/v2-aa6c8f086e063f8f56cd77_b.png& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-aa6c8f086e063f8f56cd77_r.png&&&br&&p&在另一个分枝中我们追溯到圆圈,并计算它与爱心的距离 d2,发现 d2&d1,比月亮远,所以丢弃不要。&/p&&p&
再向上爬一个节,我们发现 d1(红线)大于爱心和切分线之间的距离(蓝线)&/p&&p&&img data-rawheight=&270& data-rawwidth=&315& src=&/v2-caa50fcc5462_b.png& class=&content_image& width=&315&&因此,切分线的另一端可能有更近的纹身,因此我们从另一个树枝向下搜索…&/p&&p&&img data-rawheight=&1187& data-rawwidth=&1275& src=&/v2-cee55e6e2bc2dd078852ccd_b.png& class=&origin_image zh-lightbox-thumb& width=&1275& data-original=&/v2-cee55e6e2bc2dd078852ccd_r.png&&找到了叶子。(所幸在这个分枝里只搜索到了叶子,如果有更多的图形的话,还需要进行多层的递归。具体的过程会在后面的详细篇中讲解。)计算叶子和爱心之间的距离,得 d3,并发现 d3&d1,比月亮更近,于是更新纸上的记录为 (纹身=叶子,距离=d3)。&/p&&p&
再向上攀登一节,我们发现 d3小于爱心和切分线的距离,因此另一边的数据就不用考虑了。&/p&&p&&img data-rawheight=&540& data-rawwidth=&323& src=&/v2-f2c1c427e002bf59e8ae_b.png& class=&content_image& width=&323&&这次我们已经爬到了树的最顶端,完成了搜索,纸上记载的 (叶子,d3)就是最近的纹身和对应的距离。&/p&&img data-rawheight=&1184& data-rawwidth=&1269& src=&/v2-75aa9704ea28ecc3f7adabd_b.png& class=&origin_image zh-lightbox-thumb& width=&1269& data-original=&/v2-75aa9704ea28ecc3f7adabd_r.png&&&h4&&b&结语&/b&&/h4&&p&在以上的算法中,当我们已经找到了比切分线更近的点时,就不需要继续搜索切分线另一边的点了,因为那些只会更远。于是,通过把整个空间进行分割并以树状结构进行记录,我们只需要在问题点附近的一些区域进行搜寻便可以找到最近的数据点,节省了大量的计算。&/p&&p&到此为止,本篇文章友好地介绍了如何使用二叉树的形式记录距离信息并快速地进行搜索,但文中所讲的还不是 kd 树。下一篇文章,&a href=&/?target=https%3A///post/2843& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&kd 树算法之详细篇&i class=&icon-external&&&/i&&/a&,将系统性地介绍 kd 树的定义和在 kd 树上的 kNN 算法。&br&&/p&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&本文由JoinQuant量化课堂退出,版权归JoinQuant所有,商业转载清联系我们获得授权,非商业
转载请注明出处。
&/code&&/pre&&/div&
导语:kd 树是一种二叉树数据结构,可以用来进行高效的 kNN 计算。kd 树算法偏于复杂,本篇将先介绍以二叉树的形式来记录和索引空间的思路,以便读者更轻松地理解 kd 树。图较多,小心流量 作者:肖睿
编辑:宏观经济算命师
本文由JoinQuant量化课堂推出,…
&p&1. &a href=&///?target=https%3A///darknessomi/musicbox& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - darknessomi/musicbox: 网易云音乐命令行版本&i class=&icon-external&&&/i&&/a&。 高品质网易云音乐命令行版本,简洁优雅,丝般顺滑,基于Python编写。&/p&&p&&img src=&&a href=&///?target=https%3A///3d886ac004acc_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/3d886ac0&/span&&span class=&invisible&&04acc_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&1330& data-rawheight=&996& class=&content_image& width=&1330& data-original=&&a href=&///?target=https%3A///3d886ac004acc_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/3d886ac0&/span&&span class=&invisible&&04acc_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&2. &/p&&p&2. &a href=&///?target=https%3A///wting/autojump& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - wting/autojump: A cd command that learns&i class=&icon-external&&&/i&&/a&。 一个文件系统跳转的快捷命令。同样的还有shell编写的 &a href=&///?target=https%3A///rupa/z& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - rupa/z: z is the new j, yo&i class=&icon-external&&&/i&&/a&,用了就知道有多提高效率。&/p&&p&3. &a href=&///?target=https%3A///docopt/docopt& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - docopt/docopt: Pythonic command line arguments parser, that will make you smile&i class=&icon-external&&&/i&&/a&。上面有人提到了,但是没有人说到精髓,它使用脚本的docstring作为命令行的解析文本,也就是你直接写注释就可以完成argparse复杂的添加选项、指定参数等功能,所见即所得。&/p&&p&4. &a href=&///?target=https%3A///Runscope/httpbin& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - Runscope/httpbin: HTTP Request & Response Service, written in Python + Flask.&i class=&icon-external&&&/i&&/a&。我还曾经写过类似的一个应用,那时候还没有遇到它。读它的源码时候发现它其实好几个的地方实现的很优雅。&/p&&p&5. &a href=&///?target=https%3A///Russell91/pythonpy& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - Russell91/pythonpy: the swiss army knife of the command line&i class=&icon-external&&&/i&&/a&。有时候我会做一些简单地计算和功能的验证,之前得输入ipython然后imort对应的库,再执行(或者用 python -c ' print aaa.bbb(1)'的方式)。现在用pythonpy,在命令行一句就好了。&/p&&p&6. &a href=&///?target=https%3A///p-e-w/maybe& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - p-e-w/maybe: :rabbit2: See what a program does before deciding whether you really want it to happen.&i class=&icon-external&&&/i&&/a&。大家都听过那个著名&a href=&///?target=http%3A///articles/4875.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&一个空格引发的惨剧&i class=&icon-external&&&/i&&/a&吧,我以前也发生过本来是要执行「rm -rf tmp/*」, 结果卡了一下,执行成了「rm -rf tmp/ *」的惨痛经历,如果你有用maybe的习惯,就不会发生悲剧啦。&/p&&p&7. &a href=&///?target=https%3A///nvbn/thefuck& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - nvbn/thefuck: Magnificent app which corrects your previous console command.&i class=&icon-external&&&/i&&/a& 简直神器,修正你之前的命令行指令。&/p&&p&&img src=&&a href=&///?target=https%3A///07ee85a3d241dbd9f7a55e37914fadf6_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/07ee85a3&/span&&span class=&invisible&&d241dbd9f7a55e37914fadf6_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&1376& data-rawheight=&752& class=&content_image& width=&1376& data-original=&&a href=&///?target=https%3A///07ee85a3d241dbd9f7a55e37914fadf6_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/07ee85a3&/span&&span class=&invisible&&d241dbd9f7a55e37914fadf6_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&8. &/p&&p&8. &a href=&///?target=https%3A///getsentry/sentry& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - getsentry/sentry: Sentry is cross-platform crash reporting built with love&i class=&icon-external&&&/i&&/a&。错误搜集系统,现在应该没有哪个公司(不只是Python语言)不用它了吧?&/p&&p&9. &a href=&///?target=https%3A///faif/python-patterns& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - faif/python-patterns: A collection of design patterns/idioms in Python&i class=&icon-external&&&/i&&/a&,以前学习设计模式要从很多文章甚至其他语言的版本中去理解,特别苦,直到我发现了这个项目,整个人都不好了。&/p&&p&10. &a href=&///?target=https%3A///jkbrzt/httpie& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/jkbrzt/httpi&/span&&span class=&invisible&&e&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&。一个命令行HTTP 客户端,cURL 的替代品,它是Python语言中被star数量最多的项目,可见它的受欢迎程度,我几乎每天都在用它, 甚至为了表达对它的喜欢,特地读它的代码,找机会「混」进了它的项目贡献者列表。&/p&&p&&b&欢迎关注本人的微信公众号获取更多Python相关的内容(也可以直接搜索「Python之美」):&/b& &/p&&p&&a href=&///?target=http%3A///r/D0zH35LE_s_Frda89xkd& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/r/D0zH35L&/span&&span class=&invisible&&E_s_Frda89xkd&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& (二维码自动识别)&/p&
1. 。 高品质网易云音乐命令行版本,简洁优雅,丝般顺滑,基于Python编写。&img src="" data-rawwidth="1330" data-rawheight="996" cl…
&img src=&/50/v2-d706f4605af3cdef7aea82ea045d91b3_b.jpg& data-rawwidth=&1343& data-rawheight=&625& class=&origin_image zh-lightbox-thumb& width=&1343& data-original=&/50/v2-d706f4605af3cdef7aea82ea045d91b3_r.jpg&&&p&导语:在现实生活中,我们经常要利用观测现象(特征数据)推测现象背后的原因。例如我们看到草地湿了,需要判断是不是下雨导致的;今天的交易量大涨,需要判断是有新资金入场、还是存量资金雄起了一把;去医院体检,检查结果为阳性,是因为真的得病了,还是因为医院的误诊。朴素贝叶斯算法可以利用历史数据的分布,给你一个最有可能的结果,使你犯错误的概率最小化。&/p&&p&本文由JoinQuant量化课堂推出 。难度标签为进阶上,理解深度标签:level-0&/p&&h4&1. 一个例子说清楚的事情绝不用定义:&/h4&&p&先说一句特别复杂的朴素贝叶斯介绍:朴素贝叶斯法是基于贝叶斯定理,特征条件独立假设和后验概率最大化的分类方法。不知道你们看完了什么感受,反正我是一脸懵逼。下面我用一个小例子让大家明白这到底是怎么回事。&br&举个例子:某一种病,年轻人得病的概率远远小于年长的。如果一个年轻人检查为阳性,那么他就能直接被确诊吗?要知道,检查为阳性,可能会是误诊的哦。这个时候,朴素贝叶斯就登场了。我们不妨把各种可能性列出来,画一个图:&/p&&img src=&/v2-a20f05c66d78aa71406e_b.png& data-rawwidth=&1145& data-rawheight=&528& class=&origin_image zh-lightbox-thumb& width=&1145& data-original=&/v2-a20f05c66d78aa71406e_r.png&&&p&上图中,箭头附近的数字表示各种情况的概率。例如,没病然而检查为阳性(说明误诊了)的概率是1%,没病而且检查为阴性的概率是99%。如果一个年轻人去医院体检,体检结果是有病,那么这个人到底是有病还是没病呢?或者说这个人真实得病的概率有多大呢?&/p&&p&有的人可能会说,既然有病的人会有99%的被确诊,至少得病的概率比没病的概率要高吧。其实,一个年轻人检查出有病,真正得病的概率比没病的概率还要低!&/p&&p&现在我们来分析下:假设人群中有20000人,按照第一个图中的患病的概率,18000人是没有病的,2000人是有病的;在18000个没有病的人中,年轻人的概率为95%,检查为阳性的概率为1%,那么“年轻”并且“检查为阳性”并且“没病”的人数一共有%=171人;在2000个有病的人中,年轻人的概率是5%,检查为阳性的概率是99%。那么年轻人得病并且被检查出来的人数为%=99人。如果我们现在只知道这个人是年轻人,而且检查结果是阳性:那么他有可能是本身真的得病并且被检查出来的人,也有可能是误诊了的人。前者的概率就是99/(99+171)=36.7%。后者为171/(99+171)=63.3%。很显然,我们有更大的可能性相信他没有得病(所以现实生活中,医生会让你多复诊几次)。&/p&&p&&img src=&/v2-eddfc33d5ee_b.png& data-rawwidth=&1141& data-rawheight=&552& class=&origin_image zh-lightbox-thumb& width=&1141& data-original=&/v2-eddfc33d5ee_r.png&&在上面的整个分析过程中,我们就分别用到了特征条件独立假设,贝叶斯定理,条件概率最大化这几个知识点。下面我们进行详细说明。&br&&/p&&h4&2. 特征的条件独立假设&/h4&&p&我们的目的是通过“目前已知的数据”判断未知的结果,那么这个“目前已知的数据”就被称为特征。在上面判断有没有得病的例子中,特征就是这个人“是否年轻”以及“检查结果是否为阳性”。&/p&&p&这里我们要做一个重要的假设:上述两个特征之间是独立的。在判断这个人有没有病的时候,我们认为这个人“是否年轻”和“检查是否为阳性”之间没有联系。因此,随机抽取一个检查者,他“年轻”并且“检查结果为阳性”的概率就等于“年轻”的概率乘以“检查结果为阳性”的概率。&/p&&p&上面这个假设就是条件独立假设。如果变量不满足独立性,则不可以将两者的概率相乘,比如天空有云的概率是0.5,下雨的概率是0.33,但下雨和“天空中有云”不是独立的,就不能得到“即有云又下雨”的概率为0.5?0.33这个结论。&br&&/p&&h4&3.贝叶斯定理&/h4&&p&贝叶斯定理主要描述在给定特征数据的情况下,判定属于某个类别的概率。在下面的公式中,样本的数据用X=x表示,样本的类别属于某个类别用Y=ck表示。&/p&&p&&img src=&/v2-0155cf85cdf193aabbcced_b.png& data-rawwidth=&974& data-rawheight=&83& class=&origin_image zh-lightbox-thumb& width=&974& data-original=&/v2-0155cf85cdf193aabbcced_r.png&&在章节1给出的例子中,注意看我们计算真正得病的公式:&/p&&p&&img src=&/v2-0ab44f8a645f1df84b58d16b_b.png& data-rawwidth=&657& data-rawheight=&48& class=&origin_image zh-lightbox-thumb& width=&657& data-original=&/v2-0ab44f8a645f1df84b58d16b_r.png&&其中,A为真实得病的人中“检查为阳性”并且“年轻”的数目,B为人群中所有“检查为阳性”并且“年轻”的人的数目,其实这个公式就是贝叶斯定理的公式。现在感觉贝叶斯定理是不是简单了很多。&br&&/p&&h4&4. 后验概率最大化&/h4&&p&我们知道一个“年轻”人“检查为阳性”,现在需要你告诉他有病还是没病。那么很显然,我们只要用上文公式做计算,看看这个“年轻”并且“检查结果为阳性”的人到底是得病的概率更高,还是没得病的概率更高。这个就是后验概率最大化的直观解释。在上面的例子中,我们就可以告诉他,检查结果为阳性也不意味着你就得病了,但是为了安全起见,需要后续跟进复查。&br&&/p&&h4&5. 朴素贝叶斯的具体使用-sklearn&/h4&&p&上面通过了一个小例子介绍了一下朴素贝叶斯算法的算法原理,但是如何在实际的代码中使用朴素贝叶斯算法帮助我们完成分类呢?下面介绍下python环境中的朴素贝叶斯算法是如何使用的。&/p&&p&特征是通过收盘价数据计算的SMA,WMA,MOM指标,训练样本的特征是从到中截止前一天的SMA,WMA,MOM指标,训练样本的类别标签是日到中每一天的涨跌情况,涨了就是True,跌了就是False,测试样本是日的三个指标以及涨跌情况。我们可以判定之后判断结果是正确还是错误,如果通过朴素贝叶斯判断的结果和当天的涨跌情况相符,则输出True,如果判断结果和当天的涨跌情况不符,则输出False。(和SVM那一篇中例子的作用是一样滴,只是为了展示如何使用,不对预测的准确性做担保啊)&/p&&p&本文由JoinQuant量化课堂推出,版权归JoinQuant所有,商业转载请联系我们获得授权,非商业转载请注明出处。&/p&&p&&b&到JoinQuant查看代码&/b&并与作者交流讨论:&a class=& wrap external& href=&/?target=https%3A///post/1727%3Ff%3Dzh& target=&_blank& rel=&nofollow noreferrer&&【量化课堂】朴素贝叶斯入门&i class=&icon-external&&&/i&&/a&&/p&
导语:在现实生活中,我们经常要利用观测现象(特征数据)推测现象背后的原因。例如我们看到草地湿了,需要判断是不是下雨导致的;今天的交易量大涨,需要判断是有新资金入场、还是存量资金雄起了一把;去医院体检,检查结果为阳性,是因为真的得病了,还是…
&img src=&/50/v2-bae97a89a2e5cdaab3ff6_b.jpg& data-rawwidth=&761& data-rawheight=&306& class=&origin_image zh-lightbox-thumb& width=&761& data-original=&/50/v2-bae97a89a2e5cdaab3ff6_r.jpg&&&p&//长文预警:近6000字,还有7张图。请预备30分钟阅读。&/p&&p&//依然是正文前的碎碎念&/p&&p&自从开了专栏之后,本司机的私信区似乎也热闹了起来,时不时会收到“为什么实验做不出来”的求助问题。一般情况下,只要能力范围内,我都会尽力解答。(但是那种求医问药的一概不答复,比如问经期怎么调理身体的,我这枚可爱的蓝孩纸怎么可能知道。请上医院谢谢。)&/p&&p&在处理这些问题的过程中,往往要来来回回好多次私信才能把问题了解到点上,从而也发现了一些共通的症结所在,&b&那就是区别新司机和老司机其中一个重要指标:会不会做对照实验。&/b&这也是本文的创作灵感。&/p&&p&今天这篇文章,可能逻辑性会稍微差一些,正如题目中的“漫谈”二字。说老实话,虽然从高中生物学课堂开始,老师就在那里敲黑板给大家归纳对照组的类型。只是在实际科研中,高度概括的语言未必能给予切实的指导。而对于老司机来说,设计对照实验已变成了一种本能,无需经过归纳再演绎的过程,因此要从头到尾系统地讲解,也还挺困难。所以想来想去,这篇文准备以举超多例子的形式,“东拼西凑”式地给各位新司机演示一下,老司机是如何设计对照组的。&/p&&p&//下面开始正文&/p&&p&对照实验,或者说对照组(英文是control,也就是野鸡资讯网站的野鸡小编笔下的“控制组”,真素耿直的翻译厚),是任何生物医学类实验中最重要的组成部分。对照实验不光能作为实验仪器设备、试剂耗材、操作技术的质控手段,还将决定最终所获得的实验数据是否具有足够的说服力。&/p&&p&一般地,常见的对照实验可以简单粗略地分为四大类:&b&阳性对照,阴性对照,相互对照,和自身对照&/b&。(本文的末尾还将介绍除这常见的四种以外的对照实验。然而,请不要死记硬背,也无需强硬地为某一种特定的对照进行归类。)&/p&&p&&b&一、阳性对照&/b&&/p&&p&&b&阳性对照&/b&(Positive control)是指按照当前实验方案(如仪器参数设定、试剂配比、操作流程等)一定能得到预期结果的对照实验。假设阳性对照实验出不来预期结果,那么就表示一定有某一个环节出了差错,比如仪器没有校正、实验方案错误、实验人员手滑加错试剂之类的。从这个角度来讲,&b&阳性对照具有质控的意义&/b&。也就是说,有了阳性对照,当实验失败时,就有助于我们一步一步地排查问题。&/p&&p&更重要地,阳性对照还有&b&支持阴性结果&/b&的功能。&/p&&p&例1:研究者为了证明溶瘤病毒M1无法在不敏感的肿瘤细胞中诱发致死性的内质网应激(ER stress,以CHOP蛋白表达为指标),用western blot的方法检查了M1病毒感染后不同时间点的CHOP表达水平,发现均没有升高(没有条带)。在最后的两个泳道,研究者使用了衣霉素(Tunicamycin)作为阳性对照。衣霉素是一种确定能够引起内质网应激、诱导CHOP表达的化合物。假设没有这个阳性对照组,而只是呈现给读者光秃秃的空白泳道,那么根本无法说明“M1病毒无法在这些细胞中引起内质网应激”这个问题,而有可能是CHOP抗体出了问题、实验没做好,或者根本就是剪一段空白的膜、捏造出来的数据。&/p&&img src=&/v2-5fee7df3a8e538f54d16f01a420bac95_b.png& data-rawwidth=&581& data-rawheight=&371& class=&origin_image zh-lightbox-thumb& width=&581& data-original=&/v2-5fee7df3a8e538f54d16f01a420bac95_r.png&&&p&&b&二、阴性对照&/b&&/p&&p&&b&阴性对照&/b&(Negative control),和阳性对照相对,是指按照当前的实验方案一定不会得到正面结果(比如电泳不会有条带,绝对不会长出克隆,细胞绝对不会死等)的对照实验。&b&阴性对照同样具有质控意义&/b&。比如本司机开了那么多年车,在做双酶切克隆后的连接、转化实验时,依然习惯性地加一个无外源片段、仅含有酶切质粒的对照组。理论上,这样的一个阴性对照组,在最后是绝对不可能长出任何克隆的。如果有,那就说明很可能是酶切不充分。如果阴性对照组长的克隆数量远少于实验组,那么说明问题还不是很严重。如果大家几乎长得一样多,那么实验还是重做为好,不用浪费时间挑克隆鉴定了。&/p&&p&相应地,阴性对照最重要的意义,是&b&支持实验处理组中所获得的阳性结果&/b&。&/p&&p&阴性对照有许许多多的形式,需要根据具体的实验目的来设计。&/p&&p&例2-1:为了研究某化合物是否具有抗肿瘤的作用,用该化合物处理体外培养的肿瘤细胞一段时间后,进行活细胞计数。这一类经典的药理学实验通常涉及&b&溶剂对照&/b&(Vehicle control)。意思是,每一种化合物都有相应的溶剂,比如水、PBS、DMSO、乙醇等。如果是水溶性的,一般不会有多大的问题。当加入体积低于细胞培养体系1%时,此时可以仅做&b&空白对照&/b&,即阴性对照组中不需要加入相应溶剂,留空不处理即可。因为水、PBS、生理盐水之类常用的水性溶剂,是公认不会对培养细胞产生任何影响的。然而,像DMSO、乙醇等有机溶剂,当浓度达到一定量时,就会产生细胞毒性了。如果加入的浓度过高,同时又没有溶剂对照,那么到时候细胞死了,我们就搞不清楚,到底是化合物杀死了细胞,还是溶剂本身的毒性。&/p&&p&在临床试验中,还会涉及&b&安慰剂对照&/b&(Placebo control)。安慰剂是指物理特性(如大小、颜色、重量、剂型、味道等)与试验药物相同,但却不含有试验药有效成份的试剂。由于安慰剂效应一直都是临床研究中的迷之领域,因此在临床药物试验中,是不可能出现完全不处理的空白对照的。然而需要指出的是,对于重症疾病是不可以设置安慰剂组的,要尽可能给予目前认为有效的药物作为对照,否则就是在害人了。&/p&&p&例2-2:为了研究某基因是否具有抑制上皮细胞凋亡的作用,采用转染siRNA的方法抑制该基因的表达,后进行凋亡细胞计数。所有涉及核酸转染的实验,从最严格的角度来讲,一定会涉及&b&空白对照&/b&、&b&转染对照&/b&(Mock control,比如只加转染试剂),以及&b&无义对照&/b&。其中最重要的是无义对照。本例中,无义对照指的是和所用的siRNA在化学结构上几乎一致(长度、修饰方式等)、但序列设计并不靶向目的基因的对照RNA。它可以是一段乱码序列(Scramble
control),或者靶向非相关基因(比如靶向GFP、Luciferase等这些在哺乳动物细胞中并不存在的基因)。而如果转染的是装在质粒上的shRNA,那么无义对照就是一个质粒,表达乱码序列或者非靶向序列。通常情况下,转染对照并不是必需的。然而,转染手段同样也会干扰实验指标的测定。比如常用的转染试剂是脂质体,我以前做过实验,单独加入这样的转染试剂,会导致细胞脂代谢基因表达发生变化。有关转染试剂及转染物(如小分子RNA)如何影响基因表达,有许多相关文献,感兴趣的可自行搜索。&/p&&p&例2-3:在一些涉及免疫学或者抗体的实验时,往往需要添加&b&同型对照&/b&(Isotype control),或者说同型抗体对照。同型抗体是指和实验组的一抗具有相同动物来源(兔、小鼠、山羊等)、相同抗体类别(IgG、IgA、IgM等)的非特异抗体。任何抗体都不能保证在任何情况下,都完美地只和一种抗原特异结合。一旦实验条件没有优化好,非特异结合就会被放大。因此,同型最重要的意义就是佐证实验组抗体所获得的数据是特异的。比如在下图左方的免疫共沉淀实验中,第三条泳道用的就是IgG同型对照,可以发现在箭头所指位置,使用同型对照并无法获得特异条带。如果一抗带有修饰(如荧光标记),那么同型对照也必须带有同样的修饰。比如下图右方的流式实验,由于F4/80抗体携带eFluor450荧光标记,那么同型对照抗体也必须有同样的荧光标记。其他的涉及免疫学的实验,比如染色质免疫共沉淀(ChIP),也一样需要添加同型对照。(但一般而言,不需要为western blot实验添加同型对照,因验证抗体特异性最好的指标是过表达及敲除目的基因,看特异蛋白条带与非特异条带的变化。)&/p&&img src=&/v2-f4e9f991cf069ece64b3f_b.png& data-rawwidth=&874& data-rawheight=&526& class=&origin_image zh-lightbox-thumb& width=&874& data-original=&/v2-f4e9f991cf069ece64b3f_r.png&&&p&例2-4:在某些涉及复杂手术操作的动物实验中,我们需要做&b&假手术对照&/b&(Sham surgery control)。假手术是指对动物进行和实验组相同的手术处理,但并不给予实验刺激。如下图,为了研究缺血对神经元的损伤以及化合物Triol对神经元的保护作用,研究人员采用夹闭肾下腹主动脉血管的方法制作脊髓缺血模型(ISC)。而假手术是指,同样暴露动脉,但并不给予夹闭。这样就可以排除在夹闭之前的所有手术操作对脊髓神经元造成了损伤。也就是说,一个完美的假手术对照,应该是无限接近于正常的、不做任何处理的对照。同时我们也可以看到,为了研究化合物Triol的作用,研究者也设置了溶剂对照。&/p&&img src=&/v2-5a9746ac2aaca839c3eafa_b.png& data-rawwidth=&817& data-rawheight=&496& class=&origin_image zh-lightbox-thumb& width=&817& data-original=&/v2-5a9746ac2aaca839c3eafa_r.png&&&p&例2-5:在涉及遗传学的实验中,我们往往需要做&b&等遗传背景对照&/b&(Isogenic control)。比如,为了获得A基因敲除的小鼠,我们可以拿Cre小鼠和flox A小鼠(即A基因两侧含有LoxP位点,flox为“Flanked by LoxP”的缩写)进行杂交,获得子代做实验。与此同时,我们必须拿Cre小鼠和A基因不被flox的小鼠的杂交后代,作为等遗传背景对照。在细胞水平,为了研究B基因的作用,我们可以在某细胞系中过表达B基因。同时,我们就必须拿相同的、但不过表达B基因的细胞系作为对照。或者更严谨地,必须拿含有过表达载体的相同细胞系作为对照。&/p&&br&&p&&b&三、相互对照&/b&&/p&&p&&b&相互对照&/b&是指一个实验内,各组之间互为对照,或者具有相同处理条件的实验之间,相互形成对照。&b&简而言之,相互对照有“组间对照”及“实验间对照”两种形式&/b&。&/p&&p&例3-1:研究人员为了证明,干扰BMP2基因的表达,可以阻断流体剪切力(FSS)诱导的SP7基因瞬时表达升高,从而设计了下面的实验组。无义干扰片段对照(NC),无义干扰片段对照+流体剪切力,干扰BMP2(siBMP2),干扰BMP2+流体剪切力。我们可以看到,这4个组之间,是相互呈对照关系的。比如,在不干扰BMP2的情况下,FSS诱导了SP7的表达,对照组是NC。单独siBMP2,在短时间内并不能降低SP7的基线水平,对照组同样是NC。在siBMP2的基础上进行FSS处理,并不能诱导SP7的表达,对照组是NC+FSS以及siBMP2。本例中,实验涉及了两种处理(基因干扰和流体剪切力),每种处理分别都有一个阴性对照和一个实验处理,因此就会形成一个2×2=4的组合设计。此外,由于SP7基因只会短暂地升高(12小时),因此还有一个24小时时间点作为相互对照。&b&这种组间相互对照的思想,是为了确保实验处理的变量是单一的&/b&。也就是说,光做NC和siBMP2+FSS,发现SP7表达没有变化,是不能说明siBMP2发挥了作用,而有可能是FSS本身就失效了。&/p&&img src=&/v2-c27f5e46c0ace_b.png& data-rawwidth=&712& data-rawheight=&534& class=&origin_image zh-lightbox-thumb& width=&712& data-original=&/v2-c27f5e46c0ace_r.png&&&p&例3-2:研究人员发现,AKT和PI3K的激酶抑制剂可以抑制细胞的葡萄糖摄取,然而,另外两个经典激酶通路ERK和mTORC1的抑制剂,却不具有同样的功能。(下图右方)然而ERK和mTORC1的抑制剂没有发挥作用,到底是因为实验处理不当,还是说这两个信号通路在这个细胞中就不具备调控葡萄糖摄取的功能呢?于是,研究人员设计了另外一个对照实验(下图左方),通过western
blot的方法,发现这4种抑制剂均发挥了作用,药物的处理并没有问题,然而只有抑制AKT和PI3K才能出现抑制葡萄糖摄取的结果。本例中,western blot和葡萄糖摄取实验之间便形成了相互对照。&b&这种实验间的相互对照,是为了保证证据链的完整性,不出现断层&/b&。&/p&&img src=&/v2-a0ed30be27e51ab91d67_b.png& data-rawwidth=&1149& data-rawheight=&762& class=&origin_image zh-lightbox-thumb& width=&1149& data-original=&/v2-a0ed30be27e51ab91d67_r.png&&&p&&b&四、自身对照&/b&&/p&&p&&b&自身对照&/b&是指对照组即为处理组样品的本身,这是一种比较处理前后指标变化的方法,通常所获得的数据是&b&配对型&/b&的(一前一后)或者&b&时间序贯型&/b&的(处理后不同时间点)。&/p&&p&例4:研究人员为了证明球培养的脑胶质瘤GBM39细胞系的EGFRvIII蛋白的表达受到动态调控,利用流式细胞分选的方法,将混合群中的高表达EGFRvIII的细胞分选出来后进行培养,并在不同时间点取样进行EGFRvIII表达量检测。可以发现,在刚分选出来时,EGFRvIII处于高表达状态。但随着时间的推移,灰色的峰逐渐往左移动,即EGFRvIII的平均表达水平越来越低,同时变异度增大,意味着又回归高低表达混合的状态。本例中,处理条件仅有一个,即分离出高表达的细胞。而随后的检测,都在同一份细胞样品中进行(每次取一部分),观察这一份样品的指标变化。因此对照组就是这份样品本身。(当然,该实验还涉及了另一个对照,即未分选的亲代混合细胞,作为一个基线存在。)在临床研究中,也大量涉及了自身对照,比如观察服药前后血压的变化等。&/p&&img src=&/v2-448e65f2c0eb29b976b058e_b.png& }

我要回帖

更多关于 哈利波特和马尔福bl图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信