268 lines
18 KiB
Markdown
268 lines
18 KiB
Markdown
深度学习与机器学习分类
|
||
1.监督学习:
|
||
分类:将输入数据分配到预定义的类别中,如图像分类,文本分类
|
||
回归:预测连续值,如房价预测,股票价格预测.
|
||
2.无监督学习:
|
||
聚类:将数据分组,如客户细分,图像分割.
|
||
降维:减少数据维度,如PCA,t-SNE
|
||
3.半监督学习:结合少量标注数据和大量未标注数据进行训练.
|
||
4.强化学习:通过与环境交互学习策略,如游戏AI,机器人控制.
|
||
5.生成模型:
|
||
生成对抗网络(GANS):生成逼真数据,如图像生成,视频生成.
|
||
扩散模型:同上
|
||
自编码器:学习数据表示,用于数据压缩,去噪.
|
||
|
||
机器学习主要算法
|
||
1.监督学习算法
|
||
1.线性回归:用于回归任务,通过线性方程预测连续值.
|
||
2.逻辑回归:用于分类任务,通过逻辑函数预测类别概率
|
||
3.支持向量机(SVM):用于分类和回归,通过找到最优超平面分离数据.
|
||
4.决策树:用于分类和回归,通过树结构进行决策.
|
||
5.随机森林:集成学习方法,通过多个决策树提高性能.
|
||
6.K近邻(KNN):基于距离度量,通过最近邻样本进行预测.
|
||
7.朴素贝叶斯:基于贝叶斯定理,适用于文本分类等任务.
|
||
8.AdaBoost:集成学习算法,通过加权多个若分类器提高性能.
|
||
9.梯度提升树(GBM):通过逐步优化残差进行预测.
|
||
10.XGBoost:GBM的高效实现.
|
||
11.LightGBM:另一种高效的GBM实现,适用于大规模数据.
|
||
2.无监督学习
|
||
1.K均值聚类
|
||
2.层次聚类:
|
||
3.主成分分析(PCA):用于降维,通过线性变换保留主要特征
|
||
4.t-SNE:用于高维数据可视化,保留局部结构.
|
||
5.自组织映射(SOM):通过神经网络进行数据降维和可视化.
|
||
6.高斯混合模型(GMM):通过多个高斯分布拟合数据.
|
||
|
||
机器学习算法具体介绍
|
||
1.线性回归: 用于建模输入变量(自变量)与输出变量(因变量)之间线性关系的统计方法.
|
||
原理:
|
||
y=β0+β1x1+β2x2+⋯+βnxn+ϵ
|
||
|
||
ϵ误差项,表示模型未能解释的部分
|
||
目标: 最小化误差项的平方和(最小二乘法)来估计系数
|
||
L(β)=i=1∑m(yi−(β0+β1xi1+β2xi2+⋯+βnxin))2
|
||
适用场景:
|
||
1.连续值预测:
|
||
房价预测
|
||
股票价格预测
|
||
销售额预测:根据广告投入,市场条件等预测销售额.
|
||
2.因果关系分析:
|
||
经济学:分析政策变化对经济指标的影响.
|
||
医学:研究药物剂量对治疗效果的影响.
|
||
3.简单建模:
|
||
初步分析:在复杂模型之前,使用线性回归进行初步数据分析.
|
||
解释性模型:模型回归模型易于解释,适合需要透明度的场景
|
||
|
||
优缺点:
|
||
优点:
|
||
简单易懂:模型结构简单,易于理解和实现。
|
||
计算高效:训练和预测速度快,适用于大规模数据。
|
||
解释性强:系数直接反映自变量对因变量的影响。
|
||
缺点:
|
||
线性假设:假设自变量和因变量之间存在线性关系,可能不适用于非线性数据。
|
||
对异常值敏感:异常值可能对模型产生较大影响。
|
||
多重共线性:自变量之间高度相关时,模型表现可能不佳。
|
||
|
||
逻辑回归:基于线性回归,引入sigmoid函数来将线性回归的连续值映射到01之间.
|
||
原理:
|
||
同逻辑回归,最后采用sigmoid函数将连续值映射到01之间,根据设定的阈值来划分正负样本,或者使用预测的值作为其发生概率.
|
||
|
||
目标:
|
||
最大化似然函数(最小化对数损失函数)
|
||
|
||
也就是真的真,假的假.
|
||
适用场景:
|
||
二分类问题:
|
||
垃圾邮件检测:判断邮件是否为垃圾邮件。
|
||
疾病诊断:判断患者是否患有某种疾病。
|
||
信用评分:判断客户是否会违约。
|
||
多分类问题(通过扩展):
|
||
手写数字识别:识别手写数字(0-9)。
|
||
图像分类:将图像分类到多个类别中。
|
||
概率预测:
|
||
客户流失预测:预测客户流失的概率。
|
||
点击率预测:预测广告点击的概率。
|
||
解释性模型:
|
||
特征重要性分析:通过系数大小判断特征对结果的影响。
|
||
因果关系分析:分析自变量对因变量的影响。
|
||
优缺点:
|
||
优点
|
||
简单易懂:模型结构简单,易于理解和实现。
|
||
计算高效:训练和预测速度快,适用于大规模数据。
|
||
解释性强:系数直接反映自变量对因变量的影响。
|
||
概率输出:提供概率估计,便于后续决策。
|
||
缺点
|
||
线性决策边界:假设自变量和因变量之间存在线性关系,可能不适用于非线性数据。
|
||
对异常值敏感:异常值可能对模型产生较大影响。
|
||
多重共线性:自变量之间高度相关时,模型表现可能不佳。
|
||
|
||
支持向量机(SVM):找到一个最优超平面来分离不同类别的数据点,并最大化类别之间的边界
|
||
基本概念:
|
||
1.超平面:
|
||
在二维空间中,超平面是一条直线;在三维空间中,超平面是一个平面;在高维空间中,超平面是一个n-1维的子空间。
|
||
超平面的方程可以表示为:wx+b=0
|
||
2.间隔:
|
||
间隔是超平面到最近数据点的距离。SVM的目标是最大化这个间隔。
|
||
支持向量是距离超平面最近的那些数据点,它们决定了超平面的位置。
|
||
3.硬间隔与软间隔
|
||
硬间隔:要求所有数据点都被正确分类,且间隔最大化。适用于线性可分的数据。
|
||
软间隔:允许一些数据点被错误分类,以提高模型的泛化能力。适用于线性不可分的数据。
|
||
4.核函数
|
||
用于将数据映射到高维空间,使得在高维空间中数据变得线性可分。
|
||
常见的核函数包括:
|
||
线性核:K(xi,xj)=xi⋅xjK(xi,xj)=xi⋅xj
|
||
多项式核:K(xi,xj)=(γxi⋅xj+r)dK(xi,xj)=(γxi⋅xj+r)d
|
||
径向基函数(RBF)核:K(xi,xj)=exp(−γ∥xi−xj∥2)K(xi,xj)=exp(−γ∥xi−xj∥2)
|
||
Sigmoid核:K(xi,xj)=tanh(γxi⋅xj+r)K(xi,xj)=tanh(γxi⋅xj+r)
|
||
5.目标函数:
|
||
SVM的目标是最大化间隔,同时最小化分类误差。这可以通过以下优化问题来表示:
|
||
|
||
|
||
约束条件:
|
||
|
||
适用场景:
|
||
高维空间:
|
||
文本分类:如垃圾邮件检测、情感分析。
|
||
图像分类:如手写数字识别、人脸识别。
|
||
非线性分类:
|
||
生物信息学:如基因表达数据分析。
|
||
金融:如信用评分、股票市场预测。
|
||
小样本数据:
|
||
医学诊断:如疾病预测、药物反应分析。
|
||
工业应用:如故障检测、质量控制。
|
||
多分类问题:
|
||
手写数字识别:识别0-9的手写数字。
|
||
图像分类:将图像分类到多个类别中。
|
||
优缺点:
|
||
优点:
|
||
有效处理高维数据:在高维空间中表现良好。
|
||
泛化能力强:通过最大化间隔,提高模型的泛化能力。
|
||
灵活性强:通过使用不同的核函数,可以处理线性和非线性问题。
|
||
缺点:
|
||
计算复杂度高:对于大规模数据集,训练时间较长。
|
||
参数选择敏感:核函数和参数的选择对模型性能影响较大。
|
||
解释性差:相比线性模型,SVM的解释性较差。
|
||
|
||
决策树:通过一系列条件判断(节点),将数据逐步分割成更小的子集,最终达到预测目标。其核心思想是递归地选择最佳特征进行数据划分,直到满足停止条件。
|
||
原理:
|
||
决策树由根节点、内部节点和叶节点组成:
|
||
根节点(Root Node):表示整个数据集,包含所有样本。
|
||
内部节点(Internal Nodes):对应于特征的划分,决定数据如何被进一步分割。
|
||
叶节点(Leaf Nodes):最终的分类或预测值。
|
||
特征选择标准:
|
||
为了找到最佳的划分方式,需要计算某种指标来衡量特征的划分能力,主要有:
|
||
信息增益(Information Gain, IG):
|
||
适用于ID3算法。
|
||
衡量数据集划分前后的信息熵变化,信息增益越大,说明该特征越能有效区分数据。
|
||
信息熵公式: H(D)=−∑i=1npilog2piH(D) = -\sum_{i=1}^{n} p_i \log_2 p_iH(D)=−i=1∑npilog2pi
|
||
信息增益: IG(D,A)=H(D)−∑v∈A∣Dv∣∣D∣H(Dv)IG(D, A) = H(D) - \sum_{v \in A} \frac{|D_v|}{|D|} H(D_v)IG(D,A)=H(D)−v∈A∑∣D∣∣Dv∣H(Dv)
|
||
|
||
信息增益率(Gain Ratio):
|
||
适用于C4.5算法。
|
||
解决信息增益偏向于多值特征的问题。
|
||
公式: GR(A)=IG(D,A)H(A)GR(A) = \frac{IG(D, A)}{H(A)}GR(A)=H(A)IG(D,A)
|
||
其中 H(A)H(A)H(A) 是特征A的固有信息熵。
|
||
基尼指数(Gini Index):
|
||
适用于CART算法(用于分类)。
|
||
计算类别的不纯度,基尼指数越小,说明数据的纯度越高。
|
||
公式: Gini(D)=1−∑i=1npi2Gini(D) = 1 - \sum_{i=1}^{n} p_i^2Gini(D)=1−i=1∑npi2
|
||
均方误差(MSE, Mean Squared Error):
|
||
适用于CART回归树(用于回归)。
|
||
通过最小化方差来进行划分。
|
||
决策树的剪枝:
|
||
为了防止过拟合,通常会对决策树进行剪枝:
|
||
预剪枝(Pre-pruning):
|
||
在构造决策树的过程中,通过设定最大深度、最小样本数、信息增益阈值等,提前停止树的生长。
|
||
后剪枝(Post-pruning):
|
||
先生成完整的决策树,再使用交叉验证或错误率评估对非必要的分支进行剪枝,去掉对泛化能力无贡献的部分。
|
||
适用场景:
|
||
分类任务:
|
||
电子商务用户行为预测(如判断用户是否会购买商品)。
|
||
信贷风险评估(如预测贷款是否会违约)。
|
||
医疗诊断(如判断病人是否患有某种疾病)。
|
||
回归任务:
|
||
房价预测(如根据面积、地段预测房价)。
|
||
股票市场分析(如基于历史数据预测股票走势)。
|
||
特征选择:
|
||
决策树的分裂过程可以用来评估特征的重要性,从而进行特征筛选。
|
||
异常检测:
|
||
通过决策树模型分析数据的分布情况,检测异常值。
|
||
优缺点:
|
||
优点:
|
||
易解释:决策路径直观,适合可视化。
|
||
计算高效:训练时间一般较短,适用于大规模数据。
|
||
不需要数据归一化:对数值数据不需要标准化或归一化处理。
|
||
可以处理非线性关系:可以自动捕捉特征之间的非线性关系。
|
||
适用于缺失数据:决策树可以处理部分缺失数据,不需要填充。这个只是可能而已,刚好缺失的数据用不到...
|
||
缺点:
|
||
容易过拟合:如果不进行剪枝,决策树可能会过度拟合训练数据。
|
||
对噪声敏感:小的变化可能导致完全不同的树结构。
|
||
处理连续变量效果较差:对于连续变量,决策树的划分可能不够精细。
|
||
倾向于偏向于多值特征:信息增益可能会导致决策树偏向具有更多取值的特征。
|
||
|
||
随机森林:构建多个决策树将其预测结果结合起来,从而提高模型性能
|
||
原理:
|
||
随机采样:
|
||
对于每一棵决策树,随机森林通过对训练数据进行有放回抽样,即每次从训练集中随机选择样本来构建一棵树。这样,在每棵树中,可能会有一些样本没有被选择到(这些样本称为“袋外样本”)。
|
||
每棵树都是在一个不同的子集上训练的,因此即使所有的树都是基于决策树模型,最终的森林也是多个“不同”的树.
|
||
特征随机性:
|
||
在每一棵树的节点划分时,随机森林不是在所有特征上选择最优切分点,而是随机选择一个特征子集来进行分裂。这样可以增加树之间的差异性,减少单棵树的过拟合风险。
|
||
例如,在某个节点上,随机选择k个特征(k通常小于总特征数),然后在这k个特征中选择最佳切分点。
|
||
决策树构建:
|
||
在每一棵决策树中,通常不对树的深度进行限制,或者只设置最小样本数和最大深度等限制条件。树的生长较为“自由”,这可以捕捉更多的数据复杂性。集成学习:
|
||
随着多棵树的训练完成,每棵树对样本进行独立的预测。在回归任务中,随机森林会对所有树的预测结果取平均值;在分类任务中,随机森林会采用投票机制,选择预测频次最多的类别作为最终结果。
|
||
|
||
优缺点:
|
||
优点:
|
||
减少过拟合:通过集成多棵决策树,随机森林通过平均(回归)或投票(分类)来减少单棵树可能发生的过拟合。
|
||
提高准确性:集成的多棵树的预测通常比单棵树要更准确,尤其在面对复杂和高维度数据时,随机森林表现得尤为出色。
|
||
处理大规模数据:可以处理高维数据,能够通过特征选择和随机性减少维度灾难。
|
||
鲁棒性强:即使某些特征或数据不完整,随机森林依然能够保持相对较好的性能。
|
||
特征重要性评估:通过分析每个特征在不同树中的表现,随机森林可以给出特征的重要性排序。
|
||
|
||
缺点:
|
||
模型复杂:由于包含多棵树,随机森林模型本身较为复杂,训练和预测时的计算开销较大,尤其是数据集非常庞大的时候。
|
||
可解释性差:相比单一的决策树,随机森林作为一个集成模型,其“黑箱”性质较强,难以直接解释其决策过程。
|
||
内存消耗大:由于随机森林需要存储多棵树,因此在内存和计算资源上会有较高的要求,尤其是在大数据集上。
|
||
适用场景:
|
||
高维数据和复杂数据:
|
||
随机森林能够自动处理高维数据和复杂的特征间关系,适合特征维度较高或者数据关系非线性的场景。
|
||
回归任务和分类任务:
|
||
随机森林既可以用于回归任务(例如预测房价、股市预测等),也可以用于分类任务(例如图像分类、文本分类等)。
|
||
数据噪声较多的场景:
|
||
随机森林通过集成多棵树来减轻单棵树可能发生的过拟合问题,因此特别适合处理带有噪声和缺失数据的任务。
|
||
特征选择:
|
||
在特征数量非常庞大的情况下,随机森林能够通过其特征重要性评估功能,自动筛选出对预测有重要贡献的特征。
|
||
非线性关系:
|
||
当数据中的特征和目标变量之间存在复杂的非线性关系时,单棵线性模型(如线性回归)可能表现不佳,但随机森林可以通过多棵树的集成来捕捉这些复杂的非线性关系。
|
||
|
||
K近邻(KNN):基于实例的学习方法,通过测量样本之间的距离来进行分类或预测
|
||
原理:
|
||
距离度量:
|
||
KNN通过计算样本之间的距离来判断样本的相似性.
|
||
欧式距离:
|
||
曼哈顿距离:
|
||
分类:
|
||
对于一个待分类的样本,KNN算法会找到与该样本最相似(距离最近)的K个样本。
|
||
然后,根据这K个样本中多数的类别来决定待分类样本的类别。投票机制:选择出现次数最多的类别。
|
||
回归:
|
||
对于回归任务,KNN则会根据这K个最近邻样本的输出值进行平均,得到预测值。
|
||
K的选择:
|
||
K值(邻居的个数)是KNN算法的一个重要超参数。如果K值过小,可能会导致模型过拟合;如果K值过大,可能会导致模型欠拟合。
|
||
通常K值的选择依赖于交叉验证。
|
||
优缺点:
|
||
优点:
|
||
· 简单易懂:KNN算法实现非常简单,易于理解和解释。
|
||
· 无模型假设:KNN是非参数化算法,不需要做出关于数据分布的假设。
|
||
· 适用范围广泛:可以用于分类和回归任务,适用性广。
|
||
· 良好的性能:对于小数据集,KNN可以达到很好的分类效果。
|
||
缺点:
|
||
· 计算量大:KNN的预测阶段需要计算待预测样本与所有训练样本的距离,因此计算复杂度较高,尤其在数据量很大的时候,时间开销大。
|
||
· 存储需求高:KNN需要存储所有的训练数据,这对于数据量大的情况可能会成为瓶颈。
|
||
· 对异常值敏感:KNN算法对噪声和离群点非常敏感,因为它只是通过邻居的类别来决定预测值,容易受异常值影响。
|
||
· 特征维数 curse of dimensionality(维度灾难):随着特征维度的增加,计算距离变得不那么准确,KNN算法的表现会显著下降。高维数据使得样本之间的距离差异缩小,影响模型的判断。
|
||
适用场景:
|
||
图像分类:例如手写数字识别、物体分类等任务。
|
||
推荐系统:通过用户相似性或物品相似性来推荐内容。
|
||
语音识别:通过语音特征和其他样本之间的相似性来分类不同的语音命令。
|
||
医疗诊断:例如根据症状数据预测患者是否患有某种疾病。 |