ML review
机器学习(Machine Learning)
机器学习的概念:利用经验来改善计算机系统自身的性能。ML是人工智能的核心,是使计算机具有智能的根本途径。机器学习的目标是开发算法和模型,使计算机系统能够从数据中学习,发现数据中的模式,并利用这些模式来做出预测或做出决策。
机器学习的系统框架
机器学习的分类
机器学习的基础概念:
-
数据集(Dataset):机器学习模型的训练和测试都需要数据。数据集是指用于训练、验证或测试机器学习模型的数据的集合。
-
特征(Feature):在机器学习中,特征是指用于描述数据的属性或特性。特征可以是数字、类别、文本等形式。
-
标签(Label):对于监督学习任务,标签是与输入数据相关联的输出变量。在训练阶段,模型使用特征来预测标签。
-
模型(Model):模型是对数据的一种抽象表示,用于对数据进行学习、预测或者推理。模型通常由参数化的函数或算法表示。
-
训练(Training):训练是指利用给定的数据集来调整模型的参数,使模型能够从数据中学习到合适的规律和模式。
-
测试(Testing):测试是指使用独立的数据集来评估模型的性能。测试数据集不应该与训练数据集重叠,以确保评估的客观性。
-
监督学习(Supervised Learning):监督学习是一种机器学习范式,其中模型需要从带有标签的数据中学习。这些标签提供了模型应该预测的目标值。
-
无监督学习(Unsupervised Learning):无监督学习是一种机器学习范式,其中模型从未标记的数据中学习,而不需要任何显式的目标变量。
-
评估指标(Evaluation Metrics):评估指标用于衡量机器学习模型的性能。常见的评估指标包括准确率、精确率、召回率、F1 分数、均方误差(MSE)、平均绝对误差(MAE)等。
-
过拟合(Overfitting)和欠拟合(Underfitting):过拟合是指模型在训练数据上表现很好,但在测试数据上表现较差的现象,因为模型过于复杂。欠拟合是指模型无法在训练数据上学习到足够的模式或规律,导致在训练和测试数据上表现都不好。
机器学习的限制
- 数据限制
- 泛化能力限制
- 使用形态限制
O 基本原理
1 数学基础
1.1 向量
1.2 矩阵
1.3 梯度
1.4 凸函数
2 常用术语
2.1 正例、正样本、负例、负样本
在机器学习和统计学中,正例(Positive)和负例(Negative)是指在二分类问题中的两个类别或标签。正例通常表示事件发生或者目标存在,而负例表示事件不发生或者目标不存在。相应地,正样本(Positive Sample)和负样本(Negative Sample)则是指对应于正例和负例的样本或观测数据。
举例来说,在一个肿瘤检测的二分类问题中,如果目标是检测肿瘤是否为恶性,那么恶性肿瘤的样本就是正例(Positive Sample),良性肿瘤的样本就是负例(Negative Sample)。在这个问题中,正例表示恶性肿瘤,负例表示良性肿瘤。
在实际应用中,正例和负例的定义取决于具体的问题和任务。通常情况下,正例和负例是相对的概念,其定义取决于研究者或者任务的需求。在二分类问题中,通过收集和标记数据,可以将数据划分为正样本和负样本,然后使用机器学习模型进行训练和预测。
2.2 训练集、验证集、测试集
训练集(Training Set)、验证集(Validation Set)和测试集(Test Set)是在机器学习中常用的数据集划分方式,用于训练、验证和评估模型的性能。它们各自的作用如下:
-
训练集(Training Set):
- 训练集是用于训练模型的数据集。模型通过学习训练集中的样本来调整参数,从而使得模型能够尽可能地拟合训练数据中的模式和规律。
-
验证集(Validation Set):
- 验证集是用于调整模型超参数和评估模型性能的数据集。在训练过程中,通过在验证集上评估模型的性能来选择最优的超参数,以防止模型在训练集上过拟合。
-
测试集(Test Set):
- 测试集是用于评估模型在未见过的数据上的泛化能力的数据集。在模型训练和验证结束后,通过在测试集上评估模型的性能来估计模型在真实场景中的表现。
这三个数据集的划分方式通常是根据总体数据的比例来划分的,常见的划分比例包括70%的数据作为训练集,15%的数据作为验证集,15%的数据作为测试集,也可以根据具体问题的要求和数据的规模来调整划分比例。在使用这些数据集进行模型训练和评估时,需要注意以下几点:
-
避免数据泄露(Data Leakage):确保训练集、验证集和测试集之间没有重叠的样本,避免因为数据泄露导致评估结果不准确。
-
保持数据分布一致性:确保训练集、验证集和测试集的数据分布尽可能保持一致,避免因为数据分布不一致导致模型在实际应用中表现不佳。
-
交叉验证(Cross-Validation):在训练过程中可以使用交叉验证技术来充分利用训练数据和验证数据,评估模型的性能并选择最优的超参数。
2.3 损失函数
损失函数(Loss Function)是机器学习和统计建模中的一个重要概念,用于衡量模型预测结果与真实值之间的差异或误差。损失函数通常用于优化模型参数,使得模型在训练过程中尽可能地减小预测值与真实值之间的差距。损失函数的选择对于模型的性能和训练过程至关重要。以下是一些常见的损失函数:
不同的损失函数适用于不同的问题和模型,选择合适的损失函数是模型训练和优化过程中的重要一环。
2.4 学习率
学习率(Learning Rate)是在训练神经网络或其他机器学习模型时的一个重要超参数,它决定了模型参数在每次迭代中更新的步长大小。学习率的选择对于模型的训练效果和性能具有重要影响。
在梯度下降等优化算法中,模型参数在每次迭代中根据损失函数的梯度来更新,学习率就是用来控制参数更新的步长。较小的学习率会导致模型收敛速度较慢,但可能会更稳定,而较大的学习率会导致模型收敛速度较快,但可能会不稳定甚至无法收敛。
通常情况下,学习率的选择是一个需要调整的超参数,需要根据具体的问题和数据来进行调优。以下是一些常用的学习率调整策略:
-
固定学习率(Fixed Learning Rate):
- 最简单的学习率调整策略是使用固定的学习率,在整个训练过程中保持不变。这种策略通常适用于简单的问题和数据集,或者在调试和初步训练阶段使用。
-
学习率衰减(Learning Rate Decay):
- 学习率衰减是一种逐渐减小学习率的策略,在训练过程中随着迭代次数的增加逐渐降低学习率。常见的学习率衰减方法包括指数衰减、按阶段衰减等。
-
自适应学习率(Adaptive Learning Rate):
- 自适应学习率策略根据模型参数的更新情况来动态调整学习率。常见的自适应学习率算法包括AdaGrad、RMSProp、Adam等。
-
学习率调度器(Learning Rate Scheduler):
- 学习率调度器是一种在训练过程中根据预先定义的规则来动态调整学习率的方法。可以根据训练过程中的某些条件(如损失函数的下降速度)来调整学习率。
-
网格搜索和随机搜索(Grid Search and Random Search):
- 可以通过网格搜索或者随机搜索等方法在一定范围内搜索合适的学习率,以获得较好的模型性能。
选择合适的学习率策略和调整方法对于模型的训练和优化过程至关重要,需要根据具体问题和数据的特点进行调优。
2.5 拟合
过拟合(Overfitting)和欠拟合(Underfitting)是在机器学习中常见的问题,它们分别表示模型在训练数据上表现过好(过于复杂)和过差(过于简单),而在未见过的数据上表现较差。以下是针对过拟合和欠拟合问题的一些解决办法:
过拟合的解决办法:
-
正则化(Regularization):
- 添加正则化项到模型的损失函数中,惩罚模型的复杂度,防止参数过大。常见的正则化方法包括L1正则化和L2正则化。
-
交叉验证(Cross-Validation):
- 使用交叉验证技术来评估模型的泛化性能,并调整模型的复杂度。常见的交叉验证方法包括K折交叉验证和留出验证。
-
提前停止(Early Stopping):
- 监控模型在验证集上的性能,并在性能开始下降时停止训练,防止模型在训练集上过拟合。
-
数据增强(Data Augmentation):
- 在训练数据中引入一些随机性变化,扩增数据集的大小,从而减少过拟合的风险。
-
减少模型复杂度:
- 减少模型的参数数量或者降低模型的复杂度,例如减少神经网络的层数或者节点数,使用简单的线性模型等。
欠拟合的解决办法:
-
增加模型复杂度:
- 增加模型的参数数量或者提高模型的复杂度,例如增加神经网络的层数或者节点数,使用更复杂的模型。
-
特征工程(Feature Engineering):
- 对输入特征进行变换、组合或者添加新的特征,提高模型对数据的拟合能力。
-
集成学习(Ensemble Learning):
- 结合多个基础模型,使用投票、平均等方式来减少模型的偏差,提高模型的泛化性能。
-
使用更多数据:
- 增加训练数据的数量,从而提供更多的信息用于模型的训练。
-
调整模型超参数:
- 调整模型的超参数,例如学习率、正则化系数等,以提高模型的拟合能力。
3 常用工具
matplotlib 画图
numpy 向量
pandas 画图
一 监督学习(Supervised Learning)
教计算机如何去完成任务。它的训练数据是有标签的,训练目标是能够给新数据(测试数据)以正确的标签。
概念
监督学习是从标签化训练数据集中训练得到一个最优模型,利用这个模型将所有的输入映射为相应的输出,从而实现预测和分类的目的,也就具有了对未知数据进行预测和分类的能力。
运行过程:
监督学习是机器学习的一个重要分支,其核心思想是从带有标签的数据中学习,以建立输入与输出之间的映射关系。在监督学习中,算法接收一组输入-输出对,然后学习如何预测新的输入对应的输出。在训练阶段,监督学习模型根据给定的输入-输出对调整自己的参数,以最小化预测错误。在测试阶段,模型使用学习到的映射关系来预测未标记数据的输出。
监督学习可以分为两种主要类型:分类和回归。
-
分类(Classification):
- 分类是监督学习中的一种任务,其目标是将输入数据分为不同的类别或标签。
- 在分类任务中,输出变量是离散的,并且是有限个可能取值的类别。
- 例如,对电子邮件进行垃圾邮件检测(将电子邮件分为垃圾邮件和非垃圾邮件)、图像分类(将图像分为不同的类别,如猫、狗、汽车等)等都是分类问题。
-
回归(Regression):
- 回归是监督学习中的另一种任务,其目标是预测连续值输出变量的值。
- 在回归任务中,输出变量是连续的,可以是任意范围内的实数值。
- 例如,房价预测、股票价格预测、销售量预测等都是回归问题。
在监督学习中,通常会使用一些常见的算法来解决分类和回归问题,包括但不限于:
- 分类算法:逻辑回归、决策树、随机森林、支持向量机(SVM)、K近邻(KNN)、神经网络等。
- 回归算法:线性回归、多项式回归、岭回归、Lasso 回归、决策树回归、随机森林回归、神经网络回归等。
模型
分类 (预测离散值的输出,区分类别) 模型评估
- 混淆矩阵 Confusion Matrix
- 准确率 Accuracy:预测正确的数占样本总数的比例。表示模型在预测为正类别的样本中有多少是真正的正类别
公式: - 精确率 Precision:正确预测为正占全部预测为正的比例。表示模型能够正确预测多少正类别样本
公式: - 召回率 Recall:正确预测为正占全部正样本的比例。
公式: - F1-score:主要用于评估模型的稳健性。F1 分数是精确度和召回率的调和平均值,它提供了一个综合考虑精确度和召回率的指标。F1 分数适用于在精确度和召回率之间需要权衡的情况。
公式: - PR曲线
- ROC曲线和AUC指标:主要用于评估样本不均衡的情况。
回归 (预测一个连续值的输出,预测之后的拟合值) 模型评估
- 均方误差(MSE):表示数据集中原始值和预测值之间平方差异的平均值。它衡量了残差的方差。
公式: - 均方根误差(RMSE):衡量了残差的标准差。告诉我们回归模型预测值与实际值之间的典型距离。
公式: - 平均绝对误差(MAE):表示数据集中实际值和预测值之间绝对差异的平均值。它衡量了数据集中残差的平均值。
公式: - 决定系数(R²):是一个用于衡量回归模型拟合程度的统计量。它表示因变量的变异中可以被自变量解释的比例。R平方的取值范围在0到1之间,越接近1表示模型拟合程度越好。告诉我们预测变量能够解释响应变量的变异程度。
公式:
线性模型
线性回归
线性回归是一种用于建立输入变量(特征)与连续输出变量之间关系的线性模型。它的基本原理是假设输入变量与输出变量之间存在线性关系,通过拟合一条直线(在一维情况下)或一个超平面(在多维情况下),来描述这种关系。
基本原理:
公式:
应用场景:
线性回归广泛应用于以下领域:
- 经济学:例如预测房价、收入等与一系列因素的关系。
- 医学:例如预测患者的生存时间、药物剂量与疗效之间的关系等。
- 社会科学:例如预测人口增长率与一系列因素的关系。
- 工程学:例如预测材料强度与温度、湿度等因素之间的关系。
线性回归是一种简单但强大的预测模型,它可以在很多情况下提供良好的结果,并且易于解释和理解。
逻辑回归
逻辑回归是一种用于解决二分类问题的线性模型,它基于逻辑函数(Logistic Function)将输入变量映射到一个概率范围内,从而进行分类预测。虽然名字中带有“回归”,但实质上逻辑回归是一种分类算法。
基本原理:
公式:
应用场景:
逻辑回归常见于以下应用场景:
- 金融领域:信用评分、欺诈检测等。
- 医学领域:疾病预测、生存分析等。
- 社会科学:用户行为分析、市场预测等。
- 自然语言处理:文本分类、情感分析等。
逻辑回归是一种简单而有效的分类算法,尤其适用于数据线性可分的情况,且易于解释和理解。
贝叶斯
贝叶斯方法是一种基于贝叶斯定理的统计学方法,用于从已知条件推断未知概率的分布。它的核心思想是通过先验概率和观测数据来计算后验概率,并基于后验概率做出推断或决策。贝叶斯方法在处理不确定性和推理问题时非常有用。
基本原理:
贝叶斯方法基于贝叶斯定理,其数学公式如下:
贝叶斯方法通过先验概率和观测数据来计算后验概率,从而更新我们对事件的信念。这使得贝叶斯方法可以很好地处理不确定性,并且能够灵活地结合先验知识和新的观测数据。
应用场景:
贝叶斯方法在各个领域都有广泛的应用,包括但不限于以下几个方面:
- 分类问题:贝叶斯分类器是一类基于贝叶斯定理的分类器,常用于文本分类、垃圾邮件过滤、情感分析等。
- 回归问题:贝叶斯回归是一种基于贝叶斯方法的回归分析技术,常用于预测房价、股票价格等连续变量的值。
- 聚类问题:贝叶斯聚类是一种基于贝叶斯方法的聚类技术,常用于发现数据中的隐藏模式和群组。
- 推荐系统:贝叶斯方法可以用于个性化推荐系统,根据用户的偏好和历史行为来推荐商品或内容。
贝叶斯方法具有灵活性和强大的推理能力,适用于各种不同类型的问题,并且可以结合先验知识和数据来进行推断,因此在实际应用中被广泛采用。
支持向量机
SVM有三宝:间隔,对偶,核技巧
支持向量机(Support Vector Machine,SVM)是一种用于分类和回归分析的监督学习模型。其基本原理是寻找一个最优的超平面来对数据进行分割,使得不同类别的数据点能够被最大化地分开。SVM 在处理高维度数据和非线性数据时表现出色。
基本原理:
- 对于二分类问题, 将样本数据表示为空间中的点。
- 使 用 “平面”来切割空间,实现分类。
- 如何选择“平面”,成为关键问题。
公式:
分类
线性可分
线性支持
线性不可分
应用场景:
支持向量机在各个领域都有广泛的应用,包括但不限于以下几个方面:
- 文本分类:SVM 在文本分类问题中表现优异,例如垃圾邮件过滤、情感分析等。
- 图像识别:SVM 可以用于图像分类、人脸识别、目标检测等任务。
- 生物信息学:SVM 用于生物序列分析、蛋白质结构预测等。
- 金融领域:SVM 可以用于信用评分、股票价格预测等金融问题。
由于其优秀的泛化能力和有效性,SVM 在实际应用中得到了广泛的应用,并且常常被作为其他机器学习算法的基准模型。
决策树
决策树是一种基于树结构的分类和回归模型,它通过构建一系列的决策规则来对数据进行分类或者预测。决策树的基本原理是根据特征的取值将数据分割成不同的类别,并在每个分割节点上选择最优的特征进行分割,直到达到预定的停止条件为止。
- 属性在决策树中的位置不同,决策树的效率是不同的。
- 如果一个属性对于所有样本都没有区分能力(比如有是否能吃这个属性),那么对于决策毫无用处。
- 如果一个属性恰好能将样本数据一分为二,则这是一个好的属性,应该尽量在决策早期就使用。
- 如果根据一个属性做判断,样本仍然有若干种情况,则该属性不应该出现在决策早期。
基本原理:
决策树的构建过程通常可以分为以下几个步骤:
- 选择特征:从所有特征中选择一个最优的特征,用于将数据集分割成子集。
- 分割数据:根据选择的特征将数据集分割成多个子集,使得每个子集中的样本属于同一类别或者拥有相似的属性。
- 递归构建:对每个子集重复上述过程,直到满足停止条件(例如,达到最大深度、节点中样本数量小于阈值等)。
- 生成决策树:将上述过程生成的节点和分割条件组成树结构,形成决策树模型。
决策树的分类和回归依赖于不同的算法和损失函数。在分类问题中,决策树的目标是生成一个能够最大化样本分类的树结构;在回归问题中,决策树的目标是生成一个能够最小化样本的预测误差的树结构。
停止条件 (导致递归返回)
1)当前节点包含的样本全属于同一类别,无需划分
2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
3)当前节点包含的样本集合为空,不能划分
应用场景:
决策树在各个领域都有广泛的应用,包括但不限于以下几个方面:
- 医学诊断:决策树可以用于疾病诊断、药物治疗效果预测等。
- 金融领域:决策树可以用于信用评分、风险评估等。
- 工业生产:决策树可以用于产品质量控制、故障诊断等。
- 市场营销:决策树可以用于客户分类、销售预测等。
决策树简单直观,易于理解和解释,因此在实际应用中得到了广泛的应用。同时,决策树也可以与其他机器学习算法相结合,构建更复杂的模型,提高预测性能。
决策森林
决策森林(Decision Forest)是一种集成学习方法,它由多个决策树组成,通过对多个决策树的预测结果进行集成来提高模型的性能和泛化能力。决策森林继承了决策树的直观性和易解释性,同时减少了过拟合的风险,并且对于大规模数据集有较好的处理能力。
基本原理:
决策森林的基本原理是通过随机特征选择和随机样本采样来构建多棵决策树,然后将多棵决策树的预测结果进行集成。决策森林的构建过程可以分为以下几个步骤:
- 随机样本采样:从原始训练集中随机抽取一定比例的样本,构建一个新的训练集,用于训练每棵决策树。
- 随机特征选择:从所有特征中随机选择一部分特征,作为每棵决策树的输入特征。
- 决策树构建:基于上述采样的样本和特征构建多棵决策树,通常采用的是 CART(Classification and Regression Trees)算法。
- 集成预测:对于分类问题,采用投票的方式集成每棵决策树的预测结果;对于回归问题,采用平均或加权平均的方式集成每棵决策树的预测结果。
应用场景:
决策森林在各个领域都有广泛的应用,特别适用于以下几个方面:
- 分类问题:决策森林在文本分类、图像分类、医学诊断等领域都有良好的应用。
- 回归问题:决策森林可以用于房价预测、销售预测等连续变量的预测问题。
- 异常检测:决策森林可以用于检测网络攻击、信用卡欺诈等异常事件。
- 特征选择:决策森林可以用于特征选择,识别重要的特征对于模型性能的影响。
由于决策森林能够有效地减少过拟合问题,并且具有较好的泛化能力,因此在实际应用中被广泛采用。同时,决策森林也可以灵活地与其他集成学习方法相结合,构建更复杂的集成模型,提高预测性能。
K-近邻 KNN
K最近邻(K-Nearest Neighbors,KNN)是一种基于实例的学习方法,用于分类和回归问题。KNN 的基本原理是根据数据的特征相似度来对未知样本进行预测,即通过找到与未知样本最近的K个已知样本,来确定未知样本的类别或者值。
- 给定一个训练数据集,无需训练
- 对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例
- 根据这K个实例的类别做投票,哪个类的实例最多,就把该输入实例分类到这个类中。
基本原理:
KNN 的基本原理可以简述为以下几个步骤:
- 计算距离:根据给定的距离度量方法(如欧氏距离、曼哈顿距离等),计算未知样本与训练集中所有样本的距离。
- 选择最近邻:从训练集中选择与未知样本距离最近的K个样本。
- 确定类别或值:对于分类问题,采用投票的方式确定K个最近邻样本中最常见的类别作为未知样本的类别;对于回归问题,采用平均值的方式确定K个最近邻样本的平均值作为未知样本的预测值。
应用场景:
KNN 在各个领域都有广泛的应用,特别适用于以下几个方面:
- 分类问题:KNN 在图像分类、文本分类、医学诊断等领域有着广泛的应用。
- 回归问题:KNN 可以用于房价预测、销售量预测等连续变量的预测问题。
- 推荐系统:KNN 可以用于基于用户相似度或物品相似度的推荐系统。
- 异常检测:KNN 可以用于检测网络攻击、信用卡欺诈等异常事件。
KNN 算法简单易懂,易于实现,并且不需要进行显式的训练过程,因此在实际应用中被广泛采用。然而,KNN 算法的计算复杂度较高,尤其是对于大规模数据集和高维数据,因此需要谨慎选择适当的K值和距离度量方法,以提高算法的效率和准确性。
集成学习
集成学习是一种通过组合多个学习器来解决复杂问题的机器学习方法。其基本原理是将多个弱学习器(比如决策树、神经网络、支持向量机等)集成在一起,以期望得到一个更强大的集成模型。集成学习的核心思想是“三个臭皮匠顶个诸葛亮”,即通过组合多个学习器的判断来减少预测误差,并且提高模型的泛化能力。
基本原理:
集成学习的基本原理可以概括为以下几个步骤:
- 构建多个学习器:通过选择不同的学习算法、不同的参数设置,或者在不同的数据子集上训练多个学习器。
- 集成学习方法:将多个学习器的预测结果进行组合,得到集成模型的预测结果。常见的集成学习方法包括投票法、平均法、加权平均法等。
- 提高泛化能力:通过组合多个学习器的预测结果,可以减少预测误差,并提高模型的泛化能力。集成学习的效果通常比单个学习器要好。
应用场景:
集成学习在各个领域都有广泛的应用,特别适用于以下几个方面:
- 分类和回归问题:集成学习在各种分类和回归问题中都有良好的应用,包括文本分类、图像识别、股票预测等。
- 异常检测:集成学习可以用于检测网络攻击、信用卡欺诈等异常事件。
- 推荐系统:集成学习可以用于基于用户相似度或物品相似度的推荐系统。
- 生物信息学:集成学习可以用于基因序列分析、蛋白质结构预测等领域。
由于集成学习能够通过组合多个学习器来提高模型的泛化能力和预测性能,因此在实际应用中被广泛采用。常见的集成学习方法包括随机森林、梯度提升树(Gradient Boosting Tree)、AdaBoost等。
方法
集成学习方法是一种通过组合多个学习器来提高模型性能和泛化能力的机器学习技术。常见的集成学习方法包括以下几种:
-
Bagging(自助采样法):
- Bagging通过对训练集进行有放回抽样,生成多个不同的训练子集,然后在每个子集上构建一个学习器,最后通过投票或者平均法将这些学习器的预测结果进行集成。代表算法有随机森林(Random Forest)。
-
Boosting(提升法):
- Boosting是一种迭代的集成方法,依次构建多个弱学习器,并根据前一个学习器的表现调整下一个学习器的权重,使得集成模型逐步提升性能。代表算法有AdaBoost、梯度提升树(Gradient Boosting Tree)、XGBoost、LightGBM等。
-
Stacking(堆叠泛化):
- Stacking通过将不同的学习器的预测结果作为新的特征,然后将这些特征输入到一个元学习器中,以得到最终的集成模型。Stacking可以在一定程度上减少模型之间的相关性,提高集成模型的性能。
-
Voting(投票法):
- 投票法是一种简单的集成方法,通过对多个学习器的预测结果进行投票或者平均,以确定最终的预测结果。代表算法有硬投票(Hard Voting)和软投票(Soft Voting)。
-
Blending(混合法):
- Blending与Stacking类似,也是通过组合不同的学习器的预测结果来得到最终的集成模型。不同之处在于Blending中使用固定的权重来组合学习器的预测结果,而不是通过元学习器学习权重。
-
Random Subspace Method:
- 随机子空间方法是一种基于特征随机选择的集成学习方法,通过在特征空间的随机子空间上构建多个学习器,然后将这些学习器的预测结果进行集成。
-
Random Forests(随机森林):
- 随机森林是一种基于Bagging和随机特征选择的集成学习方法,通过在每个节点上随机选择一部分特征来构建决策树,然后将多棵决策树的预测结果进行集成。
这些集成学习方法各有特点,可以根据具体问题的性质和数据的特点选择合适的方法来构建集成模型,从而提高模型的性能和泛化能力。
- 随机森林是一种基于Bagging和随机特征选择的集成学习方法,通过在每个节点上随机选择一部分特征来构建决策树,然后将多棵决策树的预测结果进行集成。
随机森林
随机森林(Random Forest)是一种集成学习方法,基于决策树构建的集成模型。其基本原理是通过构建多棵决策树,并通过投票或者平均的方式集成这些决策树的预测结果,以达到提高模型性能和泛化能力的目的。
随机森林的基本原理可以概括为以下几个步骤:
-
随机选择样本:
- 从训练数据集中随机抽取一部分样本(有放回抽样),用于构建每棵决策树的训练集。这样可以保证每棵决策树的训练集都是不同的,增加模型的多样性。
-
随机选择特征:
- 对于每棵决策树的每个节点,在该节点分裂时随机选择一部分特征,而不是使用全部特征。这样可以增加每棵决策树的多样性,减少模型的相关性。
-
构建决策树:
- 在每个节点上,基于随机选择的样本和特征,使用基于CART算法(Classification and Regression Trees)构建决策树。通常采用递归的方式进行节点的分裂,直到满足停止条件为止。
-
集成预测:
- 对于分类问题,通过投票的方式集成每棵决策树的预测结果,选择得票最多的类别作为最终的预测结果;对于回归问题,通过平均或加权平均的方式集成每棵决策树的预测结果,得到最终的预测值。
通过随机选择样本和特征,随机森林能够减少模型的方差,提高模型的泛化能力,并且能够有效地处理高维数据和大规模数据。由于其良好的性能和易于实现,随机森林在实际应用中被广泛采用,特别是在分类和回归问题中。
二 无监督学习(Unsupervised Learning)
让计算机自己进行学习。它的训练数据是无标签的,训练目标是能对观察值进行分类或者区分等。
概念
无监督学习是一种机器学习方法,用于从未标记的数据中发现模式、结构和关系,而无需任何显式的标签或反馈。与监督学习不同,无监督学习的目标是对数据进行自动化的探索和理解,通常用于聚类、降维、关联规则挖掘等任务。
无监督学习的核心思想是从给定的数据集中学习隐藏在数据中的结构和规律,而无需提供预先标记的输出。在无监督学习中,算法通过观察数据之间的相似性、关联性或者分布特征,自动发现数据的内在结构,并进行相关的学习和预测。
分类:
无监督学习方法可以根据其任务和学习目标进行分类,主要包括以下几种:
-
聚类(Clustering):
- 聚类是一种将数据集划分成不同组或簇的无监督学习任务。目标是使得同一组内的数据点彼此相似,而不同组之间的数据点尽可能不同。常见的聚类算法包括K均值聚类、层次聚类、DBSCAN等。
-
降维(Dimensionality Reduction):
- 降维是一种将高维数据转换成低维表示的无监督学习任务。通过降维可以减少数据的维度,去除冗余信息,提取数据的主要特征,从而方便后续的数据分析和可视化。常见的降维方法包括主成分分析(PCA)、t分布邻域嵌入(t-SNE)等。
-
关联规则挖掘(Association Rule Mining):
- 关联规则挖掘是一种发现数据集中的频繁项集和关联规则的无监督学习任务。通过挖掘数据集中的关联规则,可以发现数据之间的隐含关系和规律,用于市场分析、销售推荐等领域。常见的关联规则挖掘算法包括Apriori算法、FP-Growth算法等。
-
密度估计(Density Estimation):
- 密度估计是一种估计数据分布概率密度函数的无监督学习任务。通过密度估计可以对数据的分布进行建模,用于异常检测、生成模型等应用。常见的密度估计方法包括高斯混合模型(Gaussian Mixture Model)等。
无监督学习方法在各个领域都有广泛的应用,能够帮助我们理解数据之间的关系和结构,挖掘隐藏在数据中的有价值信息,为进一步的数据分析和决策提供支持。
模型
K均值聚类
K均值(K-means)是一种经典的聚类算法,用于将数据集分成K个不同的组或簇。其基本原理是通过迭代的方式将数据点分配到K个簇中,并根据分配结果更新簇的中心,直到达到停止条件为止。
基本原理:
K均值算法的基本原理可以概括为以下几个步骤:
-
初始化中心点:
- 随机选择K个数据点作为初始的簇中心(centroid)。
-
分配数据点:
- 对于每个数据点,根据其与各个簇中心的距离,将其分配到距离最近的簇中心所对应的簇中。
-
更新簇中心:
- 对每个簇,计算该簇中所有数据点的均值,将该均值作为新的簇中心。
-
重复迭代:
- 重复步骤2和步骤3,直到簇中心不再发生变化或者达到预定的迭代次数。
公式:
K均值算法的主要公式包括以下几个:
-
距离计算公式:
-
簇中心更新公式:
- 对于每个簇,新的簇中心 的计算方式是该簇中所有数据点的均值。
应用场景:
K均值算法在各个领域都有广泛的应用,特别适用于以下几个方面:
-
客户分群:根据客户的特征将其分成不同的群体,用于精准营销和客户管理。
-
图像分割:将图像分成不同的区域或物体,用于图像识别、目标检测等任务。
-
文本聚类:将文本数据按照主题或内容进行聚类,用于文本分类、情感分析等领域。
-
无监督特征学习:通过K均值算法可以对数据进行聚类,从而发现数据的内在结构和特征,用于特征学习和降维。
总之,K均值算法是一种简单而有效的聚类算法,具有广泛的应用场景,可以帮助我们理解数据之间的关系和结构,并发现隐藏在数据中的模式和规律。
主成分分析
主成分分析(Principal Component Analysis,PCA)是一种常用的降维技术,用于将高维数据转换为低维表示,并保留数据的主要特征。其基本原理是通过线性变换将原始特征空间中的数据映射到一个新的特征空间,使得数据在新的特征空间中具有最大的方差。这样,可以通过保留方差较大的特征来实现数据的降维,并且尽可能保留原始数据的信息。
基本原理:
主成分分析的基本原理可以概括为以下几个步骤:
-
数据中心化:
- 将原始数据中的每个特征减去该特征的均值,使得数据的均值为零,从而消除特征之间的偏移影响。
-
计算协方差矩阵:
- 计算中心化后的数据的协方差矩阵,该矩阵反映了数据特征之间的相关性和方差分布。
-
特征值分解:
- 对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。特征向量表示了数据在新特征空间中的方向,特征值表示了数据在该方向上的方差大小。
-
选择主成分:
- 根据特征值的大小,选择前k个特征向量作为主成分,其中k表示降维后的维度。通常选择特征值最大的前k个特征向量作为主成分,因为它们对应的方差最大,包含了数据的主要信息。
-
降维变换:
- 将原始数据通过选取的主成分进行线性变换,将数据映射到新的特征空间中,得到降维后的数据表示。
公式:
主成分分析的公式主要包括以下几个:
-
协方差矩阵:
-
特征值分解:
-
降维变换:
应用场景:
主成分分析在各个领域都有广泛的应用,特别适用于以下几个方面:
-
数据可视化:
- 主成分分析可以将高维数据映射到二维或三维空间中,从而方便可视化分析数据的结构和关系。
-
数据压缩:
- 主成分分析可以将高维数据压缩到低维表示,减少数据的存储空间和计算成本。
-
特征提取:
- 主成分分析可以提取数据中的主要特征,去除冗余信息,从而方便后续的数据分析和建模。
-
数据预处理:
- 主成分分析可以用于去除数据中的噪声和冗余特征,从而提高数据的质量和模型的性能。
总之,主成分分析是一种简单而有效的降维技术,具有广泛的应用场景,可以帮助我们理解数据的结构和关系
概率图模型
自编码器
自编码器(Autoencoder)是一种无监督学习模型,用于学习数据的低维表示。其基本原理是通过一个编码器(Encoder)将输入数据映射到低维空间,然后再通过一个解码器(Decoder)将低维表示重构回原始数据。自编码器的目标是最小化重构误差,从而使得学习到的低维表示能够尽可能地保留原始数据的信息。
- 原始数据经过神经网络“编码”,再根据编码信息 “解码”,还原原有信息。
- 适应大量样本后,编码器本身能够表示关于问题的本质特征。
基本原理:
自编码器的基本原理可以概括为以下几个步骤:
公式:
自编码器的公式可以表示为:
应用场景:
自编码器在各个领域都有广泛的应用,特别适用于以下几个方面:
- 特征提取:
- 自编码器可以学习数据的低维表示,用于提取数据中的主要特征,去除冗余信息,从而方便后续的数据分析和建模。
- 数据压缩:
- 自编码器可以将高维数据压缩到低维表示,减少数据的存储空间和传输成本。
- 图像去噪:
- 自编码器可以学习去除图像中的噪声,从而提高图像的质量和清晰度。
- 生成模型:
- 自编码器可以作为生成模型,学习数据的分布,从而生成与原始数据类似的新样本。
- 无监督预训练:
- 自编码器可以作为无监督预训练的组件,学习数据的表示,然后通过监督学习等方法进行微调,从而提高模型性能。
总之,自编码器是一种灵活且强大的无监督学习模型,具有广泛的应用场景,可以帮助我们理解数据的结构和特征,从而实现数据的降维、特征提取和生成等任务。
- 自编码器可以作为无监督预训练的组件,学习数据的表示,然后通过监督学习等方法进行微调,从而提高模型性能。
三 半监督学习
特点:
- 一部分数据带有人工标记知识
- 另一部分数据无标记
- 通过学习有标记数据,逐渐扩展无标记数据
举例:社交网络上的半监督学习
解决思路: - 根据特征信息计算节点之间的相似度
- 认为相似度越高的节点,标签越倾向于一致
- 从有标签样本出发,根据相似度将标签“传播”到未标记样本
- 最终实现标签标记
四 强化学习(Reinforcement Learning)
智能体以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏。
五 总结
机器学习:用计算机模拟人的思维
监督学习:训练数据有目标数据项,用训练数据训练出模型
无监督学习:用训练数据训练出模型,自己归类或拟合出目标模型
强化学习:边探索数据边学习模型
深度学习:用神经网络构建出的模型
无监督学习模型:
无监督学习模型是一类机器学习模型,用于从未标记的数据中发现模式、结构和关系,而无需任何显式的标签或反馈。这些模型通常用于数据探索、特征提取、聚类和降维等任务。以下是一些常见的无监督学习模型:
- K均值聚类(K-Means Clustering):
- K均值聚类是一种常用的聚类算法,通过将数据点分成K个不同的组或簇,使得同一组内的数据点彼此相似,不同组之间的数据点尽可能不同。
- 高斯混合模型(Gaussian Mixture Model,GMM):
- GMM是一种概率模型,假设数据是由多个高斯分布混合而成的。它通常用于数据聚类和密度估计。
- 主成分分析(Principal Component Analysis,PCA):
- PCA是一种经典的降维技术,用于将高维数据转换为低维表示,保留数据的主要特征。
- 自编码器(Autoencoder):
- 自编码器是一种神经网络模型,用于学习数据的低维表示。它通常通过最小化重构误差来学习数据的特征。
监督学习模型:
监督学习模型是一类机器学习模型,其训练数据包含输入特征和对应的标签(或目标值)。这些模型通过学习输入特征与标签之间的映射关系,从而对未见过的数据做出预测或分类。以下是一些常见的监督学习模型:
- 线性回归(Linear Regression):
- 用于建模输入特征与连续目标值之间的线性关系。线性回归模型通过拟合数据集中的线性函数来预测目标值。
- 逻辑回归(Logistic Regression):
- 用于建模输入特征与二分类或多分类目标值之间的关系。逻辑回归模型通过拟合数据集中的逻辑函数来预测样本属于各个类别的概率。
- 决策树(Decision Trees):
- 用于通过树状结构对输入特征进行分类或预测。决策树模型通过一系列的决策节点将数据分成不同的类别或值。
- 支持向量机(Support Vector Machines,SVM):
- 用于进行二分类或多分类任务。SVM通过找到能够最大化类别间间隔的超平面来进行分类。
- K近邻算法(K-Nearest Neighbors,KNN):
- 用于进行分类或回归任务。KNN算法通过计算新样本与训练集中的最近邻居之间的距离来进行预测。
- 神经网络(Neural Networks):
- 一类由多层神经元组成的模型,用于进行分类、回归或其他复杂的任务。神经网络通过学习权重来拟合数据集中的非线性关系。
- 朴素贝叶斯(Naive Bayes):
- 一类基于贝叶斯定理的概率模型,用于进行分类任务。朴素贝叶斯模型假设输入特征之间相互独立,从而简化了模型的计算。
- 集成学习(Ensemble Learning):
- 一种结合多个基础模型的方法,用于提高预测性能。常见的集成学习方法包括随机森林、梯度提升树等。