【人工智能基础03】机器学习(练习题):监督(分类/回归)、无监督(降维/聚类(K-means))、半监督
【人工智能基础03】机器学习(练习题):监督(分类/回归)、无监督(降维/聚类(K-means))、半监督
文章目录
重点:
了解掌握机器学习中监督学习、无监督学习和半监督学习的概念
- 什么是监督学习、无监督和半监督?
- 根据场景,判断属于哪种学习模式?
- 监督学习的主要研究问题(分类/回归) 什么是分类问题?什么是回归问题?
- 无监督学习的主要研究问题(聚类/降维)什么是聚类?什么是降维?
课本习题
1. 监督学习的例子
现实的例子
应用场景 | 输入X | 输出Y |
---|---|---|
图像识别 | 各种动物图片(如猫、狗、大象等) | 动物分类标签(如“猫”“狗”“大象”等) |
语音识别 | 不同人的语音片段(句子) | 语音片段对应的文字内容 |
垃圾邮件检测 | 电子邮件内容(文字、链接等) | 邮件分类标签(“垃圾邮件”或“非垃圾邮件”) |
在监督学习中,对于给定的输入(X)和输出(Y),可能存在多个最优解(f)。这是因为:
- 模型的多样性:不同的模型结构(如线性模型、神经网络、决策树等)都可以尝试去拟合给定的数据。例如,对于一个简单的二维数据点的分类问题,既可以用线性分类器(如直线划分),也可以用非线性的分类器(如复杂的曲线划分)来实现较好的分类效果。
- 数据的复杂性和噪声:实际数据往往包含噪声,而且数据的分布可能很复杂。不同的函数(f)可能在处理这些噪声和复杂分布时各有优劣,都能在一定程度上达到较好的拟合效果。例如,在回归问题中,不同的多项式拟合函数可能在有噪声的数据上都能得到相近的拟合优度。
2. 过拟合和欠拟合
在机器学习中,“损失”(loss)通常是用来衡量模型预测值与真实值之间差异的一个指标。
3. 常见损失函数,判断一个损失函数的好坏
- 缺乏对预测误差的合理度量
损失函数应该能够反映模型预测值与真实值之间的差距,从而指导模型进行优化。而这个函数只是简单地将 (可能是模型的输出)与导数相加,没有明确地体现出预测值与真实值的差异程度。- 没有考虑数据的分布和特点
不同类型的数据可能具有不同的分布特点,好的损失函数应该能够适应这些特点。例如,对于具有长尾分布的数据,可能需要使用对异常值不那么敏感的损失函数。- 难以进行优化求解
在机器学习中,我们通常使用优化算法(如梯度下降法)来最小化损失函数,从而找到最优的模型参数。但是对于这个函数,很难确定其梯度的形式,也难以找到有效的优化方法。
4. 无监督分类算法之kmeans的计算步骤
什么是kmeans算法
K - means 算法是一种无监督学习算法,主要用于数据聚类。它的目标是将给定的数据集划分为 K 个不同的簇(cluster),其中 K 是用户预先设定的参数。每个簇都有一个中心点(也叫质心,centroid),数据点会根据到这些中心点的距离被划分到不同的簇中。
具体算法步骤
K-means 算法是一种无监督学习算法,用于将数据分为(K)个聚类。
以下是对该问题的解答过程:
算法步骤
注意是:重复步骤时,计算的还是每个数据点到中心点的距离。
选择不同的起始点
- 给定一维数据点集合 X = { 1 , 2 , 4 , 5 } X = \{1,2,4,5\} X={1,2,4,5}, K = 2 K = 2 K=2。
情况一:初始中心点 c 1 = 1 c_1 = 1 c1=1, c 2 = 4 c_2 = 4 c2=4
- 第一次分配数据点:
- 数据点 1 1 1:到 c 1 = 1 c_1 = 1 c1=1距离为 0 0 0,到 c 2 = 4 c_2 = 4 c2=4距离为 3 3 3,属于 c 1 c_1 c1类。
- 数据点 2 2 2:到 c 1 = 1 c_1 = 1 c1=1距离为 1 1 1,到 c 2 = 4 c_2 = 4 c2=4距离为 2 2 2,属于 c 1 c_1 c1类。
- 数据点 4 4 4:到 c 1 = 1 c_1 = 1 c1=1距离为 3 3 3,到 c 2 = 4 c_2 = 4 c2=4距离为 0 0 0,属于 c 2 c_2 c2类。
- 数据点 5 5 5:到 c 1 = 1 c_1 = 1 c1=1距离为 4 4 4,到 c 2 = 4 c_2 = 4 c2=4距离为 1 1 1,属于 c 2 c_2 c2类。
- 第一次更新中心点:
- 第一类 { 1 , 2 } \{1,2\} {1,2},新中心点 c 1 = 1 + 2 2 = 1.5 c_1=\frac{1 + 2}{2}=1.5 c1=21+2=1.5。
- 第二类 { 4 , 5 } \{4,5\} {4,5},新中心点 c 2 = 4 + 5 2 = 4.5 c_2=\frac{4 + 5}{2}=4.5 c2=24+5=4.5。
- 第二次分配数据点(发现数据点分类不变)
- 最终结果:第一类 { 1 , 2 } \{1,2\} {1,2},中心点 1.5 1.5 1.5;第二类 { 4 , 5 } \{4,5\} {4,5},中心点 4.5 4.5 4.5。
情况二:初始中心点 c 1 = 2 c_1 = 2 c1=2, c 2 = 5 c_2 = 5 c2=5
- 第一次分配数据点:
- 数据点 1 1 1:到 c 1 = 2 c_1 = 2 c1=2距离为 1 1 1,到 c 2 = 5 c_2 = 5 c2=5距离为 4 4 4,属于 c 1 c_1 c1类。
- 数据点 2 2 2:到 c 1 = 2 c_1 = 2 c1=2距离为 0 0 0,到 c 2 = 5 c_2 = 5 c2=5距离为 3 3 3,属于 c 1 c_1 c1类。
- 数据点 4 4 4:到 c 1 = 2 c_1 = 2 c1=2距离为 2 2 2,到 c 2 = 5 c_2 = 5 c2=5距离为 1 1 1,属于 c 2 c_2 c2类。
- 数据点 5 5 5:到 c 1 = 2 c_1 = 2 c1=2距离为 3 3 3,到 c 2 = 5 c_2 = 5 c2=5距离为 0 0 0,属于 c 2 c_2 c2类。
- 第一次更新中心点:
- 第一类 { 1 , 2 } \{1,2\} {1,2},新中心点 c 1 = 1 + 2 2 = 1.5 c_1=\frac{1 + 2}{2}=1.5 c1=21+2=1.5。
- 第二类 { 4 , 5 } \{4,5\} {4,5},新中心点 c 2 = 4 + 5 2 = 4.5 c_2=\frac{4 + 5}{2}=4.5 c2=24+5=4.5。
- 第二次分配数据点(发现数据点分类不变)
- 最终结果:第一类 { 1 , 2 } \{1,2\} {1,2},中心点 1.5 1.5 1.5;第二类 { 4 , 5 } \{4,5\} {4,5},中心点 4.5 4.5 4.5。
情况三:初始中心点 c 1 = 1 c_1 = 1 c1=1, c 2 = 5 c_2 = 5 c2=5
- 第一次分配数据点:
- 数据点 1 1 1:到 c 1 = 1 c_1 = 1 c1=1距离为 0 0 0,到 c 2 = 5 c_2 = 5 c2=5距离为 4 4 4,属于 c 1 c_1 c1类。
- 数据点 2 2 2:到 c 1 = 1 c_1 = 1 c1=1距离为 1 1 1,到 c 2 = 5 c_2 = 5 c2=5距离为 3 3 3,属于 c 1 c_1 c1类。
- 数据点 4 4 4:到 c 1 = 1 c_1 = 1 c1=1距离为 3 3 3,到 c 2 = 5 c_2 = 5 c2=5距离为 1 1 1,属于 c 2 c_2 c2类。
- 数据点 5 5 5:到 c 1 = 1 c_1 = 1 c1=1距离为 4 4 4,到 c 2 = 5 c_2 = 5 c2=5距离为 0 0 0,属于 c 2 c_2 c2类。
- 第一次更新中心点:
- 第一类 { 1 , 2 } \{1,2\} {1,2},新中心点 c 1 = 1 + 2 2 = 1.5 c_1=\frac{1 + 2}{2}=1.5 c1=21+2=1.5。
- 第二类 { 4 , 5 } \{4,5\} {4,5},新中心点 c 2 = 4 + 5 2 = 4.5 c_2=\frac{4 + 5}{2}=4.5 c2=24+5=4.5。
- 第二次分配数据点(发现数据点分类不变)
- 最终结果:第一类 { 1 , 2 } \{1,2\} {1,2},中心点 1.5 1.5 1.5;第二类 { 4 , 5 } \{4,5\} {4,5},中心点 4.5 4.5 4.5。
在这个简单例子中,不同初始中心点选择的迭代过程可能不同,但最终聚类结果相同。不过对于复杂数据分布(如环形分布),不同初始点可能导致不同聚类结果。
5. 无监督分类,Kmeans 三分类问题
6. 变换距离函数
重点回顾
1. 监督学习、半监督学习和无监督学习的定义
监督学习、半监督学习和无监督学习是机器学习中的三种主要学习方式,它们在学习过程中对数据的依赖程度不同,下面是它们的详细介绍:
监督学习(Supervised Learning)
监督学习主要用于分类和回归任务。在监督学习中,训练数据集是“带标签”的,这意味着每一个输入数据样本都有一个对应的真实标签(或目标值)。模型的目标是通过学习输入与标签之间的映射关系,从而能够对新的、未见过的数据进行预测。例子:
1.分类问题:例如,识别电子邮件是否为垃圾邮件(标签为“垃圾邮件”或“非垃圾邮件”)。
2.回归问题:例如,预测房价,给定房屋的面积、房间数、位置等特征,预测其售价。工作原理: 在训练过程中,监督学习算法会根据输入数据和对应的标签,调整模型的参数(如权重),使模型的预测结果尽量接近真实标签。
- 半监督学习(Semi-supervised Learning)
半监督学习介于监督学习和无监督学习之间。在这种学习方式下,训练数据集大部分是无标签的,只有一小部分数据是带标签的。这类方法适用于标签数据获取成本较高,或者标注数据难以获得的情境。通过结合无标签数据和少量的带标签数据,半监督学习模型能够提高学习的效果。
例子:假设你有大量的图片数据,但只有少数的图片被标注了类别,利用这些少量的标签数据以及大量未标注的数据来进行分类任务。
工作原理:半监督学习利用少量标记数据来引导学习过程,并结合无标签数据的特征分布进行训练。
无监督学习(Unsupervised Learning)
无监督学习是指在没有标签数据的情况下训练模型。这里的数据只有输入,没有目标输出(标签)。无监督学习的目标是挖掘数据中的内在结构或模式,通常用于数据的降维、聚类或异常检测等任务。例子:
聚类问题:例如,将客户根据购买行为分为不同的群体(如:高消费群体、中等消费群体、低消费群体)。
降维问题:例如,使用主成分分析(PCA)对高维数据进行降维,简化数据的复杂度。工作原理:无监督学习不依赖于标签数据,而是通过分析数据中的相似性或差异性来进行学习。
总结对比:
学习类型 | 数据标签情况 | 常见任务 | 常见算法 |
---|---|---|---|
监督学习 | 训练数据有标签 | 分类、回归 | 线性回归、支持向量机、决策树、神经网络 |
半监督学习 | 大部分数据无标签,少量数据有标签 | 适用于标注数据稀缺的情况 | 自监督学习、图卷积网络、半监督神经网络等 |
无监督学习 | 训练数据无标签 | 聚类、降维、异常检测等 | K均值聚类、PCA、DBSCAN、自编码器等 |
总结:
监督学习:通过大量带标签的数据来训练模型,使其能够对新数据做出预测。
半监督学习:在只有少量带标签数据和大量无标签数据的情况下训练模型,弥补标注数据的不足。
无监督学习:完全没有标签的数据,模型主要关注数据本身的结构和模式,如聚类和降维。
2. 根据学习场景来判断使用哪种学习模式
要根据不同的场景判断使用哪种学习模式(监督学习、半监督学习或无监督学习),我们需要关注以下几个关键因素:
- 是否有标签数据(即每个数据点是否有明确的目标值或标签)。
- 数据标签的可用性(标签数据的数量和质量)。
- 任务的目标(是进行预测、分类,还是探索数据中的模式)。
下面是针对不同场景的分析和判断标准:
学习类型 | 场景特点 | 应用场景 | 判断标准 | 例子 |
---|---|---|---|---|
监督学习 | - 数据有标签 - 任务目标明确(预测或分类) - 数据量充足,标签数据充分 | - 分类任务:垃圾邮件识别、图像分类、疾病预测等 - 回归任务:房价预测、股票价格预测、销售量预测等 | - 数据集中的每个样本都有明确标签 - 学习输入与输出之间的关系,进行预测或分类 | - 图片分类:根据图像及其类别标签(如“猫”、“狗”)训练模型进行分类 - 房价预测:根据房屋特征预测售价 |
半监督学习 | - 大部分数据没有标签,少部分数据有标签 - 标签数据稀缺,标注成本高 - 需要利用无标签数据提升模型性能 | - 标签数据稀缺的任务 - 图像/语音分类:语音识别中的少部分标注样本 - 文本分类:少量新闻文章有标签 | - 大部分数据没有标签 - 通过少量标注数据和大量未标注数据来提升模型效果 | - 网站分类:大量网页中只有少部分网页有标签,通过半监督学习分类网页内容 - 医学影像分析:利用少数标注的影像数据训练模型 |
无监督学习 | - 数据没有标签 - 目标是发现数据的潜在结构或模式,非预测标签 | - 聚类:市场细分、客户分群 - 降维:数据可视化、去噪等 - 异常检测:欺诈检测、网络入侵检测等 | - 数据没有标签 - 任务目标是理解数据的结构或关系,如聚类、降维或异常检测 | - 客户分群:基于购买行为将客户分组以进行个性化营销 - 降维:通过PCA简化高维数据 |
总结:根据场景选择学习模式
学习模式 | 数据要求 | 任务目标 | 常见应用场景 |
---|---|---|---|
监督学习 | 数据有标签,任务是预测或分类 | 学习输入与标签之间的关系,进行预测或分类 | 图像分类、房价预测、垃圾邮件检测等 |
半监督学习 | 大部分数据无标签,少部分数据有标签 | 利用少量标签数据和大量无标签数据提高学习效果 | 图像/语音识别、文本分类、医学影像分析等 |
无监督学习 | 数据无标签,任务是发现数据的内在结构或模式 | 聚类、降维、异常检测等 | 客户分群、降维、异常检测、市场分析等 |
如何判断使用哪种模式: 有标签数据吗?
- 是:选择监督学习。
- 否:继续判断。
数据标注成本很高,但有少量标签数据吗?
- 是:选择半监督学习。
- 否:选择无监督学习(如果目标是探索数据的结构或发现潜在的模式)。
3. 监督学习主要研究的问题
- 分类(Classification)
分类问题是指将输入数据映射到预定义类别的任务。分类任务的目标是根据已知的训练数据集来训练一个模型,然后使用该模型预测新数据所属的类别标签。
分类任务主要研究的问题:ing
常见的分类算法:
- 逻辑回归:用于二分类问题,通过学习输入特征与类别之间的线性关系。
- 决策树:通过树状结构来决策,直观且易于理解。
- 支持向量机(SVM):通过寻找最优的超平面来分类,适用于高维数据。
- K 最近邻(KNN):基于距离度量对样本进行分类。
- 神经网络:通过多个层级的非线性变换来学习复杂的分类边界。
示例应用:
- 垃圾邮件识别:将邮件分为“垃圾邮件”和“非垃圾邮件”。
- 图像分类:例如,将手写数字图片分类为数字 0 到 9。
- 情感分析:将文本分为正面、负面或中性情感类别。
- 回归(Regression)
回归问题是指预测一个连续的数值目标(标签)的任务。与分类不同,回归任务的目标是找到输入数据和连续输出之间的关系,而不是将数据分配到某个类别中。
回归任务的主要研究问题
- 数据噪声和异常值:在实际数据中,噪声和异常值的存在会影响模型的训练。如何减少噪声的影响、识别和处理异常值是回归中的一个重要问题。
- 特征选择与工程:回归模型的预测性能通常依赖于输入特征的质量。特征工程(如特征缩放、特征选择等)对于构建有效的回归模型至关重要。
- 模型的过拟合与欠拟合:与分类任务相似,回归模型也面临着过拟合和欠拟合的问题。需要平衡模型的复杂度,避免过度拟合训练数据或无法捕捉数据中的规律。
- 非线性回归:在许多实际应用中,输入和输出之间的关系可能不是线性的。如何构建能够处理非线性关系的回归模型,是回归中的一大挑战。
常见的回归算法:
- 线性回归:最基础的回归方法,假设输入特征和输出之间存在线性关系。
- 岭回归与Lasso回归:为了防止过拟合,在线性回归模型中加入正则化项。
- 决策树回归:通过树状结构对数据进行回归预测,适合处理非线性问题。
- 支持向量回归(SVR):与支持向量机类似,但用于回归任务。
- 神经网络回归:使用多层感知器(MLP)等结构进行回归,可以处理复杂的非线性关系。
示例应用:
- 房价预测:根据房屋的特征(如面积、位置、卧室数等)预测房屋的价格。
- 股票价格预测:基于历史数据预测未来某个时间点的股票价格。
- 气温预测:根据气象数据预测未来的气温。
4. 什么是分类问题、回归问题
下面是 分类问题 和 回归问题 的比较,以表格形式呈现:
特征 | 分类问题 | 回归问题 |
---|---|---|
目标变量 | 离散类别标签(有限的几个类别) | 连续数值(无限多个可能的输出) |
输出形式 | 离散的类别(例如:猫、狗、1、0) | 连续的数值(例如:房价、温度、销售额) |
任务类型 | 二分类、多分类 | 线性回归、非线性回归 |
评估指标 | 精确率、召回率、F1值、准确率、ROC-AUC等 | 均方误差(MSE)、均绝对误差(MAE)、R²等 |
常见算法 | 逻辑回归、支持向量机(SVM)、决策树、随机森林、神经网络等 | 线性回归、岭回归、Lasso回归、决策树回归、神经网络等 |
应用示例 | 垃圾邮件分类、图像分类、情感分析、疾病诊断等 | 房价预测、气温预测、股票预测、销售额预测等 |
解释:
- 分类问题:用于将数据分配到预定义的类别中。任务的目标是输出离散标签,适用于目标变量是类别或标签的任务。例如,垃圾邮件识别、图像分类等。
- 回归问题:用于预测一个连续的数值。任务的目标是输出一个连续的值,适用于目标变量是数量、金额、温度等连续量的任务。例如,房价预测、销售额预测等。
5. 无监督学习主要研究问题:聚类与降维
无监督学习主要研究的是如何从没有标签的输入数据中发现模式、结构或规律。其两个常见任务是 聚类(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(线性判别分析):监督学习方法,用于降维的同时保留类别信息。
总结:
- 聚类关注如何将数据分组、确定簇数、处理噪声与离群点等问题,
- 降维则关注如何减少特征空间维度,同时保留数据的关键信息,并解决计算复杂度与可视化的问题。
参考:《人工智能基础-姚期智》
更多推荐
所有评论(0)