Code Monkey home page Code Monkey logo

tribuo's Introduction

Tribuo Logo

Tribuo - A Java prediction library (v4.3)

Tribuo is a machine learning library in Java that provides multi-class classification, regression, clustering, anomaly detection and multi-label classification. Tribuo provides implementations of popular ML algorithms and also wraps other libraries to provide a unified interface. Tribuo contains all the code necessary to load, featurise and transform data. Additionally, it includes the evaluation classes for all supported prediction types. Development is led by Oracle Labs' Machine Learning Research Group; we welcome community contributions.

All trainers are configurable using the OLCUT configuration system. This allows a user to define a trainer in an xml or json file and repeatably build models. Example configurations for each of the supplied Trainers can be found in the config folder of each package. These configuration files can also be written in json or edn by using the appropriate OLCUT configuration dependency. Models and datasets are serializable using Java serialization.

All models and evaluations include a serializable provenance object which records the creation time of the model or evaluation, the identity of the data and any transformations applied to it, as well as the hyperparameters of the trainer. In the case of evaluations, this provenance information also includes the specific model used. Provenance information can be extracted as JSON, or serialised directly using Java serialisation. For production deployments, provenance information can be redacted and replaced with a hash to provide model tracking through an external system. Many Tribuo models can be exported in ONNX format for deployment in other languages, platforms or cloud services.

Tribuo runs on Java 8+, and we test on LTS versions of Java along with the latest release. Tribuo itself is a pure Java library and is supported on all Java platforms; however, some of our interfaces require native code and are thus supported only where there is native library support. We test on x86_64 architectures on Windows 10, macOS and Linux (RHEL/OL/CentOS 7+), as these are supported platforms for the native libraries with which we interface. If you're interested in another platform and wish to use one of the native library interfaces (ONNX Runtime, TensorFlow, and XGBoost), we recommend reaching out to the developers of those libraries. Note the model card and reproducibility packages require Java 17, and as such are not part of the tribuo-all Maven Central deployment.

Documentation

Tutorials

Tutorial notebooks, including examples of Classification, Clustering, Regression, Anomaly Detection, TensorFlow, document classification, columnar data loading, working with externally trained models, and the configuration system, can be found in the tutorials. These use the IJava Jupyter notebook kernel, and work with Java 10+, except the model card & reproducibility tutorials which require Java 17. To convert the tutorials' code back to Java 8, in most cases simply replace the var keyword with the appropriate types.

Algorithms

General predictors

Tribuo includes implementations of several algorithms suitable for a wide range of prediction tasks:

Algorithm Implementation Notes
Bagging Tribuo Can use any Tribuo trainer as the base learner
Random Forest Tribuo For both classification and regression
Extra Trees Tribuo For both classification and regression
K-NN Tribuo Includes options for several parallel backends, as well as a single threaded backend
Neural Networks TensorFlow Train a neural network in TensorFlow via the Tribuo wrapper. Models can be deployed using the ONNX interface or the TF interface

The ensembles and K-NN use a combination function to produce their output. These combiners are prediction task specific, but the ensemble & K-NN implementations are task agnostic. We provide voting and averaging combiners for multi-class classification, multi-label classification and regression tasks.

Classification

Tribuo has implementations or interfaces for:

Algorithm Implementation Notes
Linear models Tribuo Uses SGD and allows any gradient optimizer
Factorization Machines Tribuo Uses SGD and allows any gradient optimizer
CART Tribuo
SVM-SGD Tribuo An implementation of the Pegasos algorithm
Adaboost.SAMME Tribuo Can use any Tribuo classification trainer as the base learner
Multinomial Naive Bayes Tribuo
Regularised Linear Models LibLinear
SVM LibSVM or LibLinear LibLinear only supports linear SVMs
Gradient Boosted Decision Trees XGBoost

Tribuo also supplies a linear chain CRF for sequence classification tasks. This CRF is trained via SGD using any of Tribuo's gradient optimizers.

Tribuo has a set of information theoretic feature selection algorithms which can be applied to classification tasks. Feature inputs are automatically discretised into equal width bins. At the moment this includes implementations of mutual information maximisation (MIM), Conditional Mutual Information Maximisation (CMIM), minimum Redundancy Maximum Relevancy (mRMR) and Joint Mutual Information (JMI).

To explain classifier predictions there is an implementation of the LIME algorithm. Tribuo's implementation allows the mixing of text and tabular data, along with the use of any sparse model as an explainer (e.g., regression trees, lasso etc), however it does not support images.

Regression

Tribuo's regression algorithms are multidimensional by default. Single dimensional implementations are wrapped in order to produce multidimensional output.

Algorithm Implementation Notes
Linear models Tribuo Uses SGD and allows any gradient optimizer
Factorization Machines Tribuo Uses SGD and allows any gradient optimizer
CART Tribuo
Lasso Tribuo Using the LARS algorithm
Elastic Net Tribuo Using the co-ordinate descent algorithm
Regularised Linear Models LibLinear
SVM LibSVM or LibLinear LibLinear only supports linear SVMs
Gradient Boosted Decision Trees XGBoost

Clustering

Tribuo includes infrastructure for clustering and also supplies two clustering algorithm implementations. We expect to implement additional algorithms over time.

Algorithm Implementation Notes
HDBSCAN* Tribuo A density-based algorithm which discovers clusters and outliers
K-Means Tribuo Includes both sequential and parallel backends, and the K-Means++ initialisation algorithm

Anomaly Detection

Tribuo offers infrastructure for anomaly detection tasks. We expect to add new implementations over time.

Algorithm Implementation Notes
One-class SVM LibSVM
One-class linear SVM LibLinear

Multi-label classification

Tribuo offers infrastructure for multi-label classification, along with a wrapper which converts any of Tribuo's multi-class classification algorithms into a multi-label classification algorithm. We expect to add more multi-label specific implementations over time.

Algorithm Implementation Notes
Independent wrapper Tribuo Converts a multi-class classification algorithm into a multi-label one by producing a separate classifier for each label
Classifier Chains Tribuo Provides classifier chains and randomized classifier chain ensembles using any of Tribuo's multi-class classification algorithms
Linear models Tribuo Uses SGD and allows any gradient optimizer
Factorization Machines Tribuo Uses SGD and allows any gradient optimizer

Interfaces

In addition to our own implementations of Machine Learning algorithms, Tribuo also provides a common interface to popular ML tools on the JVM. If you're interested in contributing a new interface, open a GitHub Issue, and we can discuss how it would fit into Tribuo.

