对iris数据集分类,直接分类,和调用pmml模型后分类,结果不一样,为什么有这个区别?


#用决策树来进行分类
from sklearn import tree#导入sklearn框架的tree模块,以便于构造决策树
x=iris_df.data
y=iris_df.target
clf = tree.DecisionTreeClassifier(max_depth=3)#构造最大深度为3的决策树
clf.fit(x, y)#使用训练集训练模型
print(clf.predict([[5.1,3.5,1.4,0.2]]))#注意这个有两个[],一个[]不行的
# 输出为[0]

from sklearn.tree import DecisionTreeClassifier
from sklearn2pmml.pipeline import PMMLPipeline
pipeline = PMMLPipeline([
    ("classifier", DecisionTreeClassifier())
])
pipeline.fit(x, y)

from sklearn2pmml import sklearn2pmml
sklearn2pmml(pipeline, "DecisionTreeIris2.pmml", with_repr = True)

from pypmml import Model
model = Model.load("DecisionTreeIris2.pmml")
model.predict([5.1,3.5,1.4,0.2])

#输出为[0.0, 0.0, 1.0]







TensorFlow实践:Iris数据集的多分类问题_yaoxunji的博客-CSDN博客_n_samples,n_features=iris.data.sample 实例描述采用Iris数据集进行多分类问题的训练,Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。这里采用sklearn中的数据集,首先把数据绘制出来。在把... https://blog.csdn.net/yaoxunji/article/details/83959616?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%AF%B9iris%E6%95%B0%E6%8D%AE%E9%9B%86%E5%88%86%E7%B1%BB%EF%BC%8C%E7%9B%B4%E6%8E%A5%E5%88%86%E7%B1%BB%EF%BC%8C%E5%92%8C%E8%B0%83%E7%94%A8pmml%E6%A8%A1%E5%9E%8B%E5%90%8E%E5%88%86%E7%B1%BB%EF%BC%8C%E7%BB%93&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-83959616.142^v59^js_top,201^v3^control_1&spm=1018.2226.3001.4449

看差别大不大,如果是细微差别,这个很正常,系统对浮点数的处理会有差异,还有模型的存储方式导致解析模型用到的计算方式不同,都会有影响,如果差别大,那十有八九就是调用有问题,属于运行bug。