一条一条数据直接送入模型,对于图像通过一个个的像素当做特征 长,高(维度)
机器学习应用场景: 机器学习 - 图2

一.认识机器学习:

1.常见概念解析:

  • 特征:每个样本包含的多个线索称为特征(Feature)或者维度,比如肿瘤预测问题,可以通过肿瘤大小,患者年龄,肿块密度,肿瘤细胞尺寸等等’线索来判断
  • 连续变量(数值变量):生产零件的规格尺寸,人体测量的身高,体重,价格,数量等,为数值变量
  • 离散变量(类别变量):可以表示地区,季节,性别,教育程度等在实际的数据集中,类别变量的数量总是有限的
  • 类别变量可以用数字表示,例如把女性变成0,男性变成1

    2..机器学习定义:

  • 为了解决任务T,设计一段程序,从经验E(数据)中学习,达到性能度量值P,

  • 当且仅当有了经验E后,经过P评判,程序在处理T时的性能得到提升。

2.1人类学习VS机器学习:
都要有数据。但是历史没发生的事机器学习无法解决。
C2.png

3.机器学习分类:

机器学习 - 图4

3.任务分类:

分类:Knn
回归:回归目前的怀抱。
聚类:把数据点分成一簇。没标明具体类型
时序分析:金融里运用
C4.png

变量类型小测验

回归类:

  1. 上千件一模一样的货物出售,,预测下三个月买多少?(虽热可以一一列举可以说是分类(1001类),但是因为太多,所以当作回归处理)

分类:
b.你有许多客户,这是写一个软件来检验每一个用户的账号,对每一个用户的账号判断他们是否曾经被盗过?

4.监督学习:

训练样本包含对应的标签,比如TITanic数据集中生存,与否就是标签
每学习一条数据都要反馈对错,根据标签学习

  • 分类问题:样本标签属于离散变量,比如判断垃圾邮件,肿瘤检测
  • 回归问题:样本标签属于连续变量,比如预测房价,预测销售额 机器学习 - 图6判别式模型举例(较多):一个决策边界函数判断
    要确定一个羊是山羊还是绵羊,从一堆羊中提取特征习到一个决策边界,然后提取这只羊的特征来放到模型里判断出这只羊是在边界的哪一边
    生成式模型举例:分别做俩个模型判断
    根据山羊的特征首先学习出一个山羊的模型一个绵羊模型,然后从这只羊中提取特征,在放到绵羊模型中看概率是多少,哪个大就是哪个

    5.无监督学习:

    样本中不带任何标签没有反馈没有评判标准c9.png

    分类:

  • 聚类:用户分群(RFM)朋友分组(社交软件)细分市场,异常流量监测

  • 降维:维度(线索)越多,越能帮助我们判断,但是线索太多可能干扰判断,造成判断速度和准确度减低,需要抛弃一些线索

    机器学习流程:

    1.流程图 旧数据- 机器学习-新数据-模型-结论
    c10.png

    特征表示:

    Email

    先分词,去词,把词变为一个词向量,处理了才能带入模型。
    鸢尾花:

图像:

将一个个像素当作特征,长高,传入模型,三通道

机器学习方法的三要素:

机器学习方法通常都是由模型、策略和算法三部分构成:方法 = 模型 + 策略 + 算法
模型确定学习范围,策略确定学习规则,算法按规则在范围内学习。
找最优模型,通过一个指标体系评判好不好,通过策略定义风险函数,算法找到风险的最低点,找到最优解

1.模型:函数\

决策函数不同构成的集合
就是要学习的概率分布或决策函数(可以直接认为是一个函数)
所有可能的条件概率分布或者决策函数构成的集合
就是模型的假设空间(hypothesis soace)

2.策略(需要指标评判)定义一个风险函数

从假设空间中学习最优模型的方法,称为策略。
衡量模型需要一些指标,引入损失函数和风险函数衡量
预测值和真实值通常是不相等的,我们用损失函数(loss)或者代价函数(cost)来度量错误的成都,记做:L(Y,f(x))

  • 0-1损失函数
  • 平方损失函数
  • 绝对损失函数
  • 对数(交叉熵)损失函数

风险函数:假设越多函数越复杂越好,后面是惩罚函数让模型变简洁奥夫卡姆剃刀原理。
f(x)—-决策函数,有N个函数,L(y,f(x))经验风险函数,
机器学习 - 图9-惩罚函数正则画像
结构风险小化

播放147.png

经验风险函数与损失函数
损失函数:度量模型一次预测的好坏
经验函数:度量模型平均意义下的预测好坏
输出预测值F(x)与实际值Y可能不一致也可能一致,损失函数(Loss function)可以度量一次预测,记作L(Y,F(x)),常用的的损失函数有以下几种:
1,平方损失函数:线性回归
机器学习 - 图11
2,绝对损失函数
机器学习 - 图12

3.算法,找损失\风险函数最优解的过程

算法指学习模型时的具体计算方法,求解最优模型归结为一个最优化问题,(求解的方法)
统计学习的算法等价于求最优化

机器学习训练模型:

c16.png

如何选择?
策略-指标(风险损失函数)


三。模型

1.线性回归:平方损失

1.1单变量线性回归

例:房屋面积为特征,房屋价格是输出Y
成功.png
m代表训练集中实例的数量(数据条)
x代表特征/输入变量
y代表目标变量/输出变量
(x,y)代表训练集中的实例
机器学习 - 图15代表第i个观察实例
h代表学习算法的解决方案或函数,称为假设(hypothesis)

1.11表达h:

假设函数:
快慢842.png
因为单变量只有一个特征/输入变量
在上式中,θ0和θ1都是未知参数,x是已知数据,我们需要得到合适的参数来使预测尽可能的正确.
这时需要引入损失函数和误差的概念

电动蝶阀0233.png

1.12损失函数:平均损失

那个442.png
在三维空间里存在一个使损失函数最低的点这个点对应的θ1和θ2就是我们要的参数
c21.png

更新参数:

他.png
对θ求导
传给他是2.png

梯度下降:(Gradient Descent)算法

梯度下降
思想:
1.随机选择一个参数的组合(θ0,θ1,θ2….θn),计算损失函数
2.然后寻找下一个能让损失函数数值最低的参数组合
3.持续迭代就能得到一个局部最小值.
没有尝试所有组合,所以不确定是否是全局最小.
梯度下降概念:

极值的求解方法:求导

他.png
参数:α是学习率,步距不能太大,某一次更新直接跨越了最低点
θ:对θ赋值使 J(θ)按梯度下降的方向进行,一直跌到,最终得到局部最小值

c25.png
首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。
    从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。
c24.png

  1. 步长(Learning rate):步长决定了在梯度下降迭代的过程中,每一步沿梯度负方向前进的长度。用上面下山的例子,步长就是在当前这一步所在位置沿着最陡峭最易下山的位置走的那一步的长度。

2.特征(feature):指的是样本中输入部分,比如2个单特征的样本(x(0),y(0)),(x(1),y(1)),则第一个样本特征为x(0),第一个样本输出为y(0)。

  1. 假设函数(hypothesis function):在监督学习中,为了拟合输入样本,而使用的假设函数,记为hθ(x)。比如对于单个特征的m个样本(x(i),y(i))(i=1,2,…m),可以采用拟合函数如下: hθ(x)=θ0+θ1x。

  2. 损失函数(loss function):为了评估模型拟合的好坏,通常用损失函数来度量拟合的程度。损失函数极小化,意味着拟合程度最好,对应的模型参数即为最优参数。在线性回归中,损失函数通常为样本输出和假设函数的差取平方。比如对于m个样本(xi,yi)(i=1,2,…m),采用线性回归,损失函数为:
    J(θ0,θ1)=∑i=1m(hθ(xi)−yi)2
      其中xixi表示第i个样本特征,yiyi表示第i个样本对应的输出,hθ(xi)hθ(xi)为假设函数。
    梯度是向量(向上),负梯度向下
    切线的斜率
    最开始随机给的点不一样,找到的最优解不一样
    理解梯度下降:
    这个山坡最陡峭的方向就是梯度方向

    代码实现:

    ```sql

    定义好损失函数

    def f(x): return x*2-4x+4

    计算导数函数

    def h(x): return 2*x-4

初始化

theta=16 #初始点横坐标 step=0.1 #步长不能太大,会出错

gap=16

gap=pow(10,-5) #阀值,梯度下降停止的标准

gap=1e-5

count=0 #计算次数 while True: s=step*h(theta) #计算梯度 if s<gap: #是否满足中值条件 break

更新参数

  1. theta-=s
  2. count+=1
  3. print("梯度下降迭代第{}次,初始值是{},极值点是{}".format(count,theta,f(theta)))

print(‘迭代次数为{}’.format(count)) print(‘极值点为%s’%f(theta)) ```

0.png
C31.png
增加维度后成锅函数
俩个方向都是抛物线,合力后就像物理俩个力的合并

多变量线性回归和梯度下降

增加维度后成锅函数
俩个方向都是抛物线,合力后就像物理俩个力的合并
C32.png

梯度下降的用法:

百度  .png
多变量线性回归的梯度下降:

梯度下降的三种方法:

1.批量梯度下降:

擦擦擦23215445.png
( 1)一次迭代是对所有样本进行计算,此时利用矩阵进行运算实现了并行
  (2)由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。当目标函数为凸函数时,批量梯度下降一定能够得到全局最优解

2.随机梯度下降(Stochastic Gradient Descent)

表表v5516.png
随机梯度下降法,和批量梯度下降法是两个极端,批量梯度下降每次采用所有数据来梯度下降,随机梯度下降每次用一个样本来梯度下降。
每次一条数据速度快
不太稳定,导致结果为局部最低点.不准确

3.小批量梯度下降(Mini Batch Gracdient Descent)

机器学习 - 图31
小批量梯度下降,是对批量梯度下降以及随机梯度下降的一个折中办法。其具体思路是:每次迭代使用 batch_size** 个样本来对参数进行更新。它克服上面两种方法的缺点,又同时兼顾两种方法的优点。
(1)通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多。
  (2)每次使用一个batch可以大大
减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。
(3)
可实现并行化。**
C40.png
梯度下降矩阵法:
1. 先决条件: 和3.3.1类似, 需要确认优化模型的假设函数和损失函数。对于线性回归,假设函数hθ(x1,x2,…xn)=θ0+θ1x1+…+θnxnhθ(x1,x2,…xn)=θ0+θ1x1+…+θnxn的矩阵表达方式为:
     hθ(X)=Xθhθ(X)=Xθ ,其中, 假设函数hθ(X)hθ(X)为mx1的向量,θθ为(n+1)x1的向量,里面有n+1个代数法的模型参数。XX为mx(n+1)维的矩阵。m代表样本的个数,n+1代表样本的特征数。
损失函数的表达式为:J(θ)=12(Xθ−Y)T(Xθ−Y)J(θ)=12(Xθ−Y)T(Xθ−Y), 其中YY是样本的输出向量,维度为mx1.
    2. 算法相关参数初始化: θθ向量可以初始化为默认值,或者调优后的值。算法终止距离εε,步长αα和3.3.1比没有变化。