分类目录归档:技术文章

理解PCA

引言
之前写过一篇关于PCA的文章,写完之后就以为自己已经完全理解这个东西了。直到最近data mining课上又讲到这个内容,和同学交流时才发现有些细节根本没有理解到位。上一篇文章主要介绍如何一步一步计算出一个PCA算法,而今天则侧重于从数学的角度讲讲为什么。

基本概念
再深入介绍之前,先理解几个基本的数学概念:
方差(Variance):
一个变量的方差可以看做是每个元素与变量均值的差的平方和的均值,即:$${\displaystyle \Sigma =\mathrm {cov} (X_{i},X_{i}) = \mathrm {E} {\begin{bmatrix}(X_{i}-\mu _{i})^{2}\end{bmatrix}} = \mathrm {E} {\begin{bmatrix}(X_{i}-\mu _{i})(X_{i}-\mu _{i})\end{bmatrix}}}
$$
其中,\(E\)表示的是均值函数,\(\mu_{j}\)表示的是样本的均值。方差用来度量单个变量样本数据的离散(偏离均值)的程度。

协方差(Covariance):
变量\(X_{i}\[……]

继续阅读

机器学习的一些建议

在全部学完课程里的机器学习算法之后,我们总结下Andrew Ng对于这门学科的一些建议,其实主要是线性回归和逻辑回归的一些debug技巧。本文覆盖Coursera Machine Learning Week 6的内容。

评估假设函数(Evaluating a hypothesis)
比如我们找到了合适的模型,经过训练得到了最终的假设函数,那我们该如何评估这个假设函数以判断他是否过拟合了或者欠拟合呢?很简单,我们把数据集分为两部分:训练集(training data set)测试集(test data set),这两者的比例大概是70%和30%。使用训练集学习得到参数\(\Theta\),使用测试集计算误差\(J_{test}(\Theta)\)。具体地,

  • 对于线性回归,我们计算:\(J_{test}(\Theta)= \frac{1}{2m_{test}}\sum_{i=1}^{m_{test}}(h_{\Theta}(x_{test}^{(i)})- y_{test}^{(i)})^{2}\)
  • 对于分类问题,我们先计算错误的分类误差(Misclassificat[……]

    继续阅读

  • Machine Learning-Photo OCR(图片文字识别)

    今天来总结一下Coursera Machine Learning最后一周week 11的内容:图像文字识别(photo OCR),这个问题是机器学习在计算机视觉(computer vision)领域里的一个很常见的应用。本章我们会介绍如何使用机器学习算法解决这个问题,以及什么是人工数据合成(artificial data synthesis)。

    The Photo OCR problem
    Photo OCR全称是:photo optical character recognition,照片光学字符识别,意思就是从照片里识别字符信息,比如我们有如下图片:

    那么OCR解决的问题就是把照片中红框内的文字识别出来。

    Photo OCR pipeline
    这是一个较为复杂的机器学习应用,我们可以把它分为几个小模块,然后组成一个流水线(pipeline)来解决问题。具体地,分为以下几个步骤:

    • 文字区域检测(text detection),找到图片中属于文字的部分,并把它抠出来:
    • 字符分割(character segmentation),把上一步得到的图片分割成包含单个[……]

      继续阅读

    大规模机器学习

    本文覆盖Coursera Machine Learning Week 10的内容。

    大数据集的学习(Learning with large data set)
    如果我们回顾过去10年机器学习的发展历史,你会发现现在的学习算法效果比之前要好很多,其中一个重要的原因是现在比以前拥有更多可以供训练的数据。所以有人会说拥有更多的数据比算法更重要:“It’s not who has the best algorithm that wins, it’s who has the most data.”。所以这篇文章会介绍一些在大数据规模下的机器学习技巧。
    先回顾一下之前的梯度下降公式:
    $$\theta_{j} := \theta_{j} – \alpha\frac{1}{m}\sum_{i=1}^{m}\left ( h_{\theta}\left ( x^{(i)}\right )- y ^{(i)}\right ) x_{j}^{(i)}$$
    上面公式中\(m\)的值可能会很大,比如\(m\)等于一个亿,不要以为这个数据量很大,在实际应用中是很常见的。如果还是按照之前的方法进行梯[……]

    继续阅读

    Machine Learning-推荐系统(Recommender Systems)

    本文覆盖Coursera Machine Learning Week 9的内容。这篇文章看似公式很复杂,但实质上内容还是比较简单的,就是基于最基本的线性回归,其实很容易理解的。

    一、问题描述

    推荐系统是机器学习在工业界的一个非常重要的应用,虽然它在学术界并不怎么被重视。今天你看到的大部分网站里使用的推荐系统,比如Amazon,淘宝,豆瓣等,它们基本都采用了机器学习技术,今天我们花点时间总结下推荐系统的相关知识。
    例子:预测电影评分
    假设我们有一些数据,它包含了不同用户对不同电影的评分情况(0-5分),其中?表示该用户没有看过这部电影,这些数据用一个表格表示如下:

    Movie
    Alice(1)
    Bob(2)
    Carol(3)
    Dave(4)

    Love at last
    5
    5
    0
    0

    Romance forever
    5
    ?
    ?
    0

    Cute puppies of love
    ?
    4
    0
    ?

    Nonstop car chases
    0
    0
    5
    4

    Sward[……]

    继续阅读