龙空技术网

聚类算法简单,svm

勇敢的科研生活 227

前言:

现时你们对“聚类算法模型”大致比较讲究,姐妹们都需要知道一些“聚类算法模型”的相关知识。那么小编在网络上搜集了一些对于“聚类算法模型””的相关文章,希望姐妹们能喜欢,咱们快快来学习一下吧!

聚类分析起源于分类学,但在此后科学技术的 飞速发展中,人类对分类的实现也已从仅主要依靠经验和专业知识而衍生转变为逐步融入了数学工具 的定量分析,形成数值分类学,又引入了多元分析形成了聚类分析。聚类分析内容丰富,其算法可以分 为划分法、层次法、基于密度的方法、基于网格的方 法、基于模型的方法等。研究内容详见如下。

K 均值聚类算法

K 均值( K - means) 聚类算法属于划分法,该方 法需要输入聚类个数 k,然后对数据对象进行聚类, 输出满足方差最小标准的 k 个聚类,同一聚类中的 对象相似度较高,不同聚类中的对象相似度较低。

K - means 聚类是根据数据对象之间的相似度来间接聚类的,是无监督的学习方法。

蚁群聚类

蚁群聚类算法是 1991 年由 Deneubourg 提出 的,而 Lumer 和 Faieta 将蚁群聚类算法模型应用到 了数据分析的领域,所以蚁群聚类算法尚且还是一 种比较新颖的算法。蚁群聚类算法是结合蚂蚁选择觅食路径的行为和蚁群在蚁穴中将散落的蚂蚁尸体堆积成堆来清理的行为实现聚类的。蚁穴清理的行为是蚂蚁堆越大,越吸引工蚁搬运过去,因此,数据的空间分布直接影响聚类结果。

DBSCAN 聚类

DBSCAN ( Density - Based Spatial Clustering of Application with Noise) 聚类算法是一种基于密度的聚类算法。该算法是在 1996 年由 Ester 等提出的一种简单又有效的聚类算法。算法可描述为: 在某些空间中给定一组点,它将位置紧密靠在一起的点(与许多邻近邻域的点) 组合在一起,标记为异常值点,单独存在低密度区域 ( 其与最近的邻域点距离太远) 。DBSCAN 算法是对数据样本进行划分的聚类算法,且事先并不需要知道数据样本的标签,是一种非监督的聚类算法。核心点( Core Point) 是指在该点的聚类半径 ε 中,若是含有超过设定参数MinPts 数量的点,则该点被称为核心点。边界点( Border Point) 是指在该点的聚类半径 ε 中,点的数量小于所设定的参数 MinPts,那么就不属于核心点,但是该点又落在核心点的邻域之中,则称该点为边界点。噪音点( Noise Point) 是指在该点的聚类半径 ε 中,点的数量小于所设定的参数 MinPts,那么就不属于核心点,但是该点又不落在任一核心点的邻域之中,那么该点被称为噪音点。

支持向量机 Support Vector Machine, SVM

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。

scikit-learn封装模块的SVM编程实现。

# 导入模块import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svm, datasets%matplotlib inline# 鸢尾花数据iris = datasets.load_iris()X = iris.data[:, :2] # 为便于绘图仅选择2个特征y = iris.target# 测试样本(绘制分类区域)xlist1 = np.linspace(X[:, 0].min(), X[:, 0].max(), 200)xlist2 = np.linspace(X[:, 1].min(), X[:, 1].max(), 200)XGrid1, XGrid2 = np.meshgrid(xlist1, xlist2)# 非线性SVM:RBF核,超参数为0.5,正则化系数为1,SMO迭代精度1e-5, 内存占用1000MBsvc = svm.SVC(kernel='rbf', C=1, gamma=0.5, tol=1e-5, cache_size=1000).fit(X, y)# 预测并绘制结果Z = svc.predict(np.vstack([XGrid1.ravel(), XGrid2.ravel()]).T)Z = Z.reshape(XGrid1.shape)plt.contourf(XGrid1, XGrid2, Z, cmap=plt.cm.hsv)plt.contour(XGrid1, XGrid2, Z, colors=('k',))plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', linewidth=1.5, cmap=plt.cm.hsv)

标签: #聚类算法模型