ultraprintsai怎么置入图像像怎么让新存让图像在前边

输入[ALT]+[=],然后就可以打代码了,格式可以在这里看(&a href=&///?target=https%3A///en-us/article/Linear-format-equations-and-Math-AutoCorrect-in-Word-2e00618d-b1fd-49d8-8cb4-8d17f25754f8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Linear format equations and Math AutoCorrect in Word&i class=&icon-external&&&/i&&/a&)。 据说是2010就有的功能,一直不知道,亏大了。
输入[ALT]+[=],然后就可以打代码了,格式可以在这里看()。 据说是2010就有的功能,一直不知道,亏大了。
&a href=&///?target=http%3A///vczh/archive//198769.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&伴随我成长的编程书 - λ-calculus(惊愕到手了欧耶,GetBlogPostIds.aspx) - C++博客&i class=&icon-external&&&/i&&/a&&br&&br&总的来说,我读中学的时候是人类学习编程的黄金时期。现在好书都跟不上API的发展,年轻人越来越难接触到正确的知识了。
总的来说,我读中学的时候是人类学习编程的黄金时期。现在好书都跟不上API的发展,年轻人越来越难接触到正确的知识了。
我会建议,从需求出发,以开发某特定类型游戏为目标,最后通用的部分就是游戏引擎和相关工具。&br&&br&游戏不要太复杂,例如避免角色动画,可考虑载具之类。整个计划要按需求一步一步来,例如目标是一个第三身坦克射击游戏,可拆分为多个小目本标:&br&&br&1. 初始化视窗,渲染一个三角形。&br&2. 渲染旋转的立方体。&br&3. 用键盘控制立方体移动和旋转。&br&4. 加入一个全局方向光源。&br&5. 用一个动态数组存储游戏对象(暂时都是长方体),可独立控制它们的位置、坐向、颜色,每帧逐一渲染。&br&6. 用上述的功能,以程序方式生成一个简单场景(地面、大楼)。&br&7. 控制长方体形式的坦克在场景移动,令摄像头跟随。&br&8. 导入某种三维格式的三维模型,如 obj,先只考虑顶点位置、法线,渲染它。&br&9. 重构场景结构,可用上组件的方式。同时更改渲染和游戏代码。&br&10. 要解决坦克穿过大楼的问题,可实现简单的碰撞检测,或使用现成的物理引擎如 bullet。&br&11. 发射炮弹,模拟弹道。&br&12. 加入具简单 AI 的坦克。&br&...&br&&br&实现过程中,尽量通过重构把游戏逻辑和游戏引擎分离。&br&&br&关于游戏引擎的基本概念,可参考敝人译作。&br&&br&(手机码字,不写太多,有具体问题再问吧。)
我会建议,从需求出发,以开发某特定类型游戏为目标,最后通用的部分就是游戏引擎和相关工具。 游戏不要太复杂,例如避免角色动画,可考虑载具之类。整个计划要按需求一步一步来,例如目标是一个第三身坦克射击游戏,可拆分为多个小目本标: 1. 初始化视窗…
&img src=&/50/ff89a91f5dad9d8eb3237_b.jpg& data-rawwidth=&1920& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1920& data-original=&/50/ff89a91f5dad9d8eb3237_r.jpg&&&h2&一.决策树的基本思想&/h2&&p&决策树是一种基本的分类与回归方法,它可以看作&b&if-then&/b&规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。&/p&&p&将决策树转换成if-then规则的过程如下:&/p&&ul&&li&由决策树的根节点到叶节点的每一条路径构建一条规则;&br&&/li&&li& 路径内部结点的特征对应规则的条件;&br&&/li&&li& 叶节点的类对应规则的结论.&br&&/li&&/ul&&br&&p&决策树的路径具有一个重要的性质:&b&互斥且完备&/b&,即每一个样本均被且只能被一条路径所覆盖。&/p&&p&决策树学习算法主要由三部分构成:&/p&&ul&&li&特征选择&/li&&li&决策树生成&/li&&li&决策树的剪枝&/li&&/ul&&p&下面,从这三方面进行理论介绍,并提供相应的Python代码实现。&/p&&h2&二. 决策树的特征选择&/h2&&p&如果利用一个特征进行分类的结果与随机分类的结果无异,则可以认为这个特征是不具备分类能力的。把这样的特征去掉,对决策树的分类精度应该影响不大。&/p&&br&&p&而我们应该基于什么准则来判定一个特征的分类能力呢?&/p&&p&这时候,需要引入一个概念:&i&信息增益&/i&.&/p&&br&&p&&b& 信息增益&/b&&/p&&p&在介绍信息增益之前,先了解一个概念:&i&熵(entropy)&/i&.&/p&&p&&i&&b&熵(entropy)&/b&&/i&&br&&/p&&p&在信息论与概率论中,熵(entropy)用于表示**随机变量不确定性的度量**。&br&&/p&&p&设X是一个有限状态的离散型随机变量,其概率分布为&/p&&img src=&/equation?tex=P%28X+%3D+x_i%29+%3D+p_i%2C%5C+i%3D1%2C2%2C%5Ccdots%2Cn& alt=&P(X = x_i) = p_i,\ i=1,2,\cdots,n& eeimg=&1&&&br&&p&则随机变量&img src=&/equation?tex=X& alt=&X& eeimg=&1&&的熵定义为&/p&&img src=&/equation?tex=H%28X%29%3D+-+%5Csum_%7Bi%3D1%7D%5E%7Bn%7D+p_%7Bi%7Dlog%28p_i%29& alt=&H(X)= - \sum_{i=1}^{n} p_{i}log(p_i)& eeimg=&1&&&br&&p&熵越大,则随机变量的不确定性越大。&/p&&p&当随机变量只有0,1两种取值时,假设&img src=&/equation?tex=P%28X%3D1%29%3Dp& alt=&P(X=1)=p& eeimg=&1&&,则有&/p&&img src=&/equation?tex=H%28X%29%3D-plog%28p%29-%281-p%29log%281-p%29& alt=&H(X)=-plog(p)-(1-p)log(1-p)& eeimg=&1&&&br&&p&从而有,&/p&&img src=&/equation?tex=%5Cfrac%7B%5Cpartial+H%28X%29%7D%7B%5Cpartial+p%7D+%3D+-log%28%5Cfrac%7Bp%7D%7B1-p%7D%29& alt=&\frac{\partial H(X)}{\partial p} = -log(\frac{p}{1-p})& eeimg=&1&&&br&&p&&img src=&/bcc854e59abe_b.png& data-rawwidth=&498& data-rawheight=&426& class=&origin_image zh-lightbox-thumb& width=&498& data-original=&/bcc854e59abe_r.png&&(&u&图1 概率P与熵的关系&/u&)&/p&&p&从而可知,当p=0.5时,熵取值最大,随机变量不确定性最大。&/p&&br&&p&&b&条件熵(conditional entropy)&/b&&br&&/p&&p&随机变量&img src=&/equation?tex=X& alt=&X& eeimg=&1&&给定的条件下,随机变量&img src=&/equation?tex=Y& alt=&Y& eeimg=&1&&的条件熵&img src=&/equation?tex=H%28Y%7CX%29& alt=&H(Y|X)& eeimg=&1&&定义为:&br&&/p&&img src=&/equation?tex=H%28Y%7CX%29+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bn%7Dp_i+H%28Y%7CX%3Dx_i%29& alt=&H(Y|X) = \sum_{i=1}^{n}p_i H(Y|X=x_i)& eeimg=&1&&&br&&p&其中,&img src=&/equation?tex=p_i+%3D+P%28X+%3D+x_i%29& alt=&p_i = P(X = x_i)& eeimg=&1&&。&/p&&br&&p&&b&信息增益(information gain)&/b&&br&&/p&&p&信息增益表示的是:&u&&i&得知特征X的信息而使得类Y的信息的不确定性减少的程度&/i&&/u&。&/p&&p&具体定义如下。&/p&&p&特征A对训练数据集D的信息增益&img src=&/equation?tex=g%28D%2CA%29& alt=&g(D,A)& eeimg=&1&&定义为集合D的经验熵&img src=&/equation?tex=H%28D%29& alt=&H(D)& eeimg=&1&&与特征A给定条件下D的经验条件熵&img src=&/equation?tex=H%28D%7CA%29& alt=&H(D|A)& eeimg=&1&&之差,即&/p&&img src=&/equation?tex=g%28D%2CA%29%3DH%28D%29-H%28D%7CA%29& alt=&g(D,A)=H(D)-H(D|A)& eeimg=&1&&&br&&p&一般地,熵&img src=&/equation?tex=H%28Y%29& alt=&H(Y)& eeimg=&1&&与条件熵&img src=&/equation?tex=H%28Y%7CX%29& alt=&H(Y|X)& eeimg=&1&&之差称为互信息(mutual information).&br&&/p&&p&根据信息增益准则进行特征选择的方法是:对训练数据集D,计算其每个特征的信息增益,并比它们的大小,从而选择信息增益最大的特征。&br&&/p&&p&假设训练数据集为D,样本容量为|D|,有&img src=&/equation?tex=k& alt=&k& eeimg=&1&&个类别&img src=&/equation?tex=C_k%2C%7CC_k%7C& alt=&C_k,|C_k|& eeimg=&1&&为类别&img src=&/equation?tex=C_k& alt=&C_k& eeimg=&1&&的样本个数。某一特征&img src=&/equation?tex=A& alt=&A& eeimg=&1&&有n个不同的取值&img src=&/equation?tex=%7Ba_1%2Ca_2%2C%5Ccdots%2Ca_n%7D& alt=&{a_1,a_2,\cdots,a_n}& eeimg=&1&&。根据特征A的取值可将数据集D划分为n个子集&img src=&/equation?tex=D_1%2CD_2%2C%5Ccdots%2CD_n& alt=&D_1,D_2,\cdots,D_n& eeimg=&1&&,&img src=&/equation?tex=%7CD_i%7C& alt=&|D_i|& eeimg=&1&&为&img src=&/equation?tex=D_i& alt=&D_i& eeimg=&1&&的样本个数。并记子集&img src=&/equation?tex=D_i& alt=&D_i& eeimg=&1&&中属于类&br&&/p&&p&&img src=&/equation?tex=C_k& alt=&C_k& eeimg=&1&&的样本的集合为&img src=&/equation?tex=D_%7Bik%7D%2C%7CD_%7Bik%7D%7C& alt=&D_{ik},|D_{ik}|& eeimg=&1&&为&img src=&/equation?tex=D_%7Bik%7D& alt=&D_{ik}& eeimg=&1&&的样本个数。&/p&&br&&p&则信息增益的算法如下:&/p&&br&&p&- 输入:训练数据集D和特征A;&/p&&p&- 输出:特征A对训练数据集D的信息增益&img src=&/equation?tex=g%28D%2CA%29& alt=&g(D,A)& eeimg=&1&&.&/p&&br&&p&- (1) 计算数据集D的经验熵&img src=&/equation?tex=H%28D%29& alt=&H(D)& eeimg=&1&&.&/p&&br&&img src=&/equation?tex=H%28D%29+%3D+-+%5Csum_%7Bk%3D1%7D%5E%7BK%7D%5Cfrac%7B%7CC_k%7C%7D%7B%7CD%7C%7Dlog%5Cfrac%7B%7CC_k%7C%7D%7B%7CD%7C%7D& alt=&H(D) = - \sum_{k=1}^{K}\frac{|C_k|}{|D|}log\frac{|C_k|}{|D|}& eeimg=&1&&&br&&p&- (2) 计算特征A对数据集D的经验条件熵&img src=&/equation?tex=H%28D%7CA%29.& alt=&H(D|A).& eeimg=&1&&.&br&&/p&&br&&img src=&/equation?tex=H%28D%7CA%29+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Cfrac%7B%7CD_i%7C%7D%7B%7CD%7C%7DH%28D_i%29+%3D+%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Cfrac%7B%7CD_i%7C%7D%7B%7CD%7C%7D%5Csum_%7Bk%3D1%7D%5E%7BK%7D%5Cfrac%7B%7CD_%7Bik%7D%7C%7D%7BD_i%7Dlog%5Cfrac%7B%7CD_%7Bik%7D%7C%7D%7BD_i%7D& alt=&H(D|A) = \sum_{i=1}^{n}\frac{|D_i|}{|D|}H(D_i) = \sum_{i=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{D_i}log\frac{|D_{ik}|}{D_i}& eeimg=&1&&&br&&p&- (3) 计算信息增益&/p&&br&&img src=&/equation?tex=g%28D%2CA%29%3DH%28D%29-H%28D%7CA%29& alt=&g(D,A)=H(D)-H(D|A)& eeimg=&1&&&br&&p&&b& 信息增益比(information gain ratio)&/b&&/p&&br&&p&以信息增益作为特征选择准则,会存在偏向于选择取值较多的特征的问题。可以采用信息增益比对这一问题进行校正。&/p&&br&&p&特征A对训练数据集D的信息增益比定义为其信息增益与训练集D关于特征A的值的熵之比,即&/p&&img src=&/equation?tex=g_%7BR%7D%28D%7CA%29+%3D+%5Cfrac%7Bg%28D%2CA%29%7D%7BH_%7BA%7D%28D%29%7D& alt=&g_{R}(D|A) = \frac{g(D,A)}{H_{A}(D)}& eeimg=&1&&&br&&p&其中,&img src=&/equation?tex=H_%7BA%7D%28D%29%3D-%5Csum_%7Bi%3D1%7D%5E%7Bn%7D%5Cfrac%7B%7CD_i%7C%7D%7B%7CD%7C%7Dlog%5Cfrac%7B%7CD_i%7C%7D%7B%7CD%7C%7D& alt=&H_{A}(D)=-\sum_{i=1}^{n}\frac{|D_i|}{|D|}log\frac{|D_i|}{|D|}& eeimg=&1&&.&/p&&br&&br&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&sb&&``&/span&&span class=&err&&`&/span&&span class=&n&&python&/span&
&span class=&c1&&# 对y的各种可能的取值出现的个数进行计数.。其他函数利用该函数来计算数据集和的混杂程度&/span&
&span class=&k&&def&/span& &span class=&nf&&uniquecounts&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&):&/span&
&span class=&n&&results&/span& &span class=&o&&=&/span& &span class=&p&&{}&/span&
&span class=&k&&for&/span& &span class=&n&&row&/span& &span class=&ow&&in&/span& &span class=&n&&rows&/span&&span class=&p&&:&/span&
&span class=&c1&&#计数结果在最后一列&/span&
&span class=&n&&r&/span& &span class=&o&&=&/span& &span class=&n&&row&/span&&span class=&p&&[&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&row&/span&&span class=&p&&)&/span&&span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&k&&if&/span& &span class=&n&&r&/span& &span class=&ow&&not&/span& &span class=&ow&&in&/span& &span class=&n&&results&/span&&span class=&p&&:&/span&&span class=&n&&results&/span&&span class=&p&&[&/span&&span class=&n&&r&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&n&&results&/span&&span class=&p&&[&/span&&span class=&n&&r&/span&&span class=&p&&]&/span&&span class=&o&&+=&/span&&span class=&mi&&1&/span&
&span class=&k&&return&/span& &span class=&n&&results&/span& &span class=&c1&&# 返回一个字典&/span&
&span class=&c1&&# 熵&/span&
&span class=&k&&def&/span& &span class=&nf&&entropy&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&):&/span&
&span class=&kn&&from&/span& &span class=&nn&&math&/span& &span class=&kn&&import&/span& &span class=&n&&log&/span&
&span class=&n&&log2&/span& &span class=&o&&=&/span& &span class=&k&&lambda&/span& &span class=&n&&x&/span&&span class=&p&&:&/span&&span class=&n&&log&/span&&span class=&p&&(&/span&&span class=&n&&x&/span&&span class=&p&&)&/span&&span class=&o&&/&/span&&span class=&n&&log&/span&&span class=&p&&(&/span&&span class=&mi&&2&/span&&span class=&p&&)&/span&
&span class=&n&&results&/span& &span class=&o&&=&/span& &span class=&n&&uniquecounts&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&c1&&#开始计算熵的值&/span&
&span class=&n&&ent&/span& &span class=&o&&=&/span& &span class=&mf&&0.0&/span&
&span class=&k&&for&/span& &span class=&n&&r&/span& &span class=&ow&&in&/span& &span class=&n&&results&/span&&span class=&o&&.&/span&&span class=&n&&keys&/span&&span class=&p&&():&/span&
&span class=&n&&p&/span& &span class=&o&&=&/span& &span class=&nb&&float&/span&&span class=&p&&(&/span&&span class=&n&&results&/span&&span class=&p&&[&/span&&span class=&n&&r&/span&&span class=&p&&])&/span&&span class=&o&&/&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&n&&ent&/span& &span class=&o&&=&/span& &span class=&n&&ent&/span& &span class=&o&&-&/span& &span class=&n&&p&/span&&span class=&o&&*&/span&&span class=&n&&log2&/span&&span class=&p&&(&/span&&span class=&n&&p&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&ent&/span&
&span class=&sb&&``&/span&&span class=&err&&`&/span&
&/code&&/pre&&/div&&br&&h2&三.决策树的生成&/h2&&br&&p&决策树的生成算法有很多变形,这里介绍几种经典的实现算法:ID3算法,C4.5算法和CART算法。这些算法的主要区别在于分类结点上特征选择的选取标准不同。下面详细了解一下算法的具体实现过程。&/p&&br&&p&&b&ID3算法&/b&&/p&&br&&p&ID3算法的核心是在决策树的各个结点上应用信息增益准则进行特征选择。具体做法是:&/p&&br&&ul&&li&从根节点开始,对结点计算所有可能特征的信息增益,选择信息增益最大的特征作为结点的特征,并由该特征的不同取值构建子节点;&br&&/li&&li& 对子节点递归地调用以上方法,构建决策树;&br&&/li&&li&直到所有特征的信息增益均很小或者没有特征可选时为止。&br&&/li&&/ul&&br&&br&&br&&p&&b&C4.5算法&/b&&/p&&br&&p&C4.5算法与ID3算法的区别主要在于它在生产决策树的过程中,使用信息增益比来进行特征选择。&/p&&br&&br&&p&&b&CART算法&/b&&/p&&br&&p&分类与回归树(classification and regression tree,CART)与C4.5算法一样,由ID3算法演化而来。CART假设决策树是一个二叉树,它通过递归地二分每个特征,将特征空间划分为有限个单元,并在这些单元上确定预测的概率分布。&/p&&br&&p&CART算法中,对于回归树,采用的是平方误差最小化准则;对于分类树,采用基尼指数最小化准则。&/p&&br&&p&&b& 平方误差最小化&/b&&/p&&br&&p&假设已将输入空间划分为M个单元&img src=&/equation?tex=R_1%2CR_2%2C...%2CR_M& alt=&R_1,R_2,...,R_M& eeimg=&1&&,并且在每个单元&img src=&/equation?tex=R_m& alt=&R_m& eeimg=&1&&上有一个固定的输出值&img src=&/equation?tex=c_m& alt=&c_m& eeimg=&1&&,于是回归树可以表示为&/p&&br&&img src=&/equation?tex=f%28x%29%3D%5Csum_%7Bm%3D1%7D%5E%7BM%7Dc_%7Bm%7DI%28x%5Cin+R_m%29& alt=&f(x)=\sum_{m=1}^{M}c_{m}I(x\in R_m)& eeimg=&1&&&br&&br&&p&当输入空间的划分确定时,可以用平方误差&img src=&/equation?tex=%5Csum_%7Bx_i+%5Cin+R_m%7D%28y_i+-+f%28x_i%29%29%5E2& alt=&\sum_{x_i \in R_m}(y_i - f(x_i))^2& eeimg=&1&&来表示回归树对于训练数据的预测误差。&/p&&br&&p&&b&基尼指数&/b&&/p&&br&&p&分类问题中,假设有K个类别,样本点属于第&img src=&/equation?tex=k& alt=&k& eeimg=&1&&类的概率为&img src=&/equation?tex=p_k& alt=&p_k& eeimg=&1&&,则概率分布的基尼指数定义为&/p&&img src=&/equation?tex=Gini%28p%29%3D%5Csum_%7Bk%3D1%7D%5E%7BK%7Dp_%7Bk%7D%281-p_k%29%3D1-%5Csum_%7Bk%3D1%7D%5E%7BK%7Dp_%7Bk%7D%5E%7B2%7D& alt=&Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_k)=1-\sum_{k=1}^{K}p_{k}^{2}& eeimg=&1&&&br&&br&&br&&img src=&/a5f21f511372fea308ab5a_b.jpg& data-rawwidth=&388& data-rawheight=&268& class=&content_image& width=&388&&&br&&div class=&highlight&&&pre&&code class=&language-python&&&span&&/span&&span class=&sb&&``&/span&&span class=&err&&`&/span&&span class=&n&&python&/span&
&span class=&c1&&#定义节点的属性&/span&
&span class=&k&&class&/span& &span class=&nc&&decisionnode&/span&&span class=&p&&:&/span&
&span class=&k&&def&/span& &span class=&nf&&__init__&/span&&span class=&p&&(&/span&&span class=&bp&&self&/span&&span class=&p&&,&/span&&span class=&n&&col&/span& &span class=&o&&=&/span& &span class=&o&&-&/span&&span class=&mi&&1&/span&&span class=&p&&,&/span&&span class=&n&&value&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&&span class=&p&&,&/span& &span class=&n&&results&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&&span class=&p&&,&/span& &span class=&n&&tb&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&&span class=&p&&,&/span&&span class=&n&&fb&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&&span class=&p&&):&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&col&/span& &span class=&o&&=&/span& &span class=&n&&col&/span&
&span class=&c1&&# col是待检验的判断条件所对应的列索引值&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&value&/span& &span class=&o&&=&/span& &span class=&n&&value&/span& &span class=&c1&&# value对应于为了使结果为True,当前列必须匹配的值&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&results&/span& &span class=&o&&=&/span& &span class=&n&&results&/span& &span class=&c1&&#保存的是针对当前分支的结果,它是一个字典&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&tb&/span& &span class=&o&&=&/span& &span class=&n&&tb&/span& &span class=&c1&&## desision node,对应于结果为true时,树上相对于当前节点的子树上的节点&/span&
&span class=&bp&&self&/span&&span class=&o&&.&/span&&span class=&n&&fb&/span& &span class=&o&&=&/span& &span class=&n&&fb&/span& &span class=&c1&&## desision node,对应于结果为true时,树上相对于当前节点的子树上的节点&/span&
&span class=&c1&&# 基尼不纯度&/span&
&span class=&c1&&# 随机放置的数据项出现于错误分类中的概率&/span&
&span class=&k&&def&/span& &span class=&nf&&giniimpurity&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&):&/span&
&span class=&n&&total&/span& &span class=&o&&=&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&n&&counts&/span& &span class=&o&&=&/span& &span class=&n&&uniquecounts&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&n&&imp&/span& &span class=&o&&=&/span&&span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&k1&/span& &span class=&ow&&in&/span& &span class=&n&&counts&/span&&span class=&p&&:&/span&
&span class=&n&&p1&/span& &span class=&o&&=&/span& &span class=&nb&&float&/span&&span class=&p&&(&/span&&span class=&n&&counts&/span&&span class=&p&&[&/span&&span class=&n&&k1&/span&&span class=&p&&])&/span&&span class=&o&&/&/span&&span class=&n&&total&/span&
&span class=&k&&for&/span& &span class=&n&&k2&/span& &span class=&ow&&in&/span& &span class=&n&&counts&/span&&span class=&p&&:&/span& &span class=&c1&&# 这个循环是否可以用(1-p1)替换?&/span&
&span class=&k&&if&/span& &span class=&n&&k1&/span& &span class=&o&&==&/span& &span class=&n&&k2&/span&&span class=&p&&:&/span& &span class=&k&&continue&/span&
&span class=&n&&p2&/span& &span class=&o&&=&/span& &span class=&nb&&float&/span&&span class=&p&&(&/span&&span class=&n&&counts&/span&&span class=&p&&[&/span&&span class=&n&&k2&/span&&span class=&p&&])&/span&&span class=&o&&/&/span&&span class=&n&&total&/span&
&span class=&n&&imp&/span&&span class=&o&&+=&/span&&span class=&n&&p1&/span&&span class=&o&&*&/span&&span class=&n&&p2&/span&
&span class=&k&&return&/span& &span class=&n&&imp&/span&
&span class=&c1&&# 改进giniimpurity&/span&
&span class=&k&&def&/span& &span class=&nf&&giniimpurity_2&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&):&/span&
&span class=&n&&total&/span& &span class=&o&&=&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&n&&counts&/span& &span class=&o&&=&/span& &span class=&n&&uniquecounts&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&n&&imp&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&
&span class=&k&&for&/span& &span class=&n&&k1&/span& &span class=&ow&&in&/span& &span class=&n&&counts&/span&&span class=&o&&.&/span&&span class=&n&&keys&/span&&span class=&p&&():&/span&
&span class=&n&&p1&/span& &span class=&o&&=&/span& &span class=&nb&&float&/span&&span class=&p&&(&/span&&span class=&n&&counts&/span&&span class=&p&&[&/span&&span class=&n&&k1&/span&&span class=&p&&])&/span&&span class=&o&&/&/span&&span class=&n&&total&/span&
&span class=&n&&imp&/span&&span class=&o&&+=&/span& &span class=&n&&p1&/span&&span class=&o&&*&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&o&&-&/span&&span class=&n&&p1&/span&&span class=&p&&)&/span&
&span class=&k&&return&/span& &span class=&n&&imp&/span&
&span class=&c1&&#在某一列上对数据集进行拆分。可应用于数值型或因子型变量&/span&
&span class=&k&&def&/span& &span class=&nf&&divideset&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&,&/span&&span class=&n&&column&/span&&span class=&p&&,&/span&&span class=&n&&value&/span&&span class=&p&&):&/span&
&span class=&c1&&#定义一个函数,判断当前数据行属于第一组还是第二组&/span&
&span class=&n&&split_function&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&
&span class=&k&&if&/span& &span class=&nb&&isinstance&/span&&span class=&p&&(&/span&&span class=&n&&value&/span&&span class=&p&&,&/span&&span class=&nb&&int&/span&&span class=&p&&)&/span& &span class=&ow&&or&/span& &span class=&nb&&isinstance&/span&&span class=&p&&(&/span&&span class=&n&&value&/span&&span class=&p&&,&/span&&span class=&nb&&float&/span&&span class=&p&&):&/span&
&span class=&n&&split_function&/span& &span class=&o&&=&/span& &span class=&k&&lambda&/span& &span class=&n&&row&/span&&span class=&p&&:&/span&&span class=&n&&row&/span&&span class=&p&&[&/span&&span class=&n&&column&/span&&span class=&p&&]&/span& &span class=&o&&&=&/span& &span class=&n&&value&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&n&&split_function&/span& &span class=&o&&=&/span& &span class=&k&&lambda&/span& &span class=&n&&row&/span&&span class=&p&&:&/span&&span class=&n&&row&/span&&span class=&p&&[&/span&&span class=&n&&column&/span&&span class=&p&&]&/span&&span class=&o&&==&/span&&span class=&n&&value&/span&
&span class=&c1&&# 将数据集拆分成两个集合,并返回&/span&
&span class=&n&&set1&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&n&&row&/span& &span class=&k&&for&/span& &span class=&n&&row&/span& &span class=&ow&&in&/span& &span class=&n&&rows&/span& &span class=&k&&if&/span& &span class=&n&&split_function&/span&&span class=&p&&(&/span&&span class=&n&&row&/span&&span class=&p&&)]&/span&
&span class=&n&&set2&/span& &span class=&o&&=&/span& &span class=&p&&[&/span&&span class=&n&&row&/span& &span class=&k&&for&/span& &span class=&n&&row&/span& &span class=&ow&&in&/span& &span class=&n&&rows&/span& &span class=&k&&if&/span& &span class=&ow&&not&/span& &span class=&n&&split_function&/span&&span class=&p&&(&/span&&span class=&n&&row&/span&&span class=&p&&)]&/span&
&span class=&k&&return&/span&&span class=&p&&(&/span&&span class=&n&&set1&/span&&span class=&p&&,&/span&&span class=&n&&set2&/span&&span class=&p&&)&/span&
&span class=&c1&&# 以递归方式构造树&/span&
&span class=&k&&def&/span& &span class=&nf&&buildtree&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&,&/span&&span class=&n&&scoref&/span& &span class=&o&&=&/span& &span class=&n&&entropy&/span&&span class=&p&&):&/span&
&span class=&k&&if&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&&span class=&o&&==&/span&&span class=&mi&&0&/span& &span class=&p&&:&/span& &span class=&k&&return&/span& &span class=&n&&decisionnode&/span&&span class=&p&&()&/span&
&span class=&n&&current_score&/span& &span class=&o&&=&/span& &span class=&n&&scoref&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&c1&&# 定义一些变量以记录最佳拆分条件&/span&
&span class=&n&&best_gain&/span& &span class=&o&&=&/span& &span class=&mf&&0.0&/span&
&span class=&n&&best_criteria&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&
&span class=&n&&best_sets&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&
&span class=&n&&column_count&/span& &span class=&o&&=&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&])&/span& &span class=&o&&-&/span& &span class=&mi&&1&/span&
&span class=&k&&for&/span& &span class=&n&&col&/span& &span class=&ow&&in&/span& &span class=&nb&&range&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span&&span class=&n&&column_count&/span&&span class=&p&&):&/span&
&span class=&c1&&#在当前列中生成一个由不同值构成的序列&/span&
&span class=&n&&column_values&/span& &span class=&o&&=&/span& &span class=&p&&{}&/span&
&span class=&k&&for&/span& &span class=&n&&row&/span& &span class=&ow&&in&/span& &span class=&n&&rows&/span&&span class=&p&&:&/span&
&span class=&n&&column_values&/span&&span class=&p&&[&/span&&span class=&n&&row&/span&&span class=&p&&[&/span&&span class=&n&&col&/span&&span class=&p&&]]&/span& &span class=&o&&=&/span& &span class=&mi&&1&/span& &span class=&c1&&# 初始化&/span&
&span class=&c1&&#根据这一列中的每个值,尝试对数据集进行拆分&/span&
&span class=&k&&for&/span& &span class=&n&&value&/span& &span class=&ow&&in&/span& &span class=&n&&column_values&/span&&span class=&o&&.&/span&&span class=&n&&keys&/span&&span class=&p&&():&/span&
&span class=&p&&(&/span&&span class=&n&&set1&/span&&span class=&p&&,&/span&&span class=&n&&set2&/span&&span class=&p&&)&/span& &span class=&o&&=&/span& &span class=&n&&divideset&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&,&/span&&span class=&n&&col&/span&&span class=&p&&,&/span&&span class=&n&&value&/span&&span class=&p&&)&/span&
&span class=&c1&&# 信息增益&/span&
&span class=&n&&p&/span& &span class=&o&&=&/span& &span class=&nb&&float&/span&&span class=&p&&(&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&set1&/span&&span class=&p&&))&/span&&span class=&o&&/&/span&&span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&)&/span&
&span class=&n&&gain&/span& &span class=&o&&=&/span& &span class=&n&&current_score&/span& &span class=&o&&-&/span& &span class=&n&&p&/span&&span class=&o&&*&/span&&span class=&n&&scoref&/span&&span class=&p&&(&/span&&span class=&n&&set1&/span&&span class=&p&&)&/span& &span class=&o&&-&/span& &span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&o&&-&/span&&span class=&n&&p&/span&&span class=&p&&)&/span&&span class=&o&&*&/span&&span class=&n&&scoref&/span&&span class=&p&&(&/span&&span class=&n&&set2&/span&&span class=&p&&)&/span&
&span class=&k&&if&/span& &span class=&n&&gain&/span&&span class=&o&&&&/span&&span class=&n&&best_gain&/span& &span class=&ow&&and&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&set1&/span&&span class=&p&&)&/span&&span class=&o&&&&/span&&span class=&mi&&0&/span& &span class=&ow&&and&/span& &span class=&nb&&len&/span&&span class=&p&&(&/span&&span class=&n&&set2&/span&&span class=&p&&)&/span&&span class=&o&&&&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span&
&span class=&n&&best_gain&/span& &span class=&o&&=&/span& &span class=&n&&gain&/span&
&span class=&n&&best_criteria&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&n&&col&/span&&span class=&p&&,&/span&&span class=&n&&value&/span&&span class=&p&&)&/span&
&span class=&n&&best_sets&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&n&&set1&/span&&span class=&p&&,&/span&&span class=&n&&set2&/span&&span class=&p&&)&/span&
&span class=&c1&&#创建子分支&/span&
&span class=&k&&if&/span& &span class=&n&&best_gain&/span&&span class=&o&&&&/span&&span class=&mi&&0&/span&&span class=&p&&:&/span&
&span class=&n&&trueBranch&/span& &span class=&o&&=&/span& &span class=&n&&buildtree&/span&&span class=&p&&(&/span&&span class=&n&&best_sets&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&])&/span&
&span class=&c1&&#递归调用&/span&
&span class=&n&&falseBranch&/span& &span class=&o&&=&/span& &span class=&n&&buildtree&/span&&span class=&p&&(&/span&&span class=&n&&best_sets&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&])&/span&
&span class=&k&&return&/span& &span class=&n&&decisionnode&/span&&span class=&p&&(&/span&&span class=&n&&col&/span& &span class=&o&&=&/span& &span class=&n&&best_criteria&/span&&span class=&p&&[&/span&&span class=&mi&&0&/span&&span class=&p&&],&/span&&span class=&n&&value&/span& &span class=&o&&=&/span& &span class=&n&&best_criteria&/span&&span class=&p&&[&/span&&span class=&mi&&1&/span&&span class=&p&&],&/span&
&span class=&n&&tb&/span& &span class=&o&&=&/span& &span class=&n&&trueBranch&/span&&span class=&p&&,&/span&&span class=&n&&fb&/span& &span class=&o&&=&/span& &span class=&n&&falseBranch&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&return&/span& &span class=&n&&decisionnode&/span&&span class=&p&&(&/span&&span class=&n&&results&/span& &span class=&o&&=&/span& &span class=&n&&uniquecounts&/span&&span class=&p&&(&/span&&span class=&n&&rows&/span&&span class=&p&&))&/span&
&span class=&c1&&# 决策树的显示&/span&
&span class=&k&&def&/span& &span class=&nf&&printtree&/span&&span class=&p&&(&/span&&span class=&n&&tree&/span&&span class=&p&&,&/span&&span class=&n&&indent&/span& &span class=&o&&=&/span& &span class=&s1&&''&/span&&span class=&p&&):&/span&
&span class=&c1&&# 是否是叶节点&/span&
&span class=&k&&if&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&results&/span&&span class=&o&&!=&/span&&span class=&bp&&None&/span&&span class=&p&&:&/span&
&span class=&k&&print&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&results&/span&&span class=&p&&)&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&c1&&# 打印判断条件&/span&
&span class=&k&&print&/span& &span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&col&/span&&span class=&p&&)&/span&&span class=&o&&+&/span&&span class=&s2&&&:&&/span&&span class=&o&&+&/span&&span class=&nb&&str&/span&&span class=&p&&(&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&value&/span&&span class=&p&&)&/span&&span class=&o&&+&/span&&span class=&s2&&&? &&/span&
&span class=&c1&&#打印分支&/span&
&span class=&k&&print&/span& &span class=&n&&indent&/span&&span class=&o&&+&/span&&span class=&s2&&&T-&&&/span&&span class=&p&&,&/span&
&span class=&n&&printtree&/span&&span class=&p&&(&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&tb&/span&&span class=&p&&,&/span&&span class=&n&&indent&/span&&span class=&o&&+&/span&&span class=&s2&&& &&/span&&span class=&p&&)&/span&
&span class=&k&&print&/span& &span class=&n&&indent&/span&&span class=&o&&+&/span&&span class=&s2&&&F-&&&/span&&span class=&p&&,&/span&
&span class=&n&&printtree&/span&&span class=&p&&(&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&fb&/span&&span class=&p&&,&/span&&span class=&n&&indent&/span&&span class=&o&&+&/span&&span class=&s2&&& &&/span&&span class=&p&&)&/span&
&span class=&c1&&# 对新的观测数据进行分类&/span&
&span class=&k&&def&/span& &span class=&nf&&classify&/span&&span class=&p&&(&/span&&span class=&n&&observation&/span&&span class=&p&&,&/span&&span class=&n&&tree&/span&&span class=&p&&):&/span&
&span class=&k&&if&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&results&/span&&span class=&o&&!=&/span& &span class=&bp&&None&/span&&span class=&p&&:&/span&
&span class=&k&&return&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&results&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&n&&v&/span& &span class=&o&&=&/span& &span class=&n&&observation&/span&&span class=&p&&[&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&col&/span&&span class=&p&&]&/span&
&span class=&n&&branch&/span& &span class=&o&&=&/span& &span class=&bp&&None&/span&
&span class=&k&&if&/span& &span class=&nb&&isinstance&/span&&span class=&p&&(&/span&&span class=&n&&v&/span&&span class=&p&&,&/span&&span class=&nb&&int&/span&&span class=&p&&)&/span& &span class=&ow&&or&/span& &span class=&nb&&isinstance&/span&&span class=&p&&(&/span&&span class=&n&&v&/span&&span class=&p&&,&/span&&span class=&nb&&float&/span&&span class=&p&&):&/span&
&span class=&k&&if&/span& &span class=&n&&v&/span&&span class=&o&&&=&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&value&/span&&span class=&p&&:&/span& &span class=&n&&branch&/span& &span class=&o&&=&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&tb&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span& &span class=&n&&branch&/span& &span class=&o&&=&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&fb&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span&
&span class=&k&&if&/span& &span class=&n&&v&/span&&span class=&o&&==&/span&&span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&value&/span& &span class=&p&&:&/span& &span class=&n&&branch&/span& &span class=&o&&=&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&tb&/span&
&span class=&k&&else&/span&&span class=&p&&:&/span& &span class=&n&&branch&/span& &span class=&o&&=&/span& &span class=&n&&tree&/span&&span class=&o&&.&/span&&span class=&n&&fb&/span&
&span class=&k&&return&/span& &span class=&n&&classify&/span&&span class=&p&&(&/span&&span class=&n&&observation&/span&&span class=&p&&,&/span&&span class=&n&&branch&/span&&span class=&p&&)&/span&
&span class=&sb&&``&/span&&span class=&err&&`&/span&
&/code&&/pre&&/div&&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&```python
my_data=[['slashdot','USA','yes',18,'None'],
['google','France','yes',23,'Premium'],
['digg','USA','yes',24,'Basic'],
['kiwitobes','France','yes',23,'Basic'],
['google','UK','no',21,'Premium'],
['(direct)','New Zealand','no',12,'None'],
['(direct)','UK','no',21,'Basic'],
['google','USA','no',24,'Premium'],
['slashdot','France','yes',19,'None'],
['digg','USA','no',18,'None'],
['google','UK','no',18,'None'],
['kiwitobes','UK','no',19,'None'],
['digg','New Zealand','yes',12,'Basic'],
['slashdot','UK','no',21,'None'],
['google','UK','yes',18,'Basic'],
['kiwitobes','France','yes',19,'Basic']]
divideset(my_data,2,'yes')
giniimpurity(my_data)
giniimpurity_2(my_data)
tree = buildtree(my_data)
printtree(tree = tree)
classify(['(direct)','USA','yes',5],tree)
&/code&&/pre&&/div&&br&&br&&br&&p&0:google? &br&T-& 3:21? &br& T-& {'Premium': 3}&br& F-& 2:yes? &br&
T-& {'Basic': 1}&br&
F-& {'None': 1}&br&F-& 0:slashdot? &br& T-& {'None': 3}&br& F-& 2:yes? &br&
T-& {'Basic': 4}&br&
F-& 3:21? &br&
T-& {'Basic': 1}&br&
F-& {'None': 3}&br&&/p&&br&Out[3]:&br&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&{'Basic': 4}
&/code&&/pre&&/div&&br&&h2&四.决策树的剪枝&/h2&&p&如果对训练集建立完整的决策树,会使得模型过于针对训练数据,拟合了大部分的噪声,即出现过度拟合的现象。为了避免这个问题,有两种解决的办法:&/p&&br&&ol&&li&当熵减少的数量小于某一个阈值时,就停止分支的创建。这是一种贪心算法。&br&&/li&&li&先创建完整的决策树,然后再尝试消除多余的节点,也就是采用减枝的方法。&br&&/li&&/ol&&br&&br&&p&方法1存在一个潜在的问题:有可能某一次分支的创建不会令熵有太大的下降,但是随后的子分支却有可能会使得熵大幅降低。因此,我们更倾向于采用剪枝的方法。&/p&&br&&p&决策树的剪枝通过极小化决策树整体的损失函数来实现。在提高信息增益的基础上,通过对模型的复杂度T施加惩罚,便得到了损失函数的定义:&/p&&br&&img src=&/equation?tex=C_%7B%5Calpha%7D%28T%29+%3D+%5Csum_%7Bt%3D1%7D%5E%7B%7CT%7C%7DN_%7Bt%7DH_%7Bt%7D%28T%29%2B%5Calpha+%7CT%7C& alt=&C_{\alpha}(T) = \sum_{t=1}^{|T|}N_{t}H_{t}(T)+\alpha |T|& eeimg=&1&&&br&&br&&p&&img src=&/equation?tex=%5Calpha& alt=&\alpha& eeimg=&1&&的大小反映了对模型训练集拟合度和模型复杂度的折衷考虑。剪枝的过程就是当&img src=&/equation?tex=%5Calpha& alt=&\alpha& eeimg=&1&&确定时,选择损失函数最小的模型。&/p&&br&&p&具体的算法如下:&/p&&br&&p&1. 计算每个节点的经验熵;&/p&&p&2. 递归地从树的叶节点向上回缩,如果将某一个父节点的所有叶节点合并,能够使得其损失函数减小,则进行剪枝,将父节点变成新的叶节点;&/p&&p&3. 返回2,直到不能继续合并。&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&```python
# 决策树的剪枝
def prune(tree,mingain):
# 如果分支不是叶节点,则对其进行剪枝
if tree.tb.results == None:
prune(tree.tb,mingain)
if tree.fb.results == None:
prune(tree.fb,mingain)
# 如果两个子分支都是叶节点,判断是否能够合并
if tree.tb.results !=None and tree.fb.results !=None:
#构造合并后的数据集
tb,fb = [],[]
for v,c in tree.tb.results.items():
tb+=[[v]]*c
for v,c in tree.fb.results.items():
fb+=[[v]]*c
#检查熵的减少量
delta = entropy(tb+fb)-(entropy(tb)+entropy(fb)/2)
if delta & mingain:
# 合并分支
tree.tb,tree.fb = None,None
tree.results = uniquecounts(tb+fb)
tree = buildtree(my_data,scoref = giniimpurity)
prune(tree,0.1)
printtree(tree)
&/code&&/pre&&/div&&br&&p&
{'None': 7, 'Premium': 3, 'Basic': 6}&/p&&br&&br&&h2&五.决策树的优缺点分析&/h2&&p&&b& 优点&/b&&/p&&br&&ul&&li&- 易于理解和解释,甚至比线性回归更直观;&br&&/li&&li&- 与人类做决策思考的思维习惯契合;&br&&/li&&li&- 模型可以通过树的形式进行可视化展示;&br&&/li&&li&- 可以直接处理非数值型数据,不需要进行哑变量的转化,甚至可以直接处理含缺失值的数据;&br&&/li&&/ul&&br&&br&&p&&b& 缺点&/b&&/p&&br&&ul&&li&- 对于有大量数值型输入和输出的问题,决策树未必是一个好的选择;&br&&/li&&li&- 特别是当数值型变量之间存在许多错综复杂的关系,如金融数据分析;&br&&/li&&li&- 决定分类的因素取决于更多变量的复杂组合时;&br&&/li&&li&- 模型不够稳健,某一个节点的小小变化可能导致整个树会有很大的不同。&br&&/li&&/ul&&br&&br&&br&&h2&六. 深入学习&/h2&&ul&&li&- Bagging&br&&/li&&li&- 随机森林(Random Forest)&br&&/li&&li&- Boosting&/li&&/ul&&br&&br&&h2&七. 参考文献&/h2&&br&&ul&&li&- 『集体编程智慧』,第七章&br&&/li&&li&- 『统计学习方法』,第五章&br&&/li&&li&- 『Data Science from Scratch』,第17章&br&&/li&&li&- 『An Introduction to Statistical Learning』,第八章&/li&&/ul&
一.决策树的基本思想决策树是一种基本的分类与回归方法,它可以看作if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。将决策树转换成if-then规则的过程如下:由决策树的根节点到叶节点的每一条路径构建一条规则; 路径内部结点的特…
【为什么答案你看了,该啥样啥样】跑题能手又来了……(转载前请私信,请署名知乎醒心。)&br&目前为止 &a data-hash=&12fc7d6e8ea28ce85624& href=&///people/12fc7d6e8ea28ce85624& class=&member_mention& data-editable=&true& data-title=&@黄丽洁& data-hovercard=&p$b$12fc7d6e8ea28ce85624&&@黄丽洁&/a& 已经写了不少了。但是我知道看答案的你,是不会去照着做哒。&br&——————回复评论区————————&br&1.那些躺着的动作能躺一晚上吗?&br&千万别。躺着的动作,一个是肩部,一个是骨盆。肩部的动作拉伸胸小肌,但时间太长对颈椎和腰椎都不好。骨盆的动作拉伸髂腰肌,时间太长容易造成竖脊肌紧张。假如有翻身,那么容易造成脊柱侧弯。&br&(所以,正文里有拉伸竖脊肌、腹肌稳定的动作。本文是一个整体,请尽量把每个小动作都尝试一下。)&br&2.这个答案结构参考了黄女士的,部分细节来自芭蕾老师的教导。所以也希望大家去看看这个回答下的其他答案。&br&3.谢谢关注公众号的大家,没有想到这么多人……谢谢谢谢……&br&4.关于沉肩, &a data-hash=&5d7e364e912db26b3e83& href=&///people/5d7e364e912db26b3e83& class=&member_mention& data-editable=&true& data-title=&@高科& data-hovercard=&p$b$5d7e364e912db26b3e83&&@高科&/a& 有一个非常好的答案,&a href=&/question//answer/& class=&internal&&女生肩膀的上斜方肌太粗壮了怎么办? - 高科的回答&/a&。敬请围观。&br&——————原答案在下面 ————————&br&&br&我下面要写的,是如何从“驼背圆肩”开始。。&br&话说,驼背探头的人难道从来没遇到过被人提醒你“抬起头”,“好好走路”“精神点”吗……然而通常提醒最多有效半分钟,之后又是一只虾/球/锅……要是提醒一次有用,何必非要COS虾。难道那些人不知道直起来比较好看吗?&br&&br&等等,万一有真不知道的……好吧那就算了。&br&&br&单说一个&b&靠墙&/b&站着。&br&&ol&&li&&b&靠墙这个动作要求两点,一是肩胛骨打开,二是骨盆要正,三&/b&……得了吧,暂时先说前两个。&/li&&li&鉴于有人和我一样懒……首先,地板上铺点东西,躺。(一定要躺在比较硬的地方!软床垫没用。)&/li&&li&假如没有硬床板,可以&b&肩胛骨下&/b&垫瑜伽砖/泡沫轴/够大够厚的书/新的木菜板/反正……类似的吧。努力让肩胛骨铺平,摊开。(辅助动作:像仰卧起坐那样抱头,慢慢把两肘打开,肘关节分在身体两侧,去找地板/床板。)(往下翻有图)&/li&&li& 骨盆要正这个……就是把刚才那些砖啊菜板子啊,放骨盆(屁股)下面。&/li&&li&注意,有些人,躺在硬的木头上,肩胛骨打不开就会觉得硌得难受(肩胛骨靠脊柱那一侧硌着疼)。或者觉得肩膀和胸肌之间疼(丝状被拉的疼,起来就好了)。如果有这种现象,我后边单独说。&/li&&li&&br&&img src=&/7d1f6ff4bbaffaef9796df69_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/7d1f6ff4bbaffaef9796df69_r.png&&有些人,把瑜珈砖垫骨盆(屁股……)下面,会觉得正面大腿根,腹股沟那里被拉断一样疼。请垫一个高度再低一点的。(如上图,橙色是砖,红色是可能疼的部位。右上角是放松动作)&/li&&li&如果觉得“啊,觉得这样放松多了”,“好舒服啊”,就是最佳状态。觉得“有拉伸的感觉,但是能够接受”也可以。这样就天天躺一会儿。(注意!会引起腰疼!请配合平板支撑,卷腹和俯卧两头起(静态,起来就别动)服用!)&/li&&/ol&&br&然后我们说&b&靠墙的第三点和第四点,收腹,沉肩。&/b&&br&&ol&&li&咱还是躺着。&br&&img src=&/12e7bb4d5ec81f85f251da543fec3a73_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/12e7bb4d5ec81f85f251da543fec3a73_r.png&&两腿并拢,伸直,脚背伸直,抬起来离地15度,控制不动,1分钟。图中蓝色部位放个毛巾,然后使劲压那块毛巾。(此图我在另一个答案中用过)。压到别人无法把毛巾抽出来的程度。(注意,虽然我在图中画的背有弯曲,但是标准动作是&b&下背部是直的甚至是圆的&/b&)&/li&&li&一抬腿就抖怎么办?腰疼怎么办?那就不抬腿了,光压毛巾。(没错我就是如此之懒……)这个动作放在这里是练习收腹意识的。&/li&&li&注意,万一你比较勤奋,坚持抬腿,脖子不要跟着用力。抬腿这个动作不要单独大量练习。练多了腰疼。&/li&&li&沉肩。这个能单独练, &a data-hash=&5d7e364e912db26b3e83& href=&///people/5d7e364e912db26b3e83& class=&member_mention& data-editable=&true& data-title=&@高科& data-hovercard=&p$b$5d7e364e912db26b3e83&&@高科&/a& 的方法特别好,“想象你在撬一个东西”,……人类的本能万岁!多体会几次。&/li&&/ol&&br&写到这里,肩胛打开,沉肩,收腹,骨盆正,刚刚打下一个基础。&br&回头说刚才的“骨头疼,大腿根疼”那群人怎么办。&br&&br&&ol&&li& 像仰卧起坐前那样,曲腿,躺下,手抱头。手肘分开,慢慢放松,靠近地面……“哎呀妈呀疼啊。” 起来,在胳膊肘本应该落地的地方,摞两摞书(下图绿色)。最终书调整到一个“刚好觉得有拉伸感又能接受”的高度。……天天这么躺一会儿,渐渐地书堆高度就下去了。(然后肩胛骨下面垫东西,就没那么疼。)(动作来自瑜伽)(此动作可能引起颈椎不适。)&img src=&/757f27ef9dea6_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/757f27ef9dea6_r.png&&&/li&&li&拉伸大腿前侧和大腿根前侧。&/li&&li&就是这样,记得左边那个动作膝盖下垫毛巾。右边那个是侧面看,传统认为要左手抓左脚,也有人说右手抓左脚能方向正(但是相对困难)。&br&&img src=&/dbf37d0cac8f6d_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/dbf37d0cac8f6d_r.png&&&br&&/li&&/ol&&br&&b&这样大概一个月,人就能直一些。&/b&(天天做,肩胛五分钟,骨盆五分钟,收腹一分钟乘以两组,拉伸五分钟,平板一分钟,俯卧两头起一分钟,除了几个一分钟动作,其他都是躺着,适合像我一样有躺着玩手机习惯的人。)&b&你的呼吸会更轻松,胸闷将有所改善。&/b&&br&&br&这里是第一阶段。&br&&br&但是,离芭蕾气质还是有点远。&br&不像啊!就是不像啊!最多像个直点的普通人。。&br&以下第二阶段。&br&&br&来说开肩这个动作。&br&&img src=&/50a6be2d19b15_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/50a6be2d19b15_r.png&&想象中应该是这样的。&br&这个动作包括两点,肩关节拉伸,肩带拉向后方。&br&&b&肩关节拉伸&/b&是指胳膊往后,&b&肩带拉伸&/b&是肩胛骨拉向背后,一个是连着胳膊的肌肉(肱三头肌背阔肌等),一个是连着肩胛骨和肋骨的肌肉(胸小肌)。&br&&br&&img src=&/4baa8dffe780c672833fdd_b.png& data-rawwidth=&1366& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1366& data-original=&/4baa8dffe780c672833fdd_r.png&&……得了吧,普通人做出来是这样的。绿色部分代表可能疼的位置:&br&1.大腿后侧疼。结果不得不弯腿。(重灾区)&br&2.腰疼!腰往下一塌就疼,但是腰一拱起来,肩就更压不着了。(普遍)&br&3.肩疼。是肩膀外面(三角肌后束下端)疼。(我自己)&br&4.胳膊(主要是肱三头肌)疼。(常见)&br&5.手腕疼。&br&……疼也就算了,但是该疼的地方没感觉啊!&br&&br&先扔这儿吧。看点简单动作:&br&&br&&img src=&/9a112d4c1f67a15edcae2_b.png& data-rawwidth=&600& data-rawheight=&444& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/9a112d4c1f67a15edcae2_r.png&&传统方法练转肩是用棍子。我的感觉是换成弹力带效果好一些。&br&就是图左边这个动作,在身体前面抓着弹力带,过头顶,转到后边去。(此动作可能磨损肱二头肌及冈上肌肌腱,请娱乐为主,不要攀比)。&br&没有弹力带,毛巾/跳绳/轻薄的裤子/结实的裤袜,都可以,棍子/拖布杆/晾衣杆/杠铃杆也凑合。&br&&b&注意事项:最好经过热身。量力而为。我再说一遍它磨损肌腱&/b&,不要一天几百个那么练。没事娱乐一下,一次半分钟也就够了。&br&&br&图右边那个动作就必须用弹力带了。就是拿弹力带/弹力圈/松紧带/弹力绷带 结成一个圈,把圈从身后套在胳膊上。套着不动就行了。&br&注意事项:套上之后,注意沉肩。沉肩。找沉肩的感觉。&br&&br&&b&回到“开肩”动作。&/b&&br&问题1:大腿后侧疼。腿的腘绳肌柔韧性不够。每天压腿。(从此处向下,肌肉怎么拉伸请搜索,我说不过来了……)&br&问题2:腰疼。解决:趴下,保持肚子还在地上,胳膊肘撑地,抬头。(也就是压腰)&br&压完请配合回腰、平板支撑、苍天在上受我一拜式(啊,,我忘了叫啥,就是瑜珈里跪下来趴在地上折起来……的体式。)。&br&问题3,三角肌下端疼。这是我自己的问题……最后用拉伸背阔肌解决的,……ORZ。&br&问题4,肱三头肌疼。拉伸肱三头肌。&br&问题5,手腕疼。后来我找到了解决办法,被自己蠢哭了——不用手腕搭把杆不就好了……直接小臂搭上去啊……&br&&br&&br&开肩说完了,还有拉脖子。&br&就是&b&放松斜方肌上束、胸锁乳突肌等,左看右看&/b&&b&上看下看,左看再低头抬头看,右看再低头抬头,左右扭头&/b&,。。。。等等。静止动作,每个动作维持15秒以上。&br&&br&平时注意要走路抬头,“耳朵往上拎”,大概是有人拎着你的耳朵往上的感觉。&br&&br&一个问题是,人是一个复杂的整体,如果你肩胛位置准确、脖子放松、随时抬头,但是同时有骨盆前倾的话,你的腰就会受到比之前更大的压力。既然想要芭蕾气质,你一定不想要芭蕾常见伤……&br&解决办法(避免骨盆前倾):&br&&ol&&li&拉伸髂腰肌,一分钟起(静止不动)。&/li&&li&骨盆卷动(请搜索),臀桥/肩桥,以及各种美臀动作。&/li&&li&腹肌训练。腹肌常见的卷腹啊反向卷腹啊……花式平板支撑啊……前面那个举腿压毛巾啊……&/li&&li&背部肌肉训练(俯卧两头起,健身房的罗马椅挺身等)&/li&&li&仰卧起坐,传统的那种。(这个不算腹肌训练,但是用来练习髂腰肌竖脊肌好像还凑合。)&/li&&/ol&6.配合拉伸下背部动作。&br&&br&&br&算一下时间:以背肌训练和腹肌训练热身,腹背肌各两个动作,每组20个,做两组,5分钟。&br&仰卧起坐20个,2分钟。&br&脖子运动,每个动作15秒,3分钟。&br&压腰+平板支撑,3分钟。&br&骨盆卷动+俯撑后摆腿/后踢腿(练习臀部)+侧躺摆腿+躺着踢腿,每个动作1分钟1组,两组,14分钟。&br&压腿,拉伸腘绳肌,髂腰肌,股四头肌。(4分钟)(个人习惯是先踢再压,也有人喜欢先压再踢。)&br&拉伸肩部。弹力带开肩。(3分钟)&br&以拉伸背部动作结束。(1分钟)&br&动作时间计25',加上磨蹭时间和擦汗喝水时间,大概40-60分钟。&br&&br&等等(此处尔康手)! 不是说开肩吗!&br&我只是要芭蕾气质的肩和脖子……你跟我说我还要压腿和拉伸,还要练腹肌和背肌……我不和你玩了!我要找妈妈……这里有坏人……&br&呃。。。。那么请往前翻,就是第一阶段“像个直一点的普通人”。&br&&br&&br&到现在,基础打好了。平时注意抬头,收腹,沉肩,肩膀自然打开,骨盆正直……像芭蕾气质了吗?&br&呃……如果坚持每周两次每次40分钟……半年到一年……之后可能会比较像瑜伽、艺术体操的气质……介于普通人和舞蹈学生之间。&br&这里是第二个层次了。如果想要“做一个看起来有不俗气质的人”,大概能收手了罢。&br&而且不同于减肥的是,体态训练坚持下来后定型更容易,不易反弹。&br&&br&&br&……诶……那万一,一定要芭蕾气质呢?&br&很难。(请详细参见 &a data-hash=&a08d8efbc4ea015b24c4b& href=&///people/a08d8efbc4ea015b24c4b& class=&member_mention& data-editable=&true& data-title=&@宋小姐& data-hovercard=&p$b$a08d8efbc4ea015b24c4b&&@宋小姐&/a& 的答案。) &br&肩要打开、要主动打开。要沉肩,要沉肩状态下抬手臂。&br&背要收紧、要主动收紧。要收腹,又要自然呼吸。&br&骨盆要正,要尾椎朝下。&br&膝盖要提。脚掌要均匀施力。要有灵活的踝关节,又要有力量。&br&这里我们需要一个人有录像、摄影设备,并且会及时认真和专业动作对比,查看结果分析原因……&br&还要自己进行相关的训练……还要瘦成闪电……&br&&br&真的会有人这样做吗。&br&当付出足够多的时候……&br&为什么我付出了如此多的时间,来做这些事呢?&br&为了让我显得有芭蕾气质。&br&为了让我显得漂亮。&br&为了让别人喜欢我……&br&&br&&br&为什么要让别人喜欢你呢?&br&呃……原来……我做这一切,都是为了,让别人喜欢,吗……(崩溃)。&br&事实上,这种崩溃来得特别容易,大概练一次就够了,参见大家的减肥坚持时间。在“付出”和“收获”上,每个人心里都有一个天平。&br&&br&&br&当在芭蕾(业余)课堂上时,一个人注意到的是“今天偷懒被抓了”“还有小A也被抓了”……“今天老师的示范动作好搞笑”“今天大家群魔乱舞把老师气得好无奈”……“小B的动作好漂亮”“小C好有气质……”“课堂上来了个奇葩……”“昨天上完课腿酸……哎呀原来大家都说酸我平衡了……”&br&上课是很欢乐的,那些欢乐,那些进步,那些团结起来的氛围,那些互相牵挂的同学们,那些一起吐槽的日子。&br&以及,“今天学了新组合”,“今天学了新动作”,“可以学足尖动作了”,和“我也想学挥鞭转……”。 &br&&br&这些才是努力提高自己的动力。是为了“开心”。&br&在“为什么要变漂亮”那里,如果想着,变成那样以后,我自己更喜欢我自己了。&br&才会真的开心,是吗?&br&&br&事实上,我想写的,是一个关于开心的事情。&br&&br&第一部分“从驼背变成普通人”,是在说,如果站直了,会更舒服,会更开心。&br&第二部分“从普通人变成略有气质”,是想说,看着一步步努力的自己,会很开心。看到变得更自信的自己,会很开心。&br&第三部分“从略有气质到芭蕾舞者”,也是说,从孤独的努力,到与同伴和老师共同协作,达到了想要的效果的同时,收获了更多的快乐。&br&&br&活得更舒服,更自在。更轻松,更有自信。更喜欢自己。&br&……更开心。&br&&br&祝大家都能努力变成更好的自己。&br&谢谢大家。&br&&br&&br&—————那个———————————&br&广告时间:&br&这个答案写的时候,我是失业状态。&br&后来我去当健身教练了,这里也挂过工作室公众号的广告。&br&再后来,我自己开了个健身体能班。面向女性健身和舞蹈爱好者。&br&后来我又从知乎找到了个一起当教练的同事。&br&&br&现在这里挂的是个人公众号,里面干货不多,日常瞎扯和通知倒是不少。每天看着几个人从知乎过来,关注,又取关。我猜可能大家以为我的公众号是个干货号吧。没有,它是水货号。&br&&br&欢迎关注个人体能班公众号:醒心与于震。
【为什么答案你看了,该啥样啥样】跑题能手又来了……(转载前请私信,请署名知乎醒心。) 目前为止
已经写了不少了。但是我知道看答案的你,是不会去照着做哒。 ——————回复评论区———————— 1.那些躺着的动作能躺一晚上吗? 千万别。躺…
事情有两个。&br&先讲第一个。&br&&br&我高二那年,积攒了大概两千块钱。我当时读的是三流高中,班级里的普遍现象是大家都在得过且过,当一天和尚撞一天钟。某一天上课我心里突然就萌发出一个想法:我不能这么浑浑噩噩,我要有一点改变。当年那一句“身体和灵魂总要有一个在路上”让我中毒颇深。在下一秒我就开始想好自己暑假要去哪里玩了。&br&&br&接着就到了暑假,我从市里回农村,我每次回老家都会收拾几身衣服,带几双鞋。其实那次的准备就是在为出游做准备,和每次回老家准备的也并无差异,爹妈也没多心。&br&&br&回到奶奶家和奶奶直接坦白,虽然奶奶一辈子都生活在农村,但并不是一个顽固不化的老封建。我大致说的就是想出去玩几天,也不去外地,就去克旗。奶奶说一天别忘记来一个电话就可以了。我们老家地处一个很尴尬的地段,下数十几公里是政府扶持的养殖项目,上数十几公里是草原地段。我要去的那个地方就是上数地段,有三个小时的车程。主要是想去看草原。觉得自己一个内蒙古的本土人,长到十几岁连草原都没看过,以后去外地读书别人问起那也是太尴尬了。&br&&br&我高二的时候,流行的手机还是半智能机。我读的学校也是半封闭高中,像网络订票,网上定酒店什么的在当时是闻所未闻的,所以没有一点准备就直奔草原。到了克旗(一个很小的市,蒙人汉人的杂居地)先上的出租车,也不知道自己该去哪,上了出租车先让司机带我去市中心大楼,大概潜意识里觉得每个城市的市中心大楼是整个城市最厉害的地方吧。司机看了我一眼,问我也是假期过来旅游吧,我回答的也是痛快,问司机有没有好的地方推荐。司机说那就直接在中心大楼坐黑车或者客车去达理。说达理是离这里最近的草原,周围也有挺多景点的,住宿吃饭什么的也很方便。到了中心大楼基本就是想都没想就坐上了去达理的客车。反正我就是想看草原,至于在哪里看都是无所谓的。&br&&br&到了达理的时候已经下午五点以后了,饥肠辘辘,第一反应是先去找点吃的。我是在银行门口下的车,转身就进了银行旁边的饺子馆。五点还不是饭点时间,要了份饺子,狼吞虎咽的吃,老板在柜台站着看着我笑了笑,问了我是几年级的学生,家里在哪住。我一一作答,结果发现我和老板两个人的老家就隔着那么几公里而已,老板特别开心,拎着暖壶就过来给我添锅茶,老板说自己七岁那年父母带着来这边定居的,现在就是个被蒙化了的汉人,这么多年除了逢年过节回村里上坟拜年还真是和那边人没什么联系。这次突然遇到一个家乡人还真是意外,因为他们镇上除了旅游旺季游客多,还真是少有外地人过来,总之两个人说了很久的话。&br&&br&也就过了几十分钟,一桌一桌的上了很多客人,我也吃饱了,老板问我找到住宿的地方了么,我说还没有。他说那你等会,忙完以后我带你去住宿,价钱能便宜很多。那我肯定欣然接受喽。老板和老板娘屋里屋外的忙的脚不离地,我在那百无聊赖的坐着。我之前也在亲戚的饭店帮过忙,就主动帮着收拾,老板和老板娘都特别开心,夸我懂事。&br&&br&后来住宿的地方是老板带我去的,房间干净,收费也不贵。我在那待了一个星期,吃饭就去他们家的饭店,一顿饭钱也没收过。当时他家还有个初一的孩子,我每次出去玩回来后没事做就帮着他补补课。走之前,我在屋里的茶盘下放了几百块钱,写张纸条说麻烦老板照顾了。因为当时都留了联系方式还留了微信号,上车之后发短信告诉的老板。老板打过电话怪我太见外,还说明年一定要过来玩,吃住行他全包了。&br&&br&回家后我父母也没多说我什么,但我是的忍不住的人,在饭桌吃饭就坦白自己出去玩的事了,我爹说了句你早晚都得自己经历,出去就出去了。我妈听我讲了老板的事就告诉我明年一定要去,要讲信用,蒙族人是特别重承诺之类的话。&br&&br&到了第二年暑假,大包小包的带了特别多东西,给老板的半袖,给老板娘的小包,给弟弟的零食和课外书,当然,这些东西都是老妈出钱买的。&br&&br&直奔目的地,进了饭店直接喝茶吃手把肉。蒙族人的豪爽那一瞬间就领略得到了。我也是后来才知道蒙族人给外人喝奶茶那就是心里很认同她是朋友了,而蒙族人家里的手把肉也是最高的待客礼节。饭桌上我们之间发生了很微妙的变化,老板和老板娘不再喊我名字了,而是叫丫头,他家的孩子也是很自然的喊我姐姐,我也喊叔叔和婶子,不再左一句老板,右一句老板娘。又住了一个星期左右,期间都是淅淅沥沥的小雨天,这一年景点基本就是没怎么去,除了吃和睡就是在饭店给老板帮忙。到家后发现自己的背包夹层里多了几百块钱。特别感动。&br&&br&到了寒假的时候,叔叔带着弟弟来赤峰市里做手术,我每天上午补完课,下午就去教弟弟数学,几天后婶子来医院做检查(那时候刚怀了宝宝没几个月,据叔叔说他们一直都想要个女儿,但总也得不来,我暑假走了之后没多久婶子就怀孕了,叔叔一直都觉得是我带的福气~)有时候闲着没事就是在病房里欢乐的聊天,期间我爸爸也带了营养品过来看望弟弟,那算是从开始我自己一个人单方面交往变成两家人的交往。&br&&br&现在差不多五年了吧,期间发生了很多故事。我弟弟当年身高还没我高,现在已经高出我一头了,我很感谢那天课上的躁动,也很感谢那天转身走进饺子馆的自己。&br&&br&这不算是大开眼界的经历,应该算是在大开眼界的过程中遇到的奇妙经历,来个和我蒙古族老弟的合影~~因为我弟弟最帅~~&br&&br&&img src=&/v2-f8ccf044f85df709c8de_b.jpg& data-rawwidth=&720& data-rawheight=&972& class=&origin_image zh-lightbox-thumb& width=&720& data-original=&/v2-f8ccf044f85df709c8de_r.jpg&&
事情有两个。 先讲第一个。 我高二那年,积攒了大概两千块钱。我当时读的是三流高中,班级里的普遍现象是大家都在得过且过,当一天和尚撞一天钟。某一天上课我心里突然就萌发出一个想法:我不能这么浑浑噩噩,我要有一点改变。当年那一句“身体和灵魂总要有…
在东莞大扫黄后的一天,一个业务员a请我在n市的一家酒店吃饭,服务员竟然都是除了内裤什么都不穿的漂亮妹子,我一边吃饭服务员一边按摩,我心想a所说的cosplay难道就是这样?宾客正欢的时候,突然冲进来一群警察,说我们涉及淫秽交易,要逮捕我们,其中两个英姿飒爽的女警员甚是嚣张,其中一个更是牢牢锁住我的手。然后又出来了一帮人,以迅雷不及掩耳之势控制住了警察。其它人叫我关住被绑住的女警察。面对这帮比警察还厉害的人我还敢忤逆吗?女警察的衣服不知什么时候被扯破了,绑住的时候身材也凸显了出来,我在关押她的过程中心猿意马,她一副委屈却临危不惧的英气却使我不敢乱动。。。。。。&br&等到她和所有酒店的人嘻嘻哈哈时我才发觉自己是傻逼,连经理暗示的补炮也没心思理会。出来的时候,a说这些服务有金卡才能享受到。妈的神经病,卖淫还搞这么多事,不过话说他们演技真好。&br&不久前我去到n市,那个酒店已经倒闭。不过n市俨然变成了第二个东莞。不,也许当年的东莞在它面前都自愧不如了。可是很多人还没有意识到。
在东莞大扫黄后的一天,一个业务员a请我在n市的一家酒店吃饭,服务员竟然都是除了内裤什么都不穿的漂亮妹子,我一边吃饭服务员一边按摩,我心想a所说的cosplay难道就是这样?宾客正欢的时候,突然冲进来一群警察,说我们涉及淫秽交易,要逮捕我们,其中两个…
&p&看了很多答主的精彩回答,因为自己平时也喜欢捣鼓系统,且从事设计相关的工作,下面就&b&从美化系统的角度,兼一些效率类软件&/b&,来给大家做推荐吧。(第 4 次更新)&/p&&br&&p&桌面镇楼:&/p&&img src=&/v2-7e022b1fb5acd3415fa8_b.png& data-rawwidth=&2560& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&/v2-7e022b1fb5acd3415fa8_r.png&&&p&文件夹展开状态:&/p&&img src=&/v2-d43b3f65df7c05bf83b91_b.png& data-rawwidth=&2560& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&/v2-d43b3f65df7c05bf83b91_r.png&&&p&&b&&u&可口可乐主题(更新4):&/u&&/b&&/p&&p&&img src=&&a href=&///?target=https%3A///v2-e9b1aebbf694e_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-e9b1a&/span&&span class=&invisible&&ebbf694e_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&2560& data-rawheight=&1080& class=&content_image& width=&2560& data-original=&&a href=&///?target=https%3A///v2-e9b1aebbf694e_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-e9b1a&/span&&span class=&invisible&&ebbf694e_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&丰富拼贴之后:&/p&&p&丰富拼贴之后:&/p&&img src=&/v2-544abf0aaa52de1_b.png& data-rawwidth=&2560& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&/v2-544abf0aaa52de1_r.png&&&br&&br&&br&&br&&p&&b&&u&桌面之所以看起来那么宽,是因为用了21:9的超宽屏,壁纸原图&a href=&///?target=http%3A///calm-mirror-219-wallpaper/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Ultrawide Monitor 21:9 Wallpapers&i class=&icon-external&&&/i&&/a&,在16:9的屏幕下,显示效果不知道怎样,知友自己裁剪下吧。(更新1)&/u&&/b&&/p&&br&&br&&br&&br&&p&&b&1. Fences(将桌面文件自动分类,摆放到特定文件夹或区域)&a href=&///?target=http%3A///products/fences/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/products/f&/span&&span class=&invisible&&ences/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/b&&/p&&br&&p&非常喜欢这个软件,觉得它&b&兼备了美化与效率&/b&,以前一台电脑用久了,桌面就满是图标,虽然可以手动整理,但就是懒得去做。这样一来,能让桌面简洁不少,也省去整理图标的功夫。&/p&&p&&img src=&&a href=&///?target=https%3A///v2-6fca658d97f015a53f21_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-63275&/span&&span class=&invisible&&bb578027fca658d97f015a53f21_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&978& data-rawheight=&825& class=&content_image& width=&978& data-original=&&a href=&///?target=https%3A///v2-6fca658d97f015a53f21_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-63275&/span&&span class=&invisible&&bb578027fca658d97f015a53f21_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&▲ 官方截图(软件免费30天,之后付费,淘宝有便宜的买)&/p&&p&▲ 官方截图(软件免费30天,之后付费,淘宝有便宜的买)&/p&&br&&p&&img src=&&a href=&///?target=https%3A///v2-9eb6d1d3fb47a774a3db58eacf88ccf1_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-9eb6d&/span&&span class=&invisible&&1d3fb47a774a3db58eacf88ccf1_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&1195& data-rawheight=&860& class=&content_image& width=&1195& data-original=&&a href=&///?target=https%3A///v2-9eb6d1d3fb47a774a3db58eacf88ccf1_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-9eb6d&/span&&span class=&invisible&&1d3fb47a774a3db58eacf88ccf1_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&▲ 新建的office文件可以规定它摆放在哪个框框里,通过网页保存的文件同理&/p&&p&▲ 新建的office文件可以规定它摆放在哪个框框里,通过网页保存的文件同理&/p&&br&&p&&img src=&&a href=&///?target=https%3A///v2-a88024be4_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-05211&/span&&span class=&invisible&&dbe4_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&976& data-rawheight=&535& class=&content_image& width=&976& data-original=&&a href=&///?target=https%3A///v2-a88024be4_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-05211&/span&&span class=&invisible&&dbe4_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&▲ 如果有人不喜欢这些文件框,可以去掉,文件框和字体都可以自定义&/p&&p&▲ 如果有人不喜欢这些文件框,可以去掉,文件框和字体都可以自定义&/p&&br&&p&详细功能与设置有兴趣的同学可移步官网&b&&a href=&///?target=http%3A///products/fences/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/products/f&/span&&span class=&invisible&&ences/&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/b&&/p&&br&&br&&br&&p&&b&2. Rainmeter(好像发布挺长时间了,因为自由度高,可以获取系统层信息,一直很受欢迎)&/b&&/p&&p&官网:&a href=&///?target=https%3A//www.rainmeter.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Rainmeter, desktop customization tool&i class=&icon-external&&&/i&&/a&&/p&&br&&p&答主用它来显示日期时间,系统与音乐播放器的相关信息。&/p&&img src=&/v2-541a8d41cac14d639a526cbb5dd63b26_b.jpg& data-rawwidth=&2560& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&2560& data-original=&/v2-541a8d41cac14d639a526cbb5dd63b26_r.jpg&&&br&&p&每个用Rainmeter显示的东西,都需要用户通过代码来实现,安装后默认有一套官方自带的皮肤,如果想要更多的皮肤样式,可以百度或谷歌一些大神的作品,再根据自己的需求修改代码。&b&(Rainmeter代码规则:&a href=&///?target=https%3A//docs.rainmeter.net/manual/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Manual - Rainmeter 3.3 Manual&i class=&icon-external&&&/i&&/a&)&/b&&/p&&br&&p&因为用的是spotify播放器,所以要有特殊的插件支持,搜到在deviantart刚好有大神做的这个皮肤。&a href=&///?target=http%3A///art/Monstercat-Visualizer-for-Rainmeter-1-4-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Monstercat Visualizer for Rainmeter 1.4&i class=&icon-external&&&/i&&/a& (支持主流播放器)&/p&&br&&p&&b&&u&有知友反应下不了,因为皮肤的下载在mega,没有科学上网加载不出来,附上百度盘:&a href=&///?target=http%3A///s/1eS0ZQJC& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/s/1eS0ZQJ&/span&&span class=&invisible&&C&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& (更新3)&/u&&/b&&/p&&br&&img src=&/v2-a28f3acf73b8597dc3bbb99332b3ecb1_b.png& data-rawwidth=&1200& data-rawheight=&645& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&/v2-a28f3acf73b8597dc3bbb99332b3ecb1_r.png&&&br&&p&&img src=&&a href=&///?target=https%3A///v2-357f64f98a875c2b6c4d6a8407cdd548_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-357f6&/span&&span class=&invisible&&4f98a875c2b6c4d6a8407cdd548_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&509& data-rawheight=&161& class=&content_image& width=&509& data-original=&&a href=&///?target=https%3A///v2-357f64f98a875c2b6c4d6a8407cdd548_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-357f6&/span&&span class=&invisible&&4f98a875c2b6c4d6a8407cdd548_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&▲ 鼠标悬停效果,显示效果非常大方。&/p&&p&▲ 鼠标悬停效果,显示效果非常大方。&/p&&br&&p&&img src=&&a href=&///?target=https%3A///v2-aa5ad456fe467d87e2f7e7_b.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-aa5ad&/span&&span class=&invisible&&456fe467d87e2f7e7_b.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&& data-rawwidth=&700& data-rawheight=&453& class=&content_image& width=&700& data-original=&&a href=&///?target=https%3A///v2-aa5ad456fe467d87e2f7e7_r.png& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/v2-aa5ad&/span&&span class=&invisible&&456fe467d87e2f7e7_r.png&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&&▲ 还有自定义样式的界面,很棒。&/p&&p&▲ 还有自定义样式的界面,很棒。&/p&&br&&p&系统信息的显示找的也是deviantart上的作品,再根据自己需求修改颜色字体。&a href=&///?target=http%3A///art/SMPLCTY-for-Rainmeter-1-1-1-& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SMPLCTY for Rainmeter [1.1.1]&i class=&icon-external&&&/i&&/a&&/p&&img src=&/v2-26bc8def51f4_b.png& data-rawwidth=&984& data-rawheight=&687& class=&origin_image zh-lightbox-thumb& width=&984& data-original=&/v2-26bc8def51f4_r.png&&&br&&p&&b&(想找到自己喜欢的皮肤,可以百度“雨滴 系统”,或谷歌“Rainmeter system”,或者查阅Rainmeter官方代码规则,自己制作。)&/b&&/p&&br&&br&&br&&p&&b&3. Start10(与fences是同个软件商,修改开始菜单样式)&/b&&/p&&p&&b&&a href=&///?target=http%3A///products/start10/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Software from Stardock Corporation&i class=&icon-external&&&/i&&/a&&/b&&/p&&img src=&/v2-3b7f0f638_b.png& data-rawwidth=&543& data-rawheight=&515& class=&origin_image zh-lightbox-thumb& widt}

我要回帖

更多关于 ai置入图像定义 的文章

更多推荐

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

点击添加站长微信