机器学习(4)--层次聚类(hierarchical clustering)基本原理及实现简单图片分类

本文介绍了层次聚类(hierarchical clustering)的基本原理,并通过实例展示了其在简单图片分类中的应用。虽然图片相似度算法不完善,但对不同场景的生活照能进行大致分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于层次聚类(hierarchical clustering)的基本步骤:
1、假设每个样本为一类,计算每个类的距离,也就是相似度
2、把最近的两个合为一新类,这样类别数量就少了一个
3、重新新类与各个旧类(去了那两个合并的类)之间的相似度;
4、循环重复2和3直到所有样本点都归为一类

这个计算的过程,相当于重构一个二叉树,只是这个过程,是从树叶-->树枝-->树干的构建过程

本例将以14张图片,做为样本,进行聚类,点击这里  下载图片样本

以下是使用我提供的图片库生成的分类结果,以及一张PS修后对代码中各变量的说明



当然,你也可以自己定义一个目录,程序会读取目录下所有JPG图片

如果你用了自己的图片,在代码中的一此数据的变化说明,可能和使用产生的数据不同了,

同时,本文的主要目的是层次聚类(hierarchical clustering)的基本步骤,对于图片的相似度的算法并不完善,效果也并不是十分理想,不过如果你使用自己从手机中导入的生活照,不同的场景大致还是能分类出来的

# -*- coding:utf-8 -*-

from PIL import ImageDraw,Image
import numpy as np
import os
import sys


nodeList = []#用于存储所有的节点,包含图片节点,与聚类后的节点
distance = {}#用于存储所有每两个节点的距离,数据格式{(node1.id,no
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值