![514254466067f9bea0b93ead98bf197c.png](https://img-blog.csdnimg.cn/img_convert/514254466067f9bea0b93ead98bf197c.png)
写在前面
模糊数学是国内外许多工学、管理学研究生以上的选修甚至必修课程。但对于非数学专业而言,掌握模糊数学的各种计算方法、了解各种方法的用途(应用场景)其实要比理解模糊数学的“数学”理论要重要得多。目前在Matlab等数学工具中其实也有相应的模糊数学工具箱(参见:Fuzzy Logic ToolboxFuMatlab Fuzzy Logic工具箱),但这些专业的工具中其实集成的都是比较复杂的方法,比如模糊控制一类。另外以前也有一些学者开发过基于C的工具箱,但对于非计算机、信息类专业而言,C库实在也太麻烦。
相比之下,Python对于绝大多数非计算机、信息类专业的学生和研究人员而言都要简单很多,并且也可以作为长期使用的一门工具语言。
当然,我们很懒!所以就去找了一圈写好的模糊数学库,也就是本文要介绍的这个库-scikit-fuzzy。
一、概览和安装
项目主页:User Guide - skfuzzy v0.2 docs
Github主页:scikit-fuzzy/scikit-fuzzy
在这两个主页上其实看不出什么有价值的内容,需要点进相关的页面才能看清楚。最主要的功能介绍在API documentation 和User Guide上。
主要模块:
- Module:cluster :模糊聚类
- Module:control:模糊控制
- Module:defuzzify:模糊化与去模糊化
- Module:filters :模糊滤波
- Module:fuzzymath :模糊数学基础内容
- Module:image:图象相关内容
- Module:`intervals` :区间数与模糊数
- Module:membership:模糊隶属度函数
另外,这个库比较不地道的一点是这些模块虽然分开放了,但其实又全部放在总的根目录
skfuzzy
下。 所有方法都是以函数的形式写的,因此在用的时候只需要全部导入就行。
安装方法与依赖:
- 主要依赖项:
- NumPy >= 1.6
- SciPy >= 0.9
- NetworkX >= 1.9
- Pip安装:
$ pip install -U scikit-fuzzy
注意:这安装之前一定要检查是否装有Nump和Scipy,至于NetworkX似乎并不一定要用(当然由于我们目前也只用到了5、7、8三个模块)。
2020.11.10注:
另外,安装这个库之前最好更新一下setup_tools。原因也不多说了,只管在安装前运行一次:python -m pip install --upgrade setuptools
如果很久没有更新过pip
,那么最好也更新一下:python -m pip install --upgrade pip
对于网速存在问题的同学可以使用本地安装,或