前两天减仓之后 今天尾盘又小幅加仓。买回了巨星科技 星网锐捷 天箭科技 航发科技 本月 除了 第一天 都是仓位不重 一直没法推高仓位
打马赛克的是撸的短线。我这两天 一直在纠结 是不是要大幅减仓 虽然沪指还在2900左右 但是近期一个月 放跑了很多想买的 牛股 德赛西威 得润电子 药明康德 兆易创新 宁德时代 等等。2900点 跌倒2800 估计抄底的人就很多了 但是你想买的个股会跌很多吗
现在最大的问题就是 新冠到底还会不会 大幅二次爆发。美股指数 两个月 涨了三年的幅度 30%。还会大幅回调多少?10%?20% ?特斯拉 亚马逊 苹果新高 。美股回调 会带动A股回调多少。
我个人觉得 美股可能会回调百分之15% A 股指数跟跌8% 到2750左右 近期 5成仓 到时候 就是 满仓满融之时。
说实话 近期创业板50 也上涨了21% 百元股指数也已经收复股灾 失地 完完全全的牛市走势 我自身也很纠结是不是要大幅减仓。
我会在他两回踩十日线的时候 加仓
XGboost 贪心法则寻找
在XGB中,我们使用的方式是类似的:我们首先使用目标函数来衡量树的结构的优劣,然后让树从深度0开始生长,每进行一次分枝,我们就计算目标函数减少了多少,当目标函数的降低低于我们设定的某个阈值时,就让树停止生长。
LightBGM
LightGBM和XGBoost对比
LightGBM可以看成是XGBoost的升级加强版本,2017年经微软推出后,便成为各种数据竞赛中刷分夺冠的神兵利器。
正如其名字中的Light所蕴含的那样,和XGBoost相比,LightGBM在大规模数据集上跑起来更加轻盈。
模型精度:XGBoost和LightGBM相当。
训练速度:LightGBM远快于XGBoost。
内存消耗:LightGBM远小于XGBoost。
缺失值特征:XGBoost和LightGBM都可以自动处理特征缺失值。
分类特征:XGBoost不支持类别特征,需要OneHot编码预处理。LightGBM直接支持类别特征。
二,LightGBM性能优化原理概述
LightGBM在XGBoost上主要有3方面的优化。
1,Histogram算法:直方图算法。
2,GOSS算法:基于梯度的单边采样算法。
3,EFB算法:互斥特征捆绑算法。
可以用如下一个简单公式来说明LightGBM和XGBoost的关系:
LightGBM = XGBoost + Histogram + GOSS + EFB。
那么,Histogram算法,GOSS算法,和EFB算法分别从什么角度对XGBoost进行性能优化呢?我们先概括性地从全局进行分析,然后再逐个加以介绍。
XGBoost模型训练的总体的复杂度可以粗略估计为:
训练复杂度 = 树的棵数✖️每棵树上叶子的数量✖️生成每片叶子的复杂度。
XGBoost采用的基模型是二叉树,因此生成每片叶子需要分裂一次。而每次分裂,需要遍历所有特征上所有候选分裂点位,计算按照这些候选分裂点位分裂后的全部样本的目标函数增益,找到最大的那个增益对应的特征和候选分裂点位,从而生成一片新叶子。
生成一片叶子的复杂度可以粗略估计为:
生成一片叶子的复杂度 = 特征数量✖️候选分裂点数量✖️样本的数量。
而Hitogram算法的主要作用是减少候选分裂点数量,GOSS算法的作用是减少样本的数量,EFB算法的作用是减少特征的数量。
通过这3个算法的引入,LightGBM生成一片叶子需要的复杂度大大降低了,从而极大节约了计算时间。
同时Histogram算法还将特征由浮点数转换成0~255位的整数进行存储,从而极大节约了内存存储。
Histogram算法
直方图算法是替代XGBoost的预排序(pre-sorted)算法的。
预排序算法首先将样本按照特征取值排序,然后从全部特征取值中找到最优的分裂点位,该算法的候选分裂点数量与样本数量成正比。
而直方图算法通过将连续特征值离散化到固定数量(如255个)的bins上,使得候选分为点位为常数个(num_bins -1).
此外,直方图算法还能够作直方图差加速。当节点分裂成两个时,右边叶子节点的直方图等于其父节点的直方图减去左边叶子节点的直方图。从而大大减少构建直方图的计算量。



直方图算法的基本思想是先把连续的浮点特征值离散化成k个整数(其实又是分桶的思想,而这些桶称为bin,比如[0,0.1)→0, [0.1,0.3)→1),同时构造一个宽度为k的直方图。
在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。

使用直方图算法有很多优点。首先,最明显就是内存消耗的降低,直方图算法不仅不需要额外存储预排序的结果,而且可以只保存特征离散化后的值,而这个值一般用8位整型存储就足够了,内存消耗可以降低为原来的1/8。然后在计算上的代价也大幅降低,预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算k次(k可以认为是常数),时间复杂度从O(#data#feature)优化到O(k#features)。
四,GOSS算法
GOSS算法全称为Gradient-based One-Side Sampling,即基于梯度的单边采样算法。
其主要思想是通过对样本采样的方法来减少计算目标函数增益时候的复杂度。
但如果对全部样本进行随机采样,势必会对目标函数增益的计算精度造成较大的影响。
GOSS算法的创新之处在于它只对梯度绝对值较小的样本按照一定比例进行采样,而保留了梯度绝对值较大的样本。
这就是所谓的单边采样。由于目标函数增益主要来自于梯度绝对值较大的样本,因此这种方法在计算性能和计算精度之间取得了很好的平衡。

EFB算法
EFB算法全称是Exclusive Feature Bundling,即互斥特征绑定算法。
EFB算法可以有效减少用于构建直方图的特征数量,从而降低计算复杂度,尤其是特征中包含大量稀疏特征的时候。
在许多应用场景下,数据集中会有大量的稀疏特征,这些稀疏特征大部分样本都取值为0,只有少数样本取值非0。
通常可以认为这些稀疏特征是互斥的,即它们几乎不会同时取非零值。
利用这种特性,可以通过对某些特征的取值重新编码,将多个这样互斥的特征捆绑成为一个新的特征。
有趣的是,对于类别特征,如果转换成onehot编码,则这些onehot编码后的多个特征相互之间是互斥的,从而可以被捆绑成为一个特征。
因此,对于指定为类别特征的特征,LightGBM可以直接将每个类别取值和一个bin关联,从而自动地处理它们,而无需预处理成onehot编码多此一举。