sklearn2pmml和jpmmlsklearn使用错误

2024-05-23 16:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近在寻找将scikit学习模型转换为PMML的方法时遇到了sklearn2pmml和{a2}。然而,我在尝试使用我无法理解的基本用法示例时遇到了错误。在

当尝试在sklearn2pmml中使用示例时,我收到了以下有关将long转换为int的问题:

Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
    at numpy.core.NDArrayUtil.getShape(NDArrayUtil.java:66)
    at org.jpmml.sklearn.ClassDictUtil.getShape(ClassDictUtil.java:92)
    at org.jpmml.sklearn.ClassDictUtil.getShape(ClassDictUtil.java:76)
    at sklearn.linear_model.BaseLinearClassifier.getCoefShape(BaseLinearClassifier.java:144)
    at sklearn.linear_model.BaseLinearClassifier.getNumberOfFeatures(BaseLinearClassifier.java:56)
    at sklearn.Classifier.createSchema(Classifier.java:50)
    at org.jpmml.sklearn.Main.run(Main.java:104)
    at org.jpmml.sklearn.Main.main(Main.java:87)
Traceback (most recent call last):
  File "C:\Users\user\workspace\sklearn_pmml\test.py", line 40, in <module>
    sklearn2pmml(iris_classifier, iris_mapper, "LogisticRegressionIris.pmml")
  File "C:\Python27\lib\site-packages\sklearn2pmml\__init__.py", line 49, in sklearn2pmml
    os.remove(dump)
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'c:\\users\\user\\appdata\\local\\temp\\tmpmxyp2y.pkl'

有什么建议吗?在

使用代码:

^{pr2}$

编辑12/6: 在新的更新之后,同样的问题会出现在下面:

Dec 06, 2015 5:56:49 PM sklearn_pandas.DataFrameMapper updatePMML
INFO: Updating 1 target field and 3 active field(s)
Dec 06, 2015 5:56:49 PM sklearn_pandas.DataFrameMapper updatePMML
INFO: Mapping target field y to Species
Dec 06, 2015 5:56:49 PM sklearn_pandas.DataFrameMapper updatePMML
INFO: Mapping active field(s) [x1, x2, x3] to [Sepal.Length, Sepal.Width, Petal.Length, Petal.Width]
Traceback (most recent call last):
  File "C:\Users\user\workspace\sklearn_pmml\test.py", line 40, in <module>
    sklearn2pmml(iris_classifier, iris_mapper, "LogisticRegressionIris.pmml")
  File "C:\Python27\lib\site-packages\sklearn2pmml\__init__.py", line 49, in sklearn2pmml
    os.remove(dump)
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'c:\\users\\user\\appdata\\local\\temp\\tmpqeblat.pkl'

Tags: inpyorgmainlinejavasklearnat
1条回答
网友
1楼 · 发布于 2024-05-23 16:12:50

JPMML SkLearn预期ndarray.shapei4的元组(通过Pyrolite库映射到{})。然而,在本例中,它是一个i8(映射到java.lang.Long)的元组。因此出现了cast异常。在

这个问题已经在jpmmlsklearncommit f7c16ac2fb中得到了解决。在

如果您遇到另一个异常(平台之间的数据转换可能很棘手),那么您还应该打开一个关于它的jpmmlsklearn问题。在

相关问题 更多 >