AI简历问题解答

1. 朝阳永续库是什么?

朝阳永续库是金融领域里面的一个数据库,它里面有所有A股上市公司的一些数据,包括基本的股票实时数据、基本的财务数据、各大券商对公司的预测数据。我在华泰做的就是股票的一致预期数据,一致预期数据就是每家金融机构了都会对个股进行预测,比如今天营收是多少,今年的净利润是多少,然后朝阳永续将这些数据汇总到数据库中供用户使用。

2.你对这些数据主要做了哪些处理?

(特征处理和深度学习项目看这里)卷积神经网络预测股票走势项目内容概括

机器学习相关问题看这里:机器学习之问答题汇总

你在数据处理中遇到了哪些问题,都是怎样解决的?

  • 缺失值问题

    • 采用的最多的是用前期的报告数据进行填充
    • 一般很少用中位数进行填充,因为基本的财务数据没家公司相差很大。
    • 采用的是增长率填充法:相近的月份的财务数据增长比例应该是一样,采用相同的增长率来进行填充。比如某家公司2月份的数据缺失,我们知道前两个月的数据(1月和12月份),我们通过1月和12月能够算出一个增长率来,之后利用这个增长率和1月份的数据就能够算出2月份的数据来。
    • 大量的数据全是零(分析师报告中上调的数量)
    • 补0法
  • 大量的数据都为0

  • 查找数据太慢,大量的数据需要下载

为什么当初想去金融领域实习,现在想找互联网相关的工作?

  • 为了拿到数据,金融领域本来就是AI的一个比较大的场景,金融业存在大量的数据,但是这些数据并不是开源的,一些做的比较好的数据上的服务都是很贵的,像wind和朝阳永续,去券商和金融公司我能够拿到这些数据进行研究。
  • 我本身对投资很感兴趣,因为我觉得投资是一个人回避不了的话题,我同时又对编程和人工智能很感兴趣,而量化是一个很好的结合点,能够让我既能够接触到投资方面的东西,而且能够做自己喜欢做的Al方向,做自己感兴趣的东西才是最大的乐趣。
  • 之所以现在回到互联网,是因为我在券商实习的时候发现他们做的东西很虚,他们的主要工作是做发研究报告,有些东西我们明明没有做出来,但是却能够写得天花乱坠以为很厉害,这和我想真正做点东西的愿望不符。
  • 慢慢接触了量化之后我发现虽然做的是金融方面的东西,但是本质上是计算机算法上面的工作,我们就是要把每天的各种交易思想能够用数据分析来进行解决,而去互联网公司做无疑是最好的选择。

分层回测、回归法、和IC值

  • 分层回测: 这个是单个特征的分析方法,首先标准化去极值,按照特征值的大小进行排序,按照排序的结果分为几层(一般为5-10层),去计算每层相对于收益率的大小的IC值,看是否存在正相关。
  • 去极值的方法:
    • 中位数去极值:首先取出特征中的中位数Xm,然后再取出|Xi - Xm|的中位数Dmad,将Xm减去n*Dmad得到处理后的值,n为倍数。去完极值之后再进行标准化。
    • 因子载荷排序值标准化。
  • IC值:IC值指的是特征与收益率的相关系数,使用的都是spearman相关系数,
  • spearman相关系数pearson相关系数的区别:
    • person相关系数的要求需要连续线性正太分布,spearman不需要满足这些条件。
    • 另外person需要在同一限度范围之内才能比较相关性,比如一个人的数学和语文成绩的相关性可以用person,因为都是100分,但是一个人的成绩排名和数学成绩就不能比较。

