一个有趣的概念
1简要介绍xx模型的定义 给出简要例子说明,不用代码,手动模拟即可 注意在解释的过程中,要对公式的每个符号进行说明解释,要保证科学研究的严谨性
2为了求解这个模型的最优参数,有哪些方法? 给出简要例子说明,不用代码,手动模拟即可 注意在解释的过程中,要对公式的每个符号进行说明解释,要保证科学研究的严谨性
基础知识
要求1:基本概念
要求2:数据集划分
要求3:性能度量
要求4:可以描述任务之间的关系
要求5:可以描述各算法的特点,同类任务不同算法的特点及其之间的区别等
- 基本概念: 这是指你需要理解机器学习的基础知识和术语。例如,什么是监督学习和无监督学习,什么是特征和标签,什么是模型训练和测试等。基本概念是学习任何机器学习算法的前提。
- 数据集划分: 这是指如何将数据集分成训练集、验证集和测试集。训练集用于训练模型,验证集用于调整模型参数,测试集用于评估模型的最终性能。合理的数据集划分可以防止模型过拟合,并确保模型在新数据上的表现。
- 性能度量: 这是指如何评估机器学习模型的表现。常见的性能度量包括准确率、精确率、召回率、F1分数、均方误差等。不同的任务和算法可能需要不同的性能度量来评估模型的效果。
所有正例有5个,我预测的正例子有6个,那么精确率是5/6 所有预测的正例有4个,其中有3个是真正的正例,那么召回率为3/4
精确率:所有预测为正例中 真正的正例的占比 召回率:所有真正的正例中,预测对的正例占比多少 - 可以描述任务之间的关系: 这是指你需要理解不同机器学习任务之间的关系。例如,分类任务和回归任务的区别,聚类任务和降维任务的区别,以及如何根据具体问题选择合适的任务类型。
- 可以描述各算法的特点,同类任务不同算法的特点及其之间的区别等: 这是指你需要了解不同机器学习算法的优缺点,以及它们在不同任务中的表现。例如,线性回归和决策树在回归任务中的区别,支持向量机和神经网络在分类任务中的区别。了解这些可以帮助你在实际应用中选择最合适的算法。
监督和无监督学习
大致讲解
- 监督学习:这是指模型在训练时使用带有标签的数据集。模型通过学习输入数据和对应标签之间的关系来进行预测。常见的监督学习任务包括分类和回归。
- 无监督学习:这是指模型在训练时使用不带标签的数据集。模型通过发现数据的内在结构来进行任务。常见的无监督学习任务包括聚类和降维。
详细讲解
监督学习
- 定义: 监督学习是一种机器学习方法,其中模型在训练过程中使用带有标签的数据集。每个训练样本由输入数据和对应的目标标签组成,模型通过学习输入数据和目标标签之间的映射关系来进行预测。
- 常见任务:
- 分类:将输入数据分配到预定义的类别中。例如,垃圾邮件分类、图像识别等。
- 回归:预测连续值。例如,房价预测、股票价格预测等。
- 算法示例:
- 线性回归
- 逻辑回归
- 支持向量机(SVM)
- 决策树
- 随机森林
- 神经网络
- 优点:
- 由于使用了带标签的数据,模型可以更准确地进行预测。
- 可以直接评估模型的性能。
- 缺点:
- 需要大量带标签的数据,获取和标注数据可能成本较高。
- 可能会过拟合训练数据,导致在新数据上的表现不佳。
无监督学习
- 定义: 无监督学习是一种机器学习方法,其中模型在训练过程中使用不带标签的数据集。模型通过发现数据的内在结构和模式来进行任务。
- 常见任务:
- 聚类:将相似的数据点分组。例如,客户分群、图像分割等。
- 降维:减少数据的维度,同时保留重要信息。例如,主成分分析(PCA)、t-SNE等。
- 算法示例:
- K-means聚类
- 层次聚类
- 主成分分析(PCA)
- 独立成分分析(ICA)
- 自编码器
- 优点:
- 不需要带标签的数据,数据获取成本较低。
- 可以发现数据中的隐藏模式和结构。
- 缺点:
- 由于没有标签,评估模型性能较为困难。
- 结果的解释性较差,可能需要结合领域知识进行分析。
无标签的数据是指没有明确目标变量或输出的输入数据。在无监督学习中,数据集只包含特征,而没有对应的目标标签。换句话说,数据集中没有指示每个样本应该属于哪个类别或应该预测什么值的信息。
无标签数据示例
- 客户数据:
- 特征:年龄、收入、购买历史、浏览行为等。
- 应用:客户分群(聚类),以便进行个性化营销。
- 图像数据:
- 特征:像素值、颜色直方图、纹理特征等。
- 应用:图像分割(聚类),以便识别图像中的不同对象。
- 文本数据:
- 特征:词频、TF-IDF值、词向量等。
- 应用:主题建模(降维),以便发现文本中的主题或话题。
- 传感器数据:
- 特征:温度、湿度、压力、加速度等。
- 应用:异常检测(聚类),以便发现异常的传感器读数。
无监督学习常见的数据类型
- 结构化数据:
- 表格数据,如数据库中的记录。
- 示例:电子商务网站的用户行为数据、银行的交易记录。
- 非结构化数据:
- 图像、音频、视频、文本等。
- 示例:社交媒体上的帖子、新闻文章、监控视频。
无监督学习的应用场景
- 聚类:
- 将相似的数据点分组。
- 示例:市场细分、图像分割、基因表达数据分析。
- 降维:
- 减少数据的维度,同时保留重要信息。
- 示例:数据可视化、特征提取、噪声过滤。
- 异常检测:
- 识别与大多数数据点不同的异常数据点。
- 示例:信用卡欺诈检测、设备故障检测、网络入侵检测。
- 关联规则学习:
- 发现数据中的有趣关系或模式。
- 示例:购物篮分析(发现哪些商品经常一起购买)、推荐系统。
无标签数据在无监督学习中非常重要,因为它们允许模型发现数据中的隐藏模式和结构,而不需要预先定义的标签。这使得无监督学习在探索性数据分析和数据挖掘中非常有用。
基本任务
回归
回归属于有监督的机器学习任务,标签为连续值。
回归主要是估计多个连续变量之间关系的一个统计过程。
回归分析广泛应用于预测和预报。
常见的回归算法包括线性回归、决策树、支持向量回归等。
好的,详细讲解一下机器学习中的第一个基本任务——回归。
回归任务概述
回归是有监督学习中的一种任务,其目标是预测一个或多个连续值。回归分析用于估计输入变量(特征)和输出变量(标签)之间的关系。回归模型通过学习这种关系,可以对新数据进行预测。
回归的应用
回归分析在许多领域都有广泛的应用,包括但不限于:
- 经济学:预测股票价格、房价、市场趋势等。
- 医学:预测病人的康复时间、药物剂量等。
- 工程:预测设备的寿命、材料的强度等。
- 环境科学:预测气温变化、污染物浓度等。
常见的回归算法
- 线性回归(Linear Regression):
- 原理:假设输入变量和输出变量之间存在线性关系,通过最小化误差平方和来拟合一条直线。
- 公式:$( y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n )$
- 优点:简单易懂,计算效率高。
- 缺点:只能捕捉线性关系,无法处理复杂的非线性关系。
- 决策树回归(Decision Tree Regression):
- 原理:通过构建树状模型,将数据集划分成多个区域,每个区域对应一个预测值。
- 优点:可以处理非线性关系,易于解释。
- 缺点:容易过拟合,需要进行剪枝或使用集成方法(如随机森林)来提高泛化能力。
- 支持向量回归(Support Vector Regression, SVR):
- 原理:在高维空间中找到一个超平面,使得大多数数据点落在超平面的ε-不敏感带内,同时最大化间隔。
- 优点:可以处理高维数据,具有良好的泛化能力。
- 缺点:计算复杂度高,参数选择较为困难。
回归模型的评估指标
- 均方误差(Mean Squared Error, MSE):
- 公式:$( \text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i – \hat{y}_i)^2 )$
- 解释:衡量预测值与真实值之间的平均平方误差。
- 均方根误差(Root Mean Squared Error, RMSE):
- 公式:$( \text{RMSE} = \sqrt{\text{MSE}} )$
- 解释:MSE的平方根,更直观地反映误差的大小。
- 平均绝对误差(Mean Absolute Error, MAE):
- 公式:$( \text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i – \hat{y}_i| )$
- 解释:衡量预测值与真实值之间的平均绝对误差。
- R平方(R-squared, ( R^2 )):
- 公式:$[ R^2 = 1 – \frac{\sum_{i=1}^{n} (y_i – \hat{y}i)^2}{\sum{i=1}^{n} (y_i – \bar{y})^2} ]$
- 解释:衡量模型解释变量总变异的比例,取值范围为0到1,越接近1表示模型越好。
回归模型的训练与测试
- 数据准备:
- 收集和清洗数据,处理缺失值和异常值。
- 特征工程,包括特征选择和特征缩放。
- 模型训练:
- 将数据集划分为训练集和测试集。
- 使用训练集训练回归模型,调整模型参数以优化性能。
- 模型评估:
- 使用测试集评估模型性能,计算评估指标(如MSE、RMSE、MAE、( R^2 ))。
- 根据评估结果调整模型,防止过拟合或欠拟合。
- 模型部署:
- 将训练好的模型应用于实际问题,进行预测和决策。
分类
分类属于有监督的机器学习任务,标签为离散值。分类是利用训练集来判断新数据点的类别的过程。分类是机器学习和模式识别领域中最常见的任务。
常见的分类算法包括逻辑回归、决策树、支持向量机 、贝叶斯分类、神经网络等。
分类任务概述
分类是有监督学习中的一种任务,其目标是将输入数据分配到预定义的类别中。分类模型通过学习输入数据和对应类别标签之间的关系,可以对新数据进行分类。
分类的应用
分类在许多领域都有广泛的应用,包括但不限于:
··
- 文本分类:垃圾邮件检测、情感分析、新闻分类等。
- 图像分类:手写数字识别、物体检测、人脸识别等。
- 医学诊断:疾病预测、肿瘤分类等。
- 金融:信用评分、欺诈检测等。
常见的分类算法
- 逻辑回归(Logistic Regression):
- 原理:使用逻辑函数(Sigmoid函数)将线性回归的输出映射到0到1之间,表示样本属于某个类别的概率。
- 公式:$( P(y=1|x) = \frac{1}{1 + e^{-(\beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n)}} )$
- 优点:简单易懂,计算效率高,适用于二分类问题。
- 缺点:只能处理线性可分问题,无法处理复杂的非线性关系。
- 决策树(Decision Tree):
- 原理:通过构建树状模型,将数据集划分成多个区域,每个区域对应一个类别。
- 优点:可以处理非线性关系,易于解释。
- 缺点:容易过拟合,需要进行剪枝或使用集成方法(如随机森林)来提高泛化能力。
- 支持向量机(Support Vector Machine, SVM):
- 原理:在高维空间中找到一个超平面,将不同类别的样本分开,同时最大化间隔。
- 优点:可以处理高维数据,具有良好的泛化能力。
- 缺点:计算复杂度高,参数选择较为困难。
- 贝叶斯分类(Naive Bayes):
- 原理:基于贝叶斯定理,假设特征之间相互独立,计算样本属于每个类别的概率。
- 公式:$( P(y|x) = \frac{P(x|y)P(y)}{P(x)} )$
- 优点:计算效率高,适用于高维数据。
- 缺点:假设特征独立在实际中不总是成立,可能影响分类效果。
- 神经网络(Neural Network):
- 原理:通过模拟生物神经网络的结构,使用多个神经元和层次结构来学习复杂的非线性关系。
- 优点:可以处理复杂的非线性关系,适用于大规模数据。
- 缺点:计算复杂度高,训练时间长,需要大量数据。
分类模型的评估指标
- 准确率(Accuracy):
- 公式:$( \text{Accuracy} = \frac{\text{正确分类的样本数}}{\text{总样本数}} )$
- 解释:衡量模型正确分类样本的比例。
- 精确率(Precision):
- 公式:$( \text{Precision} = \frac{\text{真正例数}}{\text{真正例数 + 假正例数}} )$
- 解释:衡量模型预测为正例的样本中实际为正例的比例。
- 召回率(Recall):
- 公式:$( \text{Recall} = \frac{\text{真正例数}}{\text{真正例数 + 假反例数}} )$
- 解释:衡量模型实际为正例的样本中被正确预测为正例的比例。
- F1分数(F1 Score):
- 公式:$( \text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} )$
- 解释:精确率和召回率的调和平均数,综合考虑模型的精确率和召回率。
- ROC曲线(Receiver Operating Characteristic Curve):
- 解释:通过绘制真正例率(True Positive Rate)和假正例率(False Positive Rate)来评估模型的分类性能。
- AUC(Area Under Curve):
- 解释:ROC曲线下的面积,AUC值越大表示模型性能越好。
分类模型的训练与测试
- 数据准备:
- 收集和清洗数据,处理缺失值和异常值。
- 特征工程,包括特征选择和特征缩放。
- 模型训练:
- 将数据集划分为训练集和测试集。
- 使用训练集训练分类模型,调整模型参数以优化性能。
- 模型评估:
- 使用测试集评估模型性能,计算评估指标(如准确率、精确率、召回率、F1分数)。
- 根据评估结果调整模型,防止过拟合或欠拟合。
- 模型部署:
- 将训练好的模型应用于实际问题,进行分类和决策。
聚类
聚类任务概述
聚类是无监督学习中的一种任务,其目标是根据数据点之间的相似性,将一组数据划分成若干个簇(Cluster)。在聚类任务中,数据没有预定义的标签,模型通过发现数据的内在结构和模式来进行分组。
聚类的应用
聚类在许多领域都有广泛的应用,包括但不限于:
- 市场营销:客户分群,根据客户行为和特征进行市场细分。
- 图像处理:图像分割,将图像划分为不同的区域。
- 生物信息学:基因表达数据分析,发现基因的功能分组。
- 社会网络分析:社区检测,发现社交网络中的社区结构。
- 异常检测:识别数据中的异常点,如信用卡欺诈检测。
常见的聚类方法
聚类方法可以分为以下几类:
- 原型聚类(Prototype-based Clustering):
- 定义:通过迭代优化,将数据点分配到最近的原型(通常是簇的中心)上。
- 常见算法:
- K-means:
- 原理:将数据点分成K个簇,迭代优化簇中心和数据点的分配,使得簇内数据点的平方误差最小。
- 优点:简单易实现,计算效率高。
- 缺点:需要预先指定簇的数量K,对初始值敏感,容易陷入局部最优。
- K-medoids:
- 原理:类似于K-means,但使用数据点本身作为簇的中心,减少对异常值的敏感性。
- 优点:对异常值更鲁棒。
- 缺点:计算复杂度较高。
- K-means:
- 密度聚类(Density-based Clustering):
- 定义:通过发现数据点的高密度区域,将这些区域中的数据点划分为一个簇。
- 常见算法:
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise):
- 原理:通过指定半径(ε)和最小点数(MinPts),将密度高的区域划分为簇,同时识别噪声点。
- 优点:可以发现任意形状的簇,不需要预先指定簇的数量,对噪声有较好的鲁棒性。
- 缺点:对参数ε和MinPts较为敏感,计算复杂度较高。
- OPTICS(Ordering Points To Identify the Clustering Structure):
- 原理:类似于DBSCAN,但通过生成可视化的聚类结构图,自动选择合适的聚类参数。
- 优点:可以处理不同密度的簇,自动选择聚类参数。
- 缺点:计算复杂度较高。
- DBSCAN(Density-Based Spatial Clustering of Applications with Noise):
- 层次聚类(Hierarchical Clustering):
- 定义:通过构建层次树状结构,将数据点逐步合并或分裂成簇。
- 常见算法:
- 凝聚层次聚类(Agglomerative Hierarchical Clustering):
- 原理:从每个数据点开始,将最近的簇逐步合并,直到所有数据点都在一个簇中。
- 优点:不需要预先指定簇的数量,可以生成聚类树(Dendrogram)进行可视化。
- 缺点:计算复杂度较高,难以处理大规模数据。
- 分裂层次聚类(Divisive Hierarchical Clustering):
- 原理:从所有数据点开始,逐步将簇分裂,直到每个数据点都是一个簇。
- 优点:可以生成聚类树进行可视化。
- 缺点:计算复杂度较高,难以处理大规模数据。
- 凝聚层次聚类(Agglomerative Hierarchical Clustering):
聚类模型的评估指标
由于聚类是无监督学习任务,没有预定义的标签,因此评估聚类模型的性能较为困难。常见的评估指标包括:
- 轮廓系数(Silhouette Coefficient):
- 定义:衡量数据点在簇内的紧密度和簇间的分离度。
- 公式:$( s(i) = \frac{b(i) – a(i)}{\max(a(i), b(i))} )$
- $( a(i) ) $是数据点i到同簇其他数据点的平均距离。
- $( b(i) )$是数据点i到最近簇的平均距离。
- 取值范围:[-1, 1],值越大表示聚类效果越好。
- 簇内平方和(Within-Cluster Sum of Squares, WCSS):
- 定义:衡量簇内数据点到簇中心的平方和。
- 公式:$( WCSS = \sum_{k=1}^{K} \sum_{x \in C_k} | x – \mu_k |^2 )$
- $( K ) $是簇的数量。
- $( C_k )$ 是第k个簇。
- $( \mu_k ) $是第k个簇的中心。
- 取值范围:值越小表示聚类效果越好。
- DB指数(Davies-Bouldin Index):
- 定义:衡量簇内数据点的紧密度和簇间的分离度。
- 公式:$( DB = \frac{1}{K} \sum_{i=1}^{K} \max_{j \neq i} \left( \frac{\sigma_i + \sigma_j}{d(\mu_i, \mu_j)} \right) )$
- $( K )$ 是簇的数量。
- $( \sigma_i )$ 是第i个簇的平均距离。
- $( \mu_i ) $是第i个簇的中心。
- $( d(\mu_i, \mu_j) )$是第i个簇和第j个簇中心之间的距离。
- 取值范围:值越小表示聚类效果越好。
聚类模型的训练与应用
- 数据准备:
- 收集和清洗数据,处理缺失值和异常值。
- 特征工程,包括特征选择和特征缩放。
- 模型训练:
- 选择合适的聚类算法,根据数据特点和任务需求进行训练。
- 调整模型参数,以优化聚类效果。
- 模型评估:
- 使用评估指标(如轮廓系数、簇内平方和、DB指数)评估聚类模型的性能。
- 根据评估结果调整模型,选择最佳的聚类方案。
- 模型应用:
- 将训练好的聚类模型应用于实际问题,进行数据分组和分析。
- 根据聚类结果进行决策和优化。
降维
降维任务概述
降维是指将高维数据转换为低维数据的过程,同时尽可能保留原始数据的重要信息。降维可以帮助简化数据结构,减少计算复杂度,提高模型的性能和可解释性。降维方法可以分为无监督和有监督两类。
降维的应用
降维在许多领域都有广泛的应用,包括但不限于:
- 数据可视化:将高维数据投影到二维或三维空间,以便进行可视化和分析。
- 特征提取:从高维数据中提取重要特征,减少数据维度,提高模型性能。
- 噪声过滤:通过降维去除数据中的噪声,增强信号。
- 数据压缩:减少数据存储和传输的成本。
常见的降维方法
降维方法可以分为以下几类:
- 主成分分析(Principal Component Analysis, PCA):
- 定义:一种无监督的降维方法,通过线性变换将数据投影到新的坐标系中,使得投影后的数据在新坐标系中的方差最大。
- 原理:通过计算数据的协方差矩阵,找到特征向量和特征值,将数据投影到特征向量所构成的空间中。
- 优点:简单易实现,计算效率高,可以有效地减少数据维度。
- 缺点:只能捕捉线性关系,无法处理非线性数据。
- 应用:数据可视化、特征提取、噪声过滤等。
- 线性判别分析(Linear Discriminant Analysis, LDA):
- 定义:一种有监督的降维方法,通过线性变换将数据投影到新的坐标系中,使得不同类别的数据在新坐标系中尽可能分开。
- 原理:通过最大化类间方差和最小化类内方差,找到最优的投影方向。
- 优点:可以有效地分离不同类别的数据,提高分类性能。
- 缺点:只能捕捉线性关系,无法处理非线性数据。
- 应用:分类任务中的特征提取和降维。
- t-分布随机邻域嵌入(t-Distributed Stochastic Neighbor Embedding, t-SNE):
- 定义:一种无监督的降维方法,通过将高维数据嵌入到低维空间中,使得相似的数据点在低维空间中尽可能接近。
- 原理:通过最小化高维空间和低维空间中数据点之间的概率分布差异,找到最优的嵌入。
- 优点:可以捕捉非线性关系,适用于数据可视化。
- 缺点:计算复杂度高,难以处理大规模数据。
- 应用:数据可视化,特别是高维数据的可视化。
- 独立成分分析(Independent Component Analysis, ICA):
- 定义:一种无监督的降维方法,通过线性变换将数据投影到新的坐标系中,使得投影后的数据在新坐标系中尽可能独立。
- 原理:通过最大化投影后的数据的独立性,找到最优的投影方向。
- 优点:可以有效地分离独立信号,适用于信号处理。
- 缺点:对噪声敏感,计算复杂度较高。
- 应用:信号处理、特征提取等。
- 自编码器(Autoencoder):
- 定义:一种无监督的神经网络模型,通过编码器将高维数据压缩到低维表示,再通过解码器将低维表示还原为高维数据。
- 原理:通过最小化重构误差,学习数据的低维表示。
- 优点:可以捕捉非线性关系,适用于复杂数据的降维。
- 缺点:训练时间长,参数选择较为复杂。
- 应用:数据压缩、特征提取、噪声过滤等。
降维模型的评估指标
评估降维模型的性能通常依赖于具体的应用场景和任务目标。常见的评估指标包括:
- 重构误差(Reconstruction Error):
- 定义:衡量降维后的数据还原为高维数据时的误差。
- 公式:$( \text{Reconstruction Error} = | X – \hat{X} | )$
- $( X ) $是原始高维数据。
- $( \hat{X} )$ 是还原后的高维数据。
- 解释:重构误差越小,表示降维后的数据保留了更多的原始信息。
- 方差解释率(Explained Variance Ratio):
- 定义:衡量降维后的数据在低维空间中的方差占原始数据总方差的比例。
- 公式:$( \text{Explained Variance Ratio} = \frac{\text{Variance of Reduced Data}}{\text{Total Variance of Original Data}} )$
- 解释:方差解释率越高,表示降维后的数据保留了更多的原始信息。
- 分类性能(Classification Performance):
- 定义:在分类任务中,衡量降维后的数据在分类模型中的表现。
- 解释:通过比较降维前后分类模型的准确率、精确率、召回率等指标,评估降维效果。
降维模型的训练与应用
- 数据准备:
- 收集和清洗数据,处理缺失值和异常值。
- 特征工程,包括特征选择和特征缩放。
- 模型训练:
- 选择合适的降维算法,根据数据特点和任务需求进行训练。
- 调整模型参数,以优化降维效果。
- 模型评估:
- 使用评估指标(如重构误差、方差解释率、分类性能)评估降维模型的性能。
- 根据评估结果调整模型,选择最佳的降维方案。
- 模型应用:
- 将训练好的降维模型应用于实际问题,进行数据压缩、特征提取和可视化。
- 根据降维结果进行决策和优化。
降维与其他任务的结合
在实际应用中,降维算法通常与回归、分类和聚类算法联合使用,以提高模型性能和可解释性。例如:
- 降维与分类:
- 使用PCA或LDA进行降维,将高维数据转换为低维表示,然后使用分类算法(如逻辑回归、支持向量机)进行分类。
- 降维与回归:
- 使用PCA进行降维,将高维数据转换为低维表示,然后使用回归算法(如线性回归、决策树回归)进行预测。
- 降维与聚类:
- 使用t-SNE或PCA进行降维,将高维数据转换为低维表示,然后使用聚类算法(如K-means、DBSCAN)进行分组。
模型评估与选择
模型评估与选择
经验误差与泛化误差
- 经验误差(Empirical Error):
- 定义:模型在训练数据集上的误差,也称为训练误差。
- 公式: $ \text{Empirical Error} = \frac{1}{n} \sum_{i=1}^{n} L(y_i, \hat{y}_i) $
- $( n )$ 是训练样本的数量。$
- ( y_i )$ 是第 ( i ) 个样本的真实标签。
- ( \hat{y}_i ) 是模型对第 ( i ) 个样本的预测值。
- ( L ) 是损失函数,如均方误差(MSE)或交叉熵损失。
- ( y = [3, -0.5, 2, 7, 4.2] )
- ( \hat{y} = [2.5, 0.0, 2, 8, 4.1] )
- 泛化误差(Generalization Error):
- 定义:模型在新数据(测试数据集)上的误差,也称为测试误差。
- 公式: $$ \text{Generalization Error} = \mathbb{E}[L(y, \hat{y})] $
- ( \mathbb{E} ) 表示期望值。
- ( y ) 是新数据的真实标签。
- ( \hat{y} ) 是模型对新数据的预测值。
- ( L ) 是损失函数。
- ( y = [1.5, 2.3, 3.1] )$$
- ( \hat{y} = [1.4, 2.5, 3.0] )
过拟合与欠拟合
- 过拟合(Overfitting):
- 定义:模型在训练数据上表现很好,但在新数据上表现较差。过拟合通常是因为模型过于复杂,捕捉到了训练数据中的噪声和细节。
- 表现:训练误差很低,但测试误差很高。
- 解决方法:使用正则化、减少模型复杂度、增加训练数据、使用交叉验证等。
- 欠拟合(Underfitting):
- 定义:模型在训练数据和新数据上都表现较差。欠拟合通常是因为模型过于简单,无法捕捉数据中的模式和关系。
- 表现:训练误差和测试误差都很高。
- 解决方法:增加模型复杂度、选择更合适的特征、减少正则化等。
评估方法
- 留出法(Holdout Method):
- 定义:将数据集划分为训练集和测试集,使用训练集训练模型,使用测试集评估模型性能。
- 优点:简单易行。
- 缺点:评估结果依赖于数据划分,可能不稳定。
- 交叉验证法(Cross-Validation):
- 定义:将数据集划分为 ( k ) 个子集,进行 ( k ) 次训练和测试,每次使用一个子集作为测试集,其余子集作为训练集。常见的交叉验证方法有 ( k )-折交叉验证和留一法。
- 优点:评估结果更稳定,减少了数据划分的随机性。
- 缺点:计算复杂度较高。
- 自助法(Bootstrap Method):
- 定义:通过有放回的随机抽样生成多个训练集,每个训练集的样本数量与原始数据集相同。未被抽中的样本作为测试集。
- 优点:适用于小数据集,可以估计模型的方差和偏差。
- 缺点:可能导致训练集和测试集的样本重叠,评估结果可能有偏差。
性能度量
- 方差(Variance):定义:衡量模型预测结果的离散程度。公式: $ \text{Variance} = \frac{1}{n} \sum_{i=1}^{n} (\hat{y}_i – \bar{\hat{y}})^2 $( \hat{y}_i ) 是第 ( i ) 个样本的预测值。( \bar{\hat{y}} ) 是预测值的均值。例子: 假设有一个预测值集合$ ( \hat{y} = [2.5, 0.0, 2, 8, 4.1] )$,其均值$ ( \bar{\hat{y}} = 3.32 )$: $ \text{Variance} = \frac{1}{5} \sum_{i=1}^{5} (\hat{y}_i – 3.32)^2 = \frac{1}{5} [(2.5-3.32)^2 + (0.0-3.32)^2 + (2-3.32)^2 + (8-3.32)^2 + (4.1-3.32)^2] = 7.056 $
- 错误率(Error Rate):
- 定义:模型预测错误的样本占总样本的比例。
- 公式: $ \text{Error Rate} = \frac{\text{Number of Incorrect Predictions}}{\text{Total Number of Predictions}} $
- 精度(Accuracy):
- 定义:模型预测正确的样本占总样本的比例。
- 公式: $ \text{Accuracy} = \frac{\text{Number of Correct Predictions}}{\text{Total Number of Predictions}} $
- 查全率/又称召回率(Recall):
- 定义:在所有实际为正例的样本中,模型正确预测为正例的比例。公式: $ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives + False Negatives}} $
- 类别不平衡:当正负样本数量不平衡时,F1分数可以提供比准确率更有意义的评估。
- 需要平衡精确率和召回率:在某些应用中,精确率和召回率同样重要,F1分数可以作为一个综合指标来评估模型性能。
例子: 假设有50个实际为正例的样本,其中模型正确预测了40个正例,错过了10个正例: $\text{Recall} = \frac{40}{40 + 10} = 0.8 $
- 查准率(Precision):
- 定义:在所有预测为正例的样本中,实际为正例的比例。
- 公式: $ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives + False Positives}} $
- F1分数(F1 Score):
- 定义:精度和查全率的调和平均数。
- 公式: $ \text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} $
- ROC曲线(Receiver Operating Characteristic Curve):
- 定义:通过绘制真正例率(True Positive Rate, TPR)和假正例率(False Positive Rate, FPR)来评估模型的分类性能。
- 解释:ROC曲线越靠近左上角,表示模型性能越好。
- AUC(Area Under Curve):
- 定义:ROC曲线下的面积,AUC值越大表示模型性能越好。取值范围:0到1,值越接近1表示模型性能越好。
ROC和AUC的示例
ROC可能会在二分类问题中遇到;确定一个阈值,然后将每个数据进行划分为0 或者 1
然后将预测结果对比真实的结果,得到混淆矩阵 这样就可以算出ROC和AUC了
结论
模型评估与选择是机器学习中的关键步骤,通过评估模型的经验误差和泛化误差,可以判断模型的性能和稳定性。过拟合和欠拟合是常见的问题,需要通过适当的方法进行调整。评估方法包括留出法、交叉验证法和自助法,性能度量包括方差、错误率、精度、查全率、查准率、F1分数、ROC曲线和AUC等。希望这些详细解释和例子能帮助你更好地理解模型评估与选择阶段的相关概念和方法。
线性回归
要求 :可以按照自己的理解简述线性回归问题,掌握线性回归算法特点。
要求 :可以对简单数据进行计算。
要求 :可以编程实现线性回归算法。
线性回归模型是?
线性回归的模型(带有参数的玩意) 构建出来了之后,想尽一切办法(利用算法的优势)去找到最优参数!
求解线性回归模型参数的办法?
最小二乘法
闭式解(解析解)可以得到的最优的
极大似然法
在假设数据集服从正态分布的情况下其解与最小二乘法是一致的
步骤
通过假设误差项服从正态分布,构建似然函数并取对数,然后对对数似然函数求导并设导数为零,解得参数 $(\beta)$ 和误差项的方差$ (\sigma^2)$。
- 假设:误差项 $(\epsilon) $服从正态分布$ ( N(0, \sigma^2) )$。
- 构建似然函数: $ L(\beta, \sigma^2) = \prod_{i=1}^{m} \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y^{(i)} – x^{(i)T} \beta)^2}{2\sigma^2}\right) $
- 取对数似然函数: $ \ell(\beta, \sigma^2) = -\frac{m}{2} \log(2\pi\sigma^2) – \frac{1}{2\sigma^2} \sum_{i=1}^{m} (y^{(i)} – x^{(i)T} \beta)^2 $
- 对$ (\beta) $求导并设导数为零: $ \frac{\partial \ell(\beta, \sigma^2)}{\partial \beta} = \frac{1}{\sigma^2} \sum_{i=1}^{m} x^{(i)} (y^{(i)} – x^{(i)T} \beta) = 0 $解得: $ \hat{\beta} = (X^T X)^{-1} X^T y $
- 对$ (\sigma^2) $求导并设导数为零: $ \frac{\partial \ell(\beta, \sigma^2)}{\partial \sigma^2} = -\frac{m}{2\sigma^2} + \frac{1}{2\sigma^4} \sum_{i=1}^{m} (y^{(i)} – x^{(i)T} \beta)^2 = 0 $解得: $ \hat{\sigma}^2 = \frac{1}{m} \sum_{i=1}^{m} (y^{(i)} – x^{(i)T} \beta)^2 $
结果
极大似然法求解线性回归模型的结果是回归系数$ (\beta) $和误差项的方差 $(\sigma^2)$,其中 $(\beta)$ 表示特征对目标变量的线性影响,$(\sigma^2) $表示模型预测误差的方差。
误差项的方差 (\sigma^2): $ \hat{\sigma}^2 = \frac{1}{m} \sum_{i=1}^{m} (y^{(i)} – x^{(i)T} \beta)^2 $
回归系数 (\beta): $ \hat{\beta} = (X^T X)^{-1} X^T y $
挺有意思的计算过程
梯度下降法
多次迭代来找到局部最优 这个结果跟初始点的选择有关 通用性强
逻辑回归 对数几率回归
要求 :掌握逻辑回归问题以及与线性回归问题的区别与联系,掌握逻辑回归算法特点。
要求 :掌握梯度下降、牛顿法的基本原理和迭代公式。
要求 :可以编程实现逻辑回归算法。
要求 :进行简单数据的运算。
逻辑回归模型是?
逻辑回归模型的结果是得到模型之后,你可以将新的数据输入(这个数据是一维行向量(我们会在第一个位置添加一个1 对应计算theta时候作为那个截距),里面有几个元素跟实际相关),借助模型运算出它为某个分类(以1分类为例)的概率,再借助阈值,对比概率与阈值来进行分类; 然后模型中有个参数叫theta,这个就是theta是一个一维行向量,里面每一个元素代表实际数据每一个特征的某种权重,有几个特征,那么theta就有几个元素(+1 第一个作为截距,所有xi为0的时候 的那个w0);然后x_i 其实就是一个又一个数据集的实际数据,每一个都是一维行向量.
求解逻辑回归模型参数的办法?
梯度下降法
损失函数
对数几率回归的损失函数是对数似然函数的负值:
$J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 – y^{(i)}) \log(1 – h_\theta(x^{(i)})) \right]$
其中:
- $( J(\theta) ) $是损失函数。
- $( m )$ 是样本数量。
- $( y^{(i)} ) 是第 ( i ) 个样本的实际标签(0 或 1)$。
- $( h_\theta(x^{(i)}) ) 是第 ( i ) 个样本的预测概率,计算公式为: h_\theta(x^{(i)}) = \frac{1}{1 + e^{-\theta^T x^{(i)}}}$
- $( \theta ) $是参数向量。
- $( x^{(i)} ) $是第 ( i ) 个样本的特征向量。
梯度下降法的迭代公式
$\theta_j := \theta_j – \alpha \frac{\partial J(\theta)}{\partial \theta_j}$
其中:
- $( \theta_j ) $是参数向量中的第 ( j ) 个元素。
- $( \alpha )$ 是学习率。
- $( \frac{\partial J(\theta)}{\partial \theta_j} ) $是损失函数对参数$ ( \theta_j ) $的偏导数。
牛顿法
牛顿法是一种利用二阶导数信息来加速收敛的优化算法。
海森矩阵
牛顿法使用海森矩阵$(Hessian Matrix)$来描述损失函数的二阶导数信息。海森矩阵的元素是损失函数对参数的二阶偏导数。
牛顿法的迭代公式
$\theta := \theta – H^{-1} \nabla J(\theta)$
其中:
- $( H )$ 是海森矩阵。
- $( \nabla J(\theta) )$ 是损失函数的梯度向量。
决策树
决策树算法是?
决策树算法是一种用于分类和回归的树状结构模型。它通过一系列的决策规则将数据集划分成不同的类别或预测连续值。决策树的每个节点代表一个特征或属性,每个分支代表该特征的一个可能取值,每个叶节点代表一个类别或预测值。
决策树算法有多种变体,其中最常见的包括ID3、C4.5和CART。这些算法在选择分裂特征的标准上有所不同,分别使用了信息增益、增益率和基尼系数等概念。以下是它们的详细关系和区别:
ID3算法
- 分裂标准:信息增益(Information Gain)
- 信息增益公式: $[ IG(D, A) = H(D) – \sum_{v \in \text{Values}(A)} \frac{|D_v|}{|D|} H(D_v) ] $其中,$IG(D, A)$ 是特征 $A$ 对数据集 $D$ 的信息增益,$H(D)$ 是数据集 $D$ 的熵,$D_v$ 是特征 $A$ 取值为 $v$ 的子集,$|D|$ 是数据集 $D$ 的样本数,$|D_v|$ 是子集 $D_v$ 的样本数。
- 特点:ID3算法选择信息增益最大的特征进行分裂,适用于离散特征。
C4.5算法
- 分裂标准:增益率(Gain Ratio)
- 增益率公式:$[ GR(D, A) = \frac{IG(D, A)}{IV(A)} ] $其中,$GR(D, A)$ 是特征 $A$ 对数据集 $D$ 的增益率,$IG(D, A)$ 是信息增益,$IV(A)$ 是特征 $A$ 的固有值,计算公式为: $[ IV(A) = -\sum_{v \in \text{Values}(A)} \frac{|D_v|}{|D|} \log_2 \left( \frac{|D_v|}{|D|} \right) ]$
- 特点:C4.5算法在ID3的基础上引入了增益率,解决了信息增益偏向于选择取值较多特征的问题,适用于离散和连续特征。
- 相较于ID3而言:
- C4.5的增益率考虑了特征取值的数量,避免了信息增益偏向于选择取值较多特征的问题。
- C4.5可以处理连续特征. ID3:只能处理离散特征
- C4.5可以处理缺失值. ID3无法处理缺失值
- C4.5引入剪枝机制. ID3没有剪枝机制
CART算法
- 分裂标准:基尼系数(Gini Index)
- 基尼系数公式:$[ Gini(D) = 1 – \sum_{k=1}^{K} p_k^2 ] $ 其中,$Gini(D)$ 是数据集 $D$ 的基尼系数,$K$ 是类别的数量,$p_k$ 是数据集中第 $k$ 类样本的比例。
- 特点:CART算法使用基尼系数作为分裂标准,生成二叉树(每个节点最多有两个子节点),适用于分类和回归问题。
关系和区别
- 分裂标准:
- ID3使用信息增益,偏向于选择取值较多的特征。
- C4.5使用增益率,解决了信息增益的偏向问题。
- CART使用基尼系数,生成二叉树,适用于分类和回归。
- 适用场景:
- ID3和C4.5主要用于分类问题。
- CART既可以用于分类问题,也可以用于回归问题。
- 树的结构:
- ID3和C4.5生成多叉树(每个节点可以有多个子节点)。
- CART生成二叉树(每个节点最多有两个子节点)。
用决策树算法解决分类问题的办法/详细过程?
例
ID3算法实操步骤
- 拿到数据集:
- 数据集的最右侧一列为标签(例如Y和N)。
- 假设数据集除了标签还有四列属性。
- 计算整个数据集的信息熵 $Ent(D)$:
- 信息熵公式为:$ [ H(D) = -\sum_{k=1}^{K} p_k \log_2(p_k) ] $其中,$K$ 是类别的数量,$p_k$ 是数据集中第 $k$ 类样本的比例。
- 计算每个属性的信息增益:
- 以第一列属性Age为例,将其划分为小于30、30-40、大于40三类。
- 将第一列及其标签单独提取出来,计算每个类别的信息熵。
- 例如,小于30的信息熵 $Ent(D1)$,30-40的信息熵 $Ent(D2)$,大于40的信息熵 $Ent(D3)$。
- 计算该列属性的信息增益:$ [ IG(D, \text{Age}) = H(D) – \sum_{i=1}^{3} \frac{|D_i|}{|D|} H(D_i) ] $其中,$|D_i|$ 是第 $i$ 类的样本数,$|D|$ 是整个数据集的样本数,$H(D_i)$ 是第 $i$ 类的信息熵。
- 计算其他列属性的信息增益:
- 对剩下的三个列属性重复上述步骤,计算每个属性的信息增益。
- 选择信息增益最大的属性作为决策树的第一个节点:
- 比较所有属性的信息增益,选择信息增益最大的属性作为决策树的根节点。
- 递归构建决策树:
- 根据选择的属性将数据集分成若干子集。
- 对每个子集重复上述步骤,计算子集的信息熵和信息增益,选择信息增益最大的属性作为子节点。
- 继续递归,直到所有属性都被使用或子集中的样本属于同一类别。
基于ID3算法
如果想用C4.5 其实和ID3差不多 只不过在每一次迭代前 计算完IG(D,xxx)之后,还要计算IV
以下面Age为例 小于30有5例 30-40有4例 大于40有5例
计算固有值(Intrinsic Value, IV):
$IV = -\left( \frac{5}{5+4+5} \log_2 \frac{5}{5+4+5} + \frac{4}{5+4+5} \log_2 \frac{4}{5+4+5} + \frac{5}{5+4+5} \log_2 \frac{5}{5+4+5} \right)$
CART
基尼系数怎么个事
假如一个数据集 1和0 全是1 那么p1=1 ;p2=0 Gini(D)=1 – 1^2 – 0^2=0 这说明数据很纯
如果1和0 各一半,那么p1=1/2 p2=1/2 那么Gini(D)=1-(1/2)^2-(1/2)^2=1/2 说明数据不太纯
每次选择基尼指数最小的作为上层特征 (越小代表越纯 )
剪枝
预剪枝
预剪枝方法
- 设定最大深度:
- 限制决策树的最大深度,防止树过深。
- 例如,设定最大深度为5,当树的深度达到5时,停止分裂。
- 设定最小样本数:
- 限制每个节点的最小样本数,防止节点样本数过少。
- 例如,设定最小样本数为10,当节点样本数小于10时,停止分裂。
- 设定最小信息增益:
- 限制每次分裂的信息增益,防止信息增益过小。
- 例如,设定最小信息增益为0.01,当信息增益小于0.01时,停止分裂。
- 交叉验证:
- 使用交叉验证评估分裂后的性能,如果性能没有显著提升,则停止分裂。
后剪枝
后剪枝方法
- 生成完全树:
- 生成一棵完全树,直到每个叶节点的样本数小于设定的最小样本数。
- 剪枝评估:
- 从叶节点开始,逐层向上评估每个节点的剪枝效果。
- 使用验证集评估剪枝后的性能,如果剪枝后性能提升或没有显著下降,则进行剪枝。
- 剪枝策略:
- 错误率剪枝:比较剪枝前后的错误率,如果剪枝后错误率降低或没有显著增加,则进行剪枝。
- 代价复杂度剪枝:计算剪枝前后的代价复杂度,如果剪枝后代价复杂度降低,则进行剪枝。
缺失值
看看怎么算就行
信息增益的计算 某种意义上还是用的 当前数据集的信息熵-条件加权信息熵
连续值
这个怎么理解?
以下图为例,其中Age 在数据中会体现为 23 24 25 26 29 32 33 39…等等年龄 这种数据叫做连续值
而像student 的yes 和no 就是离散型
由于画决策树时,计算分出来的节点不能太多 不然难以算
我们需要处理Age 的连续值 将其变离散 这个思想其实就是 找阈值 划分范围
由此可知 连续值问题的核心在于 阈值的选取 怎么选阈值是最优的?
一般来说是用二分法
二分法
二分法是最常见的处理连续值的方法。具体步骤如下:
- 排序:将连续特征的值按升序排序。
- 候选阈值:计算每两个相邻值的中点作为候选阈值。例如,对于排序后的值 $v_1, v_2, \ldots, v_n$,候选阈值为 $\frac{v_i + v_{i+1}}{2}$。
- 计算信息增益:对于每个候选阈值,将数据集分成两部分(小于等于阈值和大于阈值),计算分裂后的信息增益或增益率。
- 选择最优阈值:选择使信息增益或增益率最大的阈值作为最优阈值。
感知机Perceptron
感知机模型是什么
只能解决线性可分的问题
如何求取参数w向量
感知机模型的迭代策略详解
基本概念
感知机模型是一种线性分类器,通过迭代更新权重向量 ( \mathbf{w} ) 和偏置 ( b ) 来找到一个能够正确分类训练样本的超平面。
迭代策略
- 初始化:
- 初始化权重向量 ( \mathbf{w} ) 和偏置 ( b ) 为零或小的随机值。
- 迭代更新:
- 对每个训练样本 ( (\mathbf{x}_i, y_i) ),进行以下操作:
- 计算预测值~ ( \hat{y}_i = \mathbf{w} \cdot \mathbf{x}_i + b )~。
- 如果 ( y_i \hat{y}_i \leq 0 )(即分类错误),则更新权重和偏置: [ \mathbf{w} \leftarrow \mathbf{w} + \eta y_i \mathbf{x}_i ] [ b \leftarrow b + \eta y_i ]
- 其中,( \eta ) 是学习率。
- 对每个训练样本 ( (\mathbf{x}_i, y_i) ),进行以下操作:
- 重复:
- 重复上述步骤,直到所有训练样本被正确分类或达到预定的迭代次数。
我明白了
将W向量代入,用数据来算,当遇到分类错误的对线时,利用W’=W+n(数据)来更新参数 同时b 那个确定值也要+学习率来更新 做题能够更快理解
多层神经网络
要求 :可以按照自己的理解简述基本神经元、多层神经网络模型,掌握特点。
要求 :掌握 算法的基本原理和迭代公式。
直观上来说 它克服了感知机不能解决非线性可分问题的局限性
反向传播算法 多层神经网络示意图 反向传播算法简单例题_mob6454cc6f8e48的技术博客_51CTO博客
甚至用的加法 偏置用减法 这就用加法
支持向量机SVM
1:理解掌握支持向量机模型,并理解它与其他分类算法的区别
2:掌握使用拉格朗日乘子法对约束优化问题进行求解,理解使用拉格朗日乘子法求解SVM问题的原因
3:可以简述软间隔支持向量机并分析其与常规支持向量机的关系和区别
4:了解SMO算法
5:进行简单数据的运算
支持向量机(SVM)的核心概念分析
最大化类间间隔的超平面
1. SVM模型理解
- 基本思想:寻找最大间隔超平面分隔不同类别数据
- 数学表达:$ [ \min_{\mathbf{w},b} \frac{1}{2}|\mathbf{w}|^2 ] [ \text{s.t. } y_i(\mathbf{w}^T\mathbf{x}_i + b) \geq 1, i=1,\ldots,n ]$
与其他分类算法区别:
- 感知机:简单、适用于线性可分数据、使用误分类错误作为损失函数。
- SVM:更复杂、适用于线性和非线性数据、使用合页损失函数、通过最大化分类间隔来提高泛化能力。
- 逻辑回归
2. 拉格朗日乘子法求解
- 拉格朗日函数:$ [ L(\mathbf{w},b,\alpha) = \frac{1}{2}|\mathbf{w}|^2 – \sum_{i=1}^n \alpha_i[y_i(\mathbf{w}^T\mathbf{x}_i + b) – 1] ]$
- 对偶问题: $[ \max_{\alpha} \sum_{i=1}^n \alpha_i – \frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n \alpha_i\alpha_j y_i y_j \mathbf{x}_i^T\mathbf{x}j ] [ \text{s.t. } \sum{i=1}^n \alpha_i y_i = 0, \alpha_i \geq 0 ]$
使用拉格朗日乘子法的原因:
- 简化计算
- 引入核函数的可能性
- 稀疏解的获得
3. 软间隔支持向量机
数学表达: $[ \min_{\mathbf{w},b,\xi} \frac{1}{2}|\mathbf{w}|^2 + C\sum_{i=1}^n \xi_i ] [ \text{s.t. } y_i(\mathbf{w}^T\mathbf{x}_i + b) \geq 1 – \xi_i, \xi_i \geq 0 ]$
与硬间隔SVM的区别:
- 允许部分样本分类错误
- 引入惩罚参数C
- 更适合实际应用
4. SMO算法要点
- 基本思想:
- 每次选择两个变量进行优化
- 固定其他变量
- 迭代求解直到收敛
- 优化步骤:
- 选择违反KKT条件的变量对
- 计算更新界限
- 更新变量值
- 更新偏置项
求解支持向量机模型 是求取W权重向量和b偏置
主成分分析PCA (No Calculate)
理解主成分分析算法及其特点
掌握PCA算法的流程
了解核化PCA
子空间学习的一些基本术语
线性判别分析LDA
线性判别分析 有监督的聚类
PCA的核心目标是通过线性变换将高维数据投影到低维空间,同时最大化投影后数据的方差。其求解模型参数的方法是通过对数据的协方差矩阵进行特征值分解,选择最大特征值对应的特征向量作为主成分。
最大化数据在新空间中的方差 找到数据的主成分 无监督 不需要类别标签
PCA通过特征值分解协方差矩阵找到主成分
LDA最大化类间距离与类内距离的比值 找到最能区分不同类的特征 有监督 需要类别标签
LDA通过特征值分解类间散布矩阵和类内散布矩阵的比值来找到判别方向
K-均值聚类 K-Means
注意区分KNN K近邻 跟这个没关系
K-means 聚类的目标是最小化簇内平方和(Sum of Squared Errors, SSE),其数学表达式为:
$[ \arg\min_{C} \sum_{i=1}^{k} \sum_{x \in C_i} | x – \mu_i |^2 ]$
其中:
- $( k ) $是簇的数量。
- $( C_i ) $是第 $( i ) $个簇的集合。
- $( x ) $是数据点。
- $( \mu_i ) $是第 $( i ) $个簇的中心(均值向量)。
- $(| x – \mu_i |^2) $表示数据点 $( x ) $到簇中心 $( \mu_i ) $的欧氏距离的平方
给簇 随机位置 然后把点分给他们 然后重点是重新计算簇的位置
这是最简单的算法了 K-Means 的 lloyd算法(属于EM 最大期望算法)
先随机找K个簇的位置 随便给 ,但是数量要人为先确定 簇 的数量(这个数量如何找到最优?有其他办法 比较复杂)
然后计算每个点到不同簇的距离 将每个点划分给离他最近的簇
将每个 簇 的 位置更新为当前它们类的所有点的 均值中心 就是坐标均值
然后重复迭代 直到收敛
详细步骤
- 初始化:
- 随机选择k个初始聚类中心。
- 分配阶段:
- 计算每个数据点到所有簇心的距离。
- 将每个数据点分配到最近的簇心。
- 更新阶段:
- 对于每个簇,计算该簇中所有数据点的均值,新的均值即为新的簇心。
- 迭代:
- 重复分配阶段和更新阶段,直到簇心不再变化或达到最大迭代次数。
Lloyd算法步骤(即标准K均值算法)
- 初始化:随机选择K个聚类中心
- 分配:将每个数据点分配到最近的聚类中心
- 更新:重新计算每个类的聚类中心
- 迭代:重复2-3步直到收敛