机器学习常见算法

聚类、分类、回归的区别

  1. 聚类:无监督学习,学习结果将产生几个集合,集合中的元素彼此相似
  2. 分类:有监督学习,学习结果将产生几个函数,通过函数划分为几个集合,数据对象是离散值
  3. 回归:有监督学习,学习结果将产生几个函数,通过函数产生连续的结果,数据对象是连续值

聚类

  聚类算法是无监督学习的一种算法,也就是说,并没有一批已经打好标签的数据供机器训练模型。因此该算法用于在数据中寻找数据间隐藏的联系和区别。通过聚类后形成几个集合,集合内部的元素间具有较高的相似度,相似度的衡量可以通过欧几里得距离、概率距离、加权重距离计算。

常见的聚类算法有:K-means 算法

分类

  分类算法要求先向模型输入数据的训练样本,从训练样本中提取描述该类数据的一个函数或模型。通过该模型对其他数据进行预测和归类,分类算法是一种对离散型随机变量建模或预测的监督学习算法,同时产生离散的结果。比如在医疗诊断中判断是否患有癌症,在放贷过程中进行客户评级等。

常见的分类算法:
1.决策树:ID3、C4.5(C5.0)、CART
2.神经网络:BP网络
3.朴素贝叶斯(Naive Bayes)算法
4.支持向量机、逻辑回归、K近邻算法(KNN)

回归

  回归算法与分类算法一样都是有监督的学习算法,因此也需要先向模型输入数据的训练样本。但是与分类算法的区别是,回归算法是一种对数值型连续随机变量进行预测和建模的监督学习算法,产生的结果也一般是数值型的。

常见的回归算法:线性回归

机器学习常见算法

在机器学习领域,有几种主要的学习方式:监督学习,非监督学习,半监督学习和强化学习。

1、监督式学习
  在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见监督式学习算法有决策树学习,朴素贝叶斯分类,最小二乘回归,逻辑回归(Logistic Regression),支撑矢量机,集成方法以及反向传递神经网络(Back Propagation Neural Network)等等。

2、非监督式学习
  在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。非监督学习的常见应用场景包括关联规则的学习以及聚类等。常见非监督学习算法包括奇异值分解、主成分分析,独立成分分析,Apriori算法以及k-Means算法等等。

3、半监督式学习
  在此学习方式下,输入数据部分被标识,部分没有被标识,这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。半监督式学习的应用场景包括分类和回归,半监督学习的算法包括一些对常用监督式学习算法的延伸,这些算法首先试图对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)等。

4、强化学习
  在这种学习模式下,输入数据作为对模型的反馈,不像监督模型那样,输入数据仅仅是作为一个检查模型对错的方式,在强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。强化学习的常见应用场景包括动态系统以及机器人控制等。强化学习的常见算法包括Q-Learning以及时间差学习(Temporal difference learning)。

线性回归

  回归:假设现在有一些数据点,用一条直线对这些点进行拟合,这个拟合过程就叫做回归。回归问题:主要用于预测数值型数据,典型的回归例子:数据拟合曲线。
  线性回归是利用连续性变量来估计实际数值(例如房价,呼叫次数和总销售额等)。通过线性回归算法找出自变量和因变量间的最佳线性关系,图形上可以确定一条最佳直线。这条最佳直线就是回归线。这个回归关系可以用Y=aX+b 表示。

求解线性回归

  构建代价函数,代价函数(cost function)表示的是预测值f(x)与实际值y之间的误差的平方。它对应了常用的欧几里得距离简称“欧氏距离”。基于均方误差最小化来求解模型的方法我们叫做“最小二乘法”。在线性回归中,最小二乘法实质上就是找到一条直线,使所有样本数据到该直线的欧式距离之和最小,即误差最小。 希望这个代价函数能有最小值,那么就分别对其求w和b的偏导,使其等于0,求解方程。

推广到更一般的情况:
  我们假设数据集中共有m个样本,每个样本有n个特征,用X矩阵表示样本和特征,是一个m×n的矩阵,用Y矩阵表示标签,是一个m×1的矩阵。同样的代价函数代表了误差,我们希望它尽可能地小,所以要对它求偏导并令偏导数为0,求解方程。
  梯度下降算法(Gradient Descent Optimization)是神经网络模型训练最常用的优化算法。对于深度学习模型,基本都是采用梯度下降算法来进行优化训练的。梯度下降算法背后的原理:目标函数关于参数的梯度将是目标函数上升最快的方向。对于最小化优化问题,只需要将参数沿着梯度相反的方向前进一个步长,就可以实现目标函数的下降。
  对于神经网络模型,借助于BP算法可以高效地计算梯度,从而实施梯度下降算法。但梯度下降算法存在一个问题:不能保证全局收敛。梯度下降算法针对凸优化问题原则上是可以收敛到全局最优的,因为此时只有唯一的局部最优点。而实际上深度学习模型是一个复杂的非线性结构,一般属于非凸问题,这意味着存在很多局部最优点(鞍点),采用梯度下降算法可能会陷入局部最优。
  梯度下降算法中一个重要的参数是学习速率,适当的学习速率很重要:学习速率过小时收敛速度慢,而过大时导致训练震荡,而且可能会发散。理想的梯度下降算法要满足两点:收敛速度要快;能全局收敛。

逻辑回归与线性回归的联系与区别

联系

  • 两个都是线性模型,线性回归是普通线性模型,逻辑回归是广义线性模型
  • 表达形式上,逻辑回归是线性回归套上了一个Sigmoid函数,sigmoid(x)=1/(1+exp(-x)),其实就是对x进行归一化操作,使得sigmoid(x)位于0~1

区别

  • 线性回归假设响应变量服从正态分布,逻辑回归假设响应变量服从伯努利分布
  • 线性回归优化的目标函数是均方差(最小二乘),而逻辑回归优化的是似然函数(交叉熵)
  • 线性归回要求自变量与因变量呈线性关系,而逻辑回归没有要求
  • 线性回归分析的是因变量自身与自变量的关系,而逻辑回归研究的是因变量取值的概率与自变量的概率
  • 逻辑回归处理的是分类问题,线性回归处理的是回归问题,这也导致了两个模型的取值范围不同:0-1和实数域
  • 参数估计上,都是用极大似然估计的方法估计参数(高斯分布导致了线性模型损失函数为均方差,伯努利分布导致逻辑回归损失函数为交叉熵)

逻辑回归

  逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数(logit fuction)来预测一个事件发生的概率。所以它预测的是一个概率值,值域为0到1之间。
 
优点:计算代价不高,易于理解和实现
缺点:容易欠拟合,分类精度可能不高
适用数据类型:数值型和标称型数据

  逻辑回归是和Sigmod函数一起的,为了实现逻辑回归分类器,可以在每一个特征上都乘以一个回归系数,然后将所有的结果值相加,将总和代入Sigmod函数,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被归为1类,小于0.5被归为0类。对于最佳回归系数采用梯度上升法确定。
  梯度上升法:要找到某函数的最大值,最好的方法就是沿着该函数的梯度方向探寻。梯度上升法用来求函数的最大值,梯度下降法用来求函数的最小值。梯度上升法伪代码:

//每个回归系数初始化为1
//重复R次:
    //计算整个数据集的梯度
    //使用alpha*gradient更新回归系数的向量
    //返回回归系数

逻辑回归做特征选择

特征选择包括:特征升维和特征降维

特征升维
如一个样本有少量特征,可以升维,更好的拟合曲线
特征X,升维X/X2/
特征X1、X2,升维X1/X2/X1X2/X1
2/X2**2/

特征降维
利用L1正则化做特征选择

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值