• 决策树算法及实现

    Posted by : lon.y@qq.com on 2017年8月18日

    在计算机科学中,树是一种很重要的数据结构,比如我们最为熟悉的二叉查找树(Binary Search Tree),红黑树(Red-Black Tree)等,通过引入树这种数据结构,我们可以很快地缩小问题规模,实现高效的查找。 在监督学习中,面对样本中复杂多样的特征,选取什么样的策略可以实现较高的学习效率和较好的分类效果一直是科学家们探索的目标。那么,树这种结构到底可以如何用于机器学习中呢?我们先从一个游戏开始。 我们应该都玩过或者听过这么一种游戏:游戏中,出

    阅读全文...

  • 如何做有效的Code Review?我有这些建议

    Posted by : lon.y@qq.com on 2017年8月16日

    代码评审(Code review)是保证代码质量的一种有效手段,做得好的话,对公司来讲是一笔收益颇高的时间投资。但实践起来往往变成了炫耀编程技能、固执己见、恶言相向、同事关系恶化的事,这该如何是好? 往往代码评审过程中,评审者(Reviewer)往往会过于关心旁枝末节,而忽视主要问题,也就是所谓的自行车棚效应。在批准价值百亿的核电站的建设提案中,专家们往往会浪费大量时间纠结于厂内自行车棚(bikeshed)的颜色;因为核电站太大、太复杂,“专家们”未必真懂

    阅读全文...

  • CoreOS,一款 Linux 容器发行版

    Posted by : lon.y@qq.com on 2017年8月15日

    CoreOS,一款最新的 Linux 发行版本,支持自动升级内核软件,提供各集群间配置的完全控制。 关于使用哪个版本的 Linux 服务器系统的争论,常常是以这样的话题开始的: 你是喜欢基于 Red Hat Enterprise Linux (RHEL) 的 CentOS 或者 Fedora,还是基于 Debian 的 Ubuntu,抑或 SUSE 呢? 但是现在,一款名叫 CoreOS 容器 Linux 的 Linux 发行版加入了这场“圣战”。这个最近

    阅读全文...

  • cp 命令两个高效的用法

    Posted by : lon.y@qq.com on 2017年8月13日

    Linux 中高效的备份拷贝命令 在 Linux 上能使用鼠标点来点去的图形化界面是一件很美妙的事……但是如果你喜欢的开发交互环境和编译器是终端窗口、Bash 和 Vim,那你应该像我一样经常和终端打交道。 即使是不经常使用终端的人,如果对终端环境深入了解也能获益良多。举个例子—— cp 命令,据 维基百科 的解释,cp (意即 copy)命令是第一个版本的 Unix 系统的一部分。连同一组其它的命令 ls、mv、cd、pwd、mkdir、vi、sh、se

    阅读全文...

  • 用神经网络训练一个文本分类器

    Posted by : lon.y@qq.com on 2017年8月12日

    理解聊天机器人的工作原理是非常重要的。聊天机器人内部一个非常重要的组件就是文本分类器。我们看一下文本分类器的神经网络(ANN)的内部工作原理。 多层神经网络 我们将会使用2层网络(1个隐层)和一个“词包”的方法来组织我们的训练数据。文本分类有3个特点:模式匹配、算法、神经网络。虽然使用多项朴素贝叶斯算法的方法非常有效,但是它有3个致命的缺陷: 这个算法输出一个分数而不是一个概率。我们可以使用概率来忽略特定阈值以下的预测结果。这类似于忽略收音机中的噪声。 这

    阅读全文...

  • 从集装箱历史看 DevOps 的发展进程

    Posted by : lon.y@qq.com on 2017年8月8日

    什么样的技术会带来生产力的极大提升?技术含量是否与生产力提升成正比关系? 带着问题,我们先看一个例子:在工业革命时期,瓦特用于“改良”蒸汽机的技术,就是极大提升效率的技术。 这里有一个误解,有人认为瓦特发明了蒸汽机。其实不然,瓦特只是改良了纽卡门蒸汽机,通过橡胶增加密闭性同时优化机械结构,使得原本只能用于提水的笨重机器,变得能被广泛应用,为第一次工业革命的兴起奠定了重要基础。 从上面的例子可以看出技术含量的高低与带来生产力的大小并没有直接关系。 传奇的集装

    阅读全文...

  • 文件系统层次标准(FHS)简介

    Posted by : lon.y@qq.com on 2017年8月8日

    当你好奇地看着系统的根目录(/)的时候,可能会发现自己有点不知所措。大多数三个字母的目录名称并没有告诉你它们是做什么的,如果你需要做出一些重要的修改,那就很难知道在哪里可以查看。 我想给那些没有深入了解过自己的根目录的人简单地介绍下它。 有用的工具 在我们开始之前,这里有几个需要熟悉的工具,它们可以让您随时挖掘那些您自己找到的有趣的东西。这些程序都不会对您的文件进行任何更改。 最有用的工具是 ls — 它列出了使用完整路径或相对路径(即从当前目录开始的路径

    阅读全文...

  • 一文带你理解深度学习的局限性

    Posted by : lon.y@qq.com on 2017年8月4日

    深度学习:几何视图 深度学习最令人惊讶的特点便是极易上手。十年以前,没有人可以猜得到经过梯度下降法训练过的简单参数模型可以在机器感知问题上实现如此惊人的结果。现在,事实证明,研究者所需要做的只是使用足够大的梯度下降素材来训练参数模型。正如 Feynman 曾经描述宇宙一样,“它并不复杂,只是里面包含的东西实在太多。” 在深度学习中,所有的东西都是一个向量(任何的东西都是几何空间中的一个点)。模型的输入(可能是文字,图片,等等)和目标首先被向量化(变成了一些

    阅读全文...

  • 使用 Kdump 检查 Linux 内核崩溃

    Posted by : lon.y@qq.com on 2017年8月3日

    让我们先看一下 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现。 kdump 是获取崩溃的 Linux 内核转储的一种方法,但是想找到解释其使用和内部结构的文档可能有点困难。在本文中,我将研究 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现。 kexec 是一个 Linux 内核到内核的引导加载程序,可以帮助从第一个内核的上下文引导到第二个内核。kexec 会关闭第一个内核,绕过 BIOS 或固件阶段

    阅读全文...

  • 系统管理员应该知道的 20 条 Linux 命令

    Posted by : lon.y@qq.com on 2017年8月3日

    在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令。特定的命令和工具包可帮助开发者组织、排查故障并优化他们的应用程序,而且当出现错误时,也可以为运维人员和系统管理员提供有价值的分类信息。 无论你是新手开发者还是希望管理自己的应用程序,下面 20 条基本的系统管理命令都可以帮助您更好地了解您的应用程序。它们还可以帮助解决为什么应用程序可在本地正常工作但不能在远程主机上工作这类的系统故障。这些命令适用于 Li

    阅读全文...