zoukankan      html  css  js  c++  java
  • 机器学习

    机器学习

    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-ar{x})^2 +(x_2-ar{x})^2+(x_n-ar{x})^2 }{n} ]

    • standard deviation

      标准差,方差的平方根。

      [std =sqrt[2]{ frac{(x_1-ar{x})^2 +(x_2-ar{x})^2+(x_n-ar{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 quadquad quad quad 极小 \ SSE = sum_{i=1}^{n}(y_i - a - bx_i)^2 quadquad 极小 ]

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

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

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

    [left{egin{matrix} sum{y_i} - na - bsum{x_i} = 0 \ sum{x_i y_i} - asum{x_i} - bsum{x_i^2} = 0 end{matrix} ight} ]

    移动等式到右边:

    [left{egin{matrix} sum{y_i} = na + bsum{x_i} \ sum{x_i y_i} = asum{x_i} + bsum{x_i^2} end{matrix} ight} ]

    加减消元法:

    [left{egin{matrix} sum{y_i} sum{x_i} = nasum{x_i} + bsum{x_i}sum{x_i} \ nsum{x_i y_i} = nasum{x_i} + nbsum{x_i^2} end{matrix} ight} ]

    求解b有:

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

    整理公式得到b:

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

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

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

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

    [a = {ar y} - b{ar 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$$的值
    $${ar 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}-{ar y})^2}$$
    SST Sum of square total,总误差,总变异
    SST公式 $$sum_{i=1}^{n}{({y_i}-{ar y})^2}$$

    9.2.2 结论

    [SST = SSE + SSRquadquadquad即:总变异 = 误差变异 + 回归变异 ]

    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}quadecause a = {ar y} - b{ar x} \ SSE = S_{yy} -2bS_{xy} + b^2S_{xx} quad ecause b = frac{S_{xy}}{S_{xx}} \ SSE = S_{yy} - bS_{xy}quadquadquadquadquadquad 推荐使用\ SSE = S_{yy} - b^2S_{xx}quadquadquadquadquadquadquadquadquad ]

    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 - {ar y})^2\ =sum_{i=1}^{n}(y_i^2 - 2y_i{ar y} + {ar y}^2)\ =sum_{i=1}^{n}y_i^2 - sum{2y_i}{ar y} + sum{ar y}^2\ =sum{y_i^2} - 2{ar y}sum{y_i} + n{ar y}^2\ =sum{y_i^2} - frac{2n{ar ysum{y_i}}}{n} + frac{n^2{ar 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-{ar x})(y_i - {ar y}) \ =sum{x_iy_i} - {ar y}sum{x_i} - {ar x}sum{y_i} + sum{ar x}{ar 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}quadquadquadquadquadquadquadquadquadquadquadquad\ =530 - frac{28 * 193}{7}quadquadquadquadquadquadquadquadquadquadquadquadquadquadquad\ =-242quadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquadquad ]

    求得SSE得:

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

    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 回归类型

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

    • 线性回归

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

    • 逻辑回归

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

  • 相关阅读:
    NGINX高并发配置
    一致性哈希算法——PHP实现代码
    TCP三次握手详解
    一致性哈希算法——转载来自张洋
    ngx_http_upstream_keepalive
    高情商人的十一种表现
    Nginx中的upstream轮询机制介绍
    主从读写分离----mysql-proxy0.8.5安装与配置
    分布式事务XA
    微信小程序API
  • 原文地址:https://www.cnblogs.com/xupccc/p/9544600.html
Copyright © 2011-2022 走看看