由于我最近拿到offer还是想再找找更好的机会,目前有很多的面试,面试的时候很多面试官会问一些机器学习的基础知识,由于我上一段实习的时候主要是机器学习和部分深度学习的内容,为了避免在面试的时候想不起来自己学习的内容,我还是决定边复习边学习,新开一个自我复习系列,巩固已经学到的知识。
--------------------------------------------------------------------------------------------------------------
机器学习(准确的预测和分类等,牺牲部分可解释性获得强大的预测能力)<——>数理统计(推断特征之间的关系)
机器学习——>有监督,无监督,强化学习
有监督:数据有标签,——>回归(标签连续)、分类(标签离散)
无监督:没有标签——>聚类(识别数据的组)、降维(从高维数据检测识别低维的数据结构)
强化学习:让他自己学习
机器学习的分类主要包括有监督学习、无监督学习和强化学习。每个类别都有其独特的特点和应用场景。以下是对这三种主要类型的详细介绍:
1. 有监督学习 (Supervised Learning)
训练数据集中的每个样本都有对应的标签(或目标值),模型学习输入到输出的映射关系。模型的目标是根据输入预测输出,常用于分类和回归任务。
常用算法及其原理
回归算法
-
线性回归 (Linear Regression):
- 原理:找到一个线性函数,使得预测值与实际值之间的误差最小。
- 应用:房价预测:根据特征(如房屋面积、房间数量、地理位置等)预测房价。股票价格预测:根据历史价格和其他相关指标预测股票的未来价格。销售预测:根据历史销售数据和市场因素预测未来销售额。
- 线性回归是一种基本的回归分析方法,用于建立特征(自变量)和目标变量(因变量)之间的线性关系。它通过最小化预测值与实际值之间的误差来找到最佳的回归函数。
线性回归模型假设目标变量 y与特征变量 X之间的关系可以用一个线性函数表示:
找到回归系数 β 使得预测值 与实际值 之间的误差最小。误差通常用均方误差(Mean Squared Error, MSE)来度量:
最小二乘法是最常用的方法,通过最小化误差平方和来估计回归系数。
-
岭回归 (Ridge Regression):
- 原理:在线性回归的基础上加入L2正则化项,防止过拟合。
- 应用:高维数据的回归分析。高维数据的回归分析:如基因数据分析、文本数据处理等,特征维度远大于样本数的场景。解决多重共线性问题:当特征之间存在高度相关性时,岭回归能提供更稳定的回归系数估计。
-
Lasso 回归 (Lasso Regression):
- 原理:是在线性回归的基础上加入 L1 正则化项,通过引入绝对值的惩罚项来约束回归系数,使得一些回归系数收缩到零。这种特性使得 Lasso 回归不仅可以用于预测,还可以进行特征选择。
- 应用:特征选择和预测。
-
Lasso 回归 vs. 岭回归:
- Lasso 回归:使用 L1 正则化项,进行特征选择,将不重要的特征的系数缩减为零。
- 岭回归:使用 L2 正则化项,不会将系数缩减为零,但可以减少系数的大小,从而减少过拟合。
-
多项式回归 (Polynomial Regression):
- 原理:将特征进行多项式扩展,捕捉非线性关系。
- 应用:非线性数据的回归分析。
分类算法
-
逻辑回归 (Logistic Regression):
- 原理:使用逻辑函数将线性组合映射到0到1之间,表示事件发生的概率。
- 应用:二分类问题,如垃圾邮件分类、疾病预测。二分类问题:逻辑回归广泛应用于各种二分类问题,如垃圾邮件分类、疾病预测、客户流失预测等。概率预测:除了分类,逻辑回归还可以输出事件发生的概率。
对比其他算法
|
-
支持向量机 (SVM):
- 原理:找到最大化分类边界的超平面。支持向量机(Support Vector Machine, SVM)是一种监督学习模型,用于分类和回归分析。其主要思想是找到一个能够最大化分类边界的超平面,以此将不同类别的样本分开。在二分类问题中,SVM 通过选择支持向量(位于分类边界上的样本点)来确定最优的分类超平面。对于线性可分数据,SVM 的目标是找到一个决策超平面,使得两个类别之间的间隔最大化。这个间隔被称为“最大间隔”(Maximum Margin)。对于线性不可分的数据,SVM 通过引入核函数(Kernel Function)将数据映射到高维空间,使得在高维空间中可以找到线性可分的超平面。
- 应用:文本分类、图像识别。
对比其他算法
|
-
决策树 (Decision Tree):
- 原理:递归分割特征空间,构建树结构。决策树是一种用于分类和回归任务的树形模型,通过递归地分割特征空间来构建树结构。在每个节点上,决策树选择一个特征及其阈值,以最佳方式将数据分割为不同的子集,从而使得每个子集的纯度最大化。这个过程一直递归进行,直到达到停止条件(如节点中的样本数小于某个阈值,或达到最大深度)。
- 应用:分类和回归任务。
信息增益(Information Gain): 信息增益是通过衡量分割前后信息熵的减少量来选择分割特征。信息熵(Entropy)的计算公式为:
基尼指数(Gini Index): 基尼指数用于衡量数据集的不纯度,其计算公式为:
卡方统计量(Chi-square): 卡方统计量用于衡量特征与目标变量之间的独立性,其计算公式为:
-
随机森林 (Random Forest):
- 原理:集成多棵决策树,通过多数投票或平均结果进行预测。决策树通过递归地分割特征空间来构建树结构,每个节点代表一个特征的测试条件,每个分支代表测试结果,每个叶节点代表一个类别或回归值。决策树的构建过程包括选择最佳分割特征和分割点,以最大化节点纯度。
- 应用:分类、回归任务。
-
梯度提升树 (Gradient Boosting Tree, GBT)
原理
梯度提升树通过逐步构建决策树,每棵树都在前一棵树的基础上进行优化,以最小化损失函数。每次迭代中,新的树拟合当前模型的残差。
-
极端梯度提升 (XGBoost)
- 原理:XGBoost 是梯度提升的优化实现,具有更高的效率和灵活性,通过正则化和并行计算加速训练过程,并能处理缺失值。
- 应用:
-
-
LightGBM
- 原理:LightGBM 是一种基于直方的梯度提升框架,采用基于叶节点的生长策略,提高了计算效率。它通过优化数据存储和分裂策略,实现更快的训练速度和更低的内存消耗。
- 应用:
决策树及其变种(如随机森林、梯度提升树、XGBoost、LightGBM、CatBoost)在分类和回归任务中具有广泛应用。决策树通过递归分割特征空间构建树结构,而其变种通过集成学习和优化技术提高模型的性能和泛化能力。理解这些算法的原理和公式,有助于在实际应用中选择和优化模型。
随机森林与XGBoost的区别随机森林 (Random Forest)
XGBoost (Extreme Gradient Boosting)
XGBoost 的并行实现XGBoost 的并行实现主要体现在以下几个方面:
随机森林的随机性
|
-
k近邻 (k-NN):
- 原理:通过计算与训练样本的距离,选择最近的k个邻居进行预测。
- 应用:图像识别、推荐系统。
-
朴素贝叶斯 (Naive Bayes):
- 原理:基于贝叶斯定理和特征条件独立假设进行分类。朴素贝叶斯分类器是一种基于贝叶斯定理的简单且高效的分类算法。它广泛应用于文本分类、垃圾邮件过滤、情感分析等领域。尽管它的假设条件比较强(特征独立性假设),但在许多实际问题中表现良好。
- 应用:文本分类、情感分析。
-
类型
-
高斯朴素贝叶斯:
- 适用于特征值符合高斯分布(连续特征)的情况。
- 特征的条件概率密度函数假设为高斯分布。
-
多项式朴素贝叶斯:
- 适用于特征值为计数或频率的情况(例如文本数据的词频)。
- 特征的条件概率假设为多项分布。
-
伯努利朴素贝叶斯:
- 适用于特征为二值特征的情况(例如是否出现某个词)。
- 特征的条件概率假设为伯努利分布。
-
-
神经网络 (Neural Networks):
- 原理:通过多个层的神经元连接进行特征提取和映射。
- 应用:图像识别、语音识别、自然语言处理。
2. 无监督学习 (Unsupervised Learning)
特点
- 数据无标签:训练数据集中的样本没有标签,模型需自行发现数据的结构和模式。
- 目标探索:模型的目标是探索数据的内在结构,常用于聚类和降维任务。
常用算法及其原理
聚类算法
-
k-means 聚类 (k-means Clustering):
- 原理:通过最小化样本到最近质心的距离进行聚类。K-means 聚类是一种基于划分的方法,用于将数据集分成 kkk 个不同的簇或群组。每个簇由一个质心(centroid)表示,质心是簇中所有点的均值。
- 应用:客户分群、图像分割。
K-means 聚类 (K-means Clustering)原理
主要特点
K-最近邻 (KNN)原理
主要特点
区别总结
|
-
层次聚类 (Hierarchical Clustering):
- 原理:通过合并或分裂簇生成层次结构。
- 应用:基因表达分析、文档聚类。
-
DBSCAN (Density-Based Spatial Clustering of Applications with Noise):
- 原理:基于密度连接样本,形成簇。
- 应用:地理数据分析、异常检测。
降维算法
-
主成分分析 (PCA, Principal Component Analysis):
- 原理:通过线性变换将数据投影到最大方差方向。主成分分析(PCA)是一种降维技术,其核心思想是通过线性变换将数据投影到一个新的坐标系中,使得数据在新的坐标系下的方差最大。具体步骤如下:
-
1.数据中心化:
- 将数据的每一维减去其均值,使数据的均值为零。这是为了使数据的协方差矩阵不受偏移的影响。
-
2.计算协方差矩阵:
- 协方差矩阵描述了数据各特征之间的相关性。对于 n维数据,协方差矩阵是n×n 的矩阵,矩阵中的每个元素表示两个特征之间的协方差。
-
3.计算特征值和特征向量:
- 计算协方差矩阵的特征值和特征向量。特征值表示数据沿着特征向量方向的方差大小。
-
4.选择主成分:
- 将特征向量按特征值的大小排序,选择前 k个特征向量(主成分),这些主成分对应最大方差的方向。选择的数量 k是降维的维度。
-
5.投影数据:
- 将数据投影到选定的主成分上,得到降维后的数据。这个过程通过特征向量矩阵的乘积完成。
- 应用:数据预处理、可视化。
-
t-SNE (t-Distributed Stochastic Neighbor Embedding):
- 原理:通过最小化高维空间和低维空间的分布差异进行降维。
- 应用:高维数据的可视化。
-
线性判别分析 (LDA, Linear Discriminant Analysis):
- 原理:通过最大化类间方差和类内方差比值进行降维。
- 应用:分类任务的降维。
3. 强化学习 (Reinforcement Learning)
特点
- 让模型自行学习:通过与环境的交互,自行探索最优策略。
- 目标长期收益:模型的目标是最大化累计奖励,常用于动态和连续决策问题。
常用算法及其原理
-
马尔可夫决策过程 (MDP, Markov Decision Process):
- 原理:基于状态、动作和奖励的动态规划。
- 应用:描述强化学习环境。
-
深度Q网络 (DQN, Deep Q-Network):
- 原理:使用神经网络近似Q值函数。
- 应用:复杂环境下的强化学习,如游戏AI。
4. 特点对比
-
有监督学习 vs. 无监督学习:
- 有监督学习有明确的目标,模型根据已知标签进行训练,适用于分类和回归问题。
- 无监督学习没有标签,模型需自行发现数据的结构,适用于聚类和降维问题。
-
有监督学习 vs. 强化学习:
- 有监督学习使用静态数据集进行训练,目标是根据输入预测输出。
- 强化学习通过与环境的动态交互进行学习,目标是最大化累计奖励。
-
无监督学习 vs. 强化学习:
- 无监督学习探索数据的内在结构,没有明确的目标标签。
- 强化学习通过试错过程与环境交互,自行探索最优策略。
特化与泛化:泛化能力——>验证一个模型是否强,得到的机器学习模型对新东西的预测能力
过拟合、欠拟合
解决方案:
1、拓展数据集(数据增强:①有监督②无监督:例如生成对抗网络,随机生成一些新的数据)
2、正则化:在损失函数上加正则化项,①L1②L2:岭回归
3、减少特征的选择①dropout ②集成学习:例如决策树变成随机森林 ③早停:提早结束对神经网络迭代
过拟合与欠拟合
过拟合(Overfitting)和欠拟合(Underfitting)是机器学习中常见的两个问题。
-
过拟合:
- 定义:模型在训练数据上表现很好,但在未见过的数据上表现较差。模型过于复杂,捕捉了训练数据中的噪声或异常值,导致泛化能力差。
- 表现:训练误差很低,但验证或测试误差较高。
-
欠拟合:
- 定义:模型过于简单,无法捕捉数据中的潜在模式,无论是在训练数据还是未见过的数据上表现都不好。
- 表现:训练误差和验证或测试误差都较高。
过拟合与欠拟合——解决方案
1. 拓展数据集
- 数据增强:
- 有监督数据增强:通过对训练数据进行变换(例如旋转、缩放、裁剪等),增加数据多样性。例如,图像分类中的数据增强技术。
- 无监督数据增强:
- 生成对抗网络(GANs):通过生成对抗网络生成新的样本数据,增加数据集的多样性。
- 随机生成:例如随机生成数据点或特征组合,来扩展数据集。
2. 正则化
-
L1 正则化(Lasso):
- 定义:在损失函数中加入特征系数绝对值的和作为正则化项,具有特征选择的效果,可以使某些特征的权重变为零。
- 公式:
- 应用:适用于需要特征选择的场景。
-
L2 正则化(Ridge):
- 定义:在损失函数中加入特征系数的平方和作为正则化项,可以防止模型权重过大,使得模型更加平滑。
- 公式:
- 应用:适用于模型权重的控制,防止过拟合。
3. 减少特征的选择
-
Dropout:
- 定义:在训练过程中随机丢弃神经网络中的一部分节点,防止节点之间的复杂共适应关系,从而减轻过拟合。
- 应用:常用于深度神经网络的训练中。
-
集成学习:
- 随机森林:通过多个决策树的组合来提高模型的稳定性和泛化能力,减少单棵树的过拟合问题。
- Bagging 和 Boosting:其他集成学习方法,通过组合多个模型来提高性能和稳定性。
-
早停:
- 定义:在训练过程中监控验证集的表现,如果验证集误差开始增加,则停止训练。这有助于防止过拟合。
- 应用:适用于深度学习模型的训练过程中,帮助选择最佳的训练轮次。
评价指标:
分类
错误率e=1/m*100%,acc=1-e,查准率P:预测的有多少是真的,召回率R:所有为1的样本中,预测对了多少
P-R曲线、ROC曲线(曲线下面积——AUC)、ks曲线、
回归
r^2,均方误差mse