Currently we have interfaces to:

  • LibLinear - via the LibLinear-java port of the original LibLinear (v2.44).
  • LibSVM - using the pure Java transformed version of the C++ implementation (v3.25).
  • ONNX Runtime - via the Java API contributed by our group (v1.12.1).
  • TensorFlow - Using TensorFlow Java v0.4.2 (based on TensorFlow v2.7.4). This allows the training and deployment of TensorFlow models entirely in Java.
  • XGBoost - via the built in XGBoost4J API (v1.6.2).

Binaries

Binaries are available on Maven Central, using groupId org.tribuo. To pull all the Java 8 compatible components of Tribuo, including the bindings for TensorFlow, ONNX Runtime and XGBoost (which are native libraries), use:

Maven:

<dependency>
    <groupId>org.tribuo</groupId>
    <artifactId>tribuo-all</artifactId>
    <version>4.3.1</version>
    <type>pom</type>
</dependency>

or from Gradle:

implementation ("org.tribuo:tribuo-all:4.3.1@pom") {
    transitive = true // for build.gradle (i.e., Groovy)
    // isTransitive = true // for build.gradle.kts (i.e., Kotlin)
}

The tribuo-all dependency is a pom which depends on all the Tribuo subprojects except for the model card and reproducibility projects which require Java 17.

Most of Tribuo is pure Java and thus cross-platform, however some of the interfaces link to libraries which use native code. Those interfaces (TensorFlow, ONNX Runtime and XGBoost) only run on supported platforms for the respective published binaries, and Tribuo has no control over which binaries are supplied. If you need support for a specific platform, reach out to the maintainers of those projects. As of the 4.1 release these native packages all provide x86_64 binaries for Windows, macOS and Linux. It is also possible to compile each package for macOS ARM64 (i.e., Apple Silicon), though there are no binaries available on Maven Central for that platform for TensorFlow or XGBoost. As of the 4.3 release Tribuo now depends on a version of ONNX Runtime which includes support for macOS ARM64 and Linux aarch64 platforms. When developing on an ARM platform you can select the arm profile in Tribuo's pom.xml to disable the native library tests.

Individual jars are published for each Tribuo module. It is preferable to depend only on the modules necessary for the specific project. This prevents your code from unnecessarily pulling in large dependencies like TensorFlow.

Compiling from source

Tribuo uses Apache Maven v3.5 or higher to build. Tribuo is compatible with Java 8+, and we test on LTS versions of Java along with the latest release. To build, simply run mvn clean package. All Tribuo's dependencies should be available on Maven Central. Please file an issue for build-related issues if you're having trouble (though do check if you're missing proxy settings for Maven first, as that's a common cause of build failures, and out of our control). Note if you're building using Java 16 or earlier the model card and reproducibility packages will be disabled.

Repository Layout

Development happens on the main branch, which has the version number of the next Tribuo release with "-SNAPSHOT" appended to it. Tribuo major and minor releases will be tagged on the main branch, and then have a branch named vA.B.X-release-branch (for release vA.B.0) branched from the tagged release commit for any point releases (i.e., vA.B.1, vA.B.2 etc) following from that major/minor release. Those point releases are tagged on the specific release branch e.g., v4.0.2 is tagged on the v4.0.X-release-branch.

Contributing

We welcome contributions! See our contribution guidelines.

We have a discussion mailing list [email protected], archived here. We're investigating different options for real time chat, check back in the future. For bug reports, feature requests or other issues, please file a Github Issue.

Security

Please consult the security guide for our responsible security vulnerability disclosure process.

License

Tribuo is licensed under the Apache 2.0 License.

Release Notes:

  • v4.3.1 - Small bug fixes, notably to CART trees and Example.densify, bumps dependencies to more secure versions.
  • v4.3.0 - Model card support, feature selection for classification, protobuf serialization format, kd-tree for distance computations, speed improvements for sparse linear models. Version bumps for most dependencies, and various other small fixes and improvements.
  • v4.2.2 - Small bug fixes, bump TF-Java to 0.4.2, jackson to 2.13.4, protobuf-java to 3.19.6, OpenCSV to 5.7.1.
  • v4.2.1 - Bug fixes for KMeans' multithreading, nondeterministic iteration orders affecting ONNX export and K-Means initialization, and upgraded TF-Java to 0.4.1.
  • v4.2.0 - Added factorization machines, classifier chains, HDBSCAN. Added ONNX export and OCI Data Science integration. Added reproducibility framework. Various other small fixes and improvements, including the regression fixes from v4.1.1. Filled out the remaining javadoc, added 4 new tutorials (onnx export, multi-label classification, reproducibility, hdbscan), expanded existing tutorials.
  • v4.1.1 - Bug fixes for multi-output regression, multi-label evaluation, KMeans & KNN with SecurityManager, and update TF-Java 0.4.0.
  • v4.1.0 - Added TensorFlow training support, a BERT feature extractor, ExtraTrees, K-Means++, many linear model & CRF performance improvements, new tutorials on TF and document classification. Many bug fixes & documentation improvements.
  • v4.0.2 - Many bug fixes (CSVDataSource, JsonDataSource, RowProcessor, LibSVMTrainer, Evaluations, Regressor serialization). Improved javadoc and documentation. Added two new tutorials (columnar data and external models).
  • v4.0.1 - Bugfix for CSVReader to cope with blank lines, added IDXDataSource to allow loading of native MNIST format data.
  • v4.0.0 - Initial public release.
  • v3 - Added provenance system, the external model support and onnx integrations.
  • v2 - Expanded beyond a classification system, to support regression, clustering and multi-label classification.
  • v1 - Initial internal release. This release only supported multi-class classification.

tribuo's People

Contributors

craigacp avatar eelstretching avatar geoffreydstewart avatar jacksullivan avatar jhalexand avatar jwons avatar kaiyaok2 avatar katieyounglove avatar martin-keppner-o avatar neomatrix369 avatar nezda avatar pogren avatar prasanth08 avatar rmahinpei avatar samanthacampo avatar spavlusieva avatar ylwu-amzn avatar younesamin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tribuo's Issues

Export Model

Hi there,
I have a XGBoost model like this:

var trainer = new XGBoostRegressionTrainer(XGBoostRegressionTrainer.RegressionType.LINEAR, 50,50,true);
var model = trainer.train(trainData);

