Giter Site home page Giter Site logo

wdatasci / wds-jnipmml-xll Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 30.41 MB

An Excel AddIn (XLL) to call model evaluators.

License: MIT License

C# 43.31% Java 28.47% Batchfile 0.15% Shell 0.01% PowerShell 0.05% XSLT 0.03% Visual Basic .NET 3.09% VBA 24.16% Visual Basic 6.0 0.73%
pmml jpmml-evaluator excel exceldna xll xll-addin csharp java jni vb

wds-jnipmml-xll's Introduction

General ReadMe

The primary objective of WDS-JniPMML-XLL is to provide model evaluators to Excel. In particular, access to the standard PMML evaluator is a starting point, both for use and/or for comparison. Later versions will be include other model specs and implement other evaluators.

Please see documentation articles for a brief introduction on use.

Other evaluators aside, there is a technical challenge to providing access to the standard PMML evaluator, jpmml, which is cross-programing languages. Under the hood, to create a fast efficient Excel interface that insulates the user from the technical details, the usual addin languages (C#/VB/VBA) must take data from the workbook (in multiple columns and possibly multiple rows), transform it, call the jpmml in Java, and then return the appropriate data (with possibly multiple columns and rows) back to the workbook.

This effort does not preclude writing a PMML evaluator (or re-writing jpmml, which may be a good idea) in another language. However, as other evalutaors as added, a common Excel based interface than provides a basis for comparison.

Through this version, WDS-JniPMML-XLL provides:

  • A pair of Excel AddIns (XLLs) and VBA support for:
    • Evaluating PMML models
      • As an Excel function call
      • Using the de facto standard implementation, jpmml.evaluator
      • Using input data from an in-worksheet table
      • Uses XmlMap'd exportable ListObjects, but provides tools to facilitate
      • Can evaluate one or multiple observations (rows) per call
      • Results returned as normal function outputs
      • With cacheable models for efficiency
    • Additional data wrangling tools for
      • Importing/Exporting HDF5 compound datasets
      • Importing/Exporting flat files
    • Additional VBA module handling
  • A Java wrapper of jpmml.evaluator
    • Callable from the XLL via jni
    • Testable as a standalone from the command line
    • But, can be called through the Excel AddIn using the JVM.
    • Input and output data can be:
      • HDF5 compound datasets
      • Flat files
      • In memory (as when called through jni)
  • A launch script and examples are included
    • WDS-JniPMML-XLL-Launch.bat: a script for launching a new Excel instance, running the AddIns without installing
    • WDS-JniPMML-XLL-Test-Launch.bat: a script for running the AddIns and the example workbook WDS-JniPMML-XLL-Test.xlsm
    • test/data: A test set of the usual PMML cases

A Few Project Organization Notes

  • JniPMML-[AAA]: Language specific libraries that directly related to project objectives
    • Where-ever-possible and as-close-as-possible code naming conventions and structure is kept similar across languages.
  • WDS-[AAA]: Language specific utility libraries that can be used independently of the JniPMML-[AAA] libs
  • lib: compiled final products which could be used directly
  • scripts: make scripts, for cross-language documentation building in particular

Prerequisites

  • 64 bit Excel
  • Although, if compiling, 32 bit could possibly be added.
  • Access to the VBA project object model (if using the VBA module handlers
  • HDF5 and HDFView
    • The HDF5 and HDFView libs are required if compiling, but the functionality could be removed.
    • The provided jars require at least HDFView be on the path or the path passed in as a command line option when starting Excel
  • Java jdk-12
  • Required when using the latest HDFView install.
  • Compiling environment
  • The github configurations are for Visual Studio Community Edition and Intellij Community edition.
  • DocFx
  • DocFx is used for the documentation build, including DocFxDoclet on the JavaDoc side.

License Note

All code contributions and development from Wypasek Data Science, Inc. (WDataSci) published on its public github site is released under the MIT license. Code from other sources is noted as such, and any assemblies, XLL's, and/or jars that may contain other software (for example, as Apache's Maven or ExcelDna may bundle from other sources) are released along with the commonly used IDE project and/or solution files used to generate them.

wds-jnipmml-xll's People

Contributors

cwypasek avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

vb6hobbyst7

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.