机器学习
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、分类
分类是机器学习算法,使用已知数据确定新数据应该被分类若干个现有类别集合中。分类是监督学习的一种形式。
分类工作流程:
准备训练数据
通过训练算法产生数据模型
对测试数据应用数据模型,产生结果,判断属于哪个分类
5、聚类
聚类是非监督学习。根据共同的特点对相似的数据进行聚簇。Google和Yahoo使用聚类技术对数据进行分组。新闻组也使用聚类技术文章按照相关主题进行聚类。聚类引擎遍历输入的数据并根据数据特征,判断数据应该聚类到哪个组中。
6、朴素贝叶斯算法
条件概率公式,在特定事件发生时,某个事件发生的概率。公式如下:
\[ P(B|A) = \frac{P(A|B) * P(B)}{P(A)} \]
如图所示:
事件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(词频),单词在文中出现的频率。
\[ 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的文档个数
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 |
| ... | ... |
绘制成图标如下:
假设我们寻找的直线方程是(我们的表示习惯是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。
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的比例,通常使用\[R^2\]表示。\[R^2\]数值范围在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 回归类型
回归分为线性回归和逻辑回归。
线性回归
线性回归产生的值是连续的值,可以理解为概率。
逻辑回归
逻辑回归的结果是两个或多个固定的值,比如是垃圾邮件或不是垃圾邮件,通过在线性回归的基础上增加阈值判断条件可以实现。