2. 监督学习
1. 回归算法
1. 线性回归
定义与原理
定义:
线性回归是一种通过建立自变量与因变量之间线性关系来进行预测的方法。它假设因变量 $y$ 与自变量 $x_1, x_2, \cdots, x_n$ 之间存在线性关系,其一般形式为:
$$
y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \cdots + \beta_nx_n + \epsilon
$$
其中,$\beta_0, \beta_1, \cdots, \beta_n$ 是模型的参数,$\epsilon$ 是误差项,代表无法由线性关系解释的部分。
原理:
线性回归的目标是找到一组最优的参数 $\beta_0, \beta_1, \cdots, \beta_n$,使得模型预测值与真实值之间的误差最小。通常使用最小二乘法来估计参数,即通过最小化误差的平方和来确定参数的值。
假设我们有 $m$ 个训练样本 ${(x_{i1}, x_{i2}, \cdots, x_{in}, y_i)}_{i = 1}^m$,则误差平方和(SSE)为:
$$ SSE = \sum_{i = 1}^{m}(y_i - \hat{y}i)^2 = \sum)\right]^2 $$}^{m}\left[y_i - (\beta_0 + \beta_1x_{i1}+\beta_2x_{i2}+\cdots+\beta_nx_{in
通过对 SSE 关于各个参数求偏导数并令其为 0,可以得到一组正规方程,解这些方程即可得到参数估计值。
简单线性回归
当只有一个自变量 $x$ 时,线性回归模型称为简单线性回归模型,其形式为:
$$ y = \beta_0 + \beta_1x + \epsilon $$
在简单线性回归中,最小二乘法求得参数估计值如下:
$$ \hat{\beta}1 = \frac{\sum $$}^{m}(x_i - \bar{x})(y_i - \bar{y})}{\sum_{i = 1}^{m}(x_i - \bar{x})^2
$$ \hat{\beta}_0 = \bar{y} - \hat{\beta}_1\bar{x} $$
其中,$\bar{x}$ 和 $\bar{y}$ 分别是 $x$ 和 $y$ 的样本均值。
多元线性回归
当自变量个数大于 1 时,就构成了多元线性回归模型。其参数估计也使用最小二乘法,但通常借助矩阵运算求解正规方程。
设 $X$ 是一个 $m \times (n + 1)$ 的矩阵,第一列全为 1 表示截距项,后面 $n$ 列为自变量值;$y$ 是 $m \times 1$ 的向量,表示因变量的取值。则参数向量 $\beta = (\beta_0, \beta_1, \cdots, \beta_n)^T$ 的最小二乘估计为:
$$ \hat{\beta} = (X^TX)^{-1}X^Ty $$
模型评估
常用的评估指标有:均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、决定系数($R^2$)等。
- 均方误差(MSE):
$$ MSE = \frac{1}{m} \sum_{i = 1}^{m}(y_i - \hat{y}_i)^2 $$
- 均方根误差(RMSE):
$$ RMSE = \sqrt{MSE} $$
- 平均绝对误差(MAE):
$$ MAE = \frac{1}{m} \sum_{i = 1}^{m} |y_i - \hat{y}_i| $$
- 决定系数($R^2$):
$$ R^2 = 1 - \frac{\sum_{i = 1}^{m}(y_i - \hat{y}i)^2}{\sum $$}^{m}(y_i - \bar{y})^2
2. 多项式回归
原理与模型
- 多项式回归是在线性回归的基础上,将自变量的幂次扩展到更高阶,从而能够拟合更复杂的非线性关系。其一般数学表达式为$$y = \beta_0 + \beta_1x + \beta_2x^2 + \cdots + \beta_nx^n + \epsilon$$。例如,当$$n = 2$$时,模型为$$y = \beta_0 + \beta_1x + \beta_2x^2 + \epsilon$$,这是一个二次多项式回归模型,其图像是一条抛物线,能描述数据呈现出的先上升后下降或先下降后上升的趋势。当$$n = 3$$时,模型为$$y = \beta_0 + \beta_1x + \beta_2x^2 + \beta_3x^3 + \epsilon$$,可以拟合更复杂的曲线形状。
模型参数估计
- 多项式回归模型的参数估计通常采用最小二乘法。该方法的目标是找到一组回归系数$$\hat{\beta}0, \hat{\beta}_1, \cdots, \hat{\beta}_n$$,使得观测值$$y_i$$与模型预测值$$\hat{y}_i$$之间的误差平方和$$SSE=\sum}^{n}(y_i - \hat{yi)^2$$最小。通过对误差平方和关于每个回归系数求偏导数,并令偏导数为零,可得到一个正规方程组,解这个方程组就能得到回归系数的估计值。例如,对于简单的二次多项式回归模型$$y = \beta_0 + \beta_1x + \beta_2x^2 + \epsilon$$,根据最小二乘法可得方程组: $$\begin{cases} \sum$$ 解这个方程组就可以得到$$\beta_0$$、$$\beta_1$$和$$\beta_2$$的估计值。}^{n}y_i = n\beta_0 + \beta_1\sum_{i = 1}^{n}x_i + \beta_2\sum_{i = 1}^{n}x_i^2 \ \sum_{i = 1}^{n}x_iy_i = \beta_0\sum_{i = 1}^{n}x_i + \beta_1\sum_{i = 1}^{n}x_i^2 + \beta_2\sum_{i = 1}^{n}x_i^3 \ \sum_{i = 1}^{n}x_i^2y_i = \beta_0\sum_{i = 1}^{n}x_i^2 + \beta_1\sum_{i = 1}^{n}x_i^3 + \beta_2\sum_{i = 1}^{n}x_i^4 \end{cases
多项式阶数的选择
- 基于数据可视化:首先观察数据的散点图,初步判断数据的趋势。如果数据呈现出明显的线性趋势,那么一阶多项式(即线性回归)可能就足够了;如果数据有弯曲的形状,如抛物线形状,可能需要考虑二阶多项式;如果数据有多个波动或转折点,则可能需要更高阶的多项式。
-
拟合优度指标:
-
$$R^2$$指标:$$R^2 = 1 - \frac{SSE}{SST}$$,其中$$SST=\sum_{i = 1}^{n}(y_i - \bar{y})^2$$是总离差平方和。$$R^2$$取值在0到1之间,越接近1表示模型对数据的拟合程度越好。但$$R^2$$会随着多项式阶数的增加而单调递增,即使增加的阶数对模型并没有实际的改进,所以不能仅仅依靠$$R^2$$来选择阶数。
- 调整$$R^2$$:调整$$R^2$$考虑了模型中自变量的个数,对$$R^2$$进行了修正,其公式为$$R_{adj}^2 = 1 - \frac{(n - 1)}{(n - p - 1)}(1 - R^2)$$,其中n是样本数量,p是模型中自变量的个数(包括常数项)。调整$$R^2$$能够更好地反映模型的真实拟合效果,当增加的阶数不能显著提高模型拟合度时,调整$$R^2$$可能不会增加甚至会下降,因此可以作为选择多项式阶数的一个重要参考指标。
- 交叉验证:将数据集随机划分为训练集和验证集,通常按照 7:3 或 8:2 的比例划分。在训练集上拟合不同阶数的多项式回归模型,然后在验证集上计算模型的均方误差(MSE)、平均绝对误差(MAE)等指标,选择在验证集上表现最佳(即误差指标最小)的阶数作为最终的模型阶数。例如,通过交叉验证,发现三阶多项式回归模型在验证集上的 MSE 最小,那么就选择三阶多项式作为最终的模型形式。
3. 岭回归
在普通线性回归的损失函数中加入 L2 正则化项,即系数的平方和。L2 正则化不会使系数变为 0,而是将系数值缩小,使得模型更加稳定,减少模型的方差,提高模型的泛化能力。
问题背景
在多元线性回归中,如果自变量之间存在高度的线性相关性,即多重共线性,会导致回归系数的估计值不稳定,方差增大,甚至可能使估计结果失去意义。例如,在研究房屋价格与房屋面积、房间数量、房龄等因素的关系时,房屋面积和房间数量可能存在较强的相关性,这就可能引发多重共线性问题。
原理
岭回归通过在正规方程的基础上增加一个岭参数$$\lambda$$乘以单位矩阵I来对回归系数进行估计,其目标函数为: $$ \min_{\beta}(Y - X\beta)^T(Y - X\beta)+\lambda\beta^T\beta $$ 其中,Y是因变量向量,X是自变量矩阵,$$\beta$$是回归系数向量。通过求解这个目标函数,可以得到岭回归系数的估计值$$\hat{\beta}_{ridge}$$ 。与普通最小二乘法相比,岭回归在损失函数中增加了一个惩罚项$$\lambda\beta^T\beta$$,这个惩罚项会对回归系数进行 “收缩”,使得回归系数的估计值更稳定,减少多重共线性的影响。
岭参数$$\lambda$$的选择
- 岭迹图法:绘制岭回归系数随$$\lambda$$变化的曲线,即岭迹图。观察岭迹图中回归系数的变化趋势,选择使得回归系数稳定且合理的$$\lambda$$值。一般来说,当$$\lambda$$逐渐增大时,回归系数会逐渐收缩并趋于稳定。例如,在一个具体的案例中,随着$$\lambda$$从0开始逐渐增大,某些回归系数可能会从较大的值逐渐减小并趋于一个稳定的值,此时可以选择对应的$$\lambda$$值。
- 交叉验证法:将数据集划分为训练集和验证集,在训练集上使用不同的$$\lambda$$值拟合岭回归模型,然后在验证集上计算模型的均方误差(MSE)、平均绝对误差(MAE)等指标,选择使得验证集上误差指标最小的$$\lambda$$值作为最优的岭参数。例如,通过交叉验证,发现当$$\lambda = 0.5$$时,模型在验证集上的 MSE 最小,那么就选择$$\lambda = 0.5$$作为岭回归模型的参数。
4. Lasso回归
Lasso 回归,即最小绝对收缩和选择算子(Least Absolute Shrinkage and Selection Operator),是一种用于线性回归模型的正则化方法,通过在普通线性回归的损失函数中添加 L1 正则化项,即系数的绝对值之和,来实现特征选择和参数估计。L1 正则化会使一些系数变为 0,从而达到自动筛选特征的目的,将对目标变量影响较小的特征排除在外。
原理
- 目标函数:Lasso 回归的目标是在最小化残差平方和的同时,通过添加一个 L1 正则化项来控制模型的复杂度。其目标函数为$$min \sum_{i = 1}^{n}(y_{i}-\sum_{j = 1}^{p}x_{ij}\beta_{j})^{2}+\lambda\sum_{j = 1}^{p}|\beta_{j}|$$,其中$$(y_{i},x_{i1},x_{i2},\cdots,x_{ip})$$是第i个观测值,$$y_{i}$$是响应变量,$$x_{ij}$$是第i个观测值的第j个预测变量,$$\beta_{j}$$是待估计的回归系数,n是观测值的数量,p是预测变量的数量,$$\lambda$$是正则化参数,用于控制正则化的强度。
- L1 正则化效果:L1 正则化项$$\lambda\sum_{j = 1}^{p}|\beta_{j}|$$会使得一些回归系数$$\beta_{j}$$被压缩为 0,从而实现变量选择的功能。这是因为在优化过程中,L1 正则化会倾向于将一些不重要的变量的系数缩小到零,只保留对响应变量有显著影响的变量,从而得到一个更简洁、更具解释性的模型。
求解方法
- 坐标下降法:这是一种常用的求解 Lasso 回归的方法。它通过循环更新每个回归系数$$\beta_{j}$$,固定其他系数不变,将目标函数转化为关于单个变量$$\beta_{j}$$的优化问题,然后依次求解每个变量。具体来说,在每次迭代中,对于每个变量$$\beta_{j}$$,通过最小化目标函数关于$$\beta_{j}$$的部分来更新其值,直到收敛。坐标下降法计算效率较高,适用于大规模数据。
- 近端梯度法:也是一种有效的求解方法。它结合了梯度下降法和近端算子的思想,通过在梯度下降的每一步中加入一个近端算子来处理 L1 正则化项。近端梯度法具有较好的收敛性质,能够在一定程度上避免陷入局部最优解。
5. 决策树回归
决策树回归是一种基于树结构进行决策的非参数回归方法,以下将从原理、构建过程、优缺点及应用场景等方面进行详细介绍:
基本原理
- 决策树回归通过构建一棵决策树来对样本数据进行学习和预测。它将输入空间(特征空间)划分为不同的区域,每个区域对应一个特定的输出值(预测值)。决策树由节点和边组成,节点表示对某个特征的测试,边表示测试结果的不同分支。从根节点开始,根据样本在各个特征上的值,沿着树的分支逐步向下,直到到达叶子节点,叶子节点所对应的数值就是该样本的预测值。
构建过程
- 特征选择:选择能够最好地划分样本数据集的特征。常用的选择准则有均方误差(MSE)、平均绝对误差(MAE)等。通过计算每个特征对目标变量的影响程度,选择影响最大的特征作为当前节点的分裂特征。例如,对于一个包含年龄、收入、教育程度等特征的数据集,要预测房价,可能会发现收入这个特征对房价的影响最大,那么就会选择收入作为第一个分裂特征。
- 树的生长:根据选定的特征,将数据集划分为不同的子集,每个子集对应一个分支。然后在每个子集中重复特征选择和划分的过程,不断生长决策树,直到满足一定的停止条件。停止条件可以是达到预设的树的深度、子集中的样本数量小于某个阈值、或者进一步划分不能显著降低误差等。
- 剪枝:为了防止过拟合,通常需要对生成的决策树进行剪枝。剪枝就是去掉决策树中一些不必要的分支,使树的结构更加简单,提高模型的泛化能力。常见的剪枝方法有预剪枝和后剪枝。预剪枝是在树的生长过程中,根据一些条件提前停止分支的生长;后剪枝是在树生长完成后,从叶子节点开始,逐步向上评估每个分支的必要性,剪掉对模型性能影响不大的分支。
确定划分点
- 对于数值型特征,需要确定一个划分点将数据集分为两部分。常见的方法是遍历特征的所有取值,尝试不同的划分点,计算每个划分点下的误差指标(如 MSE),选择使误差最小的划分点。比如对于房屋面积这个特征,可能尝试将面积值从小到大排序后,依次以每个面积值作为划分点,计算划分后的均方误差,假设发现以 100 平方米作为划分点时,均方误差最小,那么就以 100 平方米为划分点,将房屋面积小于 100 平方米的分为一组,大于等于 100 平方米的分为另一组。
- 对于类别型特征,则是将每个类别作为一个分支进行划分。例如,特征 “房屋朝向” 有 “朝南”“朝北”“朝东”“朝西” 等类别,那么就会以这几个类别为分支,将数据集划分为对应的子集。
递归划分
- 完成一次划分后,得到的每个子集再分别重复上述特征选择和确定划分点的过程,继续进行划分,形成更深层次的树结构。例如,在以房屋面积划分后的两个子集中,再分别选择其他特征(如房间数量)进行进一步划分,直到满足停止条件。
- 停止条件通常包括达到预设的树的深度、子集中的样本数量小于某个阈值、进一步划分不能显著降低误差等。当满足停止条件时,划分过程停止,此时每个叶子节点所包含的样本就构成了一个区域,该区域内的样本具有相似的特征取值,并且对应一个特定的预测值(通常是该区域内样本目标变量的均值或其他统计值)。
6. 随机森林回归
随机森林回归是一种基于集成学习的机器学习算法,它通过构建多个决策树并将它们的预测结果进行组合,来提高回归任务的准确性和稳定性。
原理
- 随机森林回归是从训练数据集中有放回地随机抽取多个子集,每个子集的大小通常与原始训练数据集相同。然后,利用这些子集分别训练一棵决策树,在构建决策树的过程中,对于每个节点的分裂,会随机选择一部分特征来确定最优分裂特征和分裂点。这样可以使得每棵决策树都具有一定的随机性和差异性。最后,将所有决策树的预测结果进行平均或加权平均,得到最终的预测结果。
模型训练步骤
- 数据采样:从原始训练数据集中有放回地随机抽取多个样本子集,每个子集都包含与原始数据集相同数量的样本,但可能存在重复的样本。
- 构建决策树:对于每个样本子集,分别训练一棵决策树。在构建决策树时,每次选择分裂特征时,随机选择一部分特征(平方根法、对数法、自定义)进行考虑,而不是考虑所有特征,然后按照决策树的构建算法(如 CART 算法)确定最优的分裂特征和分裂点,递归地构建决策树,直到满足停止条件(如树的深度达到预设值、节点样本数量小于阈值等)。
- 组合预测:将所有训练好的决策树的预测结果进行组合。通常采用简单平均的方法,即将所有决策树对测试样本的预测值相加,然后除以决策树的数量,得到最终的预测结果。也可以根据决策树的性能给它们赋予不同的权重,进行加权平均。
7. XGboost回归
XGBoost 回归是一种基于梯度提升框架的强大机器学习算法,在各种回归任务中表现出色。
原理
- XGBoost 回归的核心思想是通过不断地添加新的弱学习器(通常是决策树)来逐步提升模型的性能。它基于梯度提升的原理,每次迭代都根据上一轮模型的预测误差来训练新的弱学习器,使得新的弱学习器能够纠正上一轮的错误,从而不断提高模型的准确性。
模型训练步骤
- 初始化:首先初始化一个简单的模型,通常是一个常数,例如训练数据集中目标变量的均值。
- 计算梯度和海森矩阵:对于每个训练样本,计算当前模型的损失函数关于预测值的梯度和海森矩阵。在回归问题中,常用的损失函数有均方误差(MSE)、平均绝对误差(MAE)等。以均方误差为例,梯度是预测值与真实值之差,海森矩阵为常数 1。
- 构建决策树:根据计算得到的梯度和海森矩阵,构建一棵决策树作为新的弱学习器。在构建决策树的过程中,XGBoost 使用了一些优化技术,如对特征进行预排序、采用近似算法来处理大规模数据等,以提高训练效率。
- 更新模型:将新构建的决策树添加到当前模型中,更新模型的预测值。更新的方式是将当前模型的预测值加上一个学习率乘以新决策树的预测值。学习率是一个小于 1 的常数,用于控制每次更新的步长,防止模型过拟合。
- 重复迭代:重复步骤 2 - 4,不断构建新的决策树并添加到模型中,直到满足停止条件。停止条件可以是达到预设的迭代次数、模型的损失函数不再显著下降、验证集上的性能不再提升等。
8. k近邻
2. 分类算法
1. 逻辑回归
逻辑回归是一种广义的线性回归分析模型。逻辑回归=线性回归+sigmoid函数。
线性回归:$$z=wx+b$$
Sigmoid函数:$$g(z)=\frac{1}{1 + e^{-z}}$$
逻辑回归:$$p = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-\mathbf{w}^T\mathbf{x}}}$$($$p \in (0, 1)$$)
原理
- 逻辑回归的基本原理是通过一个逻辑函数(也称为 Sigmoid 函数)将线性回归模型的输出映射到一个 0 到 1 之间的概率值,从而实现对分类问题的建模。Sigmoid 函数的表达式为: $$ g(z)=\frac{1}{1 + e^{-z}} $$
其中z是线性回归模型的输出,即$$z = w_0 + w_1x_1 + w_2x_2 +... + w_nx_n$$,$$w_i$$是模型的参数,$$x_i$$是输入特征。通过 Sigmoid 函数,将z的值映射到(0,1)区间,得到的结果可以解释为属于某一类别的概率。例如,在二分类问题中,若g(z)的值大于 0.5,则预测样本属于正类;否则,属于负类。
模型训练步骤
-
数据准备:收集和整理用于训练模型的数据集,包括输入特征和对应的标签(类别)。对数据进行预处理,如归一化、缺失值处理等,以提高模型的训练效果。
-
初始化参数:随机初始化模型的参数$$w_0, w_1, w_2,..., w_n$$。这些参数将在训练过程中不断调整,以优化模型的性能。
-
计算预测值:根据当前的参数值,计算每个样本的预测概率$$p = g(z)$$,其中
$$z = w_0 + w_1x_1 + w_2x_2 +... + w_nx_n$$。
- 计算损失函数:使用合适的损失函数来衡量预测值与真实标签之间的差异。在逻辑回归中,常用的损失函数是对数损失函数(Log Loss),其表达式为:
$$L(y, p)= -[y\log(p)+(1 - y)\log(1 - p)]$$
其中y是真实标签(0 或 1),p是预测概率。损失函数的值越小,说明模型的预测结果与真实标签越接近,模型的性能越好。
- 更新参数:通过优化算法(如梯度下降法)来最小化损失函数。梯度下降法根据损失函数对参数的梯度来更新参数的值,使得损失函数逐渐减小。具体来说,对于每个参数$$w_i$$,其更新公式为:
$$w_i = w_i - \alpha\frac{\partial L}{\partial w_i}$$
其中$$\alpha$$是学习率,控制参数更新的步长。
- 迭代训练:重复步骤 3 - 5,不断计算预测值、损失函数,并更新参数,直到满足停止条件。停止条件可以是达到预设的迭代次数、损
失函数的值小于某个阈值,或者参数的变化量小于某个阈值等。
2. 决策树
略
3. k近邻(KNN)
k 近邻算法(K - Nearest Neighbor,KNN)是一种基本的分类与回归算法。
算法原理
- 对于一个待分类的样本,k 近邻算法会在训练数据集中找到与该样本距离最近的 k 个邻居,然后根据这 k 个邻居的类别来决定待分类样本的类别。如果是分类问题,通常采用多数表决的方式,即这 k 个邻居中出现次数最多的类别就是待分类样本的类别;如果是回归问题,则通常取这 k 个邻居的数值平均值作为待分类样本的预测值。
距离度量
- 在 k 近邻算法中,常用的距离度量方法有欧氏距离、曼哈顿距离和闵可夫斯基距离等。
- 欧氏距离:是最常见的距离度量方法,对于两个 n 维向量$$X=(x_1,x_2,\cdots,x_n)$$和$$Y=(y_1,y_2,\cdots,y_n)$$,它们之间的欧氏距离$$d(X,Y)$$为:$$d(X,Y)=\sqrt{\sum_{i = 1}^{n}(x_i - y_i)^2}$$。
- 曼哈顿距离:也称为城市街区距离,它计算的是两个向量在各个维度上的距离之和,对于上述向量X和Y,曼哈顿距离$$d(X,Y)$$为:$$d(X,Y)=\sum_{i = 1}^{n}|x_i - y_i|$$。
- 闵可夫斯基距离:是欧氏距离和曼哈顿距离的一般化形式,对于向量X和Y,闵可夫斯基距离$$d(X,Y)$$为:$$d(X,Y)=(\sum_{i = 1}^{n}|x_i - y_i|^p)^{\frac{1}{p}}$$,其中p为参数。当$$p = 2$$时,就是欧氏距离;当$$p = 1$$时,就是曼哈顿距离。
算法步骤
- 计算待分类样本与训练数据集中每个样本的距离。
- 从训练数据集中选取距离待分类样本最近的 k 个样本。
- 根据这 k 个最近邻样本的类别或数值,按照多数表决或平均值等方法,确定待分类样本的类别或预测值。
k 值选择
- k 值的选择对 k 近邻算法的性能有重要影响。如果 k 值较小,模型的偏差较小,但方差较大,容易过拟合;如果 k 值较大,模型的方差较小,但偏差较大,可能会导致分类错误率上升。一般来说,可以通过交叉验证等方法来选择合适的 k 值。
使用kd树可以简化距离计算
4. 随机森林
5. Boosting
6. 支持向量机(SVM)
一、SVM 的基本概念
- 超平面(Hyperplane)
- 在二维空间中,超平面是一条直线;在三维空间中是一个平面;在更高维空间中,则是一个维度比样本空间少一维的线性子空间。
- 超平面的数学表达式为:$$w^T x + b = 0$$ 其中,w 是权重向量(决定超平面的方向),b 是偏置项(决定超平面的位置),x 是样本特征向量。
- 支持向量(Support Vectors)
- 距离超平面最近的样本点,它们决定了超平面的位置和方向,是训练集中的关键样本。
- 其他样本点对超平面的确定没有直接影响。
- 间隔(Margin)
- 两类样本中离超平面最近的点到超平面的距离之和,即最大间隔是 SVM 追求的优化目标。
- 最大化间隔可以降低模型对噪声的敏感性,提高分类鲁棒性。
二、SVM 的分类类型
-
线性可分 SVM(硬间隔 SVM)
-
适用场景:数据完全线性可分(存在一个超平面能将不同类别样本完全分开)。
-
目标:最大化样本与超平面的最小距离(硬间隔),数学表达式为:$$\min_{w,b} \frac{1}{2} |w|^2 \quad \text{s.t.} \quad y_i (w^T x_i + b) \geq 1 \quad (i=1,2,...,n)$$ 其中,$$y_i$$ 是样本标签(+1 或 - 1),约束条件要求所有样本正确分类且距离超平面至少为 1。
-
线性不可分 SVM(软间隔 SVM)
-
适用场景:数据存在少量噪声或轻微线性不可分,允许一定程度的分类错误。
-
引入松弛变量:通过引入松弛变量$$\xi_i \geq 0$$允许部分样本违反约束条件,目标函数变为:
$$\min_{w,b,\xi} \frac{1}{2} |w|^2 + C \sum_{i=1}^n \xi_i \quad \text{s.t.} \quad y_i (w^T x_i + b) \geq 1 - \xi_i, \ \xi_i \geq 0$$
其中,$$C>0$$是惩罚参数:
-
C 越大,对分类错误的惩罚越严格(倾向于减少错误);
-
C 越小,允许更多分类错误(倾向于最大化间隔)。
-
非线性 SVM(核技巧)
-
适用场景:数据在原始特征空间中非线性可分,需通过核函数将数据映射到更高维空间,使其线性可分。
-
核函数(常用类型):
-
线性核:$$K(x_i, x_j) = x_i^T x_j$$(等价于线性 SVM)。
- 多项式核:$$K(x_i, x_j) = (x_i^T x_j + 1)^d$$(d 为多项式次数)。
- 高斯核(RBF 核):$$K(x_i, x_j) = \exp(-\gamma |x_i - x_j|^2)$$($$\gamma>0$$ 控制核的宽度)。
-
** sigmoid 核 **:$$K(x_i, x_j) = \tanh(\alpha x_i^T x_j + c)$$(类似神经网络激活函数)。
-
核技巧的优势:避免直接在高维空间进行复杂计算,通过核函数在原始空间计算内积,降低计算复杂度。
三、SVM 的求解方法
SVM 的优化问题属于凸二次规划(QP)问题,通常通过拉格朗日乘数法转化为对偶问题求解,步骤如下:
- 引入拉格朗日乘数 $$\alpha_i \geq 0$$,构建拉格朗日函数。
- 对原始变量 w 和 b 求偏导并令其为零,消去原始变量,得到仅含拉格朗日乘数 $$\alpha$$ 的对偶问题。
- 使用 ** 序列最小最优算法(SMO)* 高效求解对偶问题,得到最优拉格朗日乘数 $$\alpha^$$。
- 根据 $$\alpha^$$ 计算最优权重 $$w^$$ 和偏置 $$b^*$$,确定超平面。
7. 朴素贝叶斯
朴素贝叶斯分类是一种基于贝叶斯定理和特征条件独立假设的分类方法。以下是其详细介绍:
原理
- 假设每个特征之间相互独立,根据先验概率和条件概率来计算后验概率,从而实现对样本的分类。具体来说,对于给定的样本特征向量$$x=(x_1,x_2,\cdots,x_n)$$,要判断它属于类别C的概率,根据贝叶斯定理有:$$P(C|x)=\frac{P(x|C)P(C)}{P(x)}$$。
- 由于特征之间相互独立,$$P(x|C)$$可以分解为$$P(x_1|C)P(x_2|C)\cdots P(x_n|C)$$。通过计算不同类别下的后验概率,选择后验概率最大的类别作为样本的预测类别。
算法步骤
- 数据准备:收集和整理用于训练和测试的数据集,将数据分为特征向量和对应的类别标签。例如,在一个文本分类任务中,特征可能是单词或词组,类别可以是不同的主题,如科技、娱乐、体育等。
- 计算先验概率:统计每个类别在训练数据集中出现的频率,作为该类别C的先验概率$$P(C)$$。例如,在一个包含1000篇文章的训练集中,有300篇属于科技类,那么科技类的先验概率$$P(科技)=\frac{300}{1000}=0.3$$。
- 计算条件概率:对于每个类别C和每个特征$$x_i$$,计算在该类别下特征$$x_i$$出现的概率$$P(x_i|C)$$。例如,在科技类文章中,“电脑” 这个词出现的次数为50次,而科技类文章的总词数为5000,则$$P(电脑|科技)=\frac{50}{5000}=0.01$$。
- 预测分类:对于待分类的样本特征向量$$x=(x_1,x_2,\cdots,x_n)$$,计算它属于每个类别C的后验概率$$P(C|x)$$,即$$P(C|x)=\frac{P(C)\prod_{i = 1}^{n}P(x_i|C)}{P(x)}$$。由于$$P(x)$$对于所有类别都是相同的,可以忽略不计,只需比较$$P(C)\prod_{i = 1}^{n}P(x_i|C)$$的大小。选择后验概率最大的类别作为样本的预测类别。
特点
- 优点:算法简单,训练和预测速度快,对小规模数据表现良好,在文本分类等领域有较高的准确率,对缺失值不敏感。
- 缺点:特征条件独立假设在实际中往往不成立,可能会影响分类效果;对输入数据的表达形式很敏感。
发表评论