and I want to save him and load him like this but I didn't manage

Versions referred to in the pom.xml and tutorials may not be in sync with release 4.0.2

Describe the bug

The cells that load the Jars for the notebooks under https://github.com/oracle/tribuo/tree/main/tutorials are not consistently loading the Jars for version 4.0.2 as per the release version.

Also in the pom.xml (see source), it says <version>4.1.0-SNAPSHOT</version>, should this not be in sync with the release and increment each time.

To Reproduce

Load the notebooks using an external docker image via here (would be the same if run in native mode)

Expected behaviour
Tutorials and pom.xml be in sync with the release

Improvement in Educational Content

For beginners to ML using the written documentation is a little hard and time consuming as at it is it is currently it is directed to seasoned ML engineers. Provision of beginner concept before the deep dive would be appropriate.

Having a dedicated youtube page or paid courses on LinkedIn , Udemy or cousera would be much better to understand the core concept of ML to beginners before getting to the documentation and trying the examples.

Currently most of this requested content is available majorly in python thereby making the transition to java still difficult.
Support for tribuo content producers(articles ,videos, short courses etc.) should also be enhanced for improved SEO

Scaling/Rescaling needed for regression outputs

Is your feature request related to a problem? Please describe.
Currently scaling of training data (via transformations such as MeanStdDevTransformation) only applies to the features but not to the outputs; however regression outputs need to be scaled as well for some models to train properly. Specifically, this causes the RBF SVM to perform much more poorly comparing to scikit-learn, where it's easy to scale the entire dataset.

Describe the solution you'd like
Adding the option to scale the output of a training dataset in addition to the features when training a regressor. This also means that the output of the regressor will be inverse-scaled when performing predictions.

Describe alternatives you've considered
'Manually' scaling and inverse-scaling outside Tribuo's training/prediction flow. This is cumbersome, and in addition will not be included in the provenance.

Additional context

Documentation: Proper DataSource format and usage for K-Means Clustering

Is your feature request related to a problem? Please describe.
Still a newbie to this library, so thanks for bearing with me.

Right now, the documentation shows how to run K-Means clustering on an auto-generated data set of Gaussian clusters. This is great, as it shows K-Means is possible, but (unless I'm missing something) it does not show the steps to input real data. (It mentions You can also use any of the standard data loaders to pull in clustering data. but I don't see where that's documented).

I've figured out how to load a CSV file of features and metadata (thanks to your new Colunmar tutorial), but I can't seem to infer how to connect this data with KMeansTrainer, or if that's even the right approach.

Describe the solution you'd like
A clear and concise description/example of how to load real-world (non-autogenerated) data into the K-Means algorithm.

Describe alternatives you've considered
Looking through JavaDocs, but having trouble knowing what to focus on.

Additional context
image

Label and Cluster evaluation?

hey,I m playing around with k means clustering and at evaluation time i was playing with Old friend Iris data.so i m new to unsupervised learning heres my question:
how to evaluate cluster with label column 'species in case of iris'
heres what i m doing simple stuff for getting familiar with clustering in tribuo:

Map<String,FieldProcessor> fieldProcessors = new HashMap<String,FieldProcessor>();
//TOKENIZER THE TEXT INTO COLUMN OF EACH WORDS USING TOKENPIPELINE OR WE CAN USE BASEPIPELINE
fieldProcessors.put("Species",new IdentityProcessor("Species"));
RowProcessor rowProcessor = new RowProcessor<Label>(new FieldResponseProcessor("Species","UNK",new LabelFactory()),fieldProcessors);
CSVDataSource irisData = new CSVDataSource<Label>(Paths.get("C:\\\\Users\\\\Nikki singh\\\\Downloads\\\\Iris.csv"),rowProcessor,true); 
TrainTestSplitter splitIrisData = new TrainTestSplitter<>(irisData,
                      /* Train fraction */ 0.7,
                            /* RNG seed */ 0L);
MutableDataset train = new MutableDataset(splitIrisData.getTrain());
MutableDataset test = new MutableDataset(splitIrisData.getTest());
//K MEANS CLUSTERING TRAINER
KMeansTrainer trainer = new KMeansTrainer(5,100,Distance.EUCLIDEAN,5,1234);
Long startTime = System.currentTimeMillis();  
KMeansModel model = trainer.train(train);
System.out.println("Feature:"+model.getFeatureIDMap().get("B"));
Long endTime = System.currentTimeMillis();
//WE CAN SEE OUR CLUSTERS(CENTROIDS) BEST 'K' CENTROID WE GOT AFTER 10 ITERATIONs
DenseVector[] centroids = model.getCentroidVectors();
for (DenseVector centroid : centroids) {
    System.out.println("cLUSTERS:"+centroid);
}
ClusteringEvaluator eva=new ClusteringEvaluator();
ClusteringEvaluation c= eva.evaluate(model,train);
System.out.println(c.adjustedMI()+"-----"+c.normalizedMI());

AND I M GETTING THIS:

Exception in thread "main" java.lang.ClassCastException: org.tribuo.classification.Label cannot be cast to org.tribuo.clustering.ClusterID

HOT TO EVALUATE AND SEE IF MY CLUSTERS CORRECTLY CLASSIFFIFIED CLASSES OR NOT
and one more thing i have heard about K-mode clustering .is that kind of thing exist for now.?

About Models Serialization

Ask the question

I am exploring to use tribuo in our project. In our project, we need save the ML models for the future uses. I see that the models implements java.io.Serializable interface. I think this is only supported way for serialization, right? With this way, I just have concerns that the future upgrading will be very hard. For instance, the schema/interface of some algorithms are changed.
Is there any advice to address this concern? Thanks a lot for the help

About the documentation.

https://tribuo.org/learn/4.0/docs/

Isn't the documentation and implementation code listed in the above URL wrong?

For example, the variable definition is 'irisData', but the variable reference says 'irisesSource'. This will result in a compilation error.

Here's what else is going on

Constructor calls that don't have a LibSVMDataSource, for example.
https://qiita.com/jashika/items/aa8ca340deb81a59cbea

A call to a method that does not exist. The class name to be called is likely to be different, etc.
https://qiita.com/jashika/items/1ba0cad613ec919adaa7

Add formatters/printers for Evaluations

Is your feature request related to a problem? Please describe.
Tribuo's evaluations have a build in formatted output, but this is fixed and not customisable. Currently our users can create their own output format by querying the evaluation object for the metrics they want, but we could consider adding formatters that allow users to select the metrics they want and have Tribuo automatically format them into something readable (and possibly in HTML or other formats too).

Describe alternatives you've considered
Users could continue to build their own output formatter, or use the fixed built in one.

Additional context
This was requested in #62 as part of a larger discussion. It's broken out separately here for ease of tracking.

How do you do trajectory prediction? What model is used?

Ask the question

Is your question about a specific ML algorithm or approach?
Please describe the ML algorithm, with appropriate links or references.

Is your question about a specific Tribuo class?
List the classes involved.

System details

  • Tribuo version
  • Java version (if appropriate)
  • OS/Architecture (if appropriate)

Additional context
Add any other context or screenshots about the question

Can LibSVMClassificationTrainer and LIMEExplanation be used to extract meaningful features from SVM?

I would like to use SVM for classification, then later use LIME to explain what the model thinks in a human friendly way.

Unfortunately, it looks like LIMEText expects a class implementing SparseTrainer which LibSVMClassificationTrainer does not do. I'm wondering if there is a chance to make it work somehow? I'm new to the API (started exploring it yesterday), so maybe I'm missing a concept which would come with more experience.

Is your question about a specific Tribuo class?
LIMEText, SparseTrainer, LibSVMClassificationTrainer

System details

  • Tribuo version: 4.1.0
  • Java version: 11

why date type data occur exception๏ผŸ

load data.csv๏ผš
"2021-06-22",79.52
"2021-06-23",39.29
"2021-06-24",91.8

String[] irisHeaders = new String[]{"date","xxx"};
DataSource irisData =
new CSVLoader<>(new LabelFactory()).loadDataSource(
Paths.get("data.csv"),
irisHeaders[1],
irisHeaders);

Exception in thread "main" java.lang.NumberFormatException: For input string: "2021-06-22"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at org.tribuo.data.csv.CSVLoader.innerLoadFromCSV(CSVLoader.java:297)
at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:273)
at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:249)
at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:199)
at cn.csc.iot.big.data.platform.ml.EiRegressModel.main(EiRegressModel.java:26)
thanks!

