首页 > 编程知识 正文

sklearn聚类分析,kmeans聚类算法适用于哪些类型分布的样本

时间:2023-05-03 10:21:21 阅读:189387 作者:1064

聚类算法是一种非常重要的算法模型在实际应用实践中经常被使用最近的工作型多偏向于使用有监督学习型模型,而无监督算法模型的使用相对较少。 今天我们简单地回到聚类算法模型。 主要使用k均值模型和DBSACN模型。

这两个模型在聚类算法领域可以说是具有代表性的算法。 前者是基于样本之间距离的聚类,后者是基于样本集合密度的聚类。 令人意外的是,两者的本质是最终达到集群间距离最大并且集群内距离最小的目的。

本想好好介绍一下原理,突然想了想,就越想越多。 这里不说明原理。 网上也有很多关于原理的解说报道,请看一下。 这里主要是在实践中使用分析。

要使用聚类算法,首先需要数据集。 为了简单起见,这里直接使用sklearn提供的数据集生成模块来直接生成所需的数据集。 具体实施如下。

defgetclusterdata(flag=true,ns=1000,nf=2,centers=[[-1,-1],[ 1,1 ],[ 2,2 ], cluster_STD=0.2 ) ) : ()得到的回归数据centers (以簇为中心的个数或以自定义簇为中心的cluster_std ) )、簇数据方差表示簇的聚集程度)、iii factor=.6,noise=.05(else:cluster_x,cluster _ y=datasets.make _ blobs (n _ samples=ns,n _ featu n ) )

然后对原始生成的数据集进行划分,生成训练集和测试集。 具体的实施方法如下。

defdatasplit(dataset,label,ratio=0.3 ) :“”数据集分割-----训练集、测试集“”try: X_train,x label=NP.array(dataset ),NP.array (label ) X_train,X_test,y ) )。 test _ size=ratio---------split _ data shape-------split _ data shape-------- len (y _ tratrath )

然后,需要做一点在加载中使用模型持久性的工作。 这也是机器学习或深度学习的重要组成部分。 随着数据聚集的增加,每次使用模型时,重复训练模型的时间或计算成本都会增加,因此必须对训练过的模型执行持久化操作。 具体的实施方法如下。

defsavemodel(model,save_path='model.pkl ' ) :“”模型持久性存储“' job lib.dump”model,save_path ) priprid defloadmodel (model _ path=' model.pkl ' ) :“”本地模型“' model=joblib.load ) model _ path”return model

完成上述所有工作后,开始构建和使用模型。 具体情况如下。

efclustermodel(flag=true ) :“”k means算法的关键参数(n_clusters )数据集的类别数目DBSCAN算法的关键参数(EPS ) DBS 超出与采样距离的采样点不在-邻域中,min_samples: DBSCAN算法参数,即采样点成为核心所需的-邻域的采样数阈值“”x,y=getclusterdata cluster _ STD=[ 0.4,0.5,0.2 ] (x _ train,X_test,y_train,y_test=datasplit(x,y, ratio=0.3 ) #出图random_state=9) model.fit(x_train ) y_pred=model.predict ) x_test ) PLT.subplot (t ) DESCAN模型)以下步骤出错: attribute error : ' DBS can ' objecthasnoattributtute model=DBS can (EPS=0. 1,min _ sampamp min _ samples=10 (.fit _ predict (x_test ) PLT.subplot ) 122 ) PLT.scatter ) x _ test ) 3360,0 ), x _ test c=y _ pred (PLT.title (dbscanclusterresult ) ) ifflag:PLT.savefig ) Circledata.png ) else 3360 PLT.ST

Circle数据集模型的结果:

非Circle数据集模型的结果:

总体而言,上述两个数据集KMeans的综合表示优于DBSACN模型,这是一个简单的实验说明,为了熟悉这两个常见的聚类模型的使用,将进行记录学习。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。