k-means:首先确定聚类的个数,再根据均值不断调整直至收敛
DBSCAN:基于密度的DBSCAN切割算法,密度相连对象的最大集合
层次聚类:
图分裂:从顶至下
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_circles,make_blobs,make_moons#可以使用提供的数据集供学习使用
from sklearn.cluster import KMeans,DBSCAN,AgglomerativeClustering
n_samples=1000 #定义1000个样本点进行聚类操作
##构造样本点
circles=make_circles(n_samples=n_samples,factor=0.5,noise=0.05)#factor指定小圆和大圆的间距
moons=make_moons(n_samples=n_samples,noise=0.05)
blobs=make_blobs(n_samples=n_samples,random_state=8,center_box=(-1,1),cluster_std=0.1)
random_data=np.random.rand(n_samples,2),None
colors="bgrcmyk"
data=[circles,moons,blobs,random_data] #4个数据集
models=[("None",None),("Kmeans",KMeans(n_clusters=2)),
("DBSCAN",DBSCAN(min_samples=3,eps=0.2)),
("A