Tutorial: evaluation of the XGBoost ensemble training fails

Describe the bug

Running the below cell in the Regression tutorial fails:

var xgbModel = train("XGBoost",xgb,trainData);
evaluate(xgbModel,evalData);

with these results:

---------------------------------------------------------------------------
java.lang.NoClassDefFoundError: Could not initialize class ml.dmlc.xgboost4j.java.XGBoostJNI
	at ml.dmlc.xgboost4j.java.DMatrix.<init>(DMatrix.java:109)
	at org.tribuo.common.xgboost.XGBoostTrainer.convertExamples(XGBoostTrainer.java:309)
	at org.tribuo.regression.xgboost.XGBoostRegressionTrainer.train(XGBoostRegressionTrainer.java:174)
	at org.tribuo.regression.xgboost.XGBoostRegressionTrainer.train(XGBoostRegressionTrainer.java:64)
	at org.tribuo.Trainer.train(Trainer.java:44)
	at .train(#45:4)
	at .do_it$Aux(#57:1)
	at .(#57:1)

To Reproduce

Run notebook in a docker container using these steps at https://github.com/neomatrix369/awesome-ai-ml-dl/tree/master/examples/tribuo:

git clone https://github.com/neomatrix369/awesome-ai-ml-dl/tree/master/
cd awesome-ai-ml-dl/examples/tribuo
./docker-runner.sh --notebookMode --runContainer

### wait it downloads the contain and browser opens up
### or open the browser to http://localhost:8888/notebooks/tribuo/tutorials/regression-tribuo-v4.ipynb

Expected behaviour

Should have shown these results:

Training XGBoost took (00:00:00:375)
Evaluation (train):
  RMSE 0.143871
  MAE 0.097167
  R^2 0.968252
Evaluation (test):
  RMSE 0.599478
  MAE 0.426673
  R^2 0.447378

Screenshots

Screen Shot 2020-10-11 at 14 00 22

System information:

  • OS: Linux 6a5b46663314 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • Java Version: 11
  • JDK Vendor:
    openjdk version "11.0.5" 2019-10-15
    OpenJDK Runtime Environment (build 11.0.5+10-jvmci-19.3-b05-LTS)
    OpenJDK 64-Bit GraalVM CE 19.3.0 (build 11.0.5+10-jvmci-19.3-b05-LTS, mixed mode, sharing)

** Jar versions **

tribuo-classification-experiments-4.0.0-jar-with-dependencies.jar
tribuo-core-4.0.0.jar
tribuo-json-4.0.0-jar-with-dependencies.jar
tribuo-regression-sgd-4.0.0-jar-with-dependencies.jar
tribuo-regression-tree-4.0.0-jar-with-dependencies.jar
tribuo-regression-xgboost-4.0.0-jar-with-dependencies.jar

Include saving model in docs/tutorial

Can an example of serializing models and datasets to disk be included in the tutorials and/or docs? Additional help on using ONNX would be helpful too.

Tests failing due to a locale issue

Describe the bug
While executing mvn clean install, one of the tests (LabelEvaluatorTest) will fail due to an issue with locales using a comma instead of a point in numbers with a decimal point.

To Reproduce
Set your PC's locale to any language using a comma (,) instead of a point (.). In my case this was Belgian (Dutch).

Expected behaviour
The tests should still pass on computers using a different locale.

Screenshots
image

System information:

  • OS: macOS
  • Java Version: Java 15 (build 15+36-1562)
  • JDK Vendor: OpenJDK

Import error...

Add any other context about the problem here.

Thank for your opensource.
It's amazing, I try to use your opensource.
But, I have some problems.

MicrosoftTeams-image

I got this problem. when I set the dependency, and when we starts the code. print error like that.
plz help me... I need your help.

My version,

OS : Windows 10
Java Version : Java 14
JDK Vendor : OpenJDK

Category encoding support beyond one-hot

Is your feature request related to a problem? Please describe.
I have a dataset with a lot of categorical data. At the moment, I'm doing all my training and predicting in Python, but I'm eager to make the step to Java. I use James-Stein encoding on many of my columns. I'm looking for a way to do this in Tribuo.

Describe the solution you'd like
Could you help me think of a good way to realise this? The logical place in my mind is to create a FieldProcessor like the DoubleProcessor but then instead of parsing the value, we apply some sort of encoding to give a good value. It would be very handy to have this in the provenance system as well, I think.

Describe alternatives you've considered
I've considered keeping my encoders in Python and writing an API to reach them, but it feels like the platform is so close to being able to do this, because I think one-hot encoding is already possible in the form of the IdentityProcessor

Whats the best route to save the predictions into a csv file (using Tribuo classes)

Ask the question
What's the best route to save the predictions into a csv file (using Tribuo classes). Say I have a List<Prediction<Regressor>>

One way could be to iterate thru the list of items and write it to the disk via some FileXxxx() class.

Is your question about a specific Tribuo class?
List<Prediction<Regressor>> and Dataset (one of it's concrete subclasses)

RandomForest with configuration .all hyperparameters

Why random forest is not accepting my parameter n_estimator .i cannot find any documentation about random forest since its my one of the favourite algo and far good than cart.and one more thing ..how can i do cross validation and hyperparameter tuning ?
heres my config.json.
Screenshot (38)

Failed to save regression model

[Describe]

Get [java.io.NotSerializableException: org.tribuo.regression.ImmutableRegressionInfo$$Lambda$32/187472540] exception when write regression model to file.

[Reproduce]

  1. load data
    CSVLoader loader = new CSVLoader<>(new RegressionFactory());
    ListDataSource ds = loader.loadDataSource(Paths.get("D:/data/Datasets/winequality-red.csv"), "y");
    MutableDataset dataset = new MutableDataset<>(ds);
  2. train model
    LibLinearRegressionTrainer trainer = new LibLinearRegressionTrainer();
    Model model = trainer.train(dataset);
  3. save model to file
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:/data/winequality-red.model"));
    out.writeObject(model);

[Expected behaviour]

No exception

[Exception Stack]
java.io.NotSerializableException: org.tribuo.regression.ImmutableRegressionInfo$$Lambda$303/0x0000000800c1c710

at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1193)
at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1387)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1579)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1536)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1444)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:353)
at java.base/java.util.TreeSet.writeObject(TreeSet.java:502)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1196)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1523)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1444)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1579)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1536)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1444)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1579)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1536)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1444)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1579)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1536)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1444)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1187)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:353)
at org.tribuo.regression.liblinear.LibLinearRegressionModelTest.test(LibLinearRegressionModelTest.java:32)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:212)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:208)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:132)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)

