【模糊数学】不确定性计算实验一

不确定性计算实验一

实验题目:

1.模糊动态聚类
基本要求:自己构造矩阵或采用给定数据,完成模糊动态聚类,画出动态聚类图。数据采用课件中的即可。
提高:给出lambda的最优取值,并说明为什么。

Lambda取值的评判标准一般有:划分系数、子集测度、Xie-Beni 指标、F统计指标、模糊相关度,或者简单的“相同类样本之间距离最近,不同类样本之间距离最远”。

参考数据:

数据参考第三章课程示例:

【模糊数学】不确定性计算实验一_第1张图片
【模糊数学】不确定性计算实验一_第2张图片
算法流程:

  • 特性指标矩阵最大值标准化

  • 最大最小法构造模糊相似矩阵R
    【模糊数学】不确定性计算实验一_第3张图片

  • 平方法合成传递闭包

  • 轮廓系数评估最佳λ取值

这里采用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

你可能感兴趣的:(python,python,聚类,数据分析)