文章目录
- 课本习题
- 监督学习的例子
- 过拟合和欠拟合
- 常见损失函数,判断一个损失函数的好坏
- 无监督分类:kmeans
- 无监督分类,Kmeans 三分类问题
- 变换距离函数
- 选择不同的起始点
- 重点回顾
- 1. 监督学习、半监督学习和无监督学习的定义
- 2. 判断学习场景
- 3. 监督学习主要研究的问题
- 什么是分类问题、回归问题
- 无监督学习主要研究问题:聚类与降维
重点:
了解掌握机器学习中监督学习、无监督学习和半监督学习的概念
- 什么是监督学习、无监督和半监督?
- 根据场景,判断属于哪种学习模式?
- 监督学习的主要研究问题(分类/回归) 什么是分类问题?什么是回归问题?
- 无监督学习的主要研究问题(聚类/降维)什么是聚类?什么是降维?
课本习题
监督学习的例子
过拟合和欠拟合
在机器学习中,“损失”(loss)通常是用来衡量模型预测值与真实值之间差异的一个指标。
常见损失函数,判断一个损失函数的好坏
- 缺乏对预测误差的合理度量
- 一般的损失函数应该能够反映模型预测值与真实值之间的差距,从而指导模型进行优化。而这个函数只是简单地将 (可能是模型的输出)与导数 相加,没有明确地体现出预测值与真实值的差异程度。
- 没有考虑数据的分布和特点
- 不同类型的数据可能具有不同的分布特点,好的损失函数应该能够适应这些特点。例如,对于具有长尾分布的数据,可能需要使用对异常值不那么敏感的损失函数。
- 难以进行优化求解
- 在机器学习中,我们通常使用优化算法(如梯度下降法)来最小化损失函数,从而找到最优的模型参数。但是对于这个函数,很难确定其梯度的形式,也难以找到有效的优化方法。
无监督分类:kmeans
K-means 算法是一种无监督学习算法,用于将数据分为(K)个聚类。以下是对该问题的解答过程:
一、算法步骤
无监督分类,Kmeans 三分类问题
变换距离函数
选择不同的起始点
重点回顾
1. 监督学习、半监督学习和无监督学习的定义
监督学习、半监督学习和无监督学习是机器学习中的三种主要学习方式,它们在学习过程中对数据的依赖程度不同,下面是它们的详细介绍:
- 监督学习(Supervised Learning)
监督学习主要用于分类和回归任务。在监督学习中,训练数据集是“带标签”的,这意味着每一个输入数据样本都有一个对应的真实标签(或目标值)。模型的目标是通过学习输入与标签之间的映射关系,从而能够对新的、未见过的数据进行预测。例子:
1.分类问题:例如,识别电子邮件是否为垃圾邮件(标签为“垃圾邮件”或“非垃圾邮件”)。
2.回归问题:例如,预测房价,给定房屋的面积、房间数、位置等特征,预测其售价。工作原理: 在训练过程中,监督学习算法会根据输入数据和对应的标签,调整模型的参数(如权重),使模型的预测结果尽量接近真实标签。
- 半监督学习(Semi-supervised Learning)
半监督学习介于监督学习和无监督学习之间。在这种学习方式下,训练数据集大部分是无标签的,只有一小部分数据是带标签的。这类方法适用于标签数据获取成本较高,或者标注数据难以获得的情境。通过结合无标签数据和少量的带标签数据,半监督学习模型能够提高学习的效果。例子:假设你有大量的图片数据,但只有少数的图片被标注了类别,利用这些少量的标签数据以及大量未标注的数据来进行分类任务。
工作原理:半监督学习利用少量标记数据来引导学习过程,并结合无标签数据的特征分布进行训练。
- 无监督学习(Unsupervised Learning)
无监督学习是指在没有标签数据的情况下训练模型。这里的数据只有输入,没有目标输出(标签)。无监督学习的目标是挖掘数据中的内在结构或模式,通常用于数据的降维、聚类或异常检测等任务。
例子:
聚类问题:例如,将客户根据购买行为分为不同的群体(如:高消费群体、中等消费群体、低消费群体)。
降维问题:例如,使用主成分分析(PCA)对高维数据进行降维,简化数据的复杂度。工作原理:无监督学习不依赖于标签数据,而是通过分析数据中的相似性或差异性来进行学习。
总结对比:
学习类型 | 数据标签情况 | 常见任务 | 常见算法 |
---|---|---|---|
监督学习 | 训练数据有标签 | 分类、回归 | 线性回归、支持向量机、决策树、神经网络 |
半监督学习 | 大部分数据无标签,少量数据有标签 | 适用于标注数据稀缺的情况 | 自监督学习、图卷积网络、半监督神经网络等 |
无监督学习 | 训练数据无标签 | 聚类、降维、异常检测等 | K均值聚类、PCA、DBSCAN、自编码器等 |
总结:
监督学习:通过大量带标签的数据来训练模型,使其能够对新数据做出预测。
半监督学习:在只有少量带标签数据和大量无标签数据的情况下训练模型,弥补标注数据的不足。
无监督学习:完全没有标签的数据,模型主要关注数据本身的结构和模式,如聚类和降维。
不同类型的学习方法适用于不同的应用场景。
2. 判断学习场景
要根据不同的场景判断使用哪种学习模式(监督学习、半监督学习或无监督学习),我们需要关注以下几个关键因素:
1.是否有标签数据(即每个数据点是否有明确的目标值或标签)。
2.数据标签的可用性(标签数据的数量和质量)。
3.任务的目标(是进行预测、分类,还是探索数据中的模式)。
下面是针对不同场景的分析和判断标准:
学习类型 | 场景特点 | 应用场景 | 判断标准 | 例子 |
---|---|---|---|---|
监督学习 | - 数据有标签 - 任务目标明确(预测或分类) - 数据量充足,标签数据充分 | - 分类任务:垃圾邮件识别、图像分类、疾病预测等 - 回归任务:房价预测、股票价格预测、销售量预测等 | - 数据集中的每个样本都有明确标签 - 学习输入与输出之间的关系,进行预测或分类 | - 图片分类:根据图像及其类别标签(如“猫”、“狗”)训练模型进行分类 - 房价预测:根据房屋特征预测售价 |
半监督学习 | - 大部分数据没有标签,少部分数据有标签 - 标签数据稀缺,标注成本高 - 需要利用无标签数据提升模型性能 | - 标签数据稀缺的任务 - 图像/语音分类:语音识别中的少部分标注样本 - 文本分类:少量新闻文章有标签 | - 大部分数据没有标签 - 通过少量标注数据和大量未标注数据来提升模型效果 | - 网站分类:大量网页中只有少部分网页有标签,通过半监督学习分类网页内容 - 医学影像分析:利用少数标注的影像数据训练模型 |
无监督学习 | - 数据没有标签 - 目标是发现数据的潜在结构或模式,非预测标签 | - 聚类:市场细分、客户分群 - 降维:数据可视化、去噪等 - 异常检测:欺诈检测、网络入侵检测等 | - 数据没有标签 - 任务目标是理解数据的结构或关系,如聚类、降维或异常检测 | - 客户分群:基于购买行为将客户分组以进行个性化营销 - 降维:通过PCA简化高维数据 |
总结:根据场景选择学习模式
学习模式 | 数据要求 | 任务目标 | 常见应用场景 |
---|---|---|---|
监督学习 | 数据有标签,任务是预测或分类 | 学习输入与标签之间的关系,进行预测或分类 | 图像分类、房价预测、垃圾邮件检测等 |
半监督学习 | 大部分数据无标签,少部分数据有标签 | 利用少量标签数据和大量无标签数据提高学习效果 | 图像/语音识别、文本分类、医学影像分析等 |
无监督学习 | 数据无标签,任务是发现数据的内在结构或模式 | 聚类、降维、异常检测等 | 客户分群、降维、异常检测、市场分析等 |
如何判断使用哪种模式: 有标签数据吗?
- 是:选择监督学习。
- 否:继续判断。
数据标注成本很高,但有少量标签数据吗?
- 是:选择半监督学习。
- 否:选择无监督学习(如果目标是探索数据的结构或发现潜在的模式)。
3. 监督学习主要研究的问题
- 分类(Classification)
分类问题是指将输入数据映射到预定义类别的任务。分类任务的目标是根据已知的训练数据集来训练一个模型,然后使用该模型预测新数据所属的类别标签。
分类任务主要研究的问题:
- 类别不平衡问题:在许多现实应用中,某些类别的样本数远远多于其他类别,导致模型的预测偏向于较为常见的类别。如何有效处理类别不平衡是分类任务中的一个关键问题。
- 高维数据问题:在许多任务中,输入数据的特征维度可能非常高(例如文本分类中的词袋模型、图像分类中的像素值)。高维数据往往容易导致维度灾难(curse of dimensionality),需要采取降维或特征选择技术。
- 模型复杂度与泛化能力的权衡:在分类任务中,过于复杂的模型可能会过拟合训练数据,而简单的模型可能无法捕捉数据中的复杂模式。因此,如何选择合适的模型以及进行正则化(防止过拟合)是一个重要的研究问题。
- 模型评估与选择:在分类问题中,如何评估模型的好坏非常关键。除了传统的准确率(accuracy),我们还需要关注精确率(precision)、召回率(recall)、F1 值、ROC 曲线等评估指标,特别是在类别不平衡的情况下。
常见的分类算法:
- 逻辑回归:用于二分类问题,通过学习输入特征与类别之间的线性关系。
- 决策树:通过树状结构来决策,直观且易于理解。
- 支持向量机(SVM):通过寻找最优的超平面来分类,适用于高维数据。
- K 最近邻(KNN):基于距离度量对样本进行分类。
- 神经网络:通过多个层级的非线性变换来学习复杂的分类边界。
示例应用:
- 垃圾邮件识别:将邮件分为“垃圾邮件”和“非垃圾邮件”。
- 图像分类:例如,将手写数字图片分类为数字 0 到 9。
- 情感分析:将文本分为正面、负面或中性情感类别。
- 回归(Regression)
回归问题是指预测一个连续的数值目标(标签)的任务。与分类不同,回归任务的目标是找到输入数据和连续输出之间的关系,而不是将数据分配到某个类别中。
回归任务的主要研究问题
- 数据噪声和异常值:在实际数据中,噪声和异常值的存在会影响模型的训练。如何减少噪声的影响、识别和处理异常值是回归中的一个重要问题。
- 特征选择与工程:回归模型的预测性能通常依赖于输入特征的质量。特征工程(如特征缩放、特征选择等)对于构建有效的回归模型至关重要。
- 模型的过拟合与欠拟合:与分类任务相似,回归模型也面临着过拟合和欠拟合的问题。需要平衡模型的复杂度,避免过度拟合训练数据或无法捕捉数据中的规律。
- 非线性回归:在许多实际应用中,输入和输出之间的关系可能不是线性的。如何构建能够处理非线性关系的回归模型,是回归中的一大挑战。
常见的回归算法:
- 线性回归:最基础的回归方法,假设输入特征和输出之间存在线性关系。
- 岭回归与Lasso回归:为了防止过拟合,在线性回归模型中加入正则化项。
- 决策树回归:通过树状结构对数据进行回归预测,适合处理非线性问题。
- 支持向量回归(SVR):与支持向量机类似,但用于回归任务。
- 神经网络回归:使用多层感知器(MLP)等结构进行回归,可以处理复杂的非线性关系。
示例应用:
- 房价预测:根据房屋的特征(如面积、位置、卧室数等)预测房屋的价格。
- 股票价格预测:基于历史数据预测未来某个时间点的股票价格。
- 气温预测:根据气象数据预测未来的气温。
分类与回归的区别
-
目标输出:
- 分类任务的目标输出是离散的类别标签(例如 0 或 1,或者多个类别标签)。
- 回归任务的目标输出是连续的数值(例如温度、价格、年龄等)。
-
损失函数:
- 分类任务通常使用交叉熵(cross-entropy)损失函数,尤其是在多分类问题中。
- 回归任务通常使用均方误差(MSE,Mean Squared Error)损失函数。
-
评估指标:
- 分类问题常用准确率、精确率、召回率、F1 值、ROC 曲线等作为评估指标。
- 回归问题常用均方误差、平均绝对误差、R² 等作为评估指标。
总结:
- 分类和回归是监督学习中的两大核心任务,尽管它们的目标不同,但都依赖于学习数据中的输入和目标之间的关系。
- 分类处理的是离散标签的预测任务,常见于例如垃圾邮件分类、图像分类等问题。
- 回归处理的是连续数值的预测任务,广泛应用于房价预测、气温预测等场景。
什么是分类问题、回归问题
下面是 分类问题 和 回归问题 的比较,以表格形式呈现:
特征 | 分类问题 | 回归问题 |
---|---|---|
目标变量 | 离散类别标签(有限的几个类别) | 连续数值(无限多个可能的输出) |
输出形式 | 离散的类别(例如:猫、狗、1、0) | 连续的数值(例如:房价、温度、销售额) |
任务类型 | 二分类、多分类 | 线性回归、非线性回归 |
评估指标 | 精确率、召回率、F1值、准确率、ROC-AUC等 | 均方误差(MSE)、均绝对误差(MAE)、R²等 |
常见算法 | 逻辑回归、支持向量机(SVM)、决策树、随机森林、神经网络等 | 线性回归、岭回归、Lasso回归、决策树回归、神经网络等 |
应用示例 | 垃圾邮件分类、图像分类、情感分析、疾病诊断等 | 房价预测、气温预测、股票预测、销售额预测等 |
解释:
- 分类问题:用于将数据分配到预定义的类别中。任务的目标是输出离散标签,适用于目标变量是类别或标签的任务。例如,垃圾邮件识别、图像分类等。
- 回归问题:用于预测一个连续的数值。任务的目标是输出一个连续的值,适用于目标变量是数量、金额、温度等连续量的任务。例如,房价预测、销售额预测等。
无监督学习主要研究的是如何从没有标签的输入数据中发现模式、结构或规律。其两个常见任务是 聚类(Clustering) 和 降维(Dimensionality Reduction),以下是这两类任务的主要研究问题:
无监督学习主要研究问题:聚类与降维
聚类(Clustering)
聚类是无监督学习中的一种主要任务,其目的是将数据集中的样本根据某些相似度度量划分为若干个簇。聚类常见的挑战和问题包括:
- 簇的数量选择:在很多聚类算法(如K-means)中,簇的数量需要预先指定。然而,真实数据中可能没有明确的簇数量,需要使用技术来确定最佳簇数。
- 簇的形状与密度问题:传统的聚类算法(如K-means)假设簇是圆形的、密度均匀的。然而,实际数据中的簇往往形状复杂,密度不均,使用基于密度的算法(如DBSCAN)可能更为合适。
- 高维数据聚类:数据维度过高时,聚类算法可能变得低效。常通过降维技术(如PCA)来减少特征维度,从而提升聚类性能。
- 噪声与离群点:聚类算法容易受噪声数据和离群点的影响,影响结果的准确性。使用鲁棒的聚类方法(如DBSCAN)可以缓解这个问题。
- 降维(Dimensionality Reduction)
降维任务的目标是将高维数据压缩到低维空间中,同时保留尽可能多的原始信息。主要研究问题包括:
- 信息损失与可解释性:降维后如何保持数据的重要信息,避免丢失关键信息,尤其是在高维数据中尤为重要。
- 高维数据的计算复杂度:需要大量的计算资源,因此需要使用高效的算法(如增量PCA)或分布式计算框架来解决这个问题。
- 降维后的可解释性与可视化:降维后的数据需要进行可视化,以便人类能够理解其中的模式和结构。常使用二维或三维可视化来直观展示数据结构。
- 特征选择与相关性:在降维过程中,需要对数据进行特征选择,去除冗余或不相关的特征,提高降维效果。
解决方法概述:
-
聚类算法:
- K-means、K-medoids:适用于具有球形簇的数据,聚类数需预设。
- DBSCAN、OPTICS:适用于处理具有不同密度和形状的簇,且不需要预先指定簇数。
- 层次聚类:基于数据的相似度构建树状结构,可以生成不同尺度的聚类。
-
降维算法:
- PCA(主成分分析):线性降维方法,寻找最能表示数据变异性的方向。
- t-SNE、UMAP:非线性降维方法,保持数据的局部结构,适用于数据可视化。
- LDA(线性判别分析):监督学习方法,用于降维的同时保留类别信息。
总结:
聚类关注如何将数据分组、确定簇数、处理噪声与离群点等问题,
而降维则关注如何减少特征空间维度,同时保留数据的关键信息,并解决计算复杂度与可视化的问题。
参考:《人工智能基础-姚期智》