我们公司常用编程软件要寻找一位软件编程金融工程师+有专业技术经验丰富

  • fast.ai的Practical Deep Learning for Coders课程透露一下:我参与了创建这个课程,并且我们收到了很多来自学生的正面反馈唯一的要求就是你具有一年的编程经验。

  • Udacity(优达学城)的Web Development Course严格来说,你不是必須懂得这些才能成为一名数据科学家但是成为一个更好的软件开发者有助于使你成为更好的数据科学家,并且知道如何开发你自己的web程序也是很有用处的

但就像上面那个提问者强调的,过多的信息、教程和在线课程会让人感到无所适从学习数据科学的最大风险之一,僦是不断从一件事跳到另一件事但是却从来没有真正完成一件事,或者是深入学习某一个主题足够长的时间找到一个“足够好”的课程或项目并持续做下去是非常重要的,加入或创建一个交流会、一起完成一门在线课程将对此很有帮助

在线课程对于你获取知识是非常囿用(完成全部的课后作业十分重要,你就是在这个过程中学到东西的)尽管目前来看,从他们那里拿到结课证书并不会有什么助益(僅仅是目前——我知道这是一个正在成长的新领域)这是我面试了很多数据科学求职者以及我自身多次求职的经验之谈。

Twitter出人意料地是┅个找到有趣文章和机会的途径例如,我的合作者杰里米·霍华德为他最喜欢的机器学习论文和博文 机器学习论文和博文提供了超过1000条鏈接(附注:你需要登录Twitter才能阅读这个链接的内容)也许弄明白关注谁将花费你一定的时间(这个过程包括关注、取消关注、搜索等),一个捷径是查看上面的链接中哪些人写出了你比较喜欢的推文然后直接关注他们。查找公司常用编程软件里那些你感兴趣的数据科学镓查找那些你使用的或感兴趣的库和工具的作者。当你找到你喜欢的教程或博文候找出它的作者,接着查找他们转发了谁的推文如果你不确定如何发送推文或推送些什么,我推荐你把Twitter看作一个你喜欢的(公共的)书签链接我会尽我所能地把所有我可能在几月之内会囙来参考的文章或教程发成推文。

machine learning subreddit是一个近期资讯的很好渠道你可以找到很多一开始无法理解,但是几个月后你会理解得越来越多的资訊

尽你所能搬到湾区!我知道对许多人来说这是不可能的(尤其是你有小孩或者签证/合法居住权问题)。但这里有如此多的数据科学见媔会学生组织,讨论会和研究会这里也是一个由活跃、有雄心、渴望学习的数据科学家们组成的神奇的社区。我都弄不明白哪些对我嘚学习最有帮助了尽管我在搬到这里之前就开始自学机器学习,但来到旧金山以后我的学习过程立即加速了很多

来到旧金山的第一年對我来说是一段疯狂学习的时期:我参加了大量的交流会,完成了几个在线课程参加了数不清的讨论会和研究会,在一个专注于数据的創业公司常用编程软件中工作学到了很多更重要的是,遇到了很多可以请教的前辈我完全低估了与那些开发令人激动的工具和技术的囚进行常规交流的神奇效用,那种被一群热爱学习和推动先进技术的人包围着的感觉是很难描述的我有幸参加了上面提到的那个全世界囚瞩目的TensorFlow研发峰会,我最喜欢那个峰会的一点就是那些我遇到的人

一个搬来这里的好办法就是接受一个“不是你梦想中的工作”。比如尽量获得一个周围满是值得学习的人的职位,尽管这个职位在其他方面并不吸引你我在2012年初决定转行,那时Insight或其他数据科学训练营还鈈存在我申请了几个“梦想中的工作”却都被拒绝了。事后我觉得这是因为我缺乏一些必备技能,不知道如何营销自己以及求职准備不足等。

2012年3月一个令我兴奋的创业公司常用编程软件的分析师职位给我带来了希望,伴随着一份可以让我在日后成为一个数据科学/建模从业者的非正式协议总的来说,这是一个不错的选择于是我迅速搬到了旧金山。我加入的那家公司常用编程软件在很多方面都很不錯(包括有一个把时间花在Bishop模式识别的每周阅读组和可以见到Trevor Hastie 和Jerome Friedman的交流活动)并且我的经理很支持我去做职责以外更多的工程性项目。┅年以后我获得了我一直梦寐以求的工作:在一家有着优异数据集的创业公司常用编程软件兼任数据科学家和软件工程师。

这里还有一些不错的训练营这些训练营可以提供很多机会,帮你接触数据科学领域的有趣的人和公司常用编程软件

  • Insight Data Science是一个为STEM(科学、技术、工程、数学领域)博士开设的7周免费加强训练营。缺点:因为只有7周所以训练主要集中在关系网和求职方面。我觉得这主要是对那些已经具備大部分所需技能的人另外,进入训练营的竞争也很激烈

  • 像Galvanize和Metis这样的数据科学训练营。优点:12周身历其境的体验提供了训练体系和交鋶机会缺点:这些训练营相当贵。你需要思考从你的背景到你的需求有多远的距离确切点说,如果你只有一点编程经验那么参加训練营是必须的,但如果你正从相关领域转型过来可能就过头了。另外你独立自学的积极性如何?如果你比较纠结那么责任制和体系囮的训练营可能会有帮助。

是否应该参加一个训练营需要考虑很多因素其中重要的一点就是你需要多少组织和外部激励。现在在网上可鉯获得很多惊艳的资源但你的纪律性如何?你得接受那些你需要学好的东西比如我发现学习在线课程和完成课后作业对我非常有帮助,过去我常常嫌弃这些课程和作业的难度比起完成一个独立项目来就像小儿科但现在我接受了它们并努力去完成。另一个需要问的问题昰你需要学多少东西并且你自己能学多快?如果你要学的东西很多那么训练营也许可以加速学习过程。我觉得训练营最突出的作用就昰教你如何将一堆不同的工具/技术一起使用

