Fighter's Blog

深度沉迷学习


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

你真的会二分查找吗?

发表于 2017-12-26 | 分类于 算法与数据结构

今天想来说说二分查找,因为最近笔者的同学在面试时正好遇到了,而自己以前还真没认真研究过。

说起二分查找,对算法和数据结构比较熟悉的都知道这是一个复杂度为 O(logN) 的典型分治算法,它的用途是在有序数组中查找某个数是否存在。但就是这么听起来很普通的算法却常常很难完全写对。

  • 据D.Knuth在《计算机程序设计的艺术 第3卷:排序和查找》书中指出,虽然二分查找1946年就公诸于世,但1962年才有人写出没有 bug 的二分查找程序。
  • 除此之外,就连我们熟悉的 Java 语言里 JDK 的二分查找 java.util.Arrays.binarySearch 中也曾有一个隐藏了10年之久bug!(文末附bug链接)不过,这个bug已经不是什么新鲜事了,是 JDK5 时代的产物了,不过我们可以再来回顾一下,看看我们平常是不是就在写bug,是不是真应了那个表情包“哟,写bug呢”🙊
阅读全文 »

从广义线性模型(GLM)理解逻辑回归

发表于 2017-12-24 | 分类于 机器学习笔记

1 问题来源

记得一开始学逻辑回归时候也不知道当时怎么想得,很自然就接受了逻辑回归的决策函数——sigmod函数:

与此同时,有些书上直接给出了该函数与将 $y$ 视为类后验概率估计 $p(y=1|x)$ 等价,即

并给出了二分类(标签 $y\in(0,1)$)情况下的判别方式:

但今天再回过头看的时候,突然就不理解了,一个函数值是怎么和一个概率联系起来了呢?有些人解释说因为 $h_{\theta}(x)$ 范围在0~1之间啊,可是数值在此之间还是没说明白和概率究竟有什么关系。所以,前几天看了一些资料,对个人而言比较好理解的还是从广义线性模型(Generalized Linear Models, GLM)来解释,至少这种方法能从概率出发直接推出 sigmod 函数。实际上,线性回归和逻辑回归都是广义线性模型的特例,从此出发,得到对应的决策函数就比较自然了。

阅读全文 »

Hadoop 安装和使用

发表于 2017-11-12 | 分类于 其它笔记

环境

  • 操作系统:Ubuntu 14.04
  • Hadoop版本:Hadoop 2.6.5
  • JDK版本:OpenJDK 1.7

创建Hadoop用户

创建用户

1
sudo useradd -m hadoop

为新用户设置密码

1
sudo passwd hadoop

为新用户添加权限

1
sudo adduser hadoop sudo

如果失败,则切换到root用户下,修改/etc/sudoers文件,将hadoop用户添加进去。

阅读全文 »

Python数据分析、挖掘常用工具

发表于 2017-10-24 | 分类于 数据挖掘笔记

Python语言

简要概括一下Python语言在数据分析、挖掘场景中常用特性:

  1. 列表(可以被修改),元组(不可以被修改)
  2. 字典(结构)
  3. 集合(同数学概念上的集合)
  4. 函数式编程(主要由lambda()、map()、reduce()、filter()构成)

Python数据分析常用库

Python数据挖掘相关扩展库

阅读全文 »

Linux下普通用户安装 MySQL

发表于 2017-02-08 | 分类于 其它笔记

前言

平常在使用服务器时候难免会遇到权限问题,自己无法获得 root 权限,但又需要安装软件,本文记录了在 CentOS 普通用户下使用源码来安装 MySQL 5.6.40 的过程。

下载 MySQL

如在 MySQL 官网 (https://dev.mysql.com/downloads/file/?id=476692) 下载的 mysql-5.6.40.tar.gz

阅读全文 »

Redis-AOF

发表于 2017-01-09 | 分类于 学习总结

持久化选项

  • 快照持久化:获得存储在内存里面的数据在某个时间点上的副本。
  • AOF持久化(只追加文件append-only file):会在执行命令时,将被执行的写命令写到硬盘里。

两种方案既可同时使用,也可单独使用,或都不使用,具体结合数据及应用决定。

阅读全文 »
123
Fighter.

Fighter.

学习 | 分享 | 交流 | 进步

26 日志
6 分类
28 标签
GitHub Weibo
© 2016 - 2018 Fighter.
   |    Hosted by GitHub Pages