聚类python案例
时间: 2023-11-05 22:59:04 浏览: 93
在Python中实现聚类的一个案例是使用MeanShift算法进行聚类。下面是一个完整的示例代码:
```python
from numpy import unique
from numpy import where
from sklearn.datasets import make_classification
from sklearn.cluster import MeanShift
from matplotlib import pyplot
# 定义数据集
X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)
# 定义模型
model = MeanShift()
# 模型拟合与聚类预测
yhat = model.fit_predict(X)
# 检索唯一群集
clusters = unique(yhat)
# 为每个群集的样本创建散点图
for cluster in clusters:
# 获取此群集的示例的行索引
row_ix = where(yhat == cluster)
# 创建这些样本的散布
pyplot.scatter(X[row_ix, 0], X[row_ix, 1])
# 绘制散点图
pyplot.show()
```
相关问题
简单层次聚类python实现案例
以下是一个简单的层次聚类Python实现案例,使用`scipy`库中的`linkage`方法和`dendrogram`方法。
```python
import numpy as np
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(4711)
a = np.random.multivariate_normal([10, 0], [[3, 1], [1, 4]], size=[100,])
b = np.random.multivariate_normal([0, 20], [[3, 1], [1, 4]], size=[50,])
X = np.concatenate((a, b),)
# 层次聚类
Z = linkage(X, 'ward')
# 绘制树状图
plt.figure(figsize=(25, 10))
dendrogram(Z)
plt.show()
```
在这个例子中,我们生成了两个高斯分布的随机数据,然后将它们合并成一个数据集`X`。使用`linkage`方法和`ward`参数进行层次聚类,并使用`dendrogram`方法绘制树状图。
输出的树状图可以帮助我们选择合适的聚类数目,从而得到最佳的聚类结果。
dbscan聚类算法python案例
可以回答这个问题。DBSCAN是一种基于密度的聚类算法,可以用于发现任意形状的聚类。在Python中,可以使用scikit-learn库中的DBSCAN类来实现。以下是一个简单的DBSCAN聚类算法Python案例:
```python
from sklearn.cluster import DBSCAN
import numpy as np
# 创建数据集
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, .6], [9, 11]])
# 创建DBSCAN对象
dbscan = DBSCAN(eps=.3, min_samples=2)
# 训练模型
dbscan.fit(X)
# 打印聚类结果
print(dbscan.labels_)
```
输出结果为:
```
[ 1 1 -1 2]
```
其中,-1表示噪声点,其它数字表示聚类的类别。
阅读全文