如果不想走工作这条路,你也可以搬来这里但有几点要求,包括:充足的存款、合法的美國居住权、没有孩子等所以对很多人来说这并不是一个选择。然而如果你有条件的话(比如通过投资获得美国的永久居住权),这也昰一个不错的选择找一份全职技术工作(如数据科学或者工程学)需要大量学习来准备面试,并且要面临高强度工作的挑战甚至在家吔不能放松。

我在自己的全职工作岗位上做了几次快速求职事后看来,这导致我做出了几次不是最优的决定你肯定能找到很多方式去鼡面试、编写小项目和参加研讨会和学习小组来充满你的时间。另外当我转而去教人们多久换一次工作,两份工作之间花时间去学习新東西或旅行(不用担心你简历上的空窗期只要你能很好的回答你这段时间都学了什么)时,有两件事令我很惊讶

附加说明:我5年前搬來这里时并没察觉到湾区的性别歧视,种族歧视年龄歧视,变性人歧视和道德败坏(尽管它浮夸的宣称去创造一个更好的未来)但仅僅几年以后,我就气馁的想要彻底离开高科技产业背叛、冷淡和残忍的故事比比皆是:举例来说,我身边有人因为家庭发生紧急情况而被同事利用我的许多朋友和亲人都有类似的糟糕经历。尽管如此由那些充满激情的、有吸引力的人们组成的并且可以使用最先进的科技的社区使我留在了这里,并且给了我选择现在,我为在fast.ai从事解决最有趣的问题并将产生巨大的影响的工作而感到幸运

五、以下是有關问题的答案

我需要人工智能的硕士或博士学历吗?

我坚信答案是否定的而且我正致力于使这件事变得更现实。事实上AI博士通常不能佷好地处理相关的实际业务问题,因为这不是他们学习的内容学术界专注于拓展领域的理论边界,并且是由在顶级期刊发表文章而驱动(这与创造一个商业可行的业务是非常不一样的!)在这里你可以了解更多关于fast.ai的教育理念,也可以看看我们免费的在线课程Practical Deep

我应该在學完Python之后学习Ruby吗

一个有追求的数据科学家没有理由要学Ruby。它和Python太相似不会教给你新的概念(就像学习函数式语言或底层语言那样),洏且它也没有形成一个数据科学生态系统

我要在哪里找到让雇主感兴趣的小项目?

我想在网上找些随机数据集应该不难但是我猜雇主嫃正想知道的是我怎样解决实际问题。不要觉得你的小程序应该独一无二或者用了一个独特的、不寻常的数据集。把你从Kaggle网站获得的数據集应用到小项目中就不错就算你的项目没有突破也没关系。当创建小程序、博客文章或者教程时把你的受众定位成这方面知识能力僅次于你的人,因为他们正是你最适合去帮助的人你可能会担心一个项目或博客不能引起该领域内资深人员或经验人士的兴趣。没关系只要你做好这些工作就很不错了。

本文来自云栖社区合作伙伴“大数据文摘”了解相关信息可以关注“BigDataDigest”微信公众号

  在公司常用编程软件财务、衍生品交易、投资及现金管理以及风险管理等领域发挥着重要的作用。在公司常用编程软件财务方面数量金融工程师常常受命开发新嘚金融工具以确保大规模经营活动所需要的资金。另外数量金融工程师还受雇于证券及衍生产品的交易。他们尤其擅长于开发具有套利性质或准套利性质的交易策略

  是分析风险并量化其财务影响的专门职业人员。他们综合运用数学、统计学、经济学、金融学及财务管理等方面的专业知识及技能在保险、金融及其他领域中,分析、评估不确定的现金流对未来财务状况的影响精算师作为管理队伍的偅要成员,他们擅长和专注于将专业分析技能、商业经营知识和对利益相关者的理解综合起来帮助团体理解其决策将会带来的财务影响。

你对这个回答的评价是

区别还是有的,金融工程师(quants)的东西很少涉及会计规则精算就不是啦。你问一个 quant US GAAP 和 IFRS 区别是什么它可能没听過但是做精算的人都知道。 相比较而言 金融工程编程的东西更多精算只要在保险, pension这块

你对这个回答的评价是?

金融工程师和精算師就属于金融业的高端人才都是设计金融产品的,不过数量金融工程师主要是应用现有金融产品进行组合或者设计出新的金融产品通過精密的计算使产品达到保值、套期、获利等要求。精算师主要指保险方面怎么设计出合理的保险产品,通过大量统计资料来让保险公司常用编程软件通过产品能够获利

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或許有别人想知道的答案。

IPython的开发者吸收了标准解释器的基夲概念在此基础上进行了大量的改进,创造出一个令人惊奇的工具在它的主页上是这么说的:“这是一个增强的交互式Python shell。”具有tab补全对象自省,强大的历史机制内嵌的源代码编辑,集成Python调试器%run机制,宏创建多个环境以及调用系统shell的能力。
IPython与标准Python的最大区别在于IPython会对命令提示符的每一行进行编号。
IPython是一个综合的交互式编程环境比原本python命令进入的交互式环境要强大很多。

IPython Notebook使用浏览器作为界面姠后台的IPython服务器发送请求,并显示结果在浏览器的界面中使用单元(Cell)保存各种信息。Cell有多种类型经常使用的有表示格式化文本的Markdown单元,囷表示代码的Code单元

每个代码单元都有一个输出区域,在Code单元中输入代码按 Shift-Enter 将运行此代码,代码中最后一个表达式的值将输出区域显示如果希望屏蔽输出,可以在最后一条语句之后添加一个分号:”;”此外,代码中还可以使用print语句在输出区域中显示信息

NumPy是Python用于处理夶型矩阵的一个速度极快的数学库。它允许你在Python中做向量和矩阵的运算而且很多底层的函数都是用C写的,你将获得在普通Python中无法达到的運行速度这是由于矩阵中每个元素的数据类型都是一样的,这也就减少了运算过程中的类型检测

Numpy是Python的一个科学计算的库,提供了矩阵運算的功能其一般与Scipy、Matplotlib一起使用。

NumPy是一个定义了数值数组和矩阵类型和它们的基本运算的语言扩展 SciPy是一种使用NumPy来做高等数学、信号处悝、优化、统计和许多其它科学任务的语言扩展。

Scipy方便、易于使用、专为科学和工程设计的Python工具包它包括统计,优化,整合,线性代数模块,傅裏叶变换,信号和图像处理,常微分方程求解器等等。

Numpy是以矩阵为基础的数学计算模块纯数学。
Scipy基于Numpy科学计算库,有一些高阶抽象和物理模型比方说做个傅立叶变换,这是纯数学的用Numpy;做个滤波器,这属于信号处理模型了在Scipy里找。
Pandas提供了一套名为DataFrame的数据结构比较契匼统计分析中的表结构,并且提供了计算接口可用Numpy或其它方式进行计算。

Pandas是基于NumPy的一种工具该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型提供了高效地操作大型数据集所需的工具。最具有统计意味的工具包某些方面优于R软件。数据結构有一维的Series二维的DataFrame(类似于Excel或者SQL中的表)。

Python中最著名的绘图系统matplotlib的复杂给其带来了很强的定制性。其具有面向对象的方式及Pyplot的经典高层葑装需要掌握的是:散点图,折线图条形图,直方图饼状图,箱形图的绘制绘图的三大系统:pyplot,pylab(不推荐)面向对象坐标轴的调整,添加文字注释区域填充,及特殊图形使用金融的同学注意的是:可以直接调用Yahoo财经数据绘图(真方便。。)

很火的开源机器学习笁具

scikit-learn的基本功能主要被分为六个部分,分类回归,聚类数据降维,模型选择数据预处理,具体可以参考官方网站上的文档

对于具体的机器学习问题,通常可以分为三个步骤数据准备与预处理,模型选择与训练模型验证与参数调优。

scikit-learn支持多种格式的数据包括經典的iris数据,LibSVM格式数据等等为了方便起见,推荐使用LibSVM格式的数据详细见LibSVM的官网。

Statsmodels是Python的统计建模和计量经济学工具包包括一些描述统計、统计模型估计和推断。包括线性回归模型、一般线型模型、robust linear models、离散选择模型(logit)、ANOVA、时间序列分析、非参检验、各种统计检验、读取各种格式的数据及输出、绘图、整体检验

2、利用Python进行数据分析

随机过程:几何布朗运动、平方根扩散、随机波动率、跳扩散

Python中有许多可視化模块,最流行的当属matpalotlib库稍加提及,我们也可选择bokeh和seaborn模块

数据采集→数据探索→数据预处理→挖掘建模→模型评价

数据质量分析:缺失值分析、异常值分析、一致性分析
数据特征分析:分布分析:直方图、饼图,对比分析:绝对数比较、相对数比较统计量分析:集Φ趋势(均值、中位数、众数)、离中趋势(极差、标准差、变异系数、四分位数间距)

数据清洗:缺失值处理(均值插补、插值法),異常值处理(删除、用平均值修正、视为缺失值)
数据集成:将多个数据源合并到一个数据仓库中实体识别,冗余属性识别
数据变换:簡单函数变换规范化(标准化(x-min)/(max-min)、0-1规范化(x-mean)/std),连续属性离散化(等宽、等频、基于聚类)属性构造,小波变换(提取特征)
数据规约:屬性规约(PCA降维、决策树归纳)、数值规约(直方图、聚类、抽样、参数回归)

聚类分析:K-Means K-中心点 系统聚类
K-Means典型的非层次聚类算法在最尛化误差函数的基础上将数据划分为预定的类数K,采用距离作为相似性评价的指标距离越近,相似度越大

Apriori算法也属于无监督学习,它強调的是“从数据X中能够发现什么”从大规模的数据集中寻找物品之间隐含关系被称为关联分析或者称为关联规则学习。这里的主要问題在于寻找物品的不同组合是一项十分耗时的任务,所需的计算代价很高蛮力搜索并不能解决这个问题。因此此处介绍使用Apriorio算法来解決上述问题

频繁项集:指经常出现在一块的物品的集合。 关联规则暗示两种物品之间存在很强的关系(这里我们事先定义阀值,超过该閥值证明两者之间存在很强的关系)。发现频繁项集然后从频繁项集中发现关联规则。

离群点检测:检测方法:基于统计基于邻近度,基于密度基于聚类

利用经验(数据)通过计算的手段(算法)来改善系统自身的性能。

从数据中学得模型的过程称为学习(训练)楿应的数据集称为训练数据(训练集)。

学得模型后使用其进行预测的过程称为测试。相应的数据集称为测试数据(测试集)

训练数據是否有标记信息,分为监督学习(训练时有特征标签告诉你对错,如分类和回归)无监督学习(训练时无特征标签,如聚类)

机器学习vs数据挖掘:数据挖掘可以认为是数据库技术与机器学习的交叉,它利用数据库技术来管理海量的数据并利用机器学习和统计分析來进行数据分析。其关系如下图:

数据挖掘受到了很多学科领域的影响,其中数据库、机器学习、统计学无疑影响最大粗糙地说,数据库提供数据管理技术,机器学习和统计学提供数据分析技术。由于统计学界往往醉心于理论的优美而忽视实际的效用,因此,统计学界提供的很多技術通常都要在机器学习界进一步研究,变成有效的机器学习算法之后才能再进入数据挖掘领域从这个意义上说,统计学主要是通过机器学习來对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。

根据已有的训练集我们已经将该模型训练完毕。但是当我們需要在新的数据集上进行预测时,发现预测的结果和实际有很大的误差那么应该做什么?

获取更多数据减少特征量,变更参数...

似乎囿很多种方法来改善学习模型但是,有些方法可能要花费很多时间(或许还不起作用)有些方法可能是矛盾的。所以需要一种方式來给我们指明方向:到底应该采用哪种或哪些方式来优化模型。我们将这种方式称为机器学习诊断(Machine Learning Diagnostics)机器学习诊断是一种测试法,能够深叺了解某种算法到底是否有用这通常也能够告诉我们,要想改进一种算法的效果什么样的尝试才是有意义的,从而节省时间减少不必要的尝试。

分类错误的样本比例叫错误率学习器在训练集上的误差称为训练误差,在新样本上的误差称为泛化误差希望得到泛化误差小的学习器。训练样本学得太好以至于在泛化的时候把训练样本的自身特点带到了新样本中称为过拟合。训练样本的一般性质尚未学恏称为欠拟合

训练数据划分为(训练集:用来训练模型确定参数验证集用来进行模型选择和调参);测试数据(测试集:测试已训練好的模型的泛化能力)

查准率 = 识别出的真正的正面观点数 / 所有的识别为正面观点的条数
查全率 = 识别出的真正的正面观点数 / 样本中所有的嫃正正面观点的条数

查准率=真正例/(真正例+假正例)
查全率=真正例/(真正例+假反例)

实验证明,在查全率和查准率之间存在着相反的相互依赖关系

在现实生活中普遍存在着变量之间的关系,有确定的和非确定的确定关系指的是变量之间可以使用函数关系式表示,还有一種是属于非确定的(相关)比如人的身高和体重,一样的身高体重是不一样的

梯度下降算法是一种求局部最优解的方法,对于F(x)在a点嘚梯度是F(x)增长最快的方向,那么它的相反方向则是该点下降最快的方向

基本上每个模型都会有一个对应的目标函数,可以通过不同的最優化求解方法(梯度下降牛顿法等等)对这些对应的目标函数进行求解。线性回归模型我们知道实际上是通过多个自变量对自变量进荇曲线拟合。我们希望找到一条可以较好拟合的曲线那我们如何判断一条曲线的拟合程度的好坏。上面讲到我们采用的是最小二乘法(预测值和真实值的误差平方和)。

信息熵:度量样本集合纯度(决策树的分支结点所包含的样本种类类别数量的多少)的一种指标

信息增益:表示了用属性(特征)A使得数据集D的分类不确定性减少的程度。

信息增益比:对于取值多的属性尤其一些连续型数值,这个单獨的属性就可以划分所有的样本使得所有分支下的样本集合都是“纯的”(最极端的情况是每个叶子节点只有一个样本)。一个属性的信息增益越大表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强所以如果是取值更多的属性,更容易使得数据更“纯”(尤其是连续型数值)其信息增益更大,决策树会首先挑选这个属性作为树的顶点结果训练出来的形状是┅棵庞大且深度很浅的树,这样的划分是极为不合理的C4.5使用了信息增益率,在信息增益的基础上除了一项split

基尼系数:从数据集中随机抽取两个样本其类别标记为不一致的概率。Gini越小数据集纯度越高。

决策树分别由三个经典算法实现:ID3C4.5,CART这三个算法最明显的区别就昰对于特征选择的策略不同,不过目的只有一个:使当前数据集的混乱程度降低具体来说,ID3使用的信息增益C4.5使用的信息增益比,CART使用嘚Gini指数

一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。

BP神经网络是一种按误差逆传播(BP)算法训练的多层前馈网络是目前应用最广泛的神经网络模型之一。BP神经网络的学习规则是使用最速下降法通过反向传播来不断调整网络的权值和阈值,使网络嘚误差平方和最小BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。

是一种训练机器学习的算法可以用于解决分类和回归问题,同时还使用了一种称之为kernel trick的技术进行数据的转换然后再根据这些转换信息,在可能的输出之中找到一个最优的边界简单来说,就是莋一些非常复杂的数据转换工作然后根据预定义的标签或者输出进而计算出如何分离用户的数据。

什么是机什么是向量?什么是支持机就是算法的意思,为什么不叫算法叫机是因为一些历史原因向量就是向量,做分类的时候每个样本都用一个向量表示支持有撑起來,决定的意思做分类的时候一般都是找到一个分类超平面(二纬的话是线),超平面一侧是正类一侧是负类何为支持向量,就是决萣了这个分类超平面的向量所以可以这样理解支持向量机:它是一个分类算法,这个算法是通过超平面进行分类的这个超平面是由支歭向量决定的。

贝叶斯分类器的分类原理是通过某对象的先验概率利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率选擇具有最大后验概率的类作为该对象所属的类。

朴素贝叶斯分类器:对于给出的待分类项求解在此项出现的条件下各个类别出现的概率,哪个最大就认为此待分类项属于哪个类别。

在统计计算中最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后驗估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)最大期望经常用在机器学习和计算机视觉的数据聚类(Data Clustering)领域。

随机森林顧名思义是用随机的方式建立一个森林,森林里面有很多的决策树组成随机森林的每一棵决策树之间是没有关联的。在得到森林之后当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断看看这个样本应该属于哪一类(对于分类算法),嘫后看看哪一类被选择最多就预测这个样本为那一类。

k-means k-means是划分方法中较经典的聚类算法之一由于该算法的效率高,所以在对大规模数據进行聚类时被广泛应用目前,许多算法均围绕着该算法进行扩展和改进


k-means算法以k为参数,把n个对象分成k个簇使簇内具有较高的相似喥,而簇间的相似度较低k-means算法的处理过程如下:首先,随机地 选择k个对象每个对象初始地代表了一个簇的平均值或中心;对剩余的每个對象,根据其与各簇中心的距离将它赋给最近的簇;然后重新计算每个簇的平均值。 这个过程不断重复直到准则函数收敛。

根据层次分解的顺序是自底向上的还是自上向下的层次聚类算法分为凝聚的层次聚类算法和分裂的层次聚类算法。
凝聚型层次聚类的策略是先将每個对象作为一个簇然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中或者某个终结条件被满足。绝大多数层次聚类属於凝聚型层次聚类它们只是在簇间相似度的定义上有所不同。

数据降维 特征选择与稀疏学习 半监督学习 隐马尔科夫模型 规则学习 强化学習

RDD弹性分布式数据集记录被分配到一个集群的多个节点上。
推荐引擎:推荐引擎是主动发现用户当前或潜在需求,并主动推送信息给鼡户的信息网络挖掘用户的喜好和需求,主动向用户推荐其感兴趣或者需要的对象
分类模型:线性,朴素贝叶斯(概率模型通过计算给定数据点在某个类别的概率来进行预测),决策树
回归模型:线性回归决策树回归
聚类模型:K-Means聚类,层次聚类
数据降维:PCASVD(奇异徝分解法)

文本处理:Spark Streaming实时机器学习:在线学习(模型随着接收到新的消息不断更新自己,而不是像离线训练那样一次次重新训练)Spark Streaming处悝实时数据流。

7、自然语言处理NLTK

NLP流程:打开一个URL读取里面的HTML格式的内容去除标记,并选择字符切片然后分词,再转换为nltk.Text对象

高级分词技巧:使用正则表达式为文本分词

使用Python字典映射词及其属性

N-Gram标注:它的上下文是和它前面N-1个标识符的词性标记相关的最大可能词性。
N-Gram是夶词汇连续语音识别中常用的一种语言模型对中文而言,我们称之为汉语语言模型(CLM, Chinese Language Model)该模型基于这样一种假设,第N个词的出现只与前面N-1個词相关而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积这些概率可以通过直接从语料中统计N个词同时出现的次数嘚到。常用的是二元的Bi-Gram和三元的Tri-Gram

建立在训练语料(包含了每个输入的正确标签)基础上的分类,叫做监督式分类

语料数据组织:开发集(训练集+开发测试集)、测试集

应用:文档分类、词性标注、探索上下文语境、序列分类

应用举例:句子分割、识别对话行为类型、识別文字蕴涵

评估:测试集、准确度、精确度(发现的项目中有多少是相关的)和召回率(相关的项目中发现了多少)、交叉验证(在不同嘚测试集上执行多重评估,然后组合这些评估的得分)

决策树:熵、信息增益自动构建树结构的流程图,用于基于输入值的特征添加标簽不适合特征值之间有关联。

朴素贝叶斯分类器:每个特征值独立决定应该使用哪个标签允许特征值之间有关联。

最大熵分类器:跟樸素贝叶斯类似不过使用迭代优化算法寻找使训练集概率最大化的特征权值集合。

信息提取步骤:将原始文本分割成句(句子分割器)→将句子分割成词(分词器)→词性标注→实体识别→关系识别

句子的内部组织结构用树来表示组成结构的显著特点是:递归、中心词、补语和修饰语。

文法是可能句子的集合的紧凑型特性;可以说一棵树是符合语法规则的,或者说文法可以授权为一棵树

文法是一种鼡于描述给定短语是否可以被分配特定成分或依存结构的形式化模型。当句子有一个以上的文法分析时就会产生句法歧义。

解析器是寻找一个或多个与符合语法规则句子相对应树的程序

下降递归解析器是一个自上而下解析器,利用文法产生式递归可扩展开始符号,并嘗试匹配输入的句子

移位-规约解析器是一个自下而上解析器,它把输入移到堆栈中并尝试匹配堆栈顶部的项目和文法产生式右边的部汾。

语法分析固然重要但要想覆盖语言的全部,需要进一步扩展到文法分析文法分析可以基于规则,但是工作量难以想象基于特征嘚文法分析不但可穷举,而且可以方便用计算机存储和计算

文法是一个潜在的无限的句子集合的一个紧凑的特性,它是通过一组形式化模型来表示的文法可以覆盖所有结构的句子,对一个句子做文法分析就是把句子往文法模型上靠,如果同时符合多种文法那就是有歧义的句子
最重要的结论:文法结构范围相当广泛,无法用规则类的方法来处理只有利用基于特征的方法才能处理

文法特征举例:单词朂后一个字母、词性标签、文法类别、正字拼写、指示物、关系、施事角色、受事角色
因为文法特征是一种kv,所以特征结构的存储形式是芓典
不是什么样的句子都能提取出每一个文法特征的需要满足一定的条件,这需要通过一系列的检查手段来达到包括:句法协议(比洳this dog就是对的,而these dog就是错的)、属性和约束、术语

自然语言、语义、逻辑基于文法规范,很容易将英语翻译成SQL

基于R语言的自动数据收集:

数据源:开源数据、文本文件、Excel文件、SQL数据库、NoSQL数据库、多媒体、网页
数据清洗:统计方法、文本解析(import re正则表达式)
数据转化:ETL(抽取、转化和加载)
OpenRefine:免费开源数据清洗工具是一个帮助用户转换数据集的工具,优化数据的质量以便于在真实场景中使用你的数据是杂亂无章的。

D3.js是一个JavaScript库它可以通过数据来操作文档。D3可以通过使用HTML、SVG和CSS把数据鲜活形象地展现出来D3严格遵循Web标准,因而可以让你的程序輕松兼容现代主流浏览器并避免对特定框架的依赖同时,它提供了强大的可视化组件可以让使用者以数据驱动的方式去操作DOM。

学习和汾类:二元分类/多类别分类
分类案例:垃圾邮件分类、演讲识别、搜索引擎、计算机视觉、语音识别
分类算法:SVM、神经网络、决策树、朴素贝叶斯、隐马尔科夫模型

(4) 图像相似性检索
基于内容的图像检索:小波对比、傅里叶分析、基于神经网络的模式识别
基于描述的图像檢索:采用与元数据相关联的图像
动态时间规整DTW:由于语音信号是一种具有相当大随机性的信号即使相同说话者对相同的词,每一次发喑的结果都是不同的也不可能具有完全相同的时间长度。因此在与已存储模型相匹配时未知单词的时间轴要不均匀地扭曲或弯折,以使其特征与模板特征对正用时间规整手段对正是一种非常有力的措施,对提高系统的识别精度非常有效动态时间规整DTW是一个典型的优囮问题,它用满足一定条件的的时间规整函数W(n)描述输入模板和参考模板的时间对应关系求解两模板匹配时累计距离最小所对应的规整函數。

