最近准备复试比较忙,所以更新不会很频繁!

见谅!

常用聚类算法

聚类算法是机器学习中非常重要的算法,聚类是将大量数据以相似度为基础形成若干类,使得类内之间的数据最为相似,各类数据之间的数据相似度差别尽可能大。聚类分析就是以相似性为基础,对数据集进行聚类划分,属于无监督学习。聚类分析可以直接比较各事物之间的性质,将性质相近的归为一类,将性质差别较大的归入不同的类。

Q1 K均值法

K均值算法应用非常广泛,可以将一个未标记的数据集聚类成不同的组。K-Means算法通过迭代不断移动聚簇中心和簇类成员,直到得到理想的结果。通过K均值算法得到的聚簇结果,簇内项相似度很高,簇间项相似度很低,具有较好的局部最优特性,但并非全是局部最优解。具体算法步骤如下:

  1. 随机选择K个聚类中心
  2. 寻找每个数据点{x}距离最近的中心点,将两者关联,最后所有与同一中心点关联的点都聚成一类。
  3. 确定每组关联的中心点,并计算其均值。

反复操作2~3步,直到当中心点不发生变化时。

但K均值算法同样存在若干缺陷,例如需要事先确定K值,而K值的选择比较困难,在实际项目中无法事先预估数据集最合适的类别个数。并且因为事先确认初始聚类中心,那么初始值选择好坏与否将对后面产生很大影响。此外,K均值只能定义在数值类属性值上,无法处理其他类型的数据。

支持向量机

支持向量机是一种二分类模型,他的基本模型是定义在特征空间上的间隔最大的线性分类器,可将问题化为一个求解凸二次规划的问题。

具体来说,就是在线性可分时,在原空间寻找两类样本的最优分类超平面。在线性不可分时,加入松弛变量并通过使用非线性映射将低维输入空间的样本映射到高维空间使其变为线性可分,这样就可以在改特性空间中寻找最优分类超平面。

Q1 SVM的优点和缺点

优势

支持向量机算法可以解决小样本情况下的机器学习问题,简化了通常的分类回归等问题。

由于采取核函数方法克服了维数灾难和非线性可分的问题,所以向高维空间映射时没有增加计算的复杂性。换句话说,由于支持向量机算法的最终决策函数只由少数的支持向量所确定,所以计算的复杂性取决于支持向量的数目,而不是样本空间的维数。

劣势

支持向量机算法对大规模训练样本难以实施。这是因为支持向量机算法借助二次规划求解支持向量,这其中涉及m阶矩阵的计算,所以矩阵阶数很大时将耗费大量的机器内存和运算时间。

经典的支持向量算法只给出了二分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题,但支持向量机算法对于多分类问题解决效果并不理想。

SVM算法效果性与核函数的选择关系很大,往往要尝试多种核函数,即使选择了效果比较好的高斯函数,也要调参选择恰当的γ函数。另一方面就是现在常用的SVM理论都是用固定惩罚系数C,但是正负样本的两种错误造成的损失是不一样的。