Other articles


  1. 更新网站域名

    最新放弃了原来注册的 .com 域名,改为直接用 github 提供的二级域名,以前的一些链 接可能会受影响,以后再慢慢改回来。

    read more
  2. 最近的更新:KNN算法自定义距离时的并行化,时间序列的分类

    最近在好几个地方用到了KNN这个最简单的分类算法。KNN虽然原理和实现都相当简单(当 然是最基础的形式),但在某些问题上效果也好得出奇。缺点当然也非常明显,至少速度 在数据量稍微大一点的时候就变得很慢了。所幸的是在做prediction的时候,sklearn的实 现中是可以允许通过n_jobs参数来实现并行的。不过在最近使用一个KNN的案例中遇到了 一个问题,当使用自定义的距离函数时,并行似乎没有任何效果。

    其实似乎sklearn中类似的小坑还是比较多的,尽管很多并不一定是sklearn本身的问题 。比如用RandomizedCV时,如果n_jobs=1,此时定义verbose参数就是无效的,会在 jupyter中输出一堆中间结果。

    考虑到当KNN采用暴力遍历距离矩阵时,其实预测每一个点的任务是独立的,那么其实自己 很容易就可以写一个wrapper来让predict函数用多进程实现并行:

    先写一个函数可以把job拆分:

    def split_chunks(l, n):
        chunk_size = math.ceil(len(l) / n)
        for i in range(0, len(l …
    read more
  3. NCM: 理想的 vim 补全插件

    Update: NCM已停止更新。不过在它停更之前,我发现它在有些时候会造成 Vim crash 或卡死,已经将其卸载。本来 deoplete 可能是最好选项了,但总没有找到能让我满意的配置。目前的办法是 Vim 退居二线,只用来做简单快速的编辑,主力转到更现代的 VSCode。

    在 Vim 上一直以来都没有找到一个相对理想的自动补全插件。最开始的需求不高,只要求 能够基于上下文做一点自动补全就可以了,所以 supertab 就已经足够满足了。后来尝试用 you-complete-me,繁琐的安装让我还是放弃了这个选择。

    再往后用得最久的一个选择是 neocomplete,它带有一些类似于 IDE 的功能,比如补全某个导入的包的函数名。大多数时候这个插件还比较符合我的心意,但一直有一个比较不满意的地方是,如果导入了某个相对大一点的库,比如 numpy,那么在第一次输入任何小数点的时候程序会卡顿一小段时间。尽管作者说已经实现了异步,但至少在我的配置下,没有能够实现异步地生成补全库。另外最新的消息是这个插件已经基本停止更新,作者已经把主要精力放在了新的替代品上了。

    由此引出本文的主角,也就是我目前的选择:nvim-completion-manager …

    read more
  4. 合并多个 pd.DataFrame 的常规方法

    在使用 pandas 时经常会碰到一个需求,即合并多个 DataFrame。比较遗憾的是,按现在 pandas 的设计,并不能在不产生新 DataFrame 对象的情况下把数据 append 到一个现有 的 df 中,因此如何相对有效地合并多个 df 一直是困扰我的问题。

    按最通常的想法,是直接写一个循环:

    for df_i in dfs:
        pd.concat(df, df_i)
    

    显然这样会额外地创建很多个临时的 df,虽然能够工作,但不是好的工作方法。

    在 StackOverflow 上有人给出了一个办法,我认为相对还是比较好的,就是把所有要合并 的 df 放到一个列表中,然后用 concat 函数一次性合并:

    df = pd.concat(dfs)
    

    这样避免了产生中间临时 …

    read more
  5. 用 LaTeX 写大论文的一些经验

    几个月前写博士毕业论文的时候,起初准备用 Word 来写,因为虽然我算是 LaTeX 的老用 户,但其实遇到问题时并没有什么解决的经验。相比之下,用大部分人使用的 Word 会更 加稳妥。不过在 Word 中写了几页就决定还是用 LaTeX 了,主要有两方面的原因:

    1. 论文中存在大量公式,Word 虽然自 2007 版本起就引入了更好的公式支持,允许按部 分 LaTeX 的语法输入,并且有不错的显示效果。但比较遗憾的是,即使是目前最新版 本的 Word 2016,在存在行内公式时,段落内的行间距都会受到影响。这一点,如果一 直是使用 Word 的人并不一定会注意到,但一旦注意到了,而且确定地知道使用 LaTeX 可以克服时,就会觉得这个缺点难以忍受了。
    2. 论文各个章节以及章节内部存在大量的交叉引用,图片、公式 …
    read more

Page 1 / 9 »

links

social