【发布时间】:2021-12-19 04:15:00
【问题描述】:
我想对我使用 make circles 生成的 3 个圆数据集执行光谱聚类,如图所示。这三个圆圈都属于不同的类别。
from sklearn.datasets import make_circles
import seaborn as sns
import pandas as pd
import numpy as np
from sklearn.cluster import SpectralClustering
import matplotlib.pyplot as plt
import pylab as pl
import networkx as nx
X_small, y_small = make_circles(n_samples=(100,200), random_state=3,
noise=0.07, factor = 0.7)
X_large, y_large = make_circles(n_samples=(100,200), random_state=3,
noise=0.07, factor = 0.4)
y_large[y_large==1] = 2
df = pd.DataFrame(np.vstack([X_small,X_large]),columns=['x1','x2'])
df['label'] = np.hstack([y_small,y_large])
df.label.value_counts()
sns.scatterplot(data=df,x='x1',y='x2',hue='label',style='label',palette="bright")
【问题讨论】:
-
另外,你想要绘制的不是很清楚
-
我做了一些更改,请您再次查看问题@StupidWolf。
-
这个问题在stackoverflow.com/a/67470814/8044858这里已经有了答案(只需更改
SpectralClustering()参数)。例如,在我的实验中,SpectralClustering(gamma=1000)在您的代码中找到了具有n_samples=(1000,2000)和factor = 0.1/factor = 0.6的3 个集群。
标签: python machine-learning scikit-learn data-science cluster-analysis