Github user vruusmann commented on the pull request:

    https://github.com/apache/spark/pull/9207#issuecomment-215551480
  
    The main difference between PMML and PFA is the abstraction level. PMML is 
a high-level language (more similar to modeling languages such as UML), where 
you're supposed to express the computation logic using a fixed vocabulary of ML 
domain-specific concepts. PFA is a medium- to low-level language (more similar 
to regular programming languages), where you can work around some PMML 
limitations by embedding arbitrary computation logic (eg. doing processing in 
loops).
    
    I think that PMML's "high-levelness" and fixed vocabulary is a feature (not 
a bug that needs fixing by introducing another standard). The upside is that 
PMML processing and maintenance can be heavily automated. It is possible to 
load a PMML document, and do all sorts of transformations (eg. standardization, 
optimization) with it, and have a guarantee that the transformation output is 
functionally identical to the input. I'm specifically expanding my work in that 
direction - the Visitor API of the JPMML-Model library is the main tool here.
    
    The difference in abstraction levels means that it's possible to translate 
PMML to PFA (but not the other way around). So, if you're thinking about adding 
PFA support to Apache Spark, then it might be sensible to first translate Spark 
ML Pipelines to PMML, and then translate PMML to PFA. The same PMML-to-PFA 
converter would be usable with all PMML documents regardless of the original 
modeling software (eg. R, Scikit-Learn, Apache Spark).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to