监督学习、无监督学习、半监督学习
监督学习、无监督学习、半监督学习
-
- 监督学习、无监督学习、半监督学习
- 监督学习
- 无监督学习
- 半监督学习
监督学习、无监督学习、半监督学习
监督学习
在该训练过程中,所有数据均为标注过的数据集。每一个样本都包含输入特征x_train以及对应输出y_train。通过分析x_train与y_train之间的关系,并结合现有知识体系...等信息源进行推理研究,在此基础之上推导出一个合适的函数f用于将输入映射到输出。
常见的监督学习任务有:分类、回归、序列标注等。
步骤(以SVM为例):
1) 在有监督数据上训练,学的一个判别器W;
2)然后在测试集(故意把标签y_test抹去)上,用上一步学的判别器W进行分类任务,得到一个预测标签y_pred
3) y_pred和y_test的差距,就是衡量算法好坏的标准。
无监督学习
特点:在训练过程中缺少标注信息。
常见任务:包括聚类分析、降维技术和相关技术。
常用算法:包括K均值算法、谱聚类方法及相关方法。
训练集中的每个样本都仅包含特征属性而不包含标签信息,在无监督学习场景下,算法旨在通过分析训练数据中的特征关系来建立模型结构,并通过优化过程使得同类样本之间的距离尽可能缩小同时不同类样本之间的距离则被最大化地拉开差距
步骤:
1)直接在全部数据上训练,得到预测标签PY
2) 之后将PY和真实标签Y进行对比,用的是经典的匈牙利算法。
**注意:**这里的PY和Y并不是一一对应关系,而是看“类内样本”对应关系,这也是聚类指标和分类指标不同之处。
例:样本A和样本B真实标签是“1” ,经过聚类算法处理后,得到了预测标签。
若A、B标签相同(标签可能是“1”,也可能是“2”、“3”、“4”、、、),则代表这两个样本分对了。
若聚类后,A和B的标签不同,则代表这两个样本分错了(分成不同类了)。
监督学习和半监督学习区别 :
(1)监督学习基于包含训练集和测试集的数据集合,在数据集中提取特征并建立模型以识别模式;而无监督学习则依赖于单一的数据集合,在其中识别潜在模式或结构,并不具备基于类别标签的指导以及系统性地评估模型性能的过程。
(2)监督学习的本质是通过分析数据来识别特定的事物类别。在无监督学习中,则是通过算法分析后会自动识别出数据中的自然分组或模式。与之相比,在无监督学习中不需要预先设定明确的分类标准或标签。虽然在某些情况下可能会发现类似的数据群组分布与预设的目标类别之间存在一定的关联性或一致性表现形式(例如聚类中心位置接近),但这并不是其分类依据的关键因素;相反地,在无监督学方法中不依赖于与预设标签的一致性来验证结果的有效性
(3)无监督学习主要在于探索数据中的内在模式和结构,在这些模式和结构中,并非总是会以分类数据集的形式呈现出来;换句话说,这并不意味着必须依赖于分类方法。
半监督学习
在训练集中的一部分数据中包含特征与标签,在另一部分仅有特征信息的情况下进行整合,并以此生成适当的函数
特点:在训练过程中,默认采用了所有样本来构建模型(与有监督学习的不同之处在于,在有监督学习中通常会将数据划分为有标签和无标签两类),然而这些样本中仅有极少数具有真实的标签信息,在多数情况下则没有标注信息存在。
其基本原理是基于标签传播机制,在已有标注数据中提取特征信息以推断未标注样本所属类别
典型方法:S3VM、S4VM、CS4VM、TSVM;
X_train,X_test,y_train,y_test有什么区别?
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2,random_state=0)
**train_test_split()**位于sklearn包中的model_selection模块,并且用于随机划分训练集与测试集;该函数被用来将原始数据按照特定比例划分为训练数据和测试数据,并用于模型的训练过程。
它们成为原始数据集的一部分,在构建模型时使用。其中,X_train,y_train 代表被划分用于训练模型的过程。
这部分数据未被用于模型的训练过程,在测试阶段用于评估模型性能,在计算评估指标时使用score变量来衡量模型效果
参数设置test\_size=0.2表示测试集的比例分配。当该值为浮点数时,默认位于区间[0, 1]内,并具体表示测试数据的比例;若设置为整数,则直接指定测试样本的数量;若未指定,默认将剩余数据补充至训练集中使用。
random_state 表示随机数生成器的起始点或初始值。当在同一个运行中固定该参数时,在相同的代码运行下会生成一致的训练集数据;而如果不将其设为可变,则会在不同的运行中导致相同的代码生成不同的训练集数据分布。
