随笔分类 - 机器学习
摘要:本篇介绍时间序列预测常用的ARIMA模型,通过了解本篇内容,将可以使用ARIMA预测一个时间序列。 什么是ARIMA? ARIMA是'Auto Regressive Integrated Moving Average'的简称。 ARIMA是一种基于时间序列历史值和历史值上的预测误差来对当前做预测的模
阅读全文
摘要:如果想知道一个序列是否对预测另一个序列有用,可以用Granger causality test(格兰杰因果检验)。 Granger causality test的思想 如果使用时间序列X和Y的历史值来预测Y的当前值,比仅通过Y的历史值来预测Y的当前值得到的误差更小,并且通过了F检验,卡方检验,则X对
阅读全文
摘要:本文介绍一种方法,帮助我们了解一个时间序列是否可以预测,或者说了解可预测能力有多强。 Sample Entropy (样本熵) Sample Entropy是Approximate Entropy(近似熵)的改进,用于评价波形前后部分之间的混乱程度, 熵越大,乱七八糟的波动越多,越不适合预测;熵越小
阅读全文
摘要:经典的时间序列预测方法都是假设如果一个时间序列有显著的自相关性,那么历史值对预测当前值会很有帮助,但是究竟取多少阶的历史值,就需要通过分析相关函数图和偏相关函数图来得到。本文介绍如何什么是相关函数图和偏相关函数图,另外还会介绍一下滞后图。 什么是自相关和偏自相关函数? 先来解释下滞后阶数n,如果当前
阅读全文
摘要:有的时候,一些时刻或连续时间段内的值无法采集到,或者本身就没有值,本文将介绍如何处理这种情况。 一般而言,有以下几种方法: 对所有的缺失值用零填充。 前向填充:比如用周一的值填充缺失的周二的值 后向填充:比如用周二的值填充缺失的周一的值 采用n最近邻均值法填充:比如n取2,则用t-2,t-1,t+1
阅读全文
摘要:上篇文章简单提到了应该用平稳时间序列做预测,本文将介绍具体概念和原因。 Stationary Series 平稳序列 平稳序列有三个基本标准: 1、序列的均值(mean)不应该是时间的函数(意思是不应该随时间变化),而应该是一个常数。下面的左图满足这个条件,而右图的均值受时间的变化影响。 2、序列的
阅读全文
摘要:在初始概念篇中,我们简单提到了时间序列由趋势、周期性、季节性、误差构成,本文将介绍如何将时间序列的这些成分分解出来。分解的使用场景有很多,比如当我们需要计算该时间序列是否具有季节性,或者我们要去除该时间序列的趋势和季节性,让时间序列变得平稳时都会用到时间序列分解。 加法和乘法时间序列 时间序列的各个
阅读全文
摘要:本文将介绍如何通过python来读取、展现时间序列数据。 读取 时间序列数据一般用cvs等电子表格的形式存储,这里以cvs为例: from dateutil.parser import parse from datetime import datetime import matplotlib as
阅读全文
摘要:利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况。比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的。 什么是时间序列? 时间序列,是指同一个变量在连续且固定的时间间隔上的各个数据点的集合,比如每5分钟记录的收费口车流量,或者每年记录的药物销量都是时间序列。 时
阅读全文
摘要:去年底入手一台联想Y7000P,配置了Nvidia GeForce GTX 1660 Ti GPU,GPU内存6G,但是因为有GPU服务器,所以一直没有在这台笔记本上跑过模型,如今经过一番折腾,终于在此笔记本上搭建好了环境,并成功使用GPU训练了一些模型,本篇记录了环境搭建的过程。 注意: 1、CU
阅读全文
摘要:CART算法 原理 CART全称为Classification and Regression Tree。 回归树 相比ID3,CART遍历所有的特征和特征值,然后使用二元切分法划分数据子集,也就是每个节点都只会分裂2个分支。接着计算数据子集的总方差来度量数据子集的混乱程度,总方差越小数据子集越纯,最
阅读全文
摘要:决策树是一个树形结构,类似下面这样: 上图除了根节点外,有三个叶子节点和一个非叶子节点。 在解决分类问题的决策树中,叶子节点就表示所有的分类,比如这里的分类就有3种:无聊时阅读的邮件、需及时处理的邮件、无需阅读的邮件。 使用决策树来分类某个样本数据,就是利用根节点选取的特征,将当前输入样本划分到根节
阅读全文
摘要:信息熵为什么要定义成-Σp*log(p)? 在解释信息熵之前,需要先来说说什么是信息量。 信息量是对信息的度量,单位一般用bit。 信息论之父克劳德·艾尔伍德·香农(Claude Elwood Shannon )对信息量的定义如下: 在解释这个公式之前,先看看下面的例子。 比如一个黑箱里有2个苹果,
阅读全文
摘要:本文是用机器学习打造聊天机器人系列的最后一篇啦,请耐心看完吧。 本系列文章展示了一个聊天机器人的打造过程,现阶段更高级的聊天机器人会加入更多语料,更多意图模式,用更好的算法,以及其他更多的小技巧,比如: 我们可以结合上一个系列《手把手教你做命名实体识别》中介绍的bert模型,来代替这里的词向量模型,
阅读全文
摘要:本文是用机器学习打造聊天机器人系列的第六篇,主要介绍代码中用到的相关算法的原理。了解算法原理,可以让我们知道程序背后都做了些什么,为什么有时候会出现错误以及什么场景下选择哪种算法会更合适。 word2vec 我们使用的词向量模型就是基于word2vec训练的,word2vec 是 Google 在
阅读全文
摘要:本文是用机器学习打造聊天机器人系列的第五篇,在特性介绍中提到过,我们采用非侵入式设计,通过几个简单的 API 就可以接入聊天机器人到其他项目中,下面来看看具体步骤。 接入步骤 提供符合要求的领域问答语料的 txt 文件,按照意图类型划 分成不同的txt文件,替换本引擎自带的txt语料文件,txt语料
阅读全文
摘要:本文是用机器学习打造聊天机器人系列的第四篇,将先对主要模块的代码进行展示和解读,末尾会给出完整代码的地址。建议先看主要模块的代码解读,有助于理解核心代码的思路,然后浏览完整项目代码的README文档,将项目跑起来体验以下,再针对性的根据接口去阅读各模块代码的实现。 主要模块代码 构造特征向量 特征向
阅读全文
摘要:本文是用机器学习打造聊天机器人系列的第三篇,通过阅读本文你将对聊天机器人的实现有一个大致的思路。 我们的聊天机器人将具备什么样的特性? 用户可以使用人类自然语言的方式来表达自己的意图。 可以依据用户的反馈进行在线增量学习,使用的越久,能回答得问题越多。 采用非侵入式设计,通过几个简单的API就可以接
阅读全文
摘要:本文是用机器学习打造聊天机器人系列的第二篇,有助我们先了解下聊天机器人的相关概念。 什么是聊天机器人? 聊天机器人是一个程序,该程序会回应人类的话,其载体可以是一个网页、一个桌面应用、一个app。 人类使用文字或者语音的方式和其交流,其同样以文字或者语音的方式反馈给人类。 如果为这样的程序套上一个音
阅读全文
摘要:还记得手把手教你做物体检测、手把手教你做命名实体识别系列的文章吗?满满的干货有没有O(∩_∩)O,大部分读者跟着步骤来,最后都实现了其中的物体检测和命名实体识别项目。 物体检测 命名实体识别 本系列文章,依然秉承实践为主,理论为辅,让大家"做的出,看的懂"的原则,效果展示、特性介绍、设计思路、代码实
阅读全文