(九)密度聚类、层次聚类和轮廓系数[机器学习代码实现]

    机器学习课程总结,本系列文章代码注释为主。
    理论部分搬至博客上比较耗费时间,所以缺少理论部分。但是也欢迎大家一起探讨学习。
    如果需要理论部分的讲义,可私信(个人觉的讲的很好很全)。

文章目录

  • 问题需求
  • 代码一(密度聚类)
  • 代码2(层次聚类)
  • 代码3(轮廓系数)
  • 总结

问题需求

现有如下样本:

(0,0), (2,1),(2,-1), (2.1,0),(4.1,0), (5,0)

1、请使用密度聚类算法DBSCAN在半径是1.1,MinPts分别为2和3的情况下,给出聚类结果。

要求简要写出一种情况下的计算过程,另一种情况可以直接给出结果。

2、请使用层次聚类算法AGNES在k=2和3的情况下,给出聚类结果。其中,簇与簇之间的距离选择最小距离。
3、针对如下样本:(0,0), (2,1),(2,-1), (2.1,0),(4.1,0), (5,0),现有聚类模型将其聚为三类:C1={(0,0)}, C2={(2,1),(2,-1), (2.1,0)} C3={(4.1,0), (5,0)}。请计算该模型的轮廓系数silhouette coefficient。

代码一(密度聚类)

(九)密度聚类、层次聚类和轮廓系数[机器学习代码实现]_第1张图片
(九)密度聚类、层次聚类和轮廓系数[机器学习代码实现]_第2张图片

# -*- coding: utf-8 -*-#
# Author: xhc
# Date:    2021-06-20 19:56
# project:  0524
# Name:    密度聚类.py


from sklearn.cluster import DBSCAN
import numpy as np

import matplotlib.pyplot as plt
data=[[0,0],
      [2,1],
      [2,-1],
      [2.1,0],
      [4.1,0],
      [5,0]]
data=np.array(data)

model = DBSCAN(eps=1.1,min_samples=2) #两个参数分别表示半径和数量
#model = sklearn.cluster.DBSCAN(eps=1.1,min_samples=3)

model.fit(data

你可能感兴趣的:(机器学习笔记,机器学习)