Package: niaaml
NiaAML is an automated machine learning Python framework based on
nature-inspired algorithms for optimization. The name comes from the
automated machine learning method of the same name [1]. Its
goal is to efficiently compose the best possible classification pipeline
for the given task using components on the input. The components are
divided into three groups: feature seletion algorithms, feature
transformation algorithms and classifiers. The framework uses
nature-inspired algorithms for optimization to choose the best set of
components for the classification pipeline on the output and optimize
their parameters. We useNiaPy frameworkfor the optimization process
which is a popular Python collection of nature-inspired algorithms. The
NiaAML framework is easy to use and customize or expand to suit your
needs.The NiaAML framework allows you not only to run full pipeline optimization, but also separate implemented components such as classifiers, feature selection algorithms, etc.It supports numerical and categorical features as well as missing values in datasets.Documentation:https://niaaml.readthedocs.io/en/latest/,Tested OS:Windows, Ubuntu, Fedora, Linux Mint and CentOS.However, that does not mean it does not work on others.InstallationpipInstall NiaAML with pip3:pip3installniaamlIn case you would like to try out the latest pre-release version of the framework, install it using:pip3installniaaml--preGraphical User InterfaceYou can find a simple graphical user interface for NiaAML packagehere.UsageSee the project’srepositoryfor usage examples.ComponentsIn the following sections you can see a list of currently implemented
components divided into groups: classifiers, feature selection
algorithms and feature transformation algorithms. At the end you can
also see a list of currently implemented fitness functions for the optimization process,
categorical features’ encoders, and missing values’ imputers.ClassifiersAdaptive Boosting (AdaBoost),Bagging (Bagging),Extremely Randomized Trees (ExtremelyRandomizedTrees),Linear SVC (LinearSVC),Multi Layer Perceptron (MultiLayerPerceptron),Random Forest Classifier (RandomForest),Decision Tree Classifier (DecisionTree),K-Neighbors Classifier (KNeighbors),Gaussian Process Classifier (GaussianProcess),Gaussian Naive Bayes (GaussianNB),Quadratic Discriminant Analysis (QuadraticDiscriminantAnalysis).Feature Selection AlgorithmsSelect K Best (SelectKBest),Select Percentile (SelectPercentile),Variance Threshold (VarianceThreshold).Nature-InspiredBat Algorithm (BatAlgorithm),Differential Evolution (DifferentialEvolution),Self-Adaptive Differential Evolution (jDEFSTH),Grey Wolf Optimizer (GreyWolfOptimizer),Particle Swarm Optimization (ParticleSwarmOptimization).Feature Transformation AlgorithmsNormalizer (Normalizer),Standard Scaler (StandardScaler),Maximum Absolute Scaler (MaxAbsScaler),Quantile Transformer (QuantileTransformer),Robust Scaler (RobustScaler).Fitness Functions based onAccuracy (Accuracy),Cohen’s kappa (CohenKappa),F1-Score (F1),Precision (Precision).Categorical Feature EncodersOne-Hot Encoder (OneHotEncoder).Feature ImputersSimple Imputer (SimpleImputer).LicenceThis package is distributed under the MIT License. This license can be
found online athttp://www.opensource.org/licenses/MIT.DisclaimerThis framework is provided as-is, and there are no guarantees that it
fits your purposes or that it is bug-free. Use it at your own risk!References[1] Iztok Fister Jr., Milan Zorman, Dušan Fister, Iztok Fister.
Continuous optimizers for automatic design and evaluation of
classification pipelines. In: Frontier applications of nature inspired
computation. Springer tracts in nature-inspired computing, pp.281-301,
2020.