由于此错误,无法形成Scikit模糊规则。Skfuzzy码和错误消息如下所示
import matplotlib.pyplot as pit
import skfuzzy as fuz
import numpy as np
from skfuzzy import control as ctrl
s=ctrl.Antecedent(np.arange(0,11,1),'service')
q=ctrl.Antecedent(np.arange(0,11,1),'quality')
t=ctrl.Antecedent(np.arange(0,26,1),'tip')
s.automf(3)
q.automf(3)
t['low']=fuz.trimf(t.universe,[0,0,13])
t['medium']=fuz.trimf(t.universe,[0,13,25])
t['high']=fuz.trimf(t.universe,[13,25,25])
rule1=ctrl.Rule(q['poor'] | s['poor'], t['low'])
rule2=ctrl.Rule(q['poor'] | s['average'], t['medium'])
rule3=ctrl.Rule(q['poor'] | s['good'], t['high'])
tip_ctrl=ctrl.ControlSystem([rule1,rule2, rule3])
tip=ctrl.ControlSystemSimulation(tip_ctrl)
tip.input['service']=2.1
tip.input['quality']=5.6
tip.compute()
print(tip.output['t'])
#tip.view(sim=tip)
#pit.show()
Traceback (most recent call last):
File "/home/amavasi/.vscode/extensions/ms-python.python-2019.11.49689/pythonFiles/ptvsd_launcher.py", line 43, in <module>
main(ptvsdArgs)
File "/home/amavasi/.vscode/extensions/ms-python.python-2019.11.49689/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 432, in main
run()
File "/home/amavasi/.vscode/extensions/ms-python.python-2019.11.49689/pythonFiles/lib/python/old_ptvsd/ptvsd/__main__.py", line 316, in run_file
runpy.run_path(target, run_name='__main__')
File "/usr/lib/python3.7/runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "/usr/lib/python3.7/runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/amavasi/Public/ruthu/skfuzzy learn.py", line 22, in <module>
tip_ctrl=ctrl.ControlSystem([rule1,rule2, rule3])
File "/home/amavasi/.local/lib/python3.7/site-packages/skfuzzy/control/controlsystem.py", line 47, in __init__
self.addrule(rule)
File "/home/amavasi/.local/lib/python3.7/site-packages/skfuzzy/control/controlsystem.py", line 107, in addrule
self.graph = nx.compose(self.graph, rule.graph)
File "/home/amavasi/.local/lib/python3.7/site-packages/skfuzzy/control/rule.py", line 295, in graph
graph.add_path([t, self])
AttributeError: 'DiGraph' object has no attribute 'add_path'
Terminated
在rule.py模块内部,创建了digraph对象,并从digraph对象而不是networkx对象引用add_path属性。当我更改对networkx对象的引用时,错误显示add_path需要更多属性。
发布于 2019-11-19 21:54:10
您遇到了https://github.com/scikit-fuzzy/scikit-fuzzy/pull/230中描述的问题
更新至最新版本0.4.2
pip install git+git://github.com/scikit-fuzzy/scikit-fuzzy.git
https://stackoverflow.com/questions/58933714
复制相似问题