Technic

使用python构建ARIMA模型进行预测分析的小说明:forecast函数

Autoregressive Integrated Moving Average model(ARIMA),即差分整合移动平均自回归模型,或称为整合移动平均自回归模型,是一种时间序列预测分析方法。今天我在实践过程中遇到一个小问题,后来看了官方文档才弄清楚,这里和大家分享一下。 首先分享三篇我觉得比较好并且容易上手的教程,其中包含源代码可以直接使用。第一篇是一个最简单的入门,是单步预测;第二篇可以进行多步预测;第三篇对于算法使用前的数据处理和分析进行了详细的介绍;第四篇也有相详尽的步骤和代码,并对数据进行了详细的分析,第五篇详细的介绍了从线性回归到AR、ARMA、ARIMA及GARCH等方法。 How to Create an ARIMA Model for Time Series Forecasting with Python How to Make Out-of-Sample Forecasts with ARIMA in Python Forecast a time series with ARIMA in Python A Guide to Time Series Forecasting with ARIMA in Python 3 Time Series Analysis (TSA) in Python – Linear Models […]

Continue Reading

Technic

Pycharm快捷键及小技巧

现在编程主要使用pycharm,所以这里记录一下使用到的pycharm的小技巧和常用的快捷键。   小技巧 垂直选择文本模式 当前文件右键–>Column Selection Mode–>垂直选择文本 快捷键:Alt + Shift + Insert   在“插入模式”和“改写模式”中转换 键盘上的INSERT键   调出某个窗口(如运行窗口 run,控制窗口 Console等) 鼠标移到窗口最左下的像小窗户一样的图标处,会自动弹出窗口菜单,可以在其中进行选择   仅运行选中的代码 方法1: 右键->Execute line in Console  方法2:Alt + shift +e (前提是命令窗已经设置好,没有的话见下一条)   设置命令窗口Console 通过File -> Settings -> Build ->Console -> Python Console 选择合适的Python interpreter     快捷键 alt+左键:列模式选择   ctrl+b 查看函数定义(或用ctrl+鼠标左键) ctrl+d 复制当前一行并添加在下方 ctrl+q 显示当前参数类型 ctrl+y 删除整行    ctrl – /ctrl + 折叠当前代码(可以用键盘处+和-) […]

Continue Reading

Technic

设置使用tensorflow作为backend并在GPU上运行

由于Theano从十月起停止更新(LINK),我开始着手把我使用Keras时的backend从Theano转到Tensorflow。以下是今天在同事LY的指导下进行backend转换的一点总结(同时对她表示感谢)。   安装环境:Linux服务器上的虚拟环境中(详见:在linux系统上设置虚拟环境Virtual Environment)   首先我根据Keras官网的介绍对keras.json文件进行设置(LINK)。在命令框中输入: vi .keras/keras.json   然后按着如下代码编辑,主要是把backend改为tensorflow。(其实Keras默认的backend就是tensorflow,只是因为我之前改成了theano,所以现在要改回来。) { “image_data_format”: “channels_last”, “epsilon”: 1e-07, “floatx”: “float32”, “backend”: “tensorflow” }   另外如果你还没有安装GPU版本的tensorflow,则需要首先进行安装。由于我们实验室的server上不兼容1.3版本的tensorflow,我这里对安装的版本进行了控制 pip install tensorflow-gpu==1.2   成功安装之后,就可以在你的.py文件的代码里加入如下语句进行tensorflow的backend的调用和设置了,设置好之后像平常一样运行文件即可。 import tensorflow as tf import keras.backend.tensorflow_backend as KTF os.environ[“CUDA_VISIBLE_DEVICES”] = “3” #设置需要使用的GPU的编号 config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.4 #设置使用GPU容量占GPU总容量的比例 sess = tf.Session(config=config) KTF.set_session(sess)   为了观察程序是否确实在使用GPU,可以使用在《Linux上的一点小技巧》中提到的命令gpustat或者watch -n1 –color gpustat进行查看程序是否真的运行在GPU上。 […]

Continue Reading

Technic