[System]

  • OS: Windows
  • Java Version: 8
  • JDK Vendor: [Oracle

[Suggestion]
Add [transient] keyword to [domain] field in ImmutableRegressionInfo class

Extend the CSVLoader class to read from different datasources/targets and different kinds of formats

Is your feature request related to a problem? Please describe.
At the moment it appears the CSVLoader can only load .csv files from the disk or a file system. Which could be a limitation both from the functionality point of view and also provenance (metadata) recording point of view.

In the Provenance data, we see the path of the file given during the training process, this path could be invalid if the process was run in docker containers or another ephemeral means.

Other libraries (non-Java based) allow loading .tgz, .zip, etc formats and although this may just be a single step when trying to manage multiple datasets this can be a boon.

Describe the solution you'd like
CSVLoader through sub-class implementations allow loading:

  • files downloaded from not just local file system but also via the web (Secure and public sources i.e. S3 bucket or github)
  • files stored in different formats i.e. .tgz, .zip (compressed formats mainly)
  • data stored in datastores / databases (via login/password or other connection strings)
  • additional metadata information about the dataset itself, i.e field definition and background of the dataset or links or resources to them

Additional context
Maybe show these functionalities or other functionalities or features of CSVLoader via notebook tutorials.

This request is actually two folds:

  • file format
  • data source (or target) location

Once any or all of these are established, the provenance information can now have a bit more independent set of information on how to replicate the data loading process.

For e.g.


TrainTestSplitter(
	class-name = org.tribuo.evaluation.TrainTestSplitter
	source = CSVLoader(
			class-name = org.tribuo.data.csv.CSVLoader
			outputFactory = LabelFactory(
					class-name = org.tribuo.classification.LabelFactory
				)
			response-name = species
			separator = ,
			quote = "
			path = file:/Users/apocock/Development/Tribuo/tutorials/bezdekIris.data
			file-modified-time = 2020-07-06T10:52:01.938-04:00
			resource-hash = 36F668D1CBC29A8C2C1128C5D2F0D400FA04ED4DC62D12246F44CE9360360CC0
		)
	train-proportion = 0.7
	seed = 1
	size = 150
	is-train = true
)

From the above I could not recreate the model building process or just the data loading process easily because path = file:/Users/apocock/Development/Tribuo/tutorials/bezdekIris.data is local an individual computer system. While we could have paths like path = https://path/to/bezdekIris.data which would make the whole process a lot more independent. And also add value to the provenance metadata, as we would know the original source of the data.

Documentation for Gradle dependency is not correct

Describe the bug

The way of adding Gradle dependency in the documentation is not correct.
This is because it loads only the pom file itself but not all transient jars.

I had to add transitive property to make it work.

    api ('org.tribuo:tribuo-all:4.0.0@pom') {
        transitive = true
    }

System information:

  • OS: macOS 10.15.6
  • Java Version: 1.8.0_231
  • JDK Vendor: Oracle

Tribuo KmeansTrainer doesn't work with Java 11 (or any later version) + SecurityManager because of using ForkJoinPool

Describe the bug
From Java 11, the security policies doesnโ€™t get propagated to ForkJoinPool worker threads if a SecurityManager is present ( https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ForkJoinPool.html )
Kmeans depends on ForkJoinPool to run the training tasks: https://github.com/oracle/tribuo/blob/v4.1.0/Clustering/KMeans/src/main/java/org/tribuo/clustering/kmeans/KMeansTrainer.java#L197
So, any java application relay on SecurityManager and security policies won't able to work with Tribuo Kmeans because of AccessControlException.

To Reproduce
We have a Java application with security manager and security policy, our Java application could work with Tribuo Kmeans and Java 8. But when the Java application (with Tribuo Kmeans) work with Java 11, Java 14 or Java 15, there would be AccessControlException:
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup")

Expected behaviour
The security policy defined by the Java application should be applied to any threads.

Screenshots
N/A.

System information:

  • OS: [e.g., Linux]
  • Java Version: [e.g., 11, 14 & 15]
  • JDK Vendor: [e.g., Oracle & OpenJDK ]

Additional context
Reference URLs:
https://stackoverflow.com/questions/55333290/jdk11-security-policies-doesn-t-get-propagated-to-forkjoinpool-worker-threads
http://5.9.10.113/66435138/how-to-perform-the-parallel-execution-under-a-collection-when-securitymanager-is
http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-December/024044.html
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ForkJoinPool.html

CSVDataSource ignoring first column

The first column in my CSV file is always ignored i.e. doesn't get loaded into the feature map.

Example: if Role is the first column in the file, it doesn't appear when the feature map is logged. If I insert a "dummy" column, then role appears.

        Map<String, FieldProcessor> fieldProcessorMap = new HashMap<>();

        fieldProcessorMap.put("YearsExperience", new DoubleFieldProcessor("YearsExperience") );
        fieldProcessorMap.put("Location", new IdentityProcessor("Location") );
        fieldProcessorMap.put("Role", new IdentityProcessor("Role"));

        var responseProcessor = new FieldResponseProcessor<>("CurrentSalary", "0", new LabelFactory());

        var id = new IntExtractor("ID");

        var rowProcessor = new RowProcessor<>(Collections.singletonList(id), null, responseProcessor, fieldProcessorMap, Collections.emptySet());

        var csvDataSource = new CSVDataSource<>(Paths.get("data/dummy/sample1.csv"), rowProcessor, true);

        var dataSplitter = new TrainTestSplitter<>(csvDataSource, 0.7, 1L);

        var trainingDataset = new MutableDataset<>(dataSplitter .getTrain());
        var testingDataset = new MutableDataset<>(dataSplitter .getTest());

        for (var i : trainingDataset.getFeatureMap())
            log.info(i);

Getting strange error on crossvalidation

Hello, I was doing cross Validation and yesterday everything was fine but suddenly i started getting this error on random forest cCV evaluation
Balanced Error Rate 0.111, b=random-forest-ensemble - EnsembleModel(class-name=org.tribuo.ensemble.WeightedEnsembleModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),trainer=Trainer(class-name=org.tribuo.common.tree.RandomForestTrainer,seed=12345,innerTrainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=450,is-sequence=false,host-short-name=Trainer),combiner=EnsembleCombiner(class-name=org.tribuo.classification.ensemble.VotingCombiner,host-short-name=EnsembleCombiner),numMembers=50,train-invocation-count=9,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.038+05:30,instance-values={},member-provenance=[Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=391609216,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=450,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:23.994+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1095479433,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=451,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:23.995+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=687339924,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=452,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:23.997+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=644176291,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=453,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:23.998+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1386680897,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=454,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:23.999+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=120702809,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=455,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-2044425235,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=456,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.001+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1836355594,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=457,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.002+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=281648548,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=458,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.003+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1218226175,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=459,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.004+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-690707118,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=460,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.005+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1939757518,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=461,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.006+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-146184469,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=462,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.007+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=197454119,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=463,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.008+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-50164363,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=464,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.009+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-72823827,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=465,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.010+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=2041274414,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=466,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.011+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-233450262,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=467,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.012+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=763588343,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=468,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.013+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-434116448,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=469,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.014+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1325702372,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=470,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.014+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=998453701,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=471,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.015+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=259039432,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=472,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.016+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=908260853,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=473,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.017+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1606879473,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=474,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.018+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=717780063,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=475,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.019+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1775886851,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=476,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.019+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-780142499,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=477,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.020+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1271292388,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=478,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.021+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1233646913,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=479,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.022+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-544553905,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=480,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.022+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=351545976,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=481,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.023+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-64728151,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=482,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.024+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-272433500,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=483,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.025+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-195709713,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=484,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.026+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1026715869,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=485,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.026+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1284091177,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=486,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.027+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1464424572,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=487,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.028+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1159998704,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=488,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.029+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1195952065,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=489,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.030+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=927688475,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=490,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.031+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-719116293,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=491,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.032+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-452538228,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=492,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.032+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1001491713,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=493,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.033+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-779071405,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=494,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.034+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1889605945,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=495,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.035+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1602620334,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=496,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.035+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=1886381680,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=497,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.036+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-181678246,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=498,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.037+05:30,instance-values={},tribuo-version=4.0.1), Model(class-name=org.tribuo.common.tree.TreeModel,dataset=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=DatasetView(class-name=org.tribuo.dataset.DatasetView,datasource=Dataset(class-name=org.tribuo.MutableDataset,datasource=SplitDataSourceProvenance(className=org.tribuo.evaluation.TrainTestSplitter,innerSourceProvenance=CSV(class-name=org.tribuo.data.csv.CSVLoader,outputFactory=OutputFactory(class-name=org.tribuo.classification.LabelFactory),response-name=Species,separator=,,quote=",path=file:/C:/Users/Nikki%20singh/Downloads/Iris.csv,file-modified-time=2019-09-21T17:26:12+05:30,resource-hash=SHA-256[600AC44F23C2E6E0AE37DAAC8CEB2BABA4DF963EFA580EB31B3B576B28E34C55]),trainProportion=0.7,seed=1,size=150,isTrain=true),transformations=[],is-sequence=false,is-dense=false,num-examples=105,num-features=5,num-outputs=3,tribuo-version=4.0.1),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-1,tag=TrainFold(seed=12345,10 of 10),weighted=false,sampled=false,indices=[]),transformations=[],is-sequence=false,is-dense=false,num-examples=95,num-features=5,num-outputs=3,tribuo-version=4.0.1,size=95,seed=-971459193,tag=,weighted=false,sampled=true,indices=[]),trainer=Trainer(class-name=org.tribuo.classification.dtree.CARTClassificationTrainer,maxDepth=6,impurity=LabelImpurity(class-name=org.tribuo.classification.dtree.impurity.GiniIndex,host-short-name=LabelImpurity),seed=12345,fractionFeaturesInSplit=0.5,minChildWeight=5.0,train-invocation-count=499,is-sequence=false,host-short-name=Trainer),trained-at=2020-11-07T17:14:24.038+05:30,instance-values={},tribuo-version=4.0.1)])}]
WHAT IS THIS NOW..?

[Docs] Discrepancy in Gradle instruction between docs on Tribuo.org and GitHub README.md

Describe the bug

The Gradle tab in https://tribuo.org/#gradle says:

implementation ("org.tribuo:tribuo-all:4.0.1@pom") {
    transitive = true // for Groovy
    // isTransitive = true // for Kotlin
}

while the README on GitHub says:

api 'org.tribuo:tribuo-all:4.0.0@pom'

The former works in Gradle 6.5, the latter does not work, and gives the below error:

* What went wrong:
A problem occurred evaluating root project 'tribuo-classification'.
> Could not find method api() for arguments [org.tribuo:tribuo-all:4.0.1@pom] on object of 
type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Expected behaviour

Both docs to refer to the same information. Also would help if there was a bit more context to the Gradle docs, i.e.:

dependencies {
    implementation ("org.tribuo:tribuo-all:4.0.1@pom")
    ....
}

MNIST is not loading in Config.json

i m using tribuo and trying to find mnist dataset in config json ...all the components are loading nut MNIST test/train is giving me NULL POINTER EXCEPTION.
1.my config code
ConfigurationManager.addFileFormatFactory(new JsonConfigFactory()); String configFile = "config.json"; ConfigurationManager cm = new ConfigurationManager(configFile); System.out.println( cm.lookup("mnist-train")); //GIVING NULL POINTER EXCEPTION System.out.println( cm.lookup("logistic")); //RUNNING PERFECTLY FINE RETURNING LOGISSTIC TRAINER
2.MY CONFIG.JSON
Screenshot (37)
whats the matter?

Documentation pages not colorblind friendly

Is your feature request related to a problem? Please describe.
This is not a major issue, but it is something that is often overlooked in UX design.

I was reading through documentation on Tribuo when I noticed an issue regarding the color palette of hyperlinks and keywords. I'm colorblind (red/green), and they (links and keywords) appear to me as the same or very similar colors. Because of this, I was attempting to click on keywords for more information only to find that they were not links.

Describe alternatives you've considered

There are a couple of possible solutions. Hyperlinks could have some visual indicator such as being underlined. Fonts of keywords or links (or both) could be chosen so that they are immediately identifiable as being different. Lastly, the color palettes chosen for them could be made more distinct. An option could even be created for visitors of the page to enable a colorblind friendly palette so as not to upset the UX design of the site.

Incremental/Online training of Models

According to official documentation

"Once a model has been trained, it can be fed previously unseen Examples to produce Predictions of their Outputs"

I've only seen the possibility to add new Examples to Dataset using dataset.add(example); but not to Model.

Is this possible and I'm missing something?

transforming data?

hey i want a good tutorial on data transformation.i m following docs but getting confused by similar terminology like transformerMap transform transformation transformationMap etc..can you point me out to the quick start of transformation of dataset ..so that i can easily apply normalization binning vectorization all kind of data processesing stuff?

Binningtransformation

Hey ,i m trying to figuring out binning using binningtransformation how can i integrate it with transformerMao and turn my numeric feature into bins (numeric) i have read the docs but dont know where to start? guide me up please

Allow JsonDataSource and CsvDataSource to read all files from a folder (not just a single file)

Is your feature request related to a problem? Please describe.
My data source is a list of json files. I have to concatenate them into one file before using the JsonDataSource consrtructor

Describe the solution you'd like
Allow the JsonDataSource constructor to accept the path to a folder

Describe alternatives you've considered
Doing the aggregation of all files into one big file myself, before feeding it to JsonDataSource

Additional context
It is not uncommen to receive data sources as a collection of files, instead of one big file. A convenience method to handle this common case would be appreciated.

how to test model in real world?

hey,i have currently tested random forest and everything is good for now.But how can i start predicting i.e take inputs from user and then give them the result modified .I was digging api and found Example class but dont know how make it a feature of inputs to use in model.predict function.for e.g if i want to predict height using feature age and weight from user how would i do that .i was considering to use datasource class and finding out something which can turn list of inputs into Example dataset then passing it to model.predict() ..is there any Tribuo way i should use?

How to extract a human friendly explanation for most significant features in a model (using LIME)?

Hi,

I'm building an SVM model with relatively large set of features (10k+). After the model is trained well I'd like to give my users a good explanation of what drives model's decision making. I found out that Tribuo supports LIME for this purpose and decided to give it a go, however I'm finding it hard to extract meaningful information from the API. The problem I'm trying to solve could be defined as follows:

Given

  • large set of features F
  • SVM classifier trained to recognize classes A & B
  • random sample (known, or previously unknown to the classifier) of class A

I'd like to get an information about

  • a subset of N-features F that drive the classifier most to predict the sample being of class A (correct class)
  • a subset of N-features F that drive the classifier most to predict the sample being of class B (incorrect class)

Example, for textual sample:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
... where each word is a separate feature, and the classifier is trained to search for this popular dummy text, I'd like to see an output like this:

  • Positive features: lorem:1.0, ipsum: 1.0
  • Negative features: sit: -0.5, do: -0.9

Thus far I was able to successfully run LIME using LIMEColumnar class, but the only meaningful feature names I could extract were using the following call:

LIMEExplanation explain = lime.explain(...);
explain.getModel().getActiveFeatures(); // <- here

This line always gives me the names of the features which are most significant, but I don't get any weights associated with them (so I cannot prioritize them), nor I am getting any feedback about the negative features.

Is your question about a specific Tribuo class?
LIMEExplanation, LIMEColumnar

System details

  • Tribuo version: 4.1.0

[Question] Why is true negative represented by 'n' in the classification matrix?

Describe the bug

In the confusion matrix:

Class                           n          tp          fn          fp      recall        prec          f1
Iris-versicolor                16          15           1           0       0.938       1.000       0.968
Iris-virginica                 15          15           0           1       1.000       0.938       0.968
Iris-setosa                    14          14           0           0       1.000       1.000       1.000
Total                          45          44           1           1

The title/label for True negative is shown as n instead of tn

Expected behaviour

Most documentations, on confusion matrix I have seen so far, represent it as tn.

It might lead to doubts by those who may be aware of the standard representations. Especially the dependent metrics like recall, precision, f1, accuracy etc... are made up these base metrics (and True negative is one of them).

How to use confusion matrix for cross validation?

How to use confusion matrix .for cross validation im confused by classes matrictargets OR metricId Or evaluationMETRIC ETC ETC.cant find a good model summarization after digging for 3 hours in Java DocS.guide me through please?

Parameter Question

How are you?
First of all, thank you for the open source.

I wonder if there is a performance comparison with Python during the practice.

image

Also, I am not sure about the functions of the above parameters in the picture among the Regression parts in the Tutorial.

I would like to ask you what these parameters are actually used in Python and if RNG is the Random Number Generator.

I'm sure you're busy, but I'd appreciate it if you could answer the questions.

Have a good day and thank you again for the good code release. :D

CSVLoader.loadDataSource() cannot load data without objective variable

problem

CSVLoader.loadDataSource() cannot load data which does not have objective (response) variable. For example:

// Load Titanic test data downloaded from Kaggle (https://www.kaggle.com/c/titanic)
ListDataSource dataource = csvLoader.loadDataSource(Paths.get("test.csv"),"Survived");
List<Prediction> predicts = model.predict(dataource);

this code results:

Exception in thread "main" java.lang.IllegalArgumentException: Response Survived not found in file file:/home/tamura/git/tribuo-examples/titanic/test_removed.csv
    at org.tribuo.data.csv.CSVLoader.validateResponseNames(CSVLoader.java:286)
    at org.tribuo.data.csv.CSVLoader.innerLoadFromCSV(CSVLoader.java:244)
    at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:238)
    at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:209)
    at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:184)
    at org.tribuo.data.csv.CSVLoader.loadDataSource(CSVLoader.java:138)
    at TitanicSurvivalClassifier.main(TitanicSurvivalClassifier.java:74)

It's a little inconvenient.

Solution

Add methods to load data without response variable name.

How do we unpack a DimensionTuple?

Ask the question
I'm trying to unpack the prediction results after calling model.predict(data), I get a ArrayList of Prediction items.

Each Prediction item in my case is of type Regressor.DimensionTuple, there is a getOutput() method and a getValues() on it but neither give me the prediction value (numeric). It seems there isn't an easy method/API to get this out.

When I call this xgbModel.predict(data).get(0).getOutput(), I get this (DIM-0,5.982707500457764)
When I call this xgbModel.predict(data).get(0).getOutput().getValues(), I get this [D@6b788c95, the getDimensionNamesString() works but not the one to get the value corresponding to it.

What am I not doing? This I believe is an important function. I have been looking at the docs at https://tribuo.org/learn/4.0/javadoc/org/tribuo/regression/Regressor.DimensionTuple.html

Is your question about a specific Tribuo class?
Class Regressor.DimensionTuple,

Additional context
Using the prediciton results to do further analysis.

dll file not found for XGBoost framework?

hey .ddl file is not found in lib/ inside xgboost package.I have downloaded windows version of xgboost but cant find native .ddl lib file for xgboost how to solve this?

ITS NOT A BUG cant import LogisticREGRESSION TRAINER OTHER PACKage.?

Its not a bug i know.but i m unable to import all the packages after successfully dowloaded all dependency from maven.logisticregression is not present in classpath and other evaluation methods are not impoting dont know why..some are already imported but others are not why?... preprocessing stuffs like Grid SearchCv is not present

Update website links to 4.1, etc.

Update the website links to the new 4.1 content

Example(s) with Json?

The tutorials are very helpful, but after going through them and tooling through the Javadocs I'm still not sure how I would go about loading/working with JSON data. Since it's listed as a supported format an example would be great.

CSVLoader.loadDataSource() Response not found

CSVLoader.loadDataSource() Response not found

String[] feature_names = {"LotArea", "YearBuilt", "1stFlrSF", "2ndFlrSF","FullBath", "BedroomAbvGr", "TotRmsAbvGrd"}; var regressionFactory = new RegressionFactory(); var csvLoader = new CSVLoader<>(',', regressionFactory); var houseDataSource = csvLoader.loadDataSource(Paths.get("train.csv"), "SalePrice", feature_names);

this code results:

Exception in thread "main" java.lang.IllegalArgumentException: Response SalePrice not found in file train.csv

link to dataframe

Feature mapping external onnx model

Trying to run inference on an external onnx model [tinyyolov2 - https://github.com/onnx/models/tree/master/vision/object_detection_segmentation/tiny-yolov2]. The docs say that the difficult part is to map the feature and output indices

  1. Is this referring to the input features or the features that the model was trained on?
  2. In either case, what is the best way to figure this out for an externally trained model?
  3. Are there utilities in the library that allow for converting images into required input tensors for the model based on the model requirements/specs? [in this case converting to (1x3x416x416) ]

use maven enforcer to ensure dependency convergence

If you run the following command from the top-level directory of Tribuo you get errors:

mvn enforcer:enforce -Drules=dependencyConvergence

The first dependency convergence error reported is:

+-org.tribuo:tribuo-data:4.1.0-SNAPSHOT
  +-com.opencsv:opencsv:5.2
    +-org.apache.commons:commons-lang3:3.10

and

+-org.tribuo:tribuo-data:4.1.0-SNAPSHOT
  +-com.opencsv:opencsv:5.2
    +-org.apache.commons:commons-text:1.8
      +-org.apache.commons:commons-lang3:3.9

We should probably specify the maven enforcer plugin in the pom.xml file with a snippet like this:

 <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-enforcer-plugin</artifactId>
         <version>${maven-enforcer-plugin.version}</version>
         <executions>
           <execution>
             <id>enforce</id>
             <configuration>
               <rules>
                 <dependencyConvergence/>
               </rules>
             </configuration>
             <goals>
               <goal>enforce</goal>
             </goals>
           </execution>
         </executions>
       </plugin>

See https://maven.apache.org/enforcer/maven-enforcer-plugin/usage.html for more details and options.

Datapreprocessing stuffs ?

hey today i have seen my friend using SMOT for imbalanced dataset a KNN type of algorithm for managing imbalanced data samples .its super easy in python and maintain dataset information with ratio.How can i do same kind of tricks in tribuo without touching any GUI tools tableau or rapidminer. there are more other tricks i found today:

  • random oversampling

  • Vectorization of longtext data

how can i do them in tribou ?
or alternatives you suggest? for same

The way to select particular features from CSV file

Hi,

I'm new to ML stuff but decided to start with your library.

I have a question:
Given this dataset: https://archive.ics.uci.edu/ml/datasets/student+performance

I'm trying to make a linear regression to predict grade (G3) for students based on several features from this dataset.
I want to use to the following features: G1, G2, studytime, failures, absences.

How I can define which columns of the csv file need to use as features for dataset?
It seems to me the CSVLoader treats all columns which are not response names as features.
This leads to the exception because it's trying to convert all features to double:

Exception in thread "main" java.lang.NumberFormatException: For input string: "course"
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
	at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)

I've seen examples on python with Pandas library where you can pick the columns for features and another column for result.
Is it possible to do kind of like that with Tribuo?

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.