分类和回归(一)-线性模型

本文深入探讨了线性模型的基础,包括hinge损失函数,它在支持向量机(SVMs)中的应用;logistic损失,它是逻辑回归的核心;以及squared损失,用于线性回归。通过这些损失函数,我们能够更好地理解和构建分类与回归模型。
摘要由CSDN通过智能技术生成
分类和回归

spark.mlib提供了多种方法用于用于二分类、多分类以及回归分析。 下表介绍了每种问题类型支持的算法。

问题类型 支持方法
二分类 线性SVMS、逻辑回归、决策树、随机森林、梯度增强树、朴素贝叶斯
多分类 逻辑回归、决策树、随机森林、朴素贝叶斯
回归 线性最小二乘法、决策树、随机森林、梯度增强树、保序回归


线性模型


1、数学描述

许多标准的机器学习算法可以归结为凸优化问题。例如,找到凸函数 f(w) 的一个极小值的任务,这个凸函数依赖于可变向量w (在spark源码中,一般表示为weights)。形式上,我们可以将其当作一个凸优化问题${min}_{w}f(w)$。它的目标函数可以表示为如下公式(1)

82963.png

在上式中,向量x表示训练数据集,y表示它相应的标签,也是我们想预测的值。如果L(w;x,y)可以表示为${w}^{T}x$和y的函数, 我们称这个方法为线性的。spark.mllib中的几种分类算法和回归算法可以归为这一类。

目标函数f包含两部分:正则化(regularizer),用于控制模型的复杂度;损失函数,用于度量模型的误差。损失函数L(w;.)是一个典型的基于w的凸函数。固定的正则化参数gamma定义了两种目标的权衡(trade-off), 这两个目标分别是最小化损失(训练误差)以及最小化模型复杂度(为了避免过拟合)。


1.1、损失函数

下面介绍spark.mllib中提供的几种损失函数以及它们的梯度或子梯度(sub-gradient)

  • hinge loss
 hinge损失的损失函数L(w;x,y)以及梯度分别是:
965046.png
969550.png

  • logistic loss
logistic损失的损失函数L(w;x,y)以及梯度分别是:
458445.png387859.png
884420.png
  • squared loss
squared损失的损失函数L(w;x,y)以及梯度分别是:
370128.png
227807.png

1.2  正则化

正则化的目的是为了简化模型及防止过拟合。spark.mllib中提供了下面的正则化方法。

问题 规则化函数R(w) 梯度
zero 0 0
L2
如下公式(1) w
L1 如下公式(2) sign(w)
elastic net
alpha * L1 +(1-alpha) * L2
alpha * sign(w) + (1-alpha) * w
387859.png                                                 381767.png

在上面的表格中,sign(w)是一个向量,它由w中的所有实体的信号量(+1,-1)组成。L2问题往往比L1问题更容易解决,那是因为L2是平滑的。然而,L1可以使权重矩阵更稀疏, 从而构建更小以及更可判断的模型,模型的可判断性在特征选择中很有用。


2、分类

分类的目的就是将数据切分为不同的类别。最一般的分类类型是二分类,即有两个类别,通常称为正和负。如果类别数超过两个,我们称之为多分类。spark.ml提供了两种线性方法用于分类:线性支持向量机以及逻辑回归。 线性支持向量机仅仅支持二分类,逻辑回归既支持二分类也支持多分类。对所有的方法,spark.ml支持L1和L2正则化。分类算法的详细介绍见下面的链接。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值