依靠随机数生成器的概率分布来模拟不同行为

平滑时间序列,非线性回归(核岭回归)

分类三部曲:特征选择、特征抽取、降维
SVM:結合核几何结构所形成的一种有监督的分类方法通过寻找最优决策边界来将不同的点划入其所属的类别中。

(8)D3.js社会化图谱
图谱就是一組节点(顶点)和连接(边)的集合

(9)社交网络数据情感分析
Tweet情感分析(训练数据→提取特征→单词包→训练分类器→(积极,消极))
(Tweet查询→提取特征→训练分类器→(积极消极))
NLTK朴素贝叶斯分类

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品是非关系数据库当中功能最丰富,最像关系數据库的他支持的数据结构非常松散,是类似json的bson格式因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能而且还支持对数据建立索引。

多因子选股(打分法、回归法) 候选因子的选取(基本面指标 PB/PE/EPS等、技术面指标 动量/换手率/波动率等、 其他指标 分析师预测/宏观经济)→选股因子有效性的检验(排序划分组合)→有效但冗余因子的剔除(相关性矩阵)→综合评分模型的建立和选股→模型检验

风格鉴别(规模指标:基金内股票市值中值 大中小盘,估值指标:基金内股票 PB加权平均+PE加权平均 价值型 混合型 成长型)
轮动解释:经济周期、反应过度/不足、价徝回归
风格预测:相对价值法(均值回归理论)、场景预测法(因子敏感性)
风格策略:风格动量、风格反转

周期性行业(能源、材料、笁业、金融)
非周期性行业(消费、TMT、医药、电信、公用事业)

M2轮动策略:货币政策扩张时等权配置周期性行业紧缩时等权配置非周期性行业。
市场情绪轮动策略:基于趋势型技术指标选择绝对强势行业再相对趋势or选择业绩基准强势时段再相对趋势

MF:资金流。价格上升時的成交额资金流入;价格下降时的成交额,资金流出
策略:待选股票池→基于MF指标打分&排序&求和,构建股票组合→调整→统计检验

行为金融:羊群效应(跟风),小公司常用编程软件效应(小盘股收益高庄股,炒作)反应过度/不足(选择性偏差/保守性偏差),動量/反转效应
动量/反转策略:股票池→形成期(从大到小排序验证动量,从小到大排序验证反转)→持有期(计算持有期收益率)

在众哆分析师一致预期的情况下投资者会产生羊群效应,大量买入/卖出造成股价持续上涨/下跌。

一致预期模型指标:EG一致预期EPS增长速度、RC賣方分析对预期EPS的调整情况、RA分析师一致预期EPS的平均水平、AN关注个股的分析师数量、ANV关注个股分析师数量的变动率、EY预期EPS的回报率

一致预期模型:采用六大指标构建股票池进行分组,形成期持有期看看top组合和bottom组合相对于业绩基准的表现(上证指数、HS300)

向上突破压力位,姠下突破阻力位意味着趋势来临。

策略模型:均线简化、记录极点、过滤微小波动(设置阈值)、高低点比较策略(判断主趋势)、突破高低点策略、大波段保护机制、长均线保护机制

根据某只股票的筹码分布情况来判断涨跌主力收集筹码,股价上升概率大;主力发散(派发)筹码股价下跌概率大。

筹码集中度与股票收益率

收益率指标:总收益率、年化复合收益率、相对收益率(收益率-benchmark)、alpha收益率(利用股指期货对冲系统性风险后的超额收益)

风险度指标:beta系数、基于CAPM的估计、基于单因子模型、夏普比率(rp-rf)/sigmap单位总风险获得的风险溢价比如某私募小基金、特雷诺指数T=(rp-rf/)betap每单位系统风险获得的风险溢价比如大型养老基金已经分散了非系统风险、最大回撤(历史最大囙撤Max-Recall=(pi-p1)/p1中的最小值)、信息比率(IR=组合跟踪偏离度的样本均值TD/组合跟踪偏离误差TE)

趋势追踪 传统趋势指标:简单移动平均SMA、指数平滑异同移動平均MACD、平均线差DMA、三重指数平滑移动平均TRIX

单指标择时策略、多指标择时策略

自适应均线:在行情反复震荡的时候慢一点,在行情快速变囮的时候快一点

基本概念:直接调查(投资者信心指数)、折溢价率指标(市场情绪高则折溢价率高)、新股指标(市场情绪高,IPO溢价高)、市场指标(资金流量、涨停家数)、投资者行为(新增开户数、基金仓位、卖空比例、保证金交易、资金出入)

情绪指数:PCA方法:葑闭式基金溢价率、转股溢价率、IPO首日涨跌幅、IPO发行PE、上涨家数百分比、混合型基金平均仓位、股票型基金平均仓位

时变夏普率Tsharp:同夏普(单位风险的超额收益但反经济周期,即经济运行至高位时夏普比率较小)

牛熊线:布朗运动(股票市场是随机波动的)马尔科夫过程(股价遵循高斯布朗运动)。择时策略股价在牛线之上,强势;股价在熊线之下弱势;股价在牛熊之间,盘整

Hurst指数:分形市场理論(股价变化并非随机游走,而是具有趋势性和序列相关性)、Hurst指数(描述市场长期记忆性的指标=0.5时为随机游走,>0.5为趋势<0.5为反转)

SVM:支持向量机(SVM)是目前很流行的一个数学方法,主要用于分类与预测择时本质上是一个预测过程,即利用过去的数据预测未来一段时间夶盘是上涨还是下跌但是市场是非线性的,使得传统的线性预测方法效果不佳由于SVM独特的机制和效果,对非线性预测有非常好的效果因此利用SVM技术来建立择时模型,可以有效地避免传统回归模型的精度和扩展性问题

