Attention Is All You Need 笔记

Attention Is All You Need 笔记

1. 背景

在解决翻译问题时,如果句子长度过长 Encoder-Decoder 的模型也不能得到良好的结果。这样的问题就是长序列会遇到的问题,其主要原因是序列过长时,向后处理序列时前面的序列会出现“遗忘”问题。通过 Attention 的方式可以缓解这种问题,增加长记忆的能力。

阅读更多

Matplotlib 可视化应用基础

笔记是针对 Python 可视化工具 Matplotlib 基本信息总结,针对的版本是 3.3.1

TL;DR

  1. 图形是对象,所有对象都是 Artists
  2. 图形对象是具有层级关系
  3. 图像优化可以选择具体的对象进行分别优化
  4. 数据可视化建议,先简单摸索后优化

作为 Python 可视化中的重要工具,matplotlib 有广泛的应用——不仅是一个独立 package,而且常被作为其他可视化依赖工具——例如 pandasseaborn 可视化均有相关依赖。

阅读更多

需求和价格分析

对于商品来说不同的定价策略会影响到收益和利润,理解不同的需求的消费者的消费意愿对价格的响应具有重要的实践意义。从分析的角度利用需求曲线,以及价格对市场环境拟合可以用于评估利润的最大值。在基础信息包括:

  • 成本产量,生产单位产品的成本
  • 产品的需求曲线,反映用户对产品不同价格的需求数量。本次的讨论不扩大影响产品需求变化的其他因素——例如经济环境以及竞争者价格,单纯从价格方面讨论
  • 价格弹性,反映给定的需求曲线下,价格每增加一个百分点致使需求减少的百分比 $\text{price elasticity} =-\frac{(\text{demand}_2 - \text{demand}_1)*100}{1% \text{price}_1\text{demand}_1}$ 。具有价格弹性的表现是价格弹性大于 1,反之当数据值小于 1 时,则是不具有价格弹性
阅读更多

RFM 模型与使用 RFE 模型分析用户价值

1. RFM 背景

RFM 是分析用户价值的一种营销分析方法,其目的是为了找到最佳用户的方式,利用帕累托效应衡量当前用户价值和和客户潜在价值。分析的方法正如其名:

  • Recency 最近消费时间间隔,指距离最近一次消费的时间长度,在评分上可以采取 rank 为 10 的方式,其中 1 为最低[^1]
  • Frequency 指定时间段内的消费次数,针对的是在给定是时间跨度范围内(例如 12 个月),用户消费的消费次数。在分析中同样可以采取 rank 为 10 的方式评分[^1]
  • Monetary 消费总额或者平均消费额
阅读更多

使用Spark进行机器学习

Spark 提供的统一分析引擎中包括了数据整合分析、特征、模型训练和部署等一套完整的生态系统,因此使用 Spark 能够进行实现机器学习的任务。常规的分类和回归问题,都可以通过 spark.mlib 或者 spark.ml 两个包来完成。但是两者在在处理数据类型上存在一些差异,spark.mlib(自 Spark 2.0 版本进入维护模式) 提供的是基于 RDD API 的原生机器学习 API;而 spark.ml 是一个相对较新的包,它是基于 DataFrame API 的机器学习 API

HBase 以及 Python 使用 HBase

HBase 的支持的文件系统是 HDFS,但其不仅仅支持 HDFS。由于其使用的文件系统是可插拔的架构,只需要提供可以被 Hadoop 接口支持的文件系统那么就可以替换 HBase 底层文件系统。

ZooKeeper 是一个可靠的高可用的、持久化的分布式的协调系统,它在 HBase 的架构中是监控服务器可用性、跟踪机器故障和网络分区。每台 Region 服务器在 ZooKeeper 服务器中会有独立的会话,Region 作为客户端会向 ZooKeeper 服务器定时发送”心跳“,以判断服务器是否故障。

阅读更多

ETL 和 ELT 差异

ETL 和 ELT 都是数据处理的模式,但是两者在逻辑和应用场景下是具有较大差异的。两者的英文单字都是相同的意思:

  • Extract,数据抽取,从数据源中提取数据
  • Ttransform,数据转换,包括了数据清理以及规范化处理,以及其他相关的操作
  • Load,数据加载,可以看作是将当前数据结果交付,应用于下游任务
阅读更多

cookecutter 使用以及整洁架构设计

在设计架构过程是使用 cookiecutter 能够方便快速的搭建统一的框架。该笔记是依据 《整洁架构》搭建日志模版的过程和思路整理。

阅读更多

Mock 技巧

Mock 的方法是解决单元测试等简单测试方法时过于隔离,非真是真实场景。在复杂系统下需要接入外部系统信息进行测试,例如接受外部数据、完整流程的系统测试,但是在开发阶段并接入外部依赖存在较大的复杂性以及增加了开发阶段测试的难度。因此通过 “模拟”的方式来解决以上的问题,在 Python 的 3.x 版本之后提供了 mock 的基础模块以解决 Python 开发过程中的上述问题。

阅读更多