首页 > 其他分享 >聚类

聚类

时间:2022-10-24 19:58:24浏览次数:57  
标签:分割 plt img cluster 聚类 import

目录

1. 10种比较流行的聚类算法

有许多不同的聚类算法,对于所有数据集没有单一的最佳方法。
10种比较流行的聚类算法:

亲和力传播 聚合聚类 BIRCH DBSCANK-均值
Mini-Batch K-均值Mean Shift OPTICS 光谱聚类高斯混合

用 make _ classification ()函数创建一个测试二分类数据集

# 综合分类数据集
from numpy import where
from sklearn.datasets import make_classification
from matplotlib import pyplot
# 定义数据集
X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, 
                           n_redundant=0, n_clusters_per_class=1, random_state=4)
# 为每个类的样本创建散点图
for class_value in range(2):
    # 获取此类的示例的行索引
    row_ix = where(y == class_value)
    # 创建这些样本的散布
    pyplot.scatter(X[row_ix, 0], X[row_ix, 1])
# 绘制散点图
pyplot.show()

!!!!注意代码的缩进

1.1 亲和力传播聚类

亲和力传播包括找到一组最能概括数据的范例。

我们设计了一种名为“亲和传播”的方法,它作为两对数据点之间相似度的输入度量。在数据点之间交换实值消息,直到一组高质量的范例和相应的群集逐渐出现
——源自:《通过在数据点之间传递消息》2007。

它是通过 AffinityPropagation 类实现的,要调整的主要配置是将“ 阻尼 ”设置为0.5到1,甚至可能是“首选项”。

# 亲和力传播聚类
from numpy import unique
from numpy import where
from sklearn.datasets import make_classification
from sklearn.cluster import AffinityPropagation
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 = AffinityPropagation(damping=0.9)
# 匹配模型
model.fit(X)
# 为每个示例分配一个集群
yhat = model.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()

运行该示例符合训练数据集上的模型,并预测数据集中每个示例的群集。然后创建一个散点图,并由其指定的群集着色。在这种情况下,我无法取得良好的结果。

1.2 聚合聚类

1.3 BIRCH聚类

1.4 DBSCAN聚类

1.5 K-均值聚类

1.6 Mini-Batch K-均值

1.7 Mean Shift

1.8 OPTICS聚类

1.9 光谱聚类

1.10 高斯混合

2. 基于聚类的图像分割

cluster-based-segmentation

图像分割大致分为2大类:语义分割实例分割

检测到的对象 — 语义段 — 实例段

分割方法:

● 基于区域的分割
● 基于边缘检测的分割
● 基于聚类的分割【聚类算法用于将彼此更相似的数据点从其他组数据点更紧密地分组。】
● 基于CNN的分割
● etc

apple-orange.jpg

from skimage.io import imread
from skimage.color import rgb2gray
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from scipy import ndimage
# Scaling the image pixels values within 0-1
img = imread('./apple-orange.jpg') / 255
plt.imshow(img)
plt.title('Original')
plt.show()


用来自 scikit-learn 的 K 均值算法对它们进行聚类

# For clustering the image using k-means, 
# we first need to convert it into a 2-dimensional array
image_2D = img.reshape(img.shape[0]*img.shape[1], img.shape[2])
# Use KMeans clustering algorithm from sklearn.cluster 
# to cluster pixels in image
from sklearn.cluster import KMeans
# tweak the cluster size and see what happens to the Output
kmeans = KMeans(n_clusters=5, random_state=0).fit(image_2D)
clustered = kmeans.cluster_centers_[kmeans.labels_]
# Reshape back the image from 2D to 3D image
clustered_3D = clustered.reshape(img.shape[0], img.shape[1], img.shape[2])
plt.imshow(clustered_3D)
plt.title('Clustered Image')
plt.show()


效果非常好,我们能够将五个部分组合在一起,这就是聚类分割的工作原理。目前有许多先进的技术,例如 Mask R-CNN,可以进行更细粒度的分割。

标签:分割,plt,img,cluster,聚类,import
From: https://www.cnblogs.com/Siemens/p/16822562.html

相关文章

  • 热图怎么提取图中聚类后的行基因名称
    我们在画热图的时候,行基因的顺序怎么轻松拿到呢?如果基因数量少可以直接看出来,但是如果有几百个,还用眼睛看,眼睛估计会看瞎,有没有更方便的方法获取?在谷歌上寻求方法:https......
  • 爱数科案例 | 汽车款式聚类
    爱数科平台是一款数据科学科研和教学一体化平台,集成数十行业数千数据集、科研案例模板。帮助科研人员快速使用大数据和人工智能技术开展研究。支持高校开展大数据通识课程教......
  • DBSCAN具有噪声的基于密度的聚类方法
     简介聚类:将原始数据分类(数据集->聚类算法->数据分组)目的:希望将数据根据特征的密度找相似性,分为指定或者若干数据组使用场景:简单的如将同颜色的球分类,或......
  • 蚁群聚类算法
    1.问题描述:2.部分程序:clc;clf;clear;%X=测试样本矩阵;X1=load('data.txt');X=X1(:,1:2);[N,n]=size(X);%N=测试样本数;n=测试样本的属性数;K=4;......
  • 模糊聚类的matlab仿真
    1.问题描述: 模糊聚类分析是一种采用​​模糊数学​​​语言对事物按一定的要求进行描述和分类的数学方法。 [1]  模糊聚类分析一般是指根据研究对象本身的属性来构造​......
  • Kmeans聚类算法详解
    摘要:本文详细介绍Kmeans聚类算法的原理和程序实现。首先介绍利用该算法的原理及理解,详细介绍基于MATLAB设计一个自定义的Kmeans函数过程,然后利用该函数对UCI的数据集进行聚......
  • 聚类算法中聚类数量的确定方法
    聚类算法中聚类数量的确定方法聚类算法是对实体进行分组归类的有效方法,也是有利于降低人力工作量的有效手段,例如先用AI聚类方法对实体数据进行聚类分组,再由人工介入指认,能......
  • 机器学习——聚类(K-Means)
    机器学习——聚类(K-Means)那是什么无监督学习——聚类聚类是基于相似对象将一组对象分组为类/类别的过程。聚类是一部分无监督学习.这种方法通常用于确定业务决策,特......
  • 基于密度的聚类如何工作(数据挖掘)
    基于密度的聚类如何工作(数据挖掘)PhotobyGanapathyKumaron不飞溅SSDBCODI:集成了异常值检测的半监督密度聚类(arXiv)作者:JiahaoDeng,伊莱·T·布朗抽象......
  • 用一个例子学习层次聚类
    用一个例子学习层次聚类H分层聚类真的用的不多,如果用scikit-learn的话,语法和其他模型差别不大,除了构造函数的参数。虽然几乎所有的sklearn模型总是被当作黑匣子使用......