Python实现基于TSK模糊聚类的预测模型及性能评估

本文提供了一段修正后的Python代码,该代码使用TSK模糊聚类方法构建预测模型,并计算了模型的性能指标CRMSE和CMAPE。pythonimport numpy as npimport skfuzzy as fuzz

成分数据矩阵data = np.array([[0.758, 0.171, 0.049, 0.022], [0.758, 0.172, 0.047, 0.023], ... [0.562, 0.179, 0.175, 0.084]])

计算熵序列entropy_sequence = -np.sum(data * np.log2(data), axis=1)

TSK模型参数设置N = 5 # 集群数cntr, u_orig, _, _, _, _, _ = fuzz.cluster.cmeans(data.T, N, 2, error=0.005, maxiter=1000, init=None)

TSK模型预测target_values = np.zeros_like(entropy_sequence)for i in range(len(entropy_sequence)): alphas = u_orig[:, i] # 获取隶属度 rules = np.argmax(u_orig, axis=0)[i] # 获取控制规则 target_values[i] = np.mean(data[i]) + alphas[rules] * (np.std(data[i]) / np.std(entropy_sequence)) * (entropy_sequence[i] - np.mean(entropy_sequence))

CRMSE计算crmse = np.sqrt(np.mean((entropy_sequence - target_values)**2))

CMAPE计算cmape = np.mean(np.abs(entropy_sequence - target_values) / entropy_sequence) * 100

print('CRMSE: ', crmse)print('CMAPE: ', cmape)

代码解读:

  1. 导入库: 导入NumPy和scikit-fuzzy库。2. 准备数据: 定义成分数据矩阵data,并计算熵序列entropy_sequence。3. TSK模型训练: - 设置TSK模型参数,如集群数N。 - 使用fuzz.cluster.cmeans()函数进行模糊聚类,获得隶属度矩阵u_orig。4. TSK模型预测: - 遍历每个样本,根据隶属度矩阵和控制规则计算目标值target_values。5. 模型评估: - 计算模型的性能指标CRMSE和CMAPE。

注意事项:

  • 请确保已安装NumPy和scikit-fuzzy库。- 代码中使用了数据矩阵的转置data.T,以确保隶属度矩阵的维度正确。

希望这段代码能够帮助你理解和应用TSK模糊聚类方法进行预测!

Python实现基于TSK模糊聚类的预测模型及性能评估

原文地址: https://www.cveoy.top/t/topic/cgTC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录