机器学习利用第三方库自动寻找最优参数

        目前的实验中我在用深度学习构建神经网络,开始的时候我一般是随机手调几个数大致看下效果,有时候如果需要知道网络效果随参数变化的趋势,就用for循环自动运行许多实验,然后我来收结果并用matlab批量分析。今天同事给我推荐了两个github上的库,利用这两个库可以实现对模型多次的运行并评价系统的运行结果。这个过程中不涉及对系统的优化,只是通过大量的自动运行的实验通过统计学的角度来比较什么样的参数相对较好。         这两个库分别为Spearmint 和 BayesianOptimization.详细的介绍、安装方法和例子在各自的网站里都有写,我就不赘述了。目前我正在尝试使用Spearmint方法,所以先把安装过程中的一点小提示写在这里。         首先,这个库是在python 2.7环境的,如果你使用python 3 的话会遇到一些问题,所以建议使用2.7.         其次,新版的scipy中weave模块已经独立出来,所以原来的文件中使用的scipy.weave as weave语句就没法使用了,会报错。有人建议如下修改   try: import scipy.weave as weave except ImportError: import weave                 可是我的电脑上即使更新scipy后也无法导入scipy.weave或者weave,所以只好使用下边这种方法,也就是完全不使用weave库。因为weave只使用了一次,所以只要在/spearmint/kernels/kernel_utils.py文件中把使用weave模块的部分注释掉即可,把第226行附近的代码调整为如下所示。原来使用weave模块用c语言计算的部分被用python语言的替代了,计算速度会下降,不过好歹可以用了。此外记得删除kernel_utils.py和/spearmint/models/gp_classifier.py文件中weave模块的import。   #try: # scipy.weave.inline(code, [‘x1′,’x2′,’gX’,’ls’,’M’,’N’,’D’], \ # type_converters=scipy.weave.converters.blitz, \ # compiler=’gcc’) […]

Continue Reading

Technic

机器学习相关在线文档网址

Python and packages Python Documentation: You can also select the documentation for different python versions PEP 8 Style Guide PEP8中文版 — Python编码风格指南(上) PEP8中文版 — Python编码风格指南(中) PEP8中文版 — Python编码风格指南(下) 用Python做科学计算 Scipy official web: Include numpy, Matplotlib and so on statsmodels: For install statsmodels package.  pyflux: A library for time series analysis and prediction   High-level APIs Keras Documentation Keras中文文档   […]

Continue Reading

Technic

Linux上的一点小技巧

这里提供几个使用Linux时可能会用到的小技巧,供大家参考:   监控GPU状态 首先要安装gpustat功能 pip install gpustat 单次显示GPU状态   gpustat  通过这个命令可以显示当前GPU的信息,如温度和使用率。如果有多块GPU,则所有GPU的信息都会显示。 每秒自动刷新显示GPU状态 watch -n1 –color gpustat   查看历史命令 直接输入history即可看到曾经输入的所有命令,是按照时间顺序排列的。   监控进程 使用htop命令可以对系统进程进行实时查看,并可通过诸多功能键进行操作。 htop常用功能键  F1 : 查看htop使用说明 F2 : 设置 F3 : 搜索进程 F4 : 过滤器,按关键字搜索 F5 : 显示树形结构 F6 : 选择排序方式 F7 : 减少nice值,这样就可以提高对应进程的优先级 F8 : 增加nice值,这样可以降低对应进程的优先级 F9 : 杀掉选中的进程 F10 : 退出htop / : 搜索字符 h […]

Continue Reading

Technic

佳能产品时间线—-对5D V充满期待

        今天看到digitec的佳能5D IV搞活动,限量60台仅售2999瑞郎(原价3369瑞郎)。我看到的时候已经只剩最后一台了,虽然没有心动到马上就去抢购,但还是流了不少口水。考虑到目前的相机才用了不到三年,而且今年才刚配了一个电池底座用的正开心,就先过过“网瘾”,搜搜看下一代5D V什么时候能出(叫5D V可能不太妥帖,因为毕竟不好说5D下一代是否还沿用同样的命名方式)。5D IV是2016年8月初的,隐约记得5D系列大致是每四年出一次,基本就是按着美国大选的节奏。         在网上找到一篇2016年8月的帖子,上边“预测”下一代5D在2020年1月就能出了,当然人家文章自己也说了,这预测也就是娱乐一下,读者还是得自己把握。原文的链接放在本文最后了,供大家参考。我尤其喜欢文章中对佳能各条产品线的发布时间的总结,一目了然,在这里也截图存档并跟大家分享一下。 原文链接:http://www.northlight-images.co.uk/canon-eos-5d-mark-5/  

