机器学习

机器学习

1、介绍

机器学习是科学的一个分支,涉及编程系统,他们会自动学习和改进的经验。在这里,学习意味着认识和理解输入的数据。根据所提供的数据,并作出明智的决定。这些算法从特定的数据和过去的经验,统计,概率论,逻辑,组合优化,搜索,强化学习和控制理论的原则,建立知识。机器学习是一个广阔的领域。有几种方法来实现机器学习技术,但是最常用的是监督和无监督学习。

  • 监督学习

    监督学习从可用的训练数据(贴有标签)中处理学习功能。监督学习算法分析训练数据并产生一个推断的函数,用来映射新的案例。常见的监督学习有电子邮件的垃圾分类、按照内容标记网页、声音识别等

  • 非监督学习

    非监督学习使用的是未被标签化的数据集。这对于分析可用数据以及找出模式和趋势是一个非常强大的工具。最常见应用就是类似于逻辑分组的聚类中。非监督学习的常见手段是kmean、自我组织的map、层次聚类等。

2、数学基础

  • kean

    平均数。

    \[y = \frac{x_1 + x_2 + ... + x_n}{n} \]

  • median

    中位数,排序后位于中间的数值。

    \[median(x1 < x2 < x3) = x2 \\ median(x1 < x2 < x3 < x4 ) = \frac{x2 + x3}{2} \]

  • mode

    众数,出现次数最多的数。

    \[mode(1,1,1,2,2,3,3) = 1 \]

  • range

    极差,最大数 - 最小数。

    \[| max - min| \]

  • variance

    方差,每个数和指定数(通常为平均数)数的差的平方和的平均值。

    \[variance = \frac{(x_1-\bar{x})^2 +(x_2-\bar{x})^2+(x_n-\bar{x})^2 }{n} \]

  • standard deviation

    标准差,方差的平方根。

    \[std =\sqrt[2]{ \frac{(x_1-\bar{x})^2 +(x_2-\bar{x})^2+(x_n-\bar{x})^2 }{n}} \]

  • skewness

    偏度,数据在均值两侧的偏差程度。

    • 对称分布

      skewness=0,mean=median=mode

    • 左偏分布

      skewness<0,mean<median<mode

    • 右偏分布

      skewness>0,mean>median>mode

  • kertosis

    峰度,曲线平滑或凸起的程度。

    • 正态分布

      kertosis = 3

    • 比正态凸起

      kertosis > 3

    • 比正态平滑

      kertosis < 3

  • π

    • 莱布尼茨定理

      \[\frac{1}{1} - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + ... = \frac{π}{4}\\ π = 4 \sum_{i = 1}^{\infty}(-1)^{n+1}\frac{1}{2n - 1} \]

    • 高斯积分

    • 斯特林公式

    • 欧拉公式

    • 连分数表示

  • e

    数学常数,是自然对数函数的底数。有时被称为欧拉数(Euler's number),以瑞士数学家欧拉命名;还有个较少见的名字纳皮尔常数,用来纪念苏格兰数学家约翰·纳皮尔引进对数。它是一个无限不循环小数,数值约是2.718281828459045235-36...

    数学公式为:

    \[e = \sum_{i=0}^{\infty}\frac{1}{n!} = \frac{1}{0!} +\frac{1}{1!} +\frac{1}{2!} +\frac{1}{3!}+... \]

3、推荐

推荐是非常流行的技术,基于之前的购买、点击和分级行为提供最接近的推荐。

  • 亚马逊使用该技术向你展示你可能感兴趣的商品列表,从过去的行为绘制你的信息。背后的推荐引擎捕捉用户行为并依据你的早期行为推荐商品。
  • facebook使用推荐技术区分或推荐你可能认识的人。

4、分类

分类是机器学习算法,使用已知数据确定新数据应该被分类若干个现有类别集合中。分类是监督学习的一种形式。

分类工作流程:

  1. 准备训练数据

  2. 通过训练算法产生数据模型

  3. 对测试数据应用数据模型,产生结果,判断属于哪个分类

    spark_043

5、聚类

聚类是非监督学习。根据共同的特点对相似的数据进行聚簇。Google和Yahoo使用聚类技术对数据进行分组。新闻组也使用聚类技术文章按照相关主题进行聚类。聚类引擎遍历输入的数据并根据数据特征,判断数据应该聚类到哪个组中。

spark_041

6、朴素贝叶斯算法

条件概率公式,在特定事件发生时,某个事件发生的概率。公式如下:

\[P(B|A) = \frac{P(A|B) * P(B)}{P(A)} \]

如图所示:

spark_044

事件A : 取出一个红球

事件B : 球来自于1号容器

P(A) = $$\frac{8}{20} = \frac{2}{5}$$

P(B) = $$\frac{1}{2}$$

P(A|B) = $$\frac{7}{10}$$

P(B|A) = $$\frac{P(A|B)P(B}{P(A)} = \frac{0.7 0.5}{0.4} = \frac{7}{8} $$

7、文本相关

  • TF

    term frequency(词频),单词在文中出现的频率。

    spark_045

    \[TF(hello) = \frac{3(hello出现的次数)}{100(单词总数)} = 0.03 \]

  • IDF

    inverse document frequency(逆文档频率)。文件总数除以出现某词的文件个数(有时+1避免除数为0的情况),再取(10)对数。出现的文档数越少越具有分类价值,反之越没有分类价值,例如所有文档都出现的话,则idf为0,乘以TF之后仍为0,如果只有一个文档出现,则IDF很大,乘以TF就会很大。IDF衡量的是某个单词对整个文档集进行分类的参考价值。值越大,参考价值越高。

    D : 文档总数

    j : 出现单词t的文档个数

    spark_046

  • TF-IDF

    TF-IDF就是TF * IDF ,意味着对于该文档来说,该单词在该文档同整个文档集中差异性的程度。

8、最小二乘法

Ordinary Least Square,也叫最小平方法。给定一组数据,含有x、y两个值,对应在平面坐标系中绘制成点坐标如图,现找出一条直线,使得该直线到所有点的距离最短。

x y
1 2.1
2 3.9
1.5 3.1
2.5 5.0
... ...
绘制成图标如下:

ml_001

假设我们寻找的直线方程是(我们的表示习惯是y = ax + b):

\[y = a + bx \]

8.1.1 残差

残差是样本值y与模拟方程$${\hat y}$$的差,其中$${\hat y} = a + bx $$, 残差 $$ = y - \hat{y}$$

8.1.2 SSE

残差平方和,是所有样本点的残差平方的总和。公式如下:

\[SSE = \sum_{i=1}^{n}(y_i - {\hat y_i})^2 \]

9.1.3 最小平方和

最小平方和就是使得残差平方和最小,推导如下:

\[SSE = \sum_{i=1}^{n}(y_i - {\hat y_i})^2 \quad\quad \quad \quad 极小 \\ SSE = \sum_{i=1}^{n}(y_i - a - bx_i)^2 \quad\quad 极小 \]

对a和b分别求偏导数,使其等于0。公式如下:

\[\frac{\partial}{\partial{a}}\sum_{i=1}^{n}(y_i - a - bx_i)^2 = 0 => -2\sum_{i=1}^{n}(y_i -a -bx_i) = 0\\ \frac{\partial}{\partial{b}}\sum_{i=1}^{n}(y_i - a - bx_i)^2 = 0 => -2\sum_{i=1}^{n}x_i(y_i -a -bx_i) = 0 \]

进而得到方程组,求解a和b的值;

\[\left\{\begin{matrix} \sum{y_i} - na - b\sum{x_i} = 0 \\ \sum{x_i y_i} - a\sum{x_i} - b\sum{x_i^2} = 0 \end{matrix}\right\} \]

移动等式到右边:

\[\left\{\begin{matrix} \sum{y_i} = na + b\sum{x_i} \\ \sum{x_i y_i} = a\sum{x_i} + b\sum{x_i^2} \end{matrix}\right\} \]

加减消元法:

\[\left\{\begin{matrix} \sum{y_i} \sum{x_i} = na\sum{x_i} + b\sum{x_i}\sum{x_i} \\ n\sum{x_i y_i} = na\sum{x_i} + nb\sum{x_i^2} \end{matrix}\right\} \]

求解b有:

\[\sum{x_i}\sum{y_i} - n\sum{x_i y_i} = b(\sum{x_i})^2 - nb\sum{x_i^2} \\ b = \frac{\sum{x_i}\sum{y_i} - n\sum{x_i y_i}}{(\sum{x_i})^2 - n\sum{x_i^2}} \]

整理公式得到b:

\[b = \frac{n\sum{x_i y_i} - \sum{x_i}\sum{y_i}}{n\sum{x_i^2} - (\sum{x_i})^2 } \]

将b代入公式(5),可求解a得到:

\[a = \frac{\sum{y_i} - b\sum{x_i}}{n} \]

进而得到a是y的平均数-b*x的平均数:

\[a = {\bar y} - b{\bar x} \]

[符号记忆]

\[{\overline x} = \frac{\sum{xi}}{n} \quad平均数读作x拔(源自bar的音,横线,横木的意思)\\ \\ S_{xx} = \sum{(x_i - {\overline x})(x_i - {\overline x})} = \sum{(x_i - {\overline x)^2}} \quad x_i变异数 \\ S_{yy} = \sum{(y_i - {\overline y})(y_i - {\overline y})} = \sum{(y_i - {\overline y)^2}} \quad y_i变异数 \\ S_{xy} = \sum{(x_i - {\overline x})(y_i - {\overline y})} \quad y_i变异数 \\ \]

9.2 判定系数

判定系数衡量回归模型的拟合度的好坏程度(goodness of fit)的指标。如果所有的点都在线上,我们将该指标定为1,如果点非常零散,该指标定义0。

ml_002

9.2.1 名词解释

符号 含义
$${\hat y_i}$$ y hat,回归线上$$y_i$$的值
$${\bar y}$$ y bar,y的平均数
$$y_i$$ 样本$$y_i$$的值
$$y_i - {\hat y_i}$$ 误差,随机变异,残差
SSE Sum of square error,误差平方和
SSE公式 $$\sum_{i=1}^{n}{(y_i - {\hat y_i})^2}$$
SSR Sum of square regress ,回归平方和,回归到平均值,回归变异
SSR公式 $$\sum_{i=1}^{n}{({\hat y_i}-{\bar y})^2}$$
SST Sum of square total,总误差,总变异
SST公式 $$\sum_{i=1}^{n}{({y_i}-{\bar y})^2}$$

9.2.2 结论

\[SST = SSE + SSR\quad\quad\quad即:总变异 = 误差变异 + 回归变异 \]

9.2.3 判定系数

判定系数(coefficient of Dertermination),是回归平方和SSR占SST的比例,通常使用$$R2$$表示。$$R2$$数值范围在0 ~ 1之间,越靠近1,回归方程式的适配度越高。即:

\[R^2 = \frac{SSR}{SST} \]

由于:

\[SST = SSE + SSR \\ =>1 = \frac{SSE}{SST} + \frac{SSR}{SST}\\ =>\frac{SSR}{SST} = 1 - \frac{SSE}{SST}\\ =>R^2 = 1 - \frac{SSE}{SST}\\ \]

9.2.4 SSE的其他表示法

\[SSE = \sum_{i=1}^{n}{(y_i - a - bx_i)^2}\quad\because a = {\bar y} - b{\bar x} \\ SSE = S_{yy} -2bS_{xy} + b^2S_{xx} \quad \because b = \frac{S_{xy}}{S_{xx}} \\ SSE = S_{yy} - bS_{xy}\quad\quad\quad\quad\quad\quad 推荐使用\\ SSE = S_{yy} - b^2S_{xx}\quad\quad\quad\quad\quad\quad\quad\quad\quad \]

9.2.5 SSE判定系数例题

丰田中古(二手)轿车的车龄和价格的表格,如下:

车龄($$x$$) 售价($$y$$) $$x^2$$ $$y^2$$ $$xy$$
1 56 1 3316 56
2 48 4 2304 96
3 32 9 1024 96
4 25 16 625 100
5 15 25 225 75
6 12 36 144 72
7 5 49 25 35
28 193 140 7483 530

有如下回归方程式:

\[y = 62.14 - 8.64x \]

判断以上的回归方程式的配适度:

\[SST = S_{yy} = \sum_{i=1}^{n}(y_i - {\bar y})^2\\ =\sum_{i=1}^{n}(y_i^2 - 2y_i{\bar y} + {\bar y}^2)\\ =\sum_{i=1}^{n}y_i^2 - \sum{2y_i}{\bar y} + \sum{\bar y}^2\\ =\sum{y_i^2} - 2{\bar y}\sum{y_i} + n{\bar y}^2\\ =\sum{y_i^2} - \frac{2n{\bar y\sum{y_i}}}{n} + \frac{n^2{\bar y}^2}{n}\\ =\sum{y_i^2} - \frac{2(\sum{y_i})^2}{n} + \frac{(\sum{y_i})^2}{n}\\ =\sum{y_i^2} - \frac{(\sum{y_i})^2}{n} \]

带入上面的公式得到:

\[SST = S_{yy}= 7483 - \frac{193^2}{7} = 2161.7 \]

由公式

\[SSE = S_{yy} - bS_{xy}\\ S_{xy} = \sum(x_i-{\bar x})(y_i - {\bar y}) \\ =\sum{x_iy_i} - {\bar y}\sum{x_i} - {\bar x}\sum{y_i} + \sum{\bar x}{\bar y}\\ =\sum{x_iy_i} - \frac{\sum{y_i}\sum{x_i}}{n} - \frac{\sum{x_i}\sum{y_i}}{n} + \frac{\sum{x_i}\sum{y_i}}{n}\\ =\sum{x_iy_i} - \frac{\sum{x_i}\sum{y_i}}{n}\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\\ =530 - \frac{28 * 193}{7}\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\\ =-242\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad \]

求得SSE得:

\[SSE = S_{yy} - bS_{xy} = 2161.7 - (-8.64)(-242) = 70.12\\ SSR = SST - SSE = 2161.7-7012 = 2090.88\quad\quad\quad\\ R^2 = \frac{SSR}{SST} = \frac{2090.88}{2161.7} = 0.967\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad \]

8.2.6 判定系数反思

如果判定系数比较小,即$$R^2$$很小,还是需要在图中画出采样数据的点坐标,找出离线较远的点,分析其原因,适当的进行删掉这些点。

8.3 显著性检查

在没有进行显著性检查前,即使判定系数再大,也是没有意义的。

8.3.1 基本假设

回归分析的显著性检查必须依赖于下列误差项($$\epsilon_i $$)的假设条件:

9、回归

9.1 回归来历

生物统计学家高尔顿研究父母身高和子女身高时发现“即使父母的身高都“极端”高,其子女不见得会比父母高,而是有“衰退”(regression)(也称作“回归)至平均身高的倾向”具体说明一下:高尔顿当时拟合了父母平均身高x 和子女平均身高 y 的经验方程:

\[y= 3.78+0.516 x \]

可以看到,父代身高每增加一个单位,其成年儿子的平均身高只增加0.516个单位,它反映了这种“衰退”效应(“回归”到正常人平均身高)虽然之后的x与 y变量之间并不总是具有“衰退”(回归)关系,但是为了纪念高尔顿这位伟大的统计学家,“线性回归”这一名称就保留了下来。

9.2 回归类型

回归分为线性回归和逻辑回归。

  • 线性回归

    线性回归产生的值是连续的值,可以理解为概率。

  • 逻辑回归

    逻辑回归的结果是两个或多个固定的值,比如是垃圾邮件或不是垃圾邮件,通过在线性回归的基础上增加阈值判断条件可以实现。

posted @ 2018-08-27 20:39  大道至简(老徐)  阅读(749)  评论(0编辑  收藏  举报