写点什么

机器学习 - 聚类算法

  • 2022 年 7 月 11 日
  • 本文字数:878 字

    阅读完需:约 3 分钟

机器学习-聚类算法

俗话说的:“物以类聚,人以群分”。聚类是一个把数据对象划分成子集的过程,每个子集是一个簇(cluster),使得簇中的对象彼此相似,但与其他簇中的对象不相似。聚类成为自动分类,聚类可以自动的发现这些分组,这是突出的优点。

聚类无需样本标注,无监督聚类,主要用来研究数据自身的特点。


经典聚类主要包括

  • Kmeans 聚类

  • 混合高斯模型

  • DBSCAN 密度聚类算法


为了说明算法,采用著名的 iris 数据集合为实验数据。

from sklearn import cluster, datasets
import pandas as pd
import numpy as npfrom sklearn
import preprocessing
iris = datasets.load_iris()
X_iris = iris.data
y_iris = iris.target
iris.target_names
复制代码



1.Kmeans 聚类

Kmeans 算法,属于基于划分的聚类算法。每个聚簇都有一个质心,通过聚簇的均值来迭代质心,使得所有聚簇下所有数据到质心的距离最短

关键参数:

  • 聚类个数 K

  • random_state 随机数种子: 初始聚类中心随机种子

随机数 K 根据业务确认,或者经过多次尝试,使得质心离数据距离最小

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3, random_state=0).fit(X_iris)
print(kmeans.labels_)
复制代码


2.混合高斯模型

数据可以看作是从数个 Gaussian Distribution(正态分布)中生成出来的,数据可看成是多个高斯模型线性组合,利用 EM 算法估计高斯模型的密度参数 ## 就可获得混合高斯模型的密度参数,进而获得某个数据点归属某个高斯模型的概率。


  • 关键参数:n_components 模型个数

from sklearn import mixture
gmm = mixture.GaussianMixture(n_components=4, covariance_type='full').fit(X_iris)
gmm.predict(X_iris)
复制代码

3.DBSCAN 密度聚类算法

基于密度的聚类算法。通过连接半径(eps)内样本的个数(min_samples)确定是否密度连接。密度连接在一起的样本集合为一个簇。

DBSCAN 可以适应不同形状的簇,如环形。 还可以用来识别异常点(离群点)


关键参数:这两个参数为确定是否是密度相联

  • eps : 连接半径

  • min_samples: 连接半径内的样本个数


from sklearn.cluster import DBSCAN
x=preprocessing.scale(X_iris)
db = DBSCAN(eps=1, min_samples=8).fit(x)
db.labels_
复制代码






发布于: 刚刚阅读数: 3
用户头像

公众号:人工智能微客(weker) 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
机器学习-聚类算法_机器学习_AIWeker-人工智能微客_InfoQ写作社区