我毕业论文写的是基于SVM的乳腺癌检测,让我第三章这层次聚类跟H-SVM 第四章写划分型聚类跟KD-SVM。这两个什么意思啊?
最优化问题一般可分为两大类:无约束优化问题和约束优化问题,而约束优化问题又可分为含等式约束优化问题和含不等式约束优化问题。
对于无约束优化问题,可以对函数求导,然后令其为零,从候选值中选取最优值,并加以验证;若函数为凸函数,则可以保证是最优解。随机梯度下降和批量梯度下降就是无约束优化方法。
对于含等式约束优化问题,常用的方法是利用拉格朗日乘子法将其转化为无约束优化问题求解。具体为将约束条件和函数写成一个函数,称为拉格朗日函数,系数为拉格朗日乘子;通过拉格朗日函数对各个变量求导,令其为零,从候选值中选取最优值,并加以验证。
对于含不等式约束优化问题,主要通过KKT条件将其转化成无约束优化问题求解。具体为通过构建拉格朗日函数,在一些条件下求出最优值的必要条件,这个条件就是KKT条件。
A的必要条件就是A可以推出的结论
对于我们所构造出的最优化问题明显是属于含不等式约束优化问题,关于拉格朗日函数的概念不过多介绍,下面介绍拉格朗日乘子法,并通过拉格朗日乘子法引出对偶问题和KKT条件。
层次聚类(Hierarchical Clustering)是一类基于树形结构划分数据的聚类方法,可以从结果上得到类与类之间的关系,具有很好的可解释性。它的大致思想是先将每个样本都看作一个聚类,然后根据某种相似性度量(如欧氏距离)合并相邻的聚类,得到较大的聚类,再不断重复这一过程,直到所有样本都在同一聚类中为止。层次聚类可以分为凝聚式(Agglomerative)和分裂式(Divisive)两种,其中凝聚式从下向上合并样本,分裂式从上向下划分样本。
H-SVM(Hierarchical Support Vector Machine)是一种扩展的SVM(Support Vector Machine)算法,基于层次聚类的思想,将层次聚类与SVM结合起来,从而达到同时检测多个异常点的目的。具体来说,H-SVM首先通过层次聚类得到数据的聚类结构,然后在每个聚类内分别训练一个SVM模型,通过组合不同聚类内的SVM输出,最终得到全局的分类决策。H-SVM的主要优势在于它可以有效地处理多个异常点,因为异常点通常会被聚类在一起,从而更容易被捕捉到。
划分型聚类(Partitive Clustering)是一种基于划分的聚类方法,它的大致思想是先将所有样本都看作一个聚类,然后根据某种相似性度量(如欧氏距离)将聚类分裂成两个较小的聚类,直到满足某种停止准则为止。划分型聚类中,最常用的算法是K-Means。
KD-SVM(Kernel Discriminant Support Vector Machine)是一种基于划分的SVM算法,在K-Means的基础上,将每个聚类内的样本看作是一个新的类别,然后训练一个SVM模型,从而实现对聚类结果的分类。KD-SVM主要优势在于它可以在保证准确率的前提下,降低SVM的计算复杂度,因为聚类结果远比原始数据集小得多。
对于层次聚类和划分型聚类,可以通过调用Python中的Scikit-learn库来实现。以下是一个示例代码:
# 层次聚类示例代码
from sklearn.cluster import AgglomerativeClustering
agg = AgglomerativeClustering(n_clusters=2, affinity='euclidean', linkage='ward')
agg.fit(X)
# 划分型聚类示例代码,以K-Means为例
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0)
kmeans.fit(X)
对于H-SVM和KD-SVM,可以参考以下文章的实现思路进行编码:
如果对于以上内容存在疑问,可以通过评论或其他渠道提出。