{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "5ROgtvTfTdy9" }, "source": [ "## FlexTab Examples\n", "Model page: https://huggingface.co/SAP/FlexTab" ] }, { "cell_type": "markdown", "metadata": { "id": "N-54dB6iTdy_" }, "source": [ "The model you are trying to use is gated. Please make sure you have access to it by visiting the model page.To run inference, either set HF_TOKEN in your environment variables/ Secrets or run the following cell to login. 🤗" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "o7iIwHVHTdzA" }, "outputs": [], "source": [ "from huggingface_hub import login\n", "login(new_session=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Uninstall conflicting packages from the default Colab environment\n", "!pip uninstall torch torchvision torchaudio -y`" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "6GqTz9gYTdzB" }, "outputs": [], "source": [ "# Install FlexTab core code\n", "!pip install git+https://github.com/SAP-samples/flextab" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "jzA1dexsTdzB" }, "outputs": [], "source": [ "from sklearn.datasets import load_breast_cancer\n", "from sklearn.metrics import accuracy_score\n", "from sklearn.model_selection import train_test_split\n", "\n", "from flextab import FlexTabClassifier\n", "\n", "# Load sample data\n", "X, y = load_breast_cancer(return_X_y=True)\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)\n", "\n", "# Initialize a classifier, 8k context and 8-fold bagging gives best performance, reduce if running out of memory\n", "clf = FlexTabClassifier(max_context_size=8192, bagging=8)\n", "\n", "clf.fit(X_train, y_train)\n", "\n", "# Predict probabilities\n", "prediction_probabilities = clf.predict_proba(X_test)\n", "# Predict labels\n", "predictions = clf.predict(X_test)\n", "print(\"Accuracy\", accuracy_score(y_test, predictions))" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "ZlG2jXfWTdzC" }, "outputs": [], "source": [ "from sklearn.datasets import fetch_openml\n", "from sklearn.metrics import r2_score\n", "from sklearn.model_selection import train_test_split\n", "\n", "from flextab import FlexTabRegressor\n", "\n", "# Load sample data\n", "df = fetch_openml(data_id=531, as_frame=True)\n", "X = df.data\n", "y = df.target.astype(float)\n", "\n", "# Train-test split\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)\n", "\n", "# Initialize the regressor, 8k context and 8-fold bagging gives best performance, reduce if running out of memory\n", "regressor = FlexTabRegressor(max_context_size=8192, bagging=8)\n", "\n", "regressor.fit(X_train, y_train)\n", "\n", "# Predict on the test set\n", "predictions = regressor.predict(X_test)\n", "\n", "r2 = r2_score(y_test, predictions)\n", "print(\"R² Score:\", r2)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from sklearn.metrics import accuracy_score, roc_auc_score\n", "\n", "from flextab import FlexTabMatcher\n", "from flextab.utils.test_utils import load_febrl4\n", "\n", "left_train, left_test, right_train, right_test, y_train, y_test = load_febrl4()\n", "\n", "matcher = FlexTabMatcher(max_context_size=8192, bagging=1)\n", "matcher.fit(left_train, right_train, y_train)\n", "predictions = matcher.predict(left_test, right_test)\n", "print(f'Accuracy {accuracy_score(y_test, predictions):.2%}')\n", "# Probabilities (e.g. for thresholding or AUROC):\n", "# probas = matcher.predict_proba_matching(left_test, right_test)\n", "# print(f'AUROC {roc_auc_score(y_test, probas[:, 1]):.2%}')" ] } ], "metadata": { "accelerator": "GPU", "colab": { "gpuType": "T4", "machine_shape": "hm", "provenance": [] }, "kaggle": { "accelerator": "gpu" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }