看<量化投资:以python为工具>这本书,第一部分是python的基础知识.这一部分略读了,只看我还不知道或不熟的. 定义复数 x = complex(2, 5) #2+5j 也可以直接定义 y = 3-6j 用id()可以得到变量的内存地址 python z = 3-6j print(id(y), id(z))python y和z的内存地址是一样的. 531269809744 531269809744 python可以为不可变对象分配固定的内存,减少内存占用. 当两个变量指向同一对象时,i…
年初学习量化投资,一开始想自己从头写,还是受了C/C++的影响.结果困在了计算回测数据那里,结果老也不对,就暂时放下了.最近试了一下python的各个量化投资框架,发现一个能用的——pyalgotrade,重新开始吧.这是一个事件驱动型量化交易框架. 使用pyalgotrade的一大问题是数据获取,其支持从yahoo,谷歌等途径获得数据,但要获取A股数据比较麻烦.还是用tushare获取数据比较方便.但pyalgotrade并不直接支持tushare数据格式.网上有人介绍了将tushare数据转…
本来算法没有那么复杂,但如果因为语法而攻不下就很耽误时间.于是就整理一下,搞python机器学习上都需要些什么基本语法,够用就行,可能会持续更新. Python四大类型 元组tuple,目前还没有感受到它和list什么差别,感觉也比较少用,声明语法是() >>> tp = () >>> type(tp) <class 'tuple'> 字典dict,声明语法{},对值 .items(),键值 .keys(),值 .values() >>>…
上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 这一章的内容比较简单,主要是MATLAB的一些基础教程,如果之前没有学过matlab建议直接找一本相关书籍,边做边学,matlab的编程入门还是比较容易的. 在这里想讲一下matlab和Python的区别: 吴恩达教授在刚开始教机器学习课程的时候,主要用的是matlab/octave,他给出的理由是利用matlab/octave学生能够更快更好地学习并掌握机器学习算法.这只是当时的情况,在后期吴恩达教授深度学习课程的教学中…
操作系统学习笔记----进程/线程模型----Coursera课程笔记 进程/线程模型 0. 概述 0.1 进程模型 多道程序设计 进程的概念.进程控制块 进程状态及转换.进程队列 进程控制----进程创建.撤销.阻塞.唤醒.... 0.2 线程模型 为什么引入线程 线程的组成 线程机制的实现 用户级线程.核心级线程.混合方式 1. 进程的基本概念 1.1 多道程序设计 允许多个程序同时进入内存运行,目的是为了提高CPU系统效率 1.2 并发环境与并发程序 并发环境: 一段时间间隔内,单处理器上…
机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学习入门01 - 框架处理(Framing) https://www.cnblogs.com/anliven/p/10252938.html 机器学习基本术语. 了解机器学习的各种用途. 机器学习入门02 - 深入了解机器学习 (Descending into ML) https://www.cnbl…
https://www.imooc.com/t/197450float float的设计初衷/原本作用-是为了实现文字环绕效果如,一个图片和一段文字垂直放置,给图片加上浮动,文字就环绕图片展示了. 浮动的包裹与破坏 包裹 收缩 坚挺 隔绝 - BFC 具有包裹的其他属性:(是不是可以生成块级上下文的其他属性?) display: inline-block.table-cell... position: absolute(近亲).fixed.sticky overflow: hidden.scro…
有监督学习 常用分类算法 KNN:K近邻分类器.通过计算待分类数据点,与已知数据中所有点的距离,取距离最小的前K个点,根据"少数服从多数"的原则,将这个数据点划分为出现次数最多的那个类别. 在sklearn中,使用sklearn.neighbors.KNeighborsClassifier创建K邻近分类器. 选取较大K值,可以减小误差,但可能导致预测错误.选取k值较小,易引起过拟合.一般倾向于选择较小的k值,并使用交叉验证法选取最优的k值. 决策树算法 是一种树形结构分类器,通过顺序询…
北京理工大学在线课程: http://www.icourse163.org/course/BIT-1001872001 机器学习分类 监督学习 无监督学习 半监督学习 强化学习 深度学习 Scikit-learn算法分类 sklearn自带的标准数据集 sklearn的六大任务:分类.回归.聚类.降维.模型选择.数据预处理. 一.无监督学习:数据没有标签.最常用的是聚类和降维. 聚类:根据数据的相似性将数据分为多类的过程.使用样本的"距离"来估算样本的相似性,不同的距离计算方法有不同的…
用分类算法进行上证指数涨跌预测. 根据今天以前的150个交易日的数据,预测今日股市涨跌. 交叉验证的思想:将数据集D划分为k个大小相似的互斥子集,每个子集都尽可能保持数据分布的一致性,即从D中通过分层抽样来得到.然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集.这样可以获得k组训练/测试集,从而可进行k次训练/测试,最终返回的是这k个测试结果的均值.通常称为"k者交叉验证",常用取值是10. coding:utf-8 用分类算法预测股市涨跌 import pandas…
聚类的实际应用,图像分割. 利用图像的特征将图像分割为多个不相重叠的区域. 常用的方法有阈值分割,边缘分割,直方图法,特定理论(基于聚类,小波分析等). 实例:利用k-means聚类算法对图像像素点颜色进行聚类以分割图像. 输出:同一聚类的点以相同颜色表示,不同聚类的像素点以不同的颜色表示. 用PIL库从图片中读取像素点的颜色,转化到[0,1]的范围内. f = open(filePath, "rb") data = [] img = image.open(f) m,n = img.s…
岭回归 解决某些训练样本线性相关,导致回归结果不稳定的情况. 它是一种用于共线性数据分析的有偏估计回归方法.是一种改良的最小二乘估计法. 在sklearn中使用sklearn.linear_model.Ridge进行. 课程的实例是交通流量预测,我找不到数据文件,从网上自己找个例子吧. 用波士顿房价预测做例子. 先加载数据并放到dataframe里. 用seaborn的pairplot画图看看. 真不错,又会一招.可以看到(最后一行或最后一列)有的属性与房价有明显的关系,而有的没有明显关系. 还…
用KNN算法来进行数字识别,还是用sklearn自带的digits数据集. coding:utf-8 KNN算法实现手写识别 from sklearn import neighbors from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split from sklearn.metrics import classification_report import matplo…
监督学习(supervised learning) 假设我们有一个数据集(dataset),给出居住面积和房价的关系如下: 我们以居住面积为横坐标,房价为纵坐标,组成数据点,如(2104, 400),并把这些数据点描到坐标系中,如下: 由这些数据,我们怎么才能预测(predict)其他房价呢?其中房价作为居住面积的函数. 为了方便描述,我们用x(i)表示输入变量(即居住面积),也叫做输入特征(features):同时,用y(i)表示输出(即房价),也叫做目标(target)变量.有序对   (x…
目录 列表 元组 字典 三元表达式 一.列表 前面学习的字符串可以用来存储一串信息,那么想一想,如果现在有很多人,总不能每个人都起一个变量名把?那岂不得疯~ 咱们可以使用列表. (1)列表得格式和输出 name = ['杜子腾','史珍香','付书宝','刘币替']'杜子腾','史珍香','付书宝','刘币替'] 输出列表: print(name)print(name[0])print(name[1])print(name[2]) ]) ]) ]) 运行结果: (2)列表得循环遍历 使用 for…
极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www.cnblogs.com/bourneli/p/4198839.html 这位博主总结的很详细:http://www.cnblogs.com/xbf9xbf/p/4617120.html 这节课提出了一个重要的概念--maxmum margin(它和hinge loss是线性SVM最重要的两个部分)…
这一节讲如何将得到的feature或hypothesis组合起来用于预测. 1. 林老师给出了几种方法 在选择g时,需要选择一个很强的g来确保Eval最小,但如果每个g都很弱该怎么办呢 这个时候可以选择Aggregation的方式将这些若g组合起来,组合起来的G,既能feature transform又能regularization这一对矛盾的性质. 2.接着讲了用uniform blending的方式来classification或regression,并推导了使用uniform blendi…
深度学习面临的问题和现在解决的办法: 简要来说,分两步使用DL:初始化时一层一层的选择权重,而后再进行训练: 那么怎么做pre-training,即怎么选择权重呢?好的权重能够不改变原有资料的信息,即编码过后信息够解码过后仍能保持 用类神经网络做如下: 这样做的原因就是,能找到一个好的特征转换:找到隐藏的资料结构,学到数据典型的表现形式 在层与层的autoencoder过程中,不需要标签信息: 下面介绍了一个regularization方法:在资料中加入artifical noise(很疯狂的想…
将Adaboost和decision tree相结合,需要注意的地主是,训练时adaboost需要改变资料的权重,如何将有权重的资 料和decision tree相结合呢?方法很类似于前面讲过的bagging,通过采样资料来使资料获得不同的权重. 一棵完全的树的权值会无限大,可能出现过拟合.因此需要得到一棵弱分类的树,方法如下: 接下来比较深入的分析adaboost.经过代换,出现了如下惊人的结果: 某个资料的权重正比于投票分数 联系到之前学习的SVM,发现了一个秘密:投票的分数就是某个点到分隔…
将分类器组合的过程中,将重点逐渐聚焦于那些被错分的样本点,这种做法背后的数学原因,就是这讲的内容. 在用bootstraping生成g的过程中,由于抽样对不同的g就生成了不同的u,接下来就是不断的调整u,使得Ein最小. g越不同,通过aggregation,越能得到更好的结果.通过调整u来得到不同的g.如果某个gt,在ut+1时表现的不好,那么gt或与gt很像的hypothesis就 可能不会被选到.因此,可通过调整ut+1来使g不同.那么如何定义g的表现不好呢?如果错误率与丢硬币没什么两样(…
很多ML模型用的都是数值特征,那么对于分类特征,该怎么做呢? 以linear network为例:先对特征进行转换,转换成有意义的特征后,再对其进行线性组合 进一步,模型可表示为:使Ein最小,我们就能知道如何转换特征,如何组合线性模型. 以给电影打分为例,我们实际上要做的,就是从已有评分中,学习到特征V(观影人的喜好)和W(电影的类型) 对Ein的优化,可以通过先固定一个变量进行: 将矩阵分解和linear autocoder进行对比:一个可以降维,一个可以提取出隐藏特征. 用SGD来做矩阵分…
将Radial Basis Function与Network相结合.实际上衡量两个点的相似性:距离越近,值越大. 将神经元换为与距离有关的函数,就是RBF Network: 可以用kernel和RBF来衡量相似性: 那么如何选中心点呢,一种方法是把所有看过的资料都当做中心点,这就是 FULL NETWORK: 用所有的点作中心太麻烦,可以选择某几个点来投票,这就是KNN(具体可参考机器学习实战): 之前投票的y就是资料的标签,如果每笔资料都不同的话,可以得到一个简洁的贝塔: 减少中心点(相当于选…
P2 + P3 + P4 + P5 - 基础: 1. Houdini中使用Python的地方 2. Textport:可使用cd.ls等路径操作的命令(命令前加%,可在python中使用) 3. Source Editor 在Source Editor中定义函数 在其他地方调用 hou.session.getChildren(hou.node("/")) 4. Python Shell 示例 p2 obj = hou.node("/obj") obj.createN…
之前的SVM非常的hard,要求每个点都要被正确的划分,这就有可能overfit,为此引入了Soft SVM,即允许存在被错分的点,将犯的错放在目 标函数中进行优化,非常类似于正则化. 将Soft SVM进行对偶转化后,发现与之前的hard SVM非常的像,只是其中一个系数多了个上界. 通过对阿尔法值的范围的讨论,将SVs分成三类:边界外的.free vector.bounded vector 最后讲的是模型的选择.需要注意的是,我们可以根据support vector的数量来确定cross v…
这一节讲的是核化的SVM,Andrew Ng的那篇讲义也讲过,讲的也不错. 首先讲的是kernel trick,为了简化将低维特征映射高维特征后的计算,使用了核技巧.讲义中还讲了核函数的判定,即什么样的函数K能使用kernel trick. 此外,核函数还可以衡量两个特征的相似度,值越大,越相似(可用于跟踪哦 ). 接着讲的是Polynomial Kernel,需要注意的是核函数的系数和常量,这会影响到最终的margin. 再接着讲了高斯Kernel,它能将原始数据映射到无限维!但是如果参数选的…
这节课讲的是SVM的对偶问题,比较精彩的部分:为何要使用拉格朗日乘子以及如何进行对偶变换. 参考:http://www.cnblogs.com/bourneli/p/4199990.html http://www.cnblogs.com/xbf9xbf/p/4619866.html…
上一篇  ※※※※※※※※  [回到目录]  ※※※※※※※※  下一篇 7.1 分类问题 本节内容:什么是分类 之前的章节介绍的都是回归问题,接下来是分类问题.所谓的分类问题是指输出变量为有限个离散值,比如正确或错误.0或1.是或否等等.我们将首先从二元分类问题开始讨论,可将分类总结成 y ∈ { 0 , 1 },,其中 0 表示负向类,1 表示正向类. Logistic回归与线性回归有一个主要的区别,在线性回归中,ℎ…
这一节主要讲的是如何将Kernel trick 用到 logistic regression上. 从另一个角度来看soft-margin SVM,将其与 logistic regression进行对比,发现可将 SVM看作一个正则化模型: 将SVM看作一个regularize model,是为了更好的延伸到其他模型上. 下面从erro measure的角度来分析二者相似性: 再从binary classfication的角度来比对:做了一个LogReg就相当于做了SVM,那SVM的结果能否用到L…
由perceptron线性组成的一个神经网络: 通过赋予g不同的权值,来实现不同的切分功能: 但有的切分只通过一次特征转换是不够的,需要多次转换,如下: Neural Network Hypothesis:为了便于优化,将sign(离散)变成tanh,这个函数相当于regression的拉伸与平移: 然后给了一个物理解释:衡量x与权值向量在模式上的的相似程度 那么怎么得到权值w呢:可以在最后的错误上对各个权值求偏微分,得到权值变化的方向: 直接求微分不好求,可先求最后一个: 给了一个算法: 这样…
随机森林就是要将这我们之前学的两个算法进行结合:bagging能减少variance(通过g们投票),而decision tree的variance很大,资料不同,生成的树也不同. 为了得到不同的g,除了用bootstrap用不同的资料得到不同的g外,还可以采用随即选择特征的方式: 为了增加特征的随机性,将特征投影到任意方向上: bagging中,没有被选中的资料被称为OOB: 在N次选择中都没有被选中的概率是: 可以用OOB来做validation,不同的是,不需要对每个g来做,可以用G-来做…