Continue Reading

Life

Wedding

Note: Please watch this video with Microsoft Edge browser (on PC) or with your smartphone default browser. (Firefox and Chrome do not work with this video. Sorry for the inconvenience.)

Continue Reading

Technic

在linux系统上设置虚拟环境Virtual Environment

背景:最近因为项目的需要,把电脑连到了实验室的大server上用来跑机器学习的python程序。实验室的server上已经预装了python 2.7和3.4两个版本,并且已经有了一些常用的包。   优点:虽然可以直接使用server上的python进行程序调试,不过同事还是建议我在server中我的文件夹下设置virtual environment,这样做最大的好处是我可以利用虚拟的python环境运行我的程序,也可以在必要时安装更多的包而不需要root权限。同时这些操作不会对其他同事的工作造成影响。虚拟环境设置好之后会生成一个文件夹,不需要的时候可以直接删掉,非常安全。并且也可以根据需要设置不同的虚拟环境,比如我分别设置了python2.7和3.4的虚拟环境。   具体操作: 下面进入正题,这里我使用的是Win10系统,并已经通过putty成功连接到了server中自己的目录下。 Step1:首先建立虚拟环境: virtualenv my_ENV   (此处my_ENV就是你给你设置的虚拟环境起的名字,可以自行修改) 需要说明的是,这一条语句是建立python 2虚拟环境使用的,如果想在虚拟环境中使用python 3, 则为virtualenv -p python3 my_ENV     Step2:设置好之后,我们通过 ls 命令就可以看到所在文件夹中多了my_ENV这个文件夹,这就是你的虚拟环境了。   Step3:激活这个虚拟环境: source my_ENV/bin/activate 这样我们就进入到这个虚拟环境中了,你会看到在putty的命令行的开头会多了一个括号,里边写着(my_ENV).   Step4:为了确保使用的python版本正确,可以用在命令行输入python并查看版本信息,之后可以用quit()命令退回到命令行。同时也可以使用which python命令查看目前使用的python的路径,确保是虚拟环境目录中的python。   Step5:接下来我们可以使用pip freeze命令看一下在这个虚拟环境中已经安装了哪些包。 由于我们还没有安装各种包,结果应该是空的。我们可以通过pip的命令进行各种常用的包进行安装,包括但不限于: pip install keras pip install matplotlib pip install pandas pip install tensorflow pip install sklearn   由于安装keras时会自动安装numpy,所以不需要额外用pip命令安装numpy了,许多其他的包也是一样的,比如scipy,six,pyyaml等等。   Step 6:最后,如果想退出目前的虚拟环境,只需要使用deactivate命令即可。下次再想进入虚拟环境的话,再次使用step […]

Continue Reading

Technic

Linux hotkeys

分节前边是我常用的,之后是从网上复制来但不常用或没有经过我验证的 history  显示命令历史列表 Ctrl+u 剪切命令行中光标所在处之前的所有字符(不包括自身) Ctrl+k 剪切命令行中光标所在处之后的所有字符(包括自身)   ctrl + l  清空屏幕    ↑(Ctrl+p) 显示上一条命令 ↓(Ctrl+n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl+r 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令 Ctrl+s 与Ctrl+r类似,只是正向检索 Alt+< 历史列表第一项 Alt+> 历史列表最后一项 Ctrl+f 光标向前移动一个字符,相当与-> Ctrl+b 光标向后移动一个字符,相当与<- Alt+f 光标向前移动一个单词 Alt+b 光标向后移动一个单词 ls !$ 执行命令ls,并以上一条命令的参数为其参数 Ctrl+a 移动到当前行的开头 Ctrl+e 移动到当前行的结尾 Esc+b 移动到当前单词的开头 Esc+f 移动到当前单词的结尾 Ctrl+l 清屏   Ctrl+d 删除光标所在处字符 […]

Continue Reading