TLDR:我无法将我的线性回归模型转换为我可以保存的模型,如下所示:
model = coremltools.converters.sklearn.convert(regr, input_features, output_feature)
model.save("Advertising.mlmodel")
我正在编写Raywenderlich教程《用SciKit Learn开始机器学习》,在Jupyter Notebook的结尾,当我将线性回归转换为可以保存的模型时,我偶然发现了一个错误,它给了我以下错误。
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-82-da16b7baefa4> in <module>
12 # tree.export_graphviz(model)
13
---> 14 coreml_model = coremltools.converters.sklearn.convert(model, inputs, output)
15 coreml_model.save('Advertising.mlmodel')
/usr/local/lib/python3.8/site-packages/coremltools/converters/sklearn/_converter.py in convert(sk_obj, input_features, output_feature_names)
146 # several issues with the ordering of the classes are worked out. For now,
147 # to use custom class labels, directly import the internal function below.
--> 148 from ._converter_internal import _convert_sklearn_model
149
150 spec = _convert_sklearn_model(
/usr/local/lib/python3.8/site-packages/coremltools/converters/sklearn/_converter_internal.py in <module>
34 from . import _LinearSVR
35 from . import _linear_regression
---> 36 from . import _decision_tree_classifier
37 from . import _decision_tree_regressor
38 from . import _gradient_boosting_classifier
/usr/local/lib/python3.8/site-packages/coremltools/converters/sklearn/_decision_tree_classifier.py in <module>
14
15 model_type = "classifier"
---> 16 sklearn_class = _tree.DecisionTreeClassifier
17
18
NameError: name '_tree' is not defined
这很奇怪,因为根据苹果在github.io/coremltools上的官方文档,它们的实现与Raywenderlich相同,但仍然不适用于我
这是我的笔记本的链接
CoreMlTools适用于scikit learn 19.2及以下版本。也许你有更大的版本。
尝试降级scikit学习19.2通过这种方式:
!pip install --force-reinstall 'scikit-learn==0.19.2'