Python 3.x 错误:格式:";svg";不认识。使用以下其中一种:
你好,我试着用我的csv数据表创建一个决策树。我使用以下命令在anaconda和python中安装了graphviz包:Python 3.x 错误:格式:";svg";不认识。使用以下其中一种:,python-3.x,image,anaconda,format,visible,Python 3.x,Image,Anaconda,Format,Visible,你好,我试着用我的csv数据表创建一个决策树。我使用以下命令在anaconda和python中安装了graphviz包: conda install graphviz pip install graphviz 让我的树可见。以下是我在Jupyther笔记本中编写的代码: import pandas as pd import graphviz from sklearn import metrics from sklearn.tree import DecisionTreeClassifier,
conda install graphviz
pip install graphviz
让我的树可见。以下是我在Jupyther笔记本中编写的代码:
import pandas as pd
import graphviz
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.model_selection import train_test_split
file = 'automotive_data.csv'
COLS = np.arange(0,22,1).tolist()#gibt später bei usecols eine andere möglichkeit die spalten anzusprechen
data = pd.read_csv(file, header=0, sep = ",", index_col=0, usecols=COLS)
x = data.iloc[:,1:]
x = x.to_numpy()
y = data[['Ausfall']]
y
xTrain, xTest, yTrain, yTest = train_test_split(x, y, test_size=0.3, random_state=1)
model = DecisionTreeClassifier (
criterion='entropy',
splitter='best',
min_samples_split= 0.3,
max_features=10,
max_depth=None
)
#Danach mit fit erstellt
model.fit(xTrain, yTrain)
dot=export_graphviz(model, out_file=None,filled=True,
feature_names=data.columns[1:24],
class_names=['ja','nein']);
# Erzeuge Graphviz-Graphen aus dot-Quellcode
graph = graphviz.Source(dot)
graph#Here I get an error
在最后一行,我得到一个错误:
Format: "svg" not recognized. Use one of:
CalledProcessError Traceback (most recent call last)
~\anaconda3\lib\site-packages\IPython\core\formatters.py in __call__(self, obj)
343 method = get_real_method(obj, self.print_method)
344 if method is not None:
--> 345 return method()
346 return None
347 else:
~\anaconda3\lib\site-packages\graphviz\files.py in _repr_svg_(self)
111
112 def _repr_svg_(self):
--> 113 return self.pipe(format='svg').decode(self._encoding)
114
115 def pipe(self, format=None, renderer=None, formatter=None, quiet=False):
~\anaconda3\lib\site-packages\graphviz\files.py in pipe(self, format, renderer, formatter, quiet)
136 out = backend.pipe(self._engine, format, data,
137 renderer=renderer, formatter=formatter,
--> 138 quiet=quiet)
139
140 return out
~\anaconda3\lib\site-packages\graphviz\backend.py in pipe(engine, format, data, renderer, formatter, quiet)
242 """
243 cmd, _ = command(engine, format, None, renderer, formatter)
--> 244 out, _ = run(cmd, input=data, capture_output=True, check=True, quiet=quiet)
245 return out
246
~\anaconda3\lib\site-packages\graphviz\backend.py in run(cmd, input, capture_output, check, encoding, quiet, **kwargs)
182 if check and proc.returncode:
183 raise CalledProcessError(proc.returncode, cmd,
--> 184 output=out, stderr=err)
185
186 return out, err
CalledProcessError: Command '['dot', '-Tsvg']' returned non-zero exit status 1. [stderr: b'Format: "svg" not recognized. Use one of:\r\n']
我也尝试使用PNG作为我的格式,但它也不起作用。我不知道如何解决这个问题。我也遇到了同样的问题,我通过安装2.38版而不是2.44版解决了这个问题
显然,问题是您必须首先配置graphviz插件
在管理员模式下打开终端并运行
dot-c
。(这假设graphviz二进制文件在您的路径中)如果这是Windows系统,我认为您安装了一个(半)最近的软件包,该软件包无法使用。我认为最新的版本是2.44.1。如果可能,从Graphviz站点安装。我认为最新/最新版本适合您。我已签出,2.44版安装在windows上。所以我把它放在Windows和Anaconda上,但它在jupyter笔记本上仍然不起作用。