User Guide of PennAIpy¶
Installation of AI engine as a standalone python package¶
Aliro AI engine is built on top of several existing Python libraries, including:
Most of the necessary Python packages can be installed via the Anaconda Python distribution, which we strongly recommend that you use.
You can install Aliro AI engine using pip.
NumPy, SciPy, scikit-learn, pandas and joblib can be installed in Anaconda via the command:
conda install numpy scipy scikit-learn pandas joblib simplejson
Surprise was tweaked for the Aliro AI engine and it can be install with pip via the command below. Note: `Microsoft C++ Build Tools <https://visualstudio.microsoft.com/visual-cpp-build-tools/>`_ is required for building the surprise package in Windows OS. Please download and run the installer with selecting “C++ Build tools”. Additionally, the latest version of ```cython`` <https://cython.org>`_ is required and it can be installed/updated via ``pip install –upgrade cython``.
pip install --no-cache-dir git+https://github.com/lacava/surprise.git@1.1.1.1
Finally to install AI engine itself, run the following command:
pip install pennaipy
Example of using Aliro AI engine¶
The following code illustrates how Aliro can be employed for performing a simple classification task over the Iris dataset.
from pennai.sklearn import PennAIClassifier
from pennai.recommender import KNNMetaRecommender
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import numpy as np
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data.astype(np.float64),
iris.target.astype(np.float64), train_size=0.75, test_size=0.25, random_state=42)
pennai = PennAIClassifier(
rec_class=KNNMetaRecommender,
n_recs=5,
n_iters=10,
random_state=42,
verbose=2
)
pennai.fit(X_train, y_train)
print(pennai.score(X_test, y_test))
Default knowledgebase/metafeatures of Aliro AI engine¶
If you don’t specify knowledgebase and kb_metafeatures in PennAIClassifier or PennAIRegressor, Aliro AI engine will use default knowledgebase based on pmlb(version0.3).
Default Knowledgebase |
Default Metafeatures |
|
|---|---|---|
Classification |
||
Regression |
Example of using Aliro AI engine with non-default knowledgebase/metafeature.¶
from pennai.sklearn import PennAIClassifier
from pennai.recommender import KNNMetaRecommender
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import numpy as np
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data.astype(np.float64),
iris.target.astype(np.float64), train_size=0.75, test_size=0.25, random_state=42)
classification_kb = "https://github.com/EpistasisLab/Aliro/raw/ai_sklearn_api/data/knowledgebases/sklearn-benchmark5-data-knowledgebase-small.tsv.gz"
classification_metafeatures="https://github.com/EpistasisLab/Aliro/raw/ai_sklearn_api/data/knowledgebases/pmlb_classification_metafeatures.csv.gz"
pennai = PennAIClassifier(
rec_class=KNNMetaRecommender,
n_recs=5,
n_iters=10,
knowledgebase=classification_kb,
kb_metafeatures=classification_metafeatures,
random_state=42,
verbose=2
)
pennai.fit(X_train, y_train)
print(pennai.score(X_test, y_test))
Example of using Aliro AI engine with pre-trained SVG recommender¶
The pre-trained SVG recommender is provided for saving computational time for initializing the recommender with default knowledgebase in Aliro. The following code illustrates how to use the pre-trained SVG recommender:
from pennai.sklearn import PennAIClassifier
from pennai.recommender import SVDRecommender
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import urllib
import numpy as np
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data.astype(np.float64),
iris.target.astype(np.float64), train_size=0.75, test_size=0.25, random_state=42)
# download pre-trained SVG recommender for pennai's github
urllib.request.urlretrieve("https://github.com/EpistasisLab/Aliro/raw/ai_sklearn_api/data/recommenders/scikitlearn/SVDRecommender_classifier_accuracy_pmlb.pkl.gz", "SVDRecommender_classifier_accuracy_pmlb.pkl.gz")
serialized_rec = "SVDRecommender_classifier_accuracy_pmlb.pkl.gz"
pennai = PennAIClassifier(
rec_class=SVDRecommender,
n_recs=5,
n_iters=10,
serialized_rec=serialized_rec,
random_state=42,
verbose=2
)
pennai.fit(X_train, y_train)
print(pennai.score(X_test, y_test))
Please check the “Scikit-learn API for Aliro engine” section in AI API.