实验题目:
1.模糊动态聚类
基本要求:自己构造矩阵或采用给定数据,完成模糊动态聚类,画出动态聚类图。数据采用课件中的即可。
提高:给出lambda的最优取值,并说明为什么。
Lambda取值的评判标准一般有:划分系数、子集测度、Xie-Beni 指标、F统计指标、模糊相关度,或者简单的“相同类样本之间距离最近,不同类样本之间距离最远”。
参考数据:
数据参考第三章课程示例:
算法流程:
-
特性指标矩阵最大值标准化
-
最大最小法构造模糊相似矩阵R
-
平方法合成传递闭包
-
轮廓系数评估最佳λ取值
这里采用python代码实现上述各步,部分参考代码如下:
# -*- coding:utf-8 -*-
# Jonathan.K.Wolf
# 2022/4/17
def normalize(matrix):
# 存储每列最大值的数字
max_num = []
for j in range(len(matrix[0])):
max_ = matrix[0][j]
for i in range(len(matrix)):
if matrix[i][j] >= max_:
max_ = matrix[i][j]
max_num.append(max_)
# 构建标准化后的矩阵
res = []
# for i in range(len(matrix)):
# res.append([])
for i in range(len(matrix)):
for j in range(len(matrix[0])):
a = matrix[i][j] / max_num[j]
# a = round(a, 2)
res[i].append(a)
return res
def max_min(matrix):
res = []
# for i in range(len(matrix)):
# res.append([])
for i in range(len(matrix)):
for j in range(len(matrix)):
a = 0
b = 0
for k in range(len(matrix[0])):
a += min(matrix[i][k], matrix[j][k])
b += max(matrix[i][k], matrix[j][k])
c = a / b
# c = round(c, 2)
res[i].append(c)
return res
提高部分代码+完整代码模板:
https://download.csdn.net/download/weixin_52456426/85168134
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)