• 安利一个美股历史数据Python库:yfinance

    相比A股和港股,(免费的)美股的数据没有那么容易拿到,而适合Python的source/library就更少了。

    最近找到一个免费、轻量的Python库——yfinance。整个库只有一个文件,数据从yahoo下载,免费无限制。安装及使用教程见上面的链接。

    无需申请token,即装即用,和tushare一样方便,值得拥有。

  • (PyTorch)使用 LSTM 预测时间序列(股票)

    目标

    学习使用 LSTM 来预测时间序列,本文中使用上证指数的收盘价。

    运行环境

    Python 3.5+, PyTorch 1.1.0, tushare

    数据获取与处理

    首先用 tushare 下载上证指数的K线数据,然后作标准化处理。

    原始数据:上证指数从2018-01-01到2019-05-24的收盘价(未标准化处理)

    把K线数据进行分割,每 DAYS_FOR_TRAIN 个收盘价对应 1 个未来的收盘价。例如K线为 [1,2,3,4,5], DAYS_FOR_TRAIN=3,那么将会生成2组数据:
    第1组的输入是 [1,2,3],对应输出 4;
    第2组的输入是 [2,3,4],对应输出 5。

    然后只使用前70%的数据用于训练,剩下的不用,用来与实际数据进行对比。

    阅读更多…
  • 在 Google 云搭建深度学习平台

    大家都知道,Google有一个很方便的 Colab ,而且到目前为止,还是免费的,并且 GPU 和 TPU 也是免费的。那为什么还要自己搞呢?因为 Colab 每个 session 只能用12小时,之后环境和数据不会保留,并且也不能进一步自定义配置和性能。Google 云给新注册的用户提供了$300 USD的赠金,非常适合学生党和个人的小项目。下面就开始体验吧。

    创建用户

    如果还没有 Google Cloud 用户,前往 Google Cloud 注册一个。这里需要一张 Visa / Mastercard 信用卡,没有的话我也帮不了你..然后$300 USD额度就到手了。

    申请 GPU 额度

    一开始的用户是没有 GPU 额度的,就算创建了带 GPU 的实例,也不能启动。请参照申请提升配额的步骤提交申请,把 GPU 的 0 改为更大的数值。在此之前,平台应该会让你把用户升级为付费账号,也就是说,如果送的额度用完了,就会从你的信用卡扣钱(注意要省着用了)。申请提升配额的页面中写可能要一两天来处理申请,但是我提交之后一小时内就批了。

    阅读更多…
  • 慎用中国银行的在线跨境汇款——可能提示“暂时无法通过电子银行渠道办理”

    前言

    中国银行的跨境汇款有个好处,就是境外的网点多,汇往境外中行手续费便宜,如果用手机App汇款还免费。

    问题

    用着感觉非常好,你多用几次,就出事了,给你提示:“暂时无法通过电子银行渠道办理跨境汇款业务,请您携带相关资料至我行网点柜台办理。”

    上网一搜,还真有不少同样的遭遇(见文末),还有人在地球另一边被坑的,这就比较惨了。

    只能乖乖去银行。去到网点,说要跨境汇款,就让我去智能终端,我一顿操作,点确定,竟然也失败了。于是去排人工柜台的长队。🙂

    原来,是暗中被限制只能给同一个境外账号在线转账4次导致的(网点的员工好像都知道这一点,就算不知道4次,也说“你转太多次了”)。无论汇款用途是否正当、是否超过50000美元的限制,都会被打回。我一数,我2018年还真转了4次(以前没有使用过该服务)。现在是2019年,仍然不能汇款,不知道这个限制是永久的,还是要等到满一整年后才能清零重新计算。

    坑爹的地方在于,这个限制没有在任何地方公告。如果一不小心忘记了这个限制,人在境外,又需要用钱,后果可想而知。

    相关案例

    1. 百度知道 . 现在通过中行手机银行跨境汇款就汇不出去,手机银行提示暂时无法接通电子渠道汇款需要到柜台办理
    2. 百度知道 . 中国银行行跨境汇款 出错
    3. 洛阳网百姓呼声 . [投诉]中国银行是不是在忽悠客户

  • 使用 Z3 Solver 求解逻辑题

    Z3 是一个由 Microsoft Research 开发的定理求解器。它可以用在很多方面,如软/硬件的验证与测试、约束求解、混合系统的分析、安全、生物,以及求解几何等问题[1]。Z3 主要由 C++ 开发,但它支持被 .NET、C、C++、Java、Python 等语言调用。本文使用其 Python binding。

    在网上看到有不少解方程和约束条件的使用,我在此补充它在命题逻辑方面的例子。

    安装

    非Windows平台可尝试直接安装:

    pip install z3-solver

    Windows平台由于编译环境比较复杂,Pypi 中只有没这么新的版本,指定旧版本安装:

    pip install z3-solver==4.5.1.0.post2

    例题 1

    一军用仓库被窃,公安部门已掌握如下线索:①甲、乙、丙三人至少有一个是窃贼;②如甲是窃贼,则乙一定是同案犯;③盗窃发生时,乙正在影剧院看电影。由此可以推出( )。

    A.甲、乙、丙都是窃贼
    B.甲和乙都是窃贼
    C.丙是窃贼
    D.甲是窃贼

    阅读更多…
  • 一图流解释 Alpha-Beta 剪枝(Alpha-Beta Pruning)

    Alpha-Beta剪枝用于裁剪搜索树中不需要搜索的树枝,以提高运算速度。它基本的原理是:

    • 当一个 Min 节点的 β值≤任何一个父节点的α值时 ,剪掉该节点的所有子节点
    • 当一个 Max 节点的 α值≥任何一个父节点的β值时 ,剪掉该节点的所有子节点

    下面为只使用 MiniMax 和使用 Alpha-Beta 剪枝的简单对比。

    MiniMax search without alpha-beta pruning
    MiniMax search with alpha-beta pruning

    需要注意的是,剪枝的效果与树节点的访问顺序有关。

    Alpha-Beta剪枝的伪代码如下:

    下面用一个例子说明。规定从左节点开始展开。原搜索树为:

    阅读更多…
  • 使用 Python OpenCV 3.4.x 进行 SIFT 特征检测与匹配

    前言

    Harris算法和Shi-Tomasi 算法,由于算法原理,具有旋转不变性,在目标图片发生旋转时依然能够获得相同的角点。但是如果对图像进行缩放以后,再使用之前的算法就会检测不出来,如图:

    图像放大,窗口不变,导致检测结果发生变化

    在2004年,University of British Columbia 的 D.Lowe 在他的论文 Distinctive Image Features from Scale-Invariant Keypoints 中提出了一个新的算法,Scale Invariant Feature Transform (简称SIFT),它可以提取关键点及计算其描述符。OpenCV的文档指出这篇论文容易理解,推荐阅读。

    SIFT算法主要有4个步骤,详情请见文末的相关参考。

    流程

    1. 尺度空间极值检测(Scale-space Extrema Detection)
    2. 关键点定位(Keypoint Localization)
    3. 方向分配(Orientation Assignment)
    4. 关键点描述符(Keypoint Descriptor)
    阅读更多…
  • 霍夫变换(Hough Transform)

    简介

    霍夫变换(Hough Transform)最初用于检测图像中的直线或者圆等几何图形,主要应用在图像分析、计算机视觉和数字图像处理领域。后来经过拓展,可适用于任意图形的检测,及一些参数取值的检测。

    霍夫直线变换的基本思想

    如果两点 (xi, yi) 和 (xj, yj) 都在一条直线上,那么它们在x-y平面上有相同的斜率和y轴的截距。

    对于一个点 (xi, yi) ,经过直线 yi = axi + b,其中a为斜率,b为y轴截距。可以把该式改写为 b = (-xi)a+ yi ,使a为自变量,b为因变量,a可取[amin, amax],代入a可求出对应的b值。a和b的关系可以在参数空间(即a-b平面)上作图。把参数空间分隔为一个一个格子(累加器),然后把 (a, b) 对应的格子A(a, b) 加 1。
    也就是说,一个点可以使参数空间的一系列累加器都加 1。

    对于另外一个点 (xj, yj) ,把 yj = axj + b 改写为 b = (-xj)a+ yj ,作同样的操作,对应的一系列累加器加1。

    阅读更多…
  • 极路由如何走到濒临破产:沿着悬崖奔跑 辉煌与沉寂后的思考

    转载自:https://www.cnbeta.com/articles/tech/753389.htm

    这些年智能硬件单品层出不穷,一些被上帝眷顾的技术大佬偶尔会因为一些生活中遇到的小问题,一言不合,就创造出一个属于自己的时代符号,极路由创始人王楚云就是这样一个人,而他选中的是智能路由器。

    2011年,王楚云在做微博营销,当时他经常被公司的宽带网络“贵”、“慢”两大问题所困扰,为解决这一问题,尝试过各种办法无果后,想到了“改装”路由器——在一台有USB口的路由器上刷Openwrt,将三大运营商的网络做负载均衡,新网络带宽神奇地从原来的1M变成了10M,而网费却由原来的1000元变成了600元,正是这一次的魔术手使得王楚云走上了他的创业之路。

    创业最艰难的就是构建核心团队,最初王楚云找来了大街网的前同事李恺,同为技术出身的李恺自然与其一拍即合,接着是曾在TP-Link带队研发过红极一时的WR-703N的张利鹏的加入,使得核心团队基本成型。至此,极路由三驾马车已到齐,产品研发开始进入正轨,而摆在未来的却是未知的考验。

    阅读更多…