FDDC金融预测大赛

  • 特征工程
    • 特征工程主要处理步骤

      • 将三张报表合并, 去除掉缺失率大于50%的特征

      • 只选择最后发布的报表,如果最新财报有数据缺失则在前面的财报中填充

      • 去除掉标签页缺失的的数据

      • **填充:**优先比例推测、平均值、众数。

        假如2018年第一季度值缺失

        A公司2016年第一季度/A公司2015年第一季度 = 1.11

        A公司2017年第一季度/A公司2016年第一季度 = 1.12

        A公司2018年第一季度/A公司2017年第一季度 ? 1.12左右

      • one-hot编码上市公司代码后缀

      • 将偏斜度(skew)大于0.6的数值列做一个log转换,使之尽量符合正态分布,因为很多模型的假设数据是服从正态分布的(关于skewness和box_cox的介绍可以看这个使用Box-Cox转换的益处

      • Box-Cox变换后,残差可以更好的满足正态性、独立性等假设前提,降低了伪回归的概率(关于box_cox介绍可以看这里

      • 标准化和归一化处理

    • 特征的增加

      • 例如:历史营业收入

      已有每年的Q1(3个月),S1(6个月),Q3(3个月),A(12个月)

      构造Q2(3个月), Q4 (3个月), S2 (6个月)

      同比特征(On year-on-year basis):

      2018Q1 / 2017Q1

      2017Q4 / 2016Q4

      2018Q1 / 2017Q1 * 2017Q2

      2017Q4 / 2016Q4 * 2017Q2

      环比特征(Link relative ratio):

      2018Q1 / 2017Q4

      2017Q4 / 2017Q3
      在这里插入图片描述

  • 使用sklearn库中的RFECV进行特征筛选。选择使得得分最高的一些特征。
    RFECV 参考:sklearn – --特征选择(二)
    原理与特性
    使用交叉验证来保留最佳性能的特征。不过这里的交叉验证的数据集切割对象不再是 行数据(样本),而是列数据(特征),同时学习器本身不变,最终得到不同特征对于score的重要程度,然后保留最佳的特征组合。其分割方式类似于随机森林中的列上子采样。

一些重要的属性与参数 step : 整数时,每次去除的特征个数,小于1时,每次去除权重最小的特征 scoring :
字符串类型,选择sklearn中的scorer作为输入对象 cv : 默认为3折 整数为cv数 object:用作交叉验证生成器的对象
An iterable yielding train/test splits. 对于 迭代器或者没有输入(None), 如果 y 是 二进制
或者 多类,则使用 sklearn.model_selection.StratifiedKFold. 如果学习器是个分类器 或者 如果 y
不是 二进制 或者 多类,使用 sklearn.model_selection.KFold.

如果你对于前面的花不太理解,那么你可以看一下下面的例子,或者自己动手尝试一下

例子一 对于前面RFE中的数据集进行验证,应当应该保留那些特征:

N_features 4 Support is [ True  True  True  True] Ranking [1 1 1 1]
> Grid Scores [ 0.91421569  0.94689542  0.95383987  0.96691176]

好吧,看来都应该保留

例子二 RFECV的强大作用:

>   Optimal number of features : 3 Ranking of features : [ 5  1 12 19 15
> 6 17  1  2 21 23 11 16 10 13 22  8 14  1 20  7  9  3  4 18]

在这里插入图片描述

(划重点了,咳咳)

通过RFECV我们得知,原来只需要三个特征就好了,首先这确实符合我们构造的数据,同时这也向我们展示了RFECV的强大潜力,看来它将成为我们之后进行特征选取的一个重要助手

mini-batch

为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例

Batch-Normalization

Batch-Normalization详细解析

  • 什么是Batch-Normalization?
    对batch的数据做四步,1,获得mini-batch。2求均值和方差。 3,做标准化。4.线性变换。
  • 为什么要用Batch-Normalization?
    • 训练神经网络的时候我们需要把训练数据一批一批的导入,由mini-batch来控制,因为数据比较的少量,所以没批的数据的分布都是不一样的,保证每次rule都是相同分布的数据。(具体参考链接)
  • Batch-Normalization怎么用?
    用在卷积层之后,激活函数层之前。

如何选择优化器 optimizer

如何选择优化器 optimizer
机器学习:各种优化器Optimizer的总结与比较 四颗星

LRN层

  • 主要的作用是对数据起到局部抑制的作用,对于金融数据来说,某只股票在某一天的暴涨暴跌并不是常态,我们选择的信息应该是在大多数时间中的存在的特征,不像图像,需要找出边缘特征,所以抑制局部响应这种方法可能在金融数据中比较有用。
  • 这种方法是受到神经科学的启发,激活的神经元会抑制其邻近神经元的活动——侧抑制现象至于为什么使用这种正则手段,以及它为什么有效,查阅了很多文献似乎也没有详细的解释,可能是由于后来提出的batch normalization手段太过火热,渐渐的就把local response normalization掩盖了吧。

Q-learning算法和项目内容

项目参考文章——Deep Q-Learning with Keras and Gym

  • 项目主要内容
    • 这个项目是借鉴了一个github上面的一个强化学习玩游戏的例子,他原来的目标是让机器能够在游戏中不断的学习最终能够取得一个满意的成绩。我们的最终目标是希望机器能够在不断的训练中学习到股票的内在规律,能够取得很高的胜率,最后的胜率不是特别好,也就60%左右,但是对于股票来说,能够达到50%的概率那在多次买卖当中我们就一定能够获胜的
    • 首先,每次选取10天的股票数据作为一个state,对于每10天的一个数据,刚开始是随机的选择一个action,不过随着迭代的次数增多,会慢慢使用全连接神经网络来尽心预测,得到的action来进行股票买卖,将买卖得到的盈利作为reward,盈利越多reward也会越大,当没有训练完成的时候取reward加上下一个state时通过神经网络预测的盈利结果的和作为目标;当全部训练完成的时候取reward作为此时的目标。
      在这里插入图片描述

We first carry out an action a, and observe the reward r and resulting new state s`. Based on the result, we calculate the maximum target Q and then discount it so that the future reward is worth less than immediate reward (It is a same concept as interest rate for money. Immediate payment always worth more for same amount of money). Lastly, we add the current reward to the discounted future reward to get the target value. Subtracting our current prediction from the target gives the loss. Squaring this value allows us to punish the large loss value more and treat the negative values same as the positive values.

xgboost

关于GBDT的介绍,可以看这里
wepon大神关于GBDT的ppt

  • 树模型的优缺点
    树模型的优缺点
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

正则化

在这里插入图片描述

如上图所示,蓝色的圆圈表示问题可能的解范围,橘色的表示正则项可能的解范围。而整个目标函数(原问题+正则项)有解当且仅当两个解范围相切。从上图可以很容易地看出,由于L2范数解范围是圆,所以相切的点有很大可能不在坐标轴上,而由于L1范数是菱形(顶点是凸出来的),其相切的点更可能在坐标轴上,而坐标轴上的点有一个特点,其只有一个坐标分量不为零,其他坐标分量为零,即是稀疏的。所以有如下结论,L1范数可以导致稀疏解,L2范数导致稠密解。
从贝叶斯先验的角度看,当训练一个模型时,仅依靠当前的训练数据集是不够的,为了实现更好的泛化能力,往往需要加入先验项,而加入正则项相当于加入了一种先验。
L1范数相当于加入了一个Laplacean先验,可以保证模型的稀疏性,也就是某些参数等于0;
L2范数相当于加入了一个Gaussian先验,可以保证模型的稳定性,也就是参数的值不会太大或太小;
L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归。
如下图:

L1正则化(蓝色) L2正则化(红色)

利用cnn和全连接来预测股票市场行情

  • cnn需要注意的点:卷积层,卷积核的运算,权重和参数的个数
  • 关于inception可以看这个Inception简介

为什么选用keras,tensorflow和keras的优缺点s是什么?

dropout, l1, l2, momentum,影子变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值