机器学习 Day1

一、机器学习算法的类型

主要分为两种:

  1. Supervised learning(有监督学习)
    (实际运用中用得最多的)
  2. Unsupervised learning(无监督学习)

二、有监督学习

指学习输入x到y输出映射的算法

1. 主要特点:

给算法提供例子,对于给定的输入x,标上正确的标签y, 通过学习正确的输入x,最终实现算法只接受输入,而不需要接受输出标签,就能给出正确的预测.

例子:
输入一段音频,算法能够提取字幕,这就是有监督学习。
或者让算法自动识别垃圾邮件,这也是有监督学习。

2. 主要种类:

2.1 回归预测:

比如根据现在和以前的房价进行拟合,预测之后的房价

2.2 分类预测:

比如分类乳腺癌的肿瘤是良性还是恶性。与回归算法不同在于,它的预测值量比较小,可能只有0或1这种。少量的输出,可能是个有限的离散的集合。

三、无监督学习

通过算法,在数据中找到数据分布的规律或者结构模式等等。

和有监督学习不同,在无监督学习中,数据只有输入x,没有输出标签y。

主要的种类:

  1. 聚类算法(Clustering):
    找到用户的偏好,并将他们分组这些。
    把类似的数据点分组。
  2. 异常检测(Anomaly detection):
    找到不寻常的数据点
  3. 数据降维(Dimensionality reduction):
    将一个大数据集尽可能压缩成一个小的数据集
    同时丢失尽可能少的信息。

四、线性回归模型

(Linear Regression)
单变量线性回归叫Univariate linear regression
一些常见的术语:

  1. Training set(训练集)用来训练模型
  2. x = “input” variable或feature(特征、输入特征)
  3. y (目标变量) “target” variable
  4. m 训练样本的总数(number of training examples)
  5. (x,y) 单个的训练样本(single training example)
  6. ( x i x^{i} xi, y i y^{i} yi)第i个训练样本
  7. y-hat y拔 预测值
    流程
    数据处理到预测值的流程,这里的f指的是函数。
    f w , b ( x ) = w x + b f_{w,b}(x) = wx+b fw,b(x)=wx+b
    w和b叫做模型的参数(Parameter),有的时候叫coefficient(系数)或者权重(weight)
    是在训练过程中可以调整的变量,用于改造模型。

w叫斜率(slope)
b叫做截距(intercept)

五、Cost Function(代价函数)

它是评价模型的一个指标,有助于我们去优化模型。为了衡量w和b的选择和训练数据的吻合程度。

计算代价函数需要比较两个值:

  1. y拔 - y (这个叫误差(error),测量的是预测值和目标之间的差值)
  2. 均方误差:(y拔-y)的平方
  3. 整个训练集的误差:把所有项的均方误差都加上

需要注意的是,当m变成更大的数据集,这个代价函数可能会计算出一个很大的数字。
所以为了建立一个不会因训练集变大而变大的代价函数,我们一般会计算均方误差,也就是说,把整个训练集的误差乘上一个1/m。并且,我们还会把代价函数再乘以一个1/2为了让后面的计算更简洁一些。(实际上是后面求极值点偏导数的时候会有平方求导的2出现)

所以,下面这个就是代价函数,也叫做方差代价函数:请添加图片描述
但实际上,不同场景可能会使用不同的代价函数。但这个是线性回归最常用的一个。
也可以这么写:
请添加图片描述
所以为了实现最优的模型,我们会minimizeJ,找到最准确的最合适的w和b。
所以,一般会不停的改变w和b, 然后画出w和b改变后的J(w)的值,画出图像,找到使J(w)最小时的w的值。
最终画出来的图像会是这个样子的:
请添加图片描述
那一般我们会把它变成一个二维的可视化图:
请添加图片描述
横轴为w, b为纵轴,中间取到的点越趋近于椭圆的中心,说明J越小。

但实际上,在机器学习中,我们不需要通过读等高线图去获得w和b的最佳值,因为一旦我们使用更复杂的机器学习的算法,就没有用了。所以一般我们会编写算法,以自动找到最合适的w和b。其中有一种很有用的算法(梯度下降法)。

六、梯度下降法(Gradient descent)

梯度下降法不仅使用于线性回归中,还包括比如最先进的神经网络模型等深度学习模型。

可以用来最小化任意函数,而不仅仅是线性回归的代价函数。

一般的使用方式:
将w和b都设置为0,保持对w和b的改变去减小J,直到让J在最小值或接近最小值(但可能是局部最优值,不一定是全局最小值)
因为J不一定长得像吊床那样,可能更复杂,所以可能存在不止一个可能的最小值。
比如:
请添加图片描述
梯度下降算法一般是怎么做的呢:
通俗来说,好比算法是一个人,站在一个多山的公园的某个山头,你要找到那个最快速度走到山底下的那条路,那要做的就是,360旋转,并且找到那条看起来下降最快的那条路。并且是往你选择的那个方向往下走一小步之后,再360度旋转,一直这样循环,在每一个点都找到那个最佳的方向,往下走一小步,直到到达山脚。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq030928

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值