当前位置: 首页 > article >正文

Python实战:用中智集解决模糊决策问题(附完整代码)

Python实战用中智集解决模糊决策问题附完整代码在数据科学和机器学习领域决策问题往往伴随着不确定性。传统的模糊集理论已经无法完全满足复杂场景下的需求这时中智集Neutrosophic Set作为一种更强大的数学工具应运而生。它不仅考虑隶属度和非隶属度还引入了不确定性度量为处理现实世界中的模糊决策问题提供了更精细的框架。本文将带你深入理解中智集的核心概念并通过Python实战演示如何将其应用于用户画像、风险评估等实际场景。我们将从单值中智集的基础实现开始逐步扩展到区间中智集最后探讨与scikit-learn的集成方法和可视化技巧。1. 中智集基础与Python实现1.1 理解中智集的三个维度中智集的核心在于三个关键函数真隶属度(TA): 元素属于集合的程度假隶属度(FA): 元素不属于集合的程度不确定度(IA): 元素属于集合的不确定程度这三个值满足0 ≤ TA IA FA ≤ 3让我们用Python定义一个基础的中智集类class SingleValuedNeutrosophicSet: def __init__(self, ta, ia, fa): if not (0 ta ia fa 3): raise ValueError(TA IA FA must be in [0,3]) self.ta ta self.ia ia self.fa fa def __str__(self): return f{self.ta}, {self.ia}, {self.fa} def complement(self): return SingleValuedNeutrosophicSet(self.fa, self.ia, self.ta)1.2 单值中智集的基本运算中智集支持多种运算以下是Python实现的关键操作def union(s1, s2): ta max(s1.ta, s2.ta) ia min(s1.ia, s2.ia) fa min(s1.fa, s2.fa) return SingleValuedNeutrosophicSet(ta, ia, fa) def intersection(s1, s2): ta min(s1.ta, s2.ta) ia max(s1.ia, s2.ia) fa max(s1.fa, s2.fa) return SingleValuedNeutrosophicSet(ta, ia, fa) def score(s): 得分函数用于比较中智数 return (s.ta 1 - s.ia 1 - s.fa) / 32. 区间中智集的扩展实现区间中智集将单值扩展为区间提供了更大的灵活性。以下是Python实现class IntervalNeutrosophicSet: def __init__(self, ta_range, ia_range, fa_range): self.ta_low, self.ta_high ta_range self.ia_low, self.ia_high ia_range self.fa_low, self.fa_high fa_range if not (0 self.ta_high self.ia_high self.fa_high 3): raise ValueError(TA IA FA must be in [0,3]) def __str__(self): return f[{self.ta_low},{self.ta_high}], [{self.ia_low},{self.ia_high}], [{self.fa_low},{self.fa_high}] def to_single_valued(self, alpha0.5): 将区间中智集转换为单值中智集 ta alpha * self.ta_low (1-alpha) * self.ta_high ia alpha * self.ia_low (1-alpha) * self.ia_high fa alpha * self.fa_low (1-alpha) * self.fa_high return SingleValuedNeutrosophicSet(ta, ia, fa)3. 与scikit-learn的集成为了使中智集能够无缝融入现有的机器学习流程我们可以创建一个兼容scikit-learn的转换器from sklearn.base import BaseEstimator, TransformerMixin class NeutrosophicTransformer(BaseEstimator, TransformerMixin): def __init__(self, membership_func, indeterminacy_func, non_membership_func): self.membership_func membership_func self.indeterminacy_func indeterminacy_func self.non_membership_func non_membership_func def fit(self, X, yNone): return self def transform(self, X): result [] for x in X: ta self.membership_func(x) ia self.indeterminacy_func(x) fa self.non_membership_func(x) result.append([ta, ia, fa]) return np.array(result)使用示例def age_membership(age): if age 20: return 1.0 elif age 30: return 0.9 elif age 40: return 0.7 else: return 0.3 def age_indeterminacy(age): if age 25: return 0.1 elif age 35: return 0.3 else: return 0.2 def age_non_membership(age): if age 25: return 0.0 elif age 35: return 0.2 else: return 0.5 transformer NeutrosophicTransformer(age_membership, age_indeterminacy, age_non_membership) ages np.array([[22], [28], [45]]) neutrosophic_features transformer.transform(ages)4. 可视化技巧中智集的三维特性使其可视化具有挑战性。以下是几种有效的可视化方法4.1 三元图表示import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D def plot_neutrosophic_3d(points): fig plt.figure(figsize(10, 8)) ax fig.add_subplot(111, projection3d) for p in points: ax.scatter(p.ta, p.ia, p.fa) ax.set_xlabel(Truth Membership (TA)) ax.set_ylabel(Indeterminacy (IA)) ax.set_zlabel(False Membership (FA)) ax.set_title(Neutrosophic Set Visualization) plt.show()4.2 雷达图比较def plot_neutrosophic_radar(labels, sets): categories [TA, IA, FA] N len(categories) angles [n / float(N) * 2 * np.pi for n in range(N)] angles angles[:1] fig plt.figure(figsize(8, 8)) ax fig.add_subplot(111, polarTrue) ax.set_theta_offset(np.pi / 2) ax.set_theta_direction(-1) plt.xticks(angles[:-1], categories) ax.set_rlabel_position(0) plt.yticks([0.2, 0.4, 0.6, 0.8, 1.0], [0.2, 0.4, 0.6, 0.8, 1.0], colorgrey, size7) plt.ylim(0, 1) for i, s in enumerate(sets): values [s.ta, s.ia, s.fa] values values[:1] ax.plot(angles, values, linewidth1, linestylesolid, labellabels[i]) ax.fill(angles, values, alpha0.1) plt.legend(locupper right, bbox_to_anchor(0.1, 0.1)) plt.show()5. 实际应用案例用户画像让我们通过一个完整的用户画像案例来展示中智集的实际应用class UserProfile: def __init__(self): self.categories { tech_savvy: None, price_sensitive: None, brand_loyal: None } def add_category(self, name, neutrosophic_set): self.categories[name] neutrosophic_set def similarity(self, other): 计算两个用户画像的相似度 total 0 for cat in self.categories: s1 self.categories[cat] s2 other.categories[cat] # 使用余弦相似度变体 numerator s1.ta*s2.ta s1.ia*s2.ia s1.fa*s2.fa denominator (s1.ta**2 s1.ia**2 s1.fa**2)**0.5 * \ (s2.ta**2 s2.ia**2 s2.fa**2)**0.5 total numerator / denominator return total / len(self.categories) # 创建用户画像 user1 UserProfile() user1.add_category(tech_savvy, SingleValuedNeutrosophicSet(0.9, 0.1, 0.1)) user1.add_category(price_sensitive, SingleValuedNeutrosophicSet(0.3, 0.2, 0.6)) user1.add_category(brand_loyal, SingleValuedNeutrosophicSet(0.7, 0.3, 0.2)) user2 UserProfile() user2.add_category(tech_savvy, SingleValuedNeutrosophicSet(0.8, 0.2, 0.2)) user2.add_category(price_sensitive, SingleValuedNeutrosophicSet(0.4, 0.3, 0.5)) user2.add_category(brand_loyal, SingleValuedNeutrosophicSet(0.6, 0.4, 0.3)) print(f用户相似度: {user1.similarity(user2):.2f})6. 性能优化与高级技巧当处理大规模数据时我们需要考虑性能优化import numpy as np from numba import njit njit def fast_neutrosophic_operation(ta1, ia1, fa1, ta2, ia2, fa2, operationunion): if operation union: ta max(ta1, ta2) ia min(ia1, ia2) fa min(fa1, fa2) elif operation intersection: ta min(ta1, ta2) ia max(ia1, ia2) fa max(fa1, fa2) return ta, ia, fa # 批量处理示例 def batch_operation(set1, set2, operationunion): ta1 np.array([s.ta for s in set1]) ia1 np.array([s.ia for s in set1]) fa1 np.array([s.fa for s in set1]) ta2 np.array([s.ta for s in set2]) ia2 np.array([s.ia for s in set2]) fa2 np.array([s.fa for s in set2]) results [] for t1, i1, f1, t2, i2, f2 in zip(ta1, ia1, fa1, ta2, ia2, fa2): ta, ia, fa fast_neutrosophic_operation(t1, i1, f1, t2, i2, f2, operation) results.append(SingleValuedNeutrosophicSet(ta, ia, fa)) return results在实际项目中我发现将中智集与传统的机器学习算法结合时特征工程阶段最为关键。通常需要设计特定的转换函数将中智集的三个维度合理地映射到模型可理解的特征空间。

