Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java sklearn2pmml和jpmml sklearn使用错误_Java_Python_Scikit Learn_Pmml - Fatal编程技术网

Java sklearn2pmml和jpmml sklearn使用错误

Java sklearn2pmml和jpmml sklearn使用错误,java,python,scikit-learn,pmml,Java,Python,Scikit Learn,Pmml,我最近在寻找将scikit学习模型转换为PMML的方法时遇到了一个问题。然而,我在尝试使用我无法理解的基本用法示例时遇到了一些错误 在尝试在示例中使用时,我收到了以下关于将long转换为int的问题: Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer at numpy.core.NDArrayUtil.getShape(ND

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

在尝试在示例中使用时,我收到了以下关于将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'
编辑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'
2015年12月6日下午5:56:49 sklearn\u pandas.DataFrameMapper updatepml
信息:更新1个目标字段和3个活动字段
2015年12月6日下午5:56:49 sklearn_pandas.DataFrameMapper updatepml
信息:将目标区域y映射到物种
2015年12月6日下午5:56:49 sklearn_pandas.DataFrameMapper updatepml
信息:将活动域[x1,x2,x3]映射到[萼片长度,萼片宽度,花瓣长度,花瓣宽度]
回溯(最近一次呼叫最后一次):
文件“C:\Users\user\workspace\sklearn\u pmml\test.py”,第40行,在
sklearn2pmml(iris_分类器,iris_映射器,“LogisticRegressionIris.pmml”)
文件“C:\Python27\lib\site packages\sklearn2pmml\\uuuu init\uuuu.py”,第49行,在sklearn2pmml中
删除(转储)
WindowsError:[错误32]进程无法访问该文件,因为另一个进程正在使用它:“c:\\users\\user\\appdata\\local\\temp\\tmpqeblat.pkl”

JPMML SkLearn期望
ndarray.shape
i4
的元组(通过Pyrolite库映射到
java.lang.Integer
)。然而,在本例中,它是一个
i8
的元组(映射到
java.lang.Long
)。因此,铸造例外

这个问题已在JPMML SkLearn中解决


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

您的Python版本是什么,NumPy版本,Scikit学习版本?Python 2.7.9,NumPy 1.9.3,Scikit学习0.17这次脚本运行得更远,但出现了类似的问题。这是一个类似的修复,还是我应该用JPMML Sklearn打开一个问题?请用JPMML Sklearn打开一个问题,并在那里发布您的异常堆栈跟踪。已知中的项目可以在64位Linux上正确构建和运行,但您似乎正在使用(64位?)Windows。看起来这两个平台默认为Scikit Learn/Numpy/Python堆栈中的不同数据类型。
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'