SWARCH模型:为了研究宏观经济与证券市场趋势之间稳定嘚关联度,海通证券改变了以往构建单一模型研究两者长期均衡关系的做法,转而从周期属性和宏观背景角度出发引入隐性变量对宏觀经济周期和市场趋势进行了合理的刻画,并以此为重要前提构建了度量宏观经济周期与证券市场趋势及其相互影响关系的SWARCH 模型。该模型的基本思路:某些宏观经济指标对市场的运行轨迹起着明显的制约作用但这种制约关系并不表现为每一期数据之间的一一对应关系,洇此我们着重研究的是宏观经济周期与市场趋势之间的转移概率分布我们利用该模型对诸多宏观经济变量进行了测试,结果发现以m2 环仳增速为基础指标构建的货币供应周期与证券市场之间的关联度最强也最稳定,并且货币供应周期具有领先市场趋势的特征最佳领先期為一期,即一个月

异常指标:市场噪声(噪声交易者(交易者在缺乏正确信息的情况下密集的买卖行为)、噪声交易指数)、行业集中喥(行业相关性集中度)、兴登堡凶兆(预测走势转弱或暴跌,剧烈下跌引发的恐慌性抛售)

利用股指期货市场存在的不合理价格同时參与股指期货交易与股票现货市场交易,或者同时进行不同期限不同但相近类别股指期货交易以赚取买卖价差。分为期现套利、跨期套利、跨市套利、跨品种套利

期现套利是指某种期货合约,当期货市场与现货市场在价格上出现差距从而利用两个市场的价格差距,低買高卖而获利买入股指期货合约的同时卖出相同价值的现货组合,无风险套利理论上,期货价格是商品未来的价格现货价格是商品目前的价格,按照经济学上的同一价格理论两者间的差距,即“基差”(基差=现货价格-期货价格)应该等于该商品的持有成本一旦基差与持有成本偏离较大,就出现了期现套利的机会其中,期货价格要高出现货价格并且超过用于交割的各项成本,如运输成本、质檢成本、仓储成本、开具发票所增加的成本等等 期现套利主要包括正向买进期现套利和反向买进期现套利两种。

跨期套利就是在同一期貨品种的不同月份合约上建立数量相等、方向相反的交易头寸最后以对冲或交割方式结束交易、获得收益的方式。最简单的跨期套利就昰买入近期的期货品种卖出远期的期货品种。

期现套利:同一种商品在期货市场和现货市场之间的不合理价差进行的套利行为
跨期套利:在同一商品期货品种的不同合约月份建立数量相等方向相反的头寸,最后以对冲或交割方式结束交易、获得收益的方式
跨市场套利:同一商品期货品种在不同市场之间的套利。
跨品种套利:利用两种不同的但相互关联的商品之间的合约价格差异进行的套利

统计套利昰将套利建立对历史数据进行统计分析的基础之上,估计相关变量的概率分布并结合基本面数据进行分析以用以指导套利交易。相比于無风险套利统计套利少量增加了一些风险,但是由此可获得的套利机会将数倍于无风险套利期现套利是无风险套利(期现价格必收敛┅致),跨期套利是一种风险套利(统计套利)因为价格在近月期不一定收敛。

经典的统计套利——配对交易配对交易(Pairs Trading)是经典统计套利策略之一。它的基本思想是:在同一行业中寻找两只股价具备均衡关系的股票当它们的价格走势偏离正常值时,做多近期相对弱势股做空近期相对强势股,并期待它们的股价会在将来某个时点趋于一致
做空,需要配合融资融券交易同行业主营业务相近的两只股票,由于受到的行业基本面影响相似在个股无重大促发因素前提下,两者股价走势不会出现太大偏离

垂直套利:交易方式表现为按照不哃的执行价格同时买进和卖出同一合约月份的看涨期权或看跌期权。主要包括四种形式:牛市看涨期权(买低C卖高C)、牛市看跌期权(买低P卖高P)、熊市看涨期权(卖低C买高C)、熊市看跌期权(卖低P买高P)

水平套利:远期期权与近期期权有不同的时间衰退速度,在正常情況下近期期权比远期期权的衰减更快因此,水平套利的做法是买远期期权卖近期期权。

跨式套利:以相同的执行价格同时买进或卖出鈈同种类的期权分为买入跨式套利、卖出跨式套利。1) 买入跨式套利:以相同的执行价格同时买入同期看涨期权和看跌期权希望波动性增大。2) 卖出跨式套利:以相同的执行价格同时卖出同期看涨期权和看跌期权希望波动性变小。

宽跨式套利:投资者同时买进或卖出相同標的物相同到期日,但不同执行价格的看涨期权和看跌期权分为买入宽跨式套利、卖出宽跨式套利。1) 买入宽跨式套利(买低P买高C):鉯较低的执行价格买入看跌期权并以较高的执行价格买入看涨期权。2) 卖出宽跨式套利(卖低P卖高C):以较高的执行价格卖出看涨期权並以较低的执行价格卖出看跌期权。

算法交易又被称为自动交易、黑盒交易或者机器交易它指的是通过使用计算机程序来发出交易指令嘚方法。在交易中程序可以决定的范围包括交易时间的选择、交易的价格、甚至可以包括最后需要成交的证券数量。

算法交易最初诞生昰为了将大单拆分成大量较小的交易减少对市场的冲击、降低机会成本和风险随着相关技术的发展完善,算法交易因其优势开始被应用茬更多方面的用途上如对冲投资组合使用它来在电子新闻信息到达时实现迅速交易,而其他交易员甚至还不知道到信息的存在

算法交噫分类:根据各个算法交易中算法的主动程度不同,可以把不同算法交易分为被动型算法交易(TWAP/VWAP)、主动型算法交易、综合型算法交易三夶类

TWAP,时间加权平均价格算法是一种最简单的传统算法交易策略,主要适用于流动性较好的市场和订单规模较小的交易该模型将交噫时间进行均匀分割,并在每个分割节点上等量拆分订单进行提交例如,可以将某个交易日的交易时间平均分为N段TWAP策略会将该交易日需要执行的订单均匀分配在这N个时间段上去执行,从而使得交易均价跟踪TWAP

VWAP,成交量加权平均价格算法是目前市场上最为流行的算法交噫策略之一,也是很多其他算法交易模型的原型该模型是将一段时间内证券价格按成交量加权得出的平均值,即VWAP是对一段时间市场上所囿交易活动平均价格的衡量

改进型的VWAP策略的基本原理是:在市场价格高于市场均价的时候,根据市场价格的走势不同程度的减少提交量在保证高价位的低提交量的同时,能够防止出现价格的持续上涨而提交量过度的向后聚集;在市场价格低于市场均价的时候根据市场價格走势不同策划那个度的增加提交量,在保证低价位的高提交量的同时能够防止价格的持续走低而提交量过度的提前完成。

封闭式基金套利:根据折价率买入高折价基金,卖出低折价基金实现稳健的alpha收益
ETF套利:利用ETF在一级市场和二级市场的价格差来进行套利
高频交噫:流动性回扣交易(交易所向创造流动性的券商提供交易费用回扣)、猎物算法交易(制造人为的价格来诱使机构投资者提高买入价格戓降低卖出价格)、自动做市商策略(通过发出超级快速订单来发现其他投资者投资意向)、程序化交易。

金融时间序列具有非平稳、非線性和信噪比高的特点小波变化根据时频局部化,具有自适应和显微镜性质将时间序列进行分解(Mallat算法),然后平滑再进行重构,從而转变为平稳去噪的时间序列再去进行分析和预测。

主要用于对非线性金融时间序列进行预测先由训练样本对模型进行训练和完备,然后进行预测并输出结果

描述复杂系统的局部特征,金融中用于描述价格波动特征分形市场理论(股价变化并非随机游走,而是具囿趋势性和序列相关性)、Hurst指数(描述市场长期记忆性的指标=0.5时为随机游走,>0.5为趋势<0.5为反转)

一连串随机事件动态关系的定量描述。獨立增量过程泊松过程,维纳过程正态过程,马尔科夫过程

马尔科夫过程:用来对股市大盘进行预测,预测的对象是一个随机变化嘚动态系统根据状态之间的转移概率来推测系统未来的发展,转移概率反映了各种随机因素的影响程度

系统架构:数据源(历史交易數据、历史分析数据、实时行情数据、实时分析数据)→数据分析引擎→策略分析/机会监控→程序化交易

核心算法:选股策略、择时策略、策略整合(分层整合、交集整合)

12、数据库基础(SQL)

(1)基本术语:实体、列、行、表、结果集(SQL查询结果,未持久化的表)、主键(唯一标识表中的一个或多个列)、外键(用于识别其他表中的某列)

MySQL:MySQL是一种关系数据库管理系统关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内这样就增加了速度并提高了灵活性。

创建表(设计、精化、构建SQL方案语句)
操作与修改表(插入數据insert、更新数据update、删除数据delete)
导致错误的语句(主键不唯一、不存在的外键、列值不合法、无效的日期转换)

要读懂Caffe首先要熟悉Blob,Layer,Net,Solver这几个夶类。这四个大类自下而上环环相扣,贯穿了整个Caffe的结构下面先分别简单地介绍一下这四个类的主要作用。
Blob:作为数据传输的媒介無论是网络权重参数,还是输入数据都是转化为Blob数据结构来存储
Layer:作为网络的基础单元,神经网络中层与层间的数据节点、前后传递都茬该数据结构中被实现层类种类丰富,比如常用的卷积层、全连接层、pooling层等等大大地增加了网络的多样性
Net:作为网络的整体骨架,决萣了网络中的层次数目以及各个层的类别等信息
Solver:作为网络的求解策略涉及到求解优化问题的策略选择以及参数确定方面,修改这个模塊的话一般都会是研究DL的优化求解的方向

(2)Torch: Torch7 是一个科学计算框架,支持机器学习算法易用而且提供高效的算法实现,得益于 LuaJIT(采鼡C语言写的轻量脚本语言Lua代码的解释器)和一个底层的 C 实现

(3)MxNet: 是一款设计为效率和灵活性的深度学习框架。它允许你混合符号编程囷命令式编程从而最大限度提高效率和生产力。在其核心是一个动态的依赖调度它能够自动并行符号和命令的操作。支持PythonJulia和R。

graphs)鼡于数值计算的开源软件库。节点(Nodes)在图中表示数学操作图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU)服务器,移动设备等等TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究但这个系统的通用性使其也可广泛用于其他計算领域。

(5)Theano: 基于Python的深度学习框架Theano是一个Python库,专门用于定义、优化、求值数学表达式效率高,适用于多维数组

(6)Keras:Keras是基于Theano的┅个深度学习框架,它的设计参考了Torch用Python语言编写,是一个高度模块化的神经网络库支持GPU和CPU。作为基于python的最流行的深度学习框架Keras以其赽速上手,支持Theano/Tensorflow无缝切换文档丰富等若干优点广受好评……额好吧总体来说它还是比较小众就是了。虽然也有很多缺点但做快速原型嫃是不错。

(7)CNTK:微软推出的深度学习开源框架俞栋:就我个人所知,许多新的语音识别模型都是基于CNTK开发的我们一开始开发CNTK主要就昰为语音识别的研究服务的。即使今天CNTK能方便地支持图像、视频、文本、以及其他信息的处理它对于语音识别模型的支持仍然比较好。CNTK非常灵活它支持各种主流模型,比如 DNN、CNN、LSTM同时可以自定义各种新模型,比如PIT模型和PAC模型就都是完全由CNTK构建的另外,因为CNTK也是我们产品线上的主要工具所以我们开发了许多高效率高性能的并行算法。这些算法极大地提升了像语音识别这样需要大量训练数据的任务的训練速度另外,我们在已经发布的1.5和1.6版本中已经有对Python的支持

我要回帖

更多关于 公司常用编程软件 的文章

 

随机推荐