相关文章:

Python实战:用中智集解决模糊决策问题(附完整代码)

Python实战:用中智集解决模糊决策问题(附完整代码) 在数据科学和机器学习领域,决策问题往往伴随着不确定性。传统的模糊集理论已经无法完全满足复杂场景下的需求,这时中智集(Neutrosophic Set)作…...

银监会G01报表填报避坑指南:最新251版与231版差异全解析

G01报表251版与231版差异解析:银行填报人员必知的12个关键点 每当季度报表报送季来临,银行填报人员总会面临版本更新带来的困扰。G01《资产负债项目统计表》作为银监会1104报表体系中最核心的报表之一,其251版与231版之间的差异直接影响着数据…...

实验室旧服务器(Ubuntu 18)无网环境,如何用Ollama+DeepSeek R1搭建本地AI助手(附Open WebUI白屏解决方案)

在Ubuntu 18无网环境中部署Ollama与DeepSeek R1的完整指南 老旧服务器往往面临系统版本过时、网络隔离等现实约束,但这并不妨碍我们挖掘其剩余价值。本文将手把手带您完成Ubuntu 18系统下的离线AI助手部署,重点解决无网环境带来的特殊挑战。 1. 环境准备…...

永磁同步电机PMSM参数辨识与SVPWM矢量控制仿真探索

永磁同步电机PMSM参数辨识svpwm矢量控制 初试速度恒定 Matlab/simulink仿真(2018a及以上版本),最近在搞永磁同步电机(PMSM)相关的研究,涉及到参数辨识以及SVPWM矢量控制,并且初试速度恒定,用的是Matlab/Sim…...

双向Buck-Boost变换器:电压外环与电流内环控制的平均电流管理技术,实现模式切换无过压过...

双向buck-boost变换器, 采用电压外环, 电流内环控制, 平均电流控制。 在buck模式与boost模式之前切换时,不会发生过压与过流。 该拓补可以用于储能中。双向buck-boost变换器最近在储能领域火得不行,这玩意儿既能当充电…...

从CMT2300A实战出发:Sub1G射频匹配电路设计要点与315MHz应用详解

1. CMT2300A芯片与Sub1G射频基础认知 第一次拿到CMT2300A这颗国产Sub1G射频芯片时,最吸引我的是它127MHz到1020MHz的超宽工作频段。这意味着一颗芯片就能覆盖智能家居、工业遥控等场景常用的315MHz/433MHz/868MHz等多个频点。不过实际调试中发现,射频匹配…...

Comsol 中光子晶体仿真:拓扑荷、偏振态及相关特性探索

comsol光子晶体仿真,拓扑荷,偏振态。 三维能带,三维Q,Q因子计算。 远场偏振计算。在光子晶体领域的研究中,Comsol 是一款极为强大的工具,它能帮助我们深入探究各种复杂的光学现象,今天咱们就聊聊…...

半波整流电路DIY实战:从零搭建一个简易电源(附波形实测对比)

半波整流电路DIY实战:从零搭建一个简易电源(附波形实测对比) 在电子制作的世界里,电源电路就像人体的心脏,为各种电子设备提供稳定的能量。而半波整流电路,则是电源设计中最基础也最经典的入门项目。不同于…...

Comsol 下复合绝缘子的仿真探索

Comsol 复合绝缘子仿真,包括污秽种类、污秽附着面积等对绝缘子电场分布、绝缘子污闪电压的影响。 绝缘子电-热-流耦合分析,电势分布线图。在电力系统领域,复合绝缘子的性能研究至关重要。今天咱们就来聊聊利用 Comsol 软件对复合绝缘子进行的…...

Comsol中光子晶体光纤相关特性计算漫谈

comsol光子晶体光纤有效折射率,模式色散,有效模式面积计算,在光子学领域,光子晶体光纤以其独特的光学特性备受关注。今天咱就唠唠在Comsol里计算光子晶体光纤的有效折射率、模式色散以及有效模式面积这几个关键参数。 有效折射率计…...

霍尔木兹海峡:帝国黄昏的祭坛?

【桥水基金创始人瑞达利欧3月16日发布一则可怕的警告:美国、以色列和伊朗之间的冲突将围绕霍尔木兹海峡展开决定性对抗,受其结果影响的将远不止石油价格。它将决定美国领导的全球秩序能否存续。】当达利欧将霍尔木兹海峡的波涛与1956年苏伊士运河的硝烟重…...

人-机交互是新文科与新理科融合的最佳窗口

人机交互(Human-Machine Interaction, HMI)作为一门交叉学科,本质上是技术与人文的深度融合,其发展过程中天然蕴含着“新文科”与“新理科”的双重基因。这里的“新文科”强调人文社科的创新性转型(如跨学科融合、技术…...

人机协作的核心困局,终于被这篇顶会论文破解了

字数 2393,阅读大约需 12 分钟人机协作的核心困局,终于被这篇顶会论文破解了你有没有想过,为什么明明AI的独立准确率比人高,人机一起做决策时,效果反而还不如AI单独干?从医疗影像诊断到校园招聘筛选&#x…...

从零到全网通:一个实验彻底搞懂VLAN、三层交换与静态路由(华为eNSP实战)

摘要:你是不是也遇到过这种情况——VLAN配好了,接口也亮了,但不同网段的PC就是ping不通?别慌,这几乎是每个网络初学者的“必经之路”。今天,我用一个包含3台路由器、4台三层交换机、5台二层交换机、8台PC的复杂实验,带你从头到尾跑通一次。我会用“建房子”的比喻,把终…...

交换机堆叠与集群完全指南:从入门到实战,一篇搞定所有难题

引言 在构建或维护一个中型到大型网络时,你是否遇到过这样的困扰:一台交换机的端口不够用?管理十几台交换机需要来回切换IP地址太麻烦?万一核心设备宕机,网络就全线瘫痪? 其实,解决这些问题的钥匙就藏在“堆叠”和“集群”这两项技术里。很多人对这两个概念一知半解,…...

人工智能如何改变 Anthropic 的工作方式47

如果有一天,你走进公司,发现写代码、查 bug、跑实验的大部分体力活,都已经由一位看不见的 AI 搭档在后台悄悄完成了——而你更多是在提问题、定方向、做决策,而不是一行行敲代码,这会是什么感觉?是兴奋&…...

人工智能如何改变 Anthropic 的工作方式60

如果有一天,你走进公司,发现写代码、查 bug、跑实验的大部分体力活,都已经由一位看不见的 AI 搭档在后台悄悄完成了——而你更多是在提问题、定方向、做决策,而不是一行行敲代码,这会是什么感觉?是兴奋&…...

避险不是投机,黄金定投方为正道

很多人将黄金投资等同于投机博弈,妄图靠梭哈博取短期暴涨的暴利,甚至跟风追涨杀跌、加杠杆博弈短期行情,这是对黄金核心价值的极大误解。黄金跨越千年的硬通货属性,决定了它的核心定位是资产的避险压舱石、通胀的对冲工具&#xf…...

Excel规划求解后别急着关!手把手教你读懂‘敏感性报告’,让决策更稳

Excel规划求解后别急着关!手把手教你读懂‘敏感性报告’,让决策更稳 当你用Excel的规划求解功能找到最优解后,是否曾盯着生成的"敏感性报告"一头雾水?这份看似晦涩的报告里,藏着能让你的商业决策从"大概…...

Halcon直线查找进阶:fit_line_contour_xld算子的替代方案与性能优化

Halcon直线查找进阶:超越fit_line_contour_xld的五大实战方案 在工业视觉检测领域,直线查找是最基础却最考验功力的操作之一。当标准算子无法满足特殊场景需求时,开发者需要掌握更灵活的解决方案。本文将深入剖析五种实战验证过的替代方案&am…...

用Bash脚本构建AI编码助手:learn-claude-code项目技术解析

最近GitHub上出现了一个有趣的项目learn-claude-code,仅用Bash脚本就实现了一个完整的AI编码助手。这个项目迅速登上热门榜单,引发了开发者社区的广泛讨论。本文将深入解析这个项目的技术实现,分享实际应用场景。 项目概述 基本信息 项目地址…...

XSLFO与XSLT:深入解析XML的转换与格式化技术

XSLFO与XSLT:深入解析XML的转换与格式化技术 引言 在XML技术的世界中,XSLFO(XSL Formatting Objects)与XSLT(XSL Transformations)是两个至关重要的组成部分。它们在XML到其他格式(如PDF、HTML)的转换过程中扮演着关键角色。本文将深入探讨XSLFO与XSLT的工作原理、应…...

格式总出错?全场景通用论文神器 —— 千笔·专业学术智能体

你是否曾为论文开题绞尽脑汁?是否曾在深夜面对空白文档文思枯竭?是否反复修改却总对表达不满意?如果你正在经历这些学术写作的经典困境,那么,是时候认识一下正在改变万千学生论文写作方式的创新工具——千笔AI。它不仅…...

【实战】ERPS主子环网在新能源电站中的高效配置与故障恢复

1. ERPS主子环网在新能源电站中的核心价值 新能源电站作为新型电力系统的重要组成部分,对通信网络的可靠性有着近乎苛刻的要求。以光伏电站为例,逆变器、箱变、汇流箱等设备产生的实时数据需要毫秒级上传至监控系统,任何网络中断都可能导致功…...

54321

54321...

用STM32F103C8T6最小系统板驱动HC-SR04超声波模块,手把手教你做个简易测距仪(附完整代码)

基于STM32F103C8T6与HC-SR04的智能测距系统开发实战 在电子设计竞赛和创客项目中,低成本高性能的解决方案总是备受青睐。STM32F103C8T6最小系统板以其出色的性价比成为学生和爱好者的首选,而HC-SR04超声波模块则是距离检测领域的经典选择。本文将带您从零…...

7车位立体车库组态王6.53仿真程序:急停功能解析

7七车位立体车库组态王6.53仿真程序3,带急停功能嘿,各位技术爱好者!今天咱来聊聊7车位立体车库在组态王6.53环境下的仿真程序,特别是其中超关键的急停功能。 一、立体车库背景 7车位立体车库在现代停车场景中越来越常见&#xff0…...

《QGIS快速入门与应用基础》231:图例项目管理(添加/删除/排序)

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…...

SolidWorks转V-REP实战:Xmate3 Pro机械臂模型导入与关节设置避坑指南

SolidWorks转V-REP实战:Xmate3 Pro机械臂模型导入与关节设置避坑指南 在机器人仿真领域,将CAD模型准确导入仿真环境是项目成功的第一步。本文将以Xmate3 Pro机械臂为例,深入解析从SolidWorks到V-REP的完整工作流,特别针对模型比例…...

深入LLM黑盒:我是如何通过‘复制头’和‘知识FFN’找到RAG幻觉元凶的

解码LLM幻觉:从复制头失效到知识FFN过度活跃的深度追踪 当大型语言模型(LLM)与检索增强生成(RAG)技术结合时,理论上应该产生更准确的回答。但现实中,我们常常遇到一个令人困惑的现象&#xff1a…...