diff --git a/.gitignore b/.gitignore index 698d1dae..f99d56d2 100644 --- a/.gitignore +++ b/.gitignore @@ -248,6 +248,7 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. .idea/ +.run/ # End of https://www.toptal.com/developers/gitignore/api/macos,emacs,python diff --git a/docs/source/user_guides/library.rst b/docs/source/user_guides/library.rst index aada8b59..a47296a9 100644 --- a/docs/source/user_guides/library.rst +++ b/docs/source/user_guides/library.rst @@ -69,6 +69,7 @@ So you can modify the metadata of your dataset before fit model. from sdgx.data_models.metadata import Metadata metadata = Metadata.from_dataframe(df) +Click `here `_ to find more examples for metadata. Use :ref:`Synthesizer ` to generate synthetic data --------------------------------------------------------------------------------- diff --git a/example/sdgx_example_ctgan.ipynb b/example/sdgx_example_ctgan.ipynb index 42c083b1..1d410596 100644 --- a/example/sdgx_example_ctgan.ipynb +++ b/example/sdgx_example_ctgan.ipynb @@ -1,1092 +1,1093 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "i5w5Oktvr7bC" - }, - "source": [ - "\n", - "\n", - "
\n", - "

\n", - "\n", - "\n", - "# 🚀 Synthetic Data Generator\n", - "\n", - "

\n", - "
\n", - "\n", - "The Synthetic Data Generator (SDG) is a specialized framework designed to generate high-quality structured tabular data. It incorporates a wide range of single-table, multi-table data synthesis algorithms and LLM-based synthetic data generation models.\n", - "\n", - "Synthetic data, generated by machines using real data, metadata, and algorithms, does not contain any sensitive information, yet it retains the essential characteristics of the original data. There is no direct correlation between synthetic data and real data, making it exempt from privacy regulations such as GDPR and ADPPA. This eliminates the risk of privacy breaches in practical applications." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "OikMoGinr7bF", - "outputId": "3ce73c4d-c7e5-4160-b912-0bc78d6d9a11" - }, - "outputs": [], - "source": [ - "# install dependencies\n", - "!pip install git+https://github.com/hitsz-ids/synthetic-data-generator.git\n", - "!pip install table_evaluator\n", - "!pip install joblib==1.3.2" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NkzQVyvRr7bH" - }, - "source": [ - "We demonstrate with a single table data synthetic example." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "id": "a1JTesuSr7bH" - }, - "outputs": [], - "source": [ - "from sdgx.data_connectors.csv_connector import CsvConnector\n", - "from sdgx.models.ml.single_table.ctgan import CTGANSynthesizerModel\n", - "from sdgx.synthesizer import Synthesizer\n", - "from sdgx.data_loader import DataLoader\n", - "from sdgx.data_models.metadata import Metadata" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hNCC1XASr7bH" - }, - "source": [ - "# 1. Load data and understand the data\n", - "\n", - "The demo data set for this demonstration is a risk control data set used to predict whether an individual will default on a loan. This dataset contains the following features:\n", - "\n", - "| Column name | Meaning |\n", - "|-----------------------|-----------------------|\n", - "| loan_id | loan ID |\n", - "| user_id | user ID |\n", - "| total_loan | Total loan amount |\n", - "| year_of_loan | Loan period |\n", - "...\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "# download the example dataset\n", - "import os \n", - "import pandas as pd\n", - "import requests\n", - "\n", - "def download_file(url, path):\n", - " response = requests.get(url)\n", - " if response.status_code == 200:\n", - " with open(path, 'wb') as file:\n", - " file.write(response.content)\n", - " print(f\"File downloaded successfully to {path}\")\n", - " else:\n", - " print(f\"Failed to download file from {url}\")\n", - "dataset_url = \"https://raw.githubusercontent.com/aialgorithm/Blog/master/projects/一文梳理风控建模全流程/train_internet.csv\"\n", - "\n", - "if not os.path.exists(\"train_internet.csv\"):\n", - " download_file(dataset_url, \"train_internet.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This code shows the process of loading real data:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "id": "x5t8M4E6r7bI" - }, - "outputs": [], - "source": [ - "from pathlib import Path\n", - "file_path = './train_internet.csv'\n", - "path_obj = Path(file_path)\n", - "\n", - "# Create a data connector and data loader for csv data\n", - "data_connector = CsvConnector(path=path_obj)\n", - "data_loader = DataLoader(data_connector)" - ] + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "i5w5Oktvr7bC" + }, + "source": [ + "\n", + "\n", + "
\n", + "

\n", + "\n", + "\n", + "# 🚀 Synthetic Data Generator\n", + "\n", + "

\n", + "
\n", + "\n", + "The Synthetic Data Generator (SDG) is a specialized framework designed to generate high-quality structured tabular data. It incorporates a wide range of single-table, multi-table data synthesis algorithms and LLM-based synthetic data generation models.\n", + "\n", + "Synthetic data, generated by machines using real data, metadata, and algorithms, does not contain any sensitive information, yet it retains the essential characteristics of the original data. There is no direct correlation between synthetic data and real data, making it exempt from privacy regulations such as GDPR and ADPPA. This eliminates the risk of privacy breaches in practical applications." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, - { - "cell_type": "markdown", - "metadata": { - "id": "I7YJvILOr7bI" - }, - "source": [ - "# 2. Create synthetic data generation workflow\n", - "\n", - "Below we will use SDG to create a data synthetic workflow. This workflow includes steps such as automated metadata identification, which will help generate high-quality synthetic data:\n", - "\n", - "Firstly, we need to create a metadata object. SDG provides automated metadata identification functions that can extract key information from existing data sources, such as data type, data range, data distribution, etc." - ] + "id": "OikMoGinr7bF", + "outputId": "3ce73c4d-c7e5-4160-b912-0bc78d6d9a11" + }, + "outputs": [], + "source": [ + "# install dependencies\n", + "!pip install git+https://github.com/hitsz-ids/synthetic-data-generator.git\n", + "!pip install table_evaluator\n", + "!pip install joblib==1.3.2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NkzQVyvRr7bH" + }, + "source": [ + "We demonstrate with a single table data synthetic example." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "a1JTesuSr7bH" + }, + "outputs": [], + "source": [ + "from sdgx.data_connectors.csv_connector import CsvConnector\n", + "from sdgx.models.ml.single_table.ctgan import CTGANSynthesizerModel\n", + "from sdgx.synthesizer import Synthesizer\n", + "from sdgx.data_loader import DataLoader\n", + "from sdgx.data_models.metadata import Metadata" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hNCC1XASr7bH" + }, + "source": [ + "# 1. Load data and understand the data\n", + "\n", + "The demo data set for this demonstration is a risk control data set used to predict whether an individual will default on a loan. This dataset contains the following features:\n", + "\n", + "| Column name | Meaning |\n", + "|-----------------------|-----------------------|\n", + "| loan_id | loan ID |\n", + "| user_id | user ID |\n", + "| total_loan | Total loan amount |\n", + "| year_of_loan | Loan period |\n", + "...\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# download the example dataset\n", + "import os \n", + "import pandas as pd\n", + "import requests\n", + "\n", + "def download_file(url, path):\n", + " response = requests.get(url)\n", + " if response.status_code == 200:\n", + " with open(path, 'wb') as file:\n", + " file.write(response.content)\n", + " print(f\"File downloaded successfully to {path}\")\n", + " else:\n", + " print(f\"Failed to download file from {url}\")\n", + "dataset_url = \"https://raw.githubusercontent.com/aialgorithm/Blog/master/projects/一文梳理风控建模全流程/train_internet.csv\"\n", + "\n", + "if not os.path.exists(\"train_internet.csv\"):\n", + " download_file(dataset_url, \"train_internet.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This code shows the process of loading real data:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "id": "x5t8M4E6r7bI" + }, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "file_path = './train_internet.csv'\n", + "path_obj = Path(file_path)\n", + "\n", + "# Create a data connector and data loader for csv data\n", + "data_connector = CsvConnector(path=path_obj)\n", + "data_loader = DataLoader(data_connector)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "I7YJvILOr7bI" + }, + "source": [ + "# 2. Create synthetic data generation workflow\n", + "\n", + "Below we will use SDG to create a data synthetic workflow. This workflow includes steps such as automated metadata identification, which will help generate high-quality synthetic data:\n", + "\n", + "Firstly, we need to create a metadata object. SDG provides automated metadata identification functions that can extract key information from existing data sources, such as data type, data range, data distribution, etc.\n", + "For more info, you can read the metadata notebook. You can also specify the categorical columns encoder in it. Now for this example we use default one-hot encoder." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "2ILAVWcEr7bI", + "outputId": "5da2b0cf-ccec-4d61-b982-fd410275eb12" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "2ILAVWcEr7bI", - "outputId": "5da2b0cf-ccec-4d61-b982-fd410275eb12" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2024-07-31 22:00:19.583\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_models.metadata\u001b[0m:\u001b[36mfrom_dataloader\u001b[0m:\u001b[36m290\u001b[0m - \u001b[1mInspecting metadata...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.347\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_models.metadata\u001b[0m:\u001b[36mupdate_primary_key\u001b[0m:\u001b[36m495\u001b[0m - \u001b[1mPrimary Key updated: {'loan_id', 'user_id'}.\u001b[0m\n" - ] - }, - { - "data": { - "text/plain": [ - "{'class',\n", - " 'earlies_credit_mon',\n", - " 'employer_type',\n", - " 'industry',\n", - " 'issue_date',\n", - " 'sub_class',\n", - " 'work_type',\n", - " 'work_year'}" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loan_metadata = Metadata.from_dataloader(data_loader)\n", - "# Automatically infer discrete columns\n", - "loan_metadata.discrete_columns" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001B[32m2024-07-31 22:00:19.583\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_models.metadata\u001B[0m:\u001B[36mfrom_dataloader\u001B[0m:\u001B[36m290\u001B[0m - \u001B[1mInspecting metadata...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.347\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_models.metadata\u001B[0m:\u001B[36mupdate_primary_key\u001B[0m:\u001B[36m495\u001B[0m - \u001B[1mPrimary Key updated: {'loan_id', 'user_id'}.\u001B[0m\n" + ] }, { - "cell_type": "markdown", - "metadata": { - "id": "S7xtt2dwr7bJ" - }, - "source": [ - "After the model definition is completed, we can use SDG to generate synthetic data." + "data": { + "text/plain": [ + "{'class',\n", + " 'earlies_credit_mon',\n", + " 'employer_type',\n", + " 'industry',\n", + " 'issue_date',\n", + " 'sub_class',\n", + " 'work_type',\n", + " 'work_year'}" ] - }, + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "loan_metadata = Metadata.from_dataloader(data_loader)\n", + "# Automatically infer discrete columns\n", + "loan_metadata.discrete_columns" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "S7xtt2dwr7bJ" + }, + "source": [ + "After the model definition is completed, we can use SDG to generate synthetic data." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "id": "Ehe8Ytr7r7bJ" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "id": "Ehe8Ytr7r7bJ" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2024-07-31 22:00:22.442\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m106\u001b[0m - \u001b[1mUsing data processors: ['nonvaluetransformer', 'outliertransformer', 'emailgenerator', 'chnpiigenerator', 'intvalueformatter', 'datetimeformatter', 'constvaluetransformer', 'emptytransformer', 'columnordertransformer']\u001b[0m\n" - ] - } - ], - "source": [ - "# Initialize synthesizer, use CTGAN model\n", - "synthesizer = Synthesizer(\n", - " metadata= loan_metadata,\n", - " model=CTGANSynthesizerModel(epochs=128),\n", - " data_connector=data_connector,\n", - ")" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001B[32m2024-07-31 22:00:22.442\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36m__init__\u001B[0m:\u001B[36m106\u001B[0m - \u001B[1mUsing data processors: ['nonvaluetransformer', 'outliertransformer', 'emailgenerator', 'chnpiigenerator', 'intvalueformatter', 'datetimeformatter', 'constvaluetransformer', 'emptytransformer', 'columnordertransformer']\u001B[0m\n" + ] + } + ], + "source": [ + "# Initialize synthesizer, use CTGAN model\n", + "synthesizer = Synthesizer(\n", + " metadata= loan_metadata,\n", + " model=CTGANSynthesizerModel(epochs=128),\n", + " data_connector=data_connector,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ij2kfC9Rr7bJ" + }, + "source": [ + "# 3. Train a model\n", + "CTGAN (Conditional Tabular GAN) is a generative neural network model used to generate synthetic tabular data.\n", + "\n", + "Its principle is to achieve data generation by training a generator network and a discriminator network.\n", + "\n", + "The main parameters of CTGAN include:\n", + "\n", + "* embedding_dim: embedding dimension, used to convert discrete features into continuous vector representation.\n", + "* generator_dim: the hidden layer dimension of the generator network.\n", + "* discriminator_dim: the hidden layer dimension of the discriminator network.\n", + "* generator_lr: The learning rate of the generator network.\n", + "* discriminator_lr: The learning rate of the discriminator network.\n", + "*batch_size: The number of samples in each training batch.\n", + "* epochs: The number of iterations of training.\n", + "\n", + "The significance of these parameters is to adjust the performance of the model and the stability of the training process. A larger embedding dimension can improve the representation ability of discrete features, while a larger hidden layer dimension can increase the complexity of the network. The learning rate and batch size can affect the convergence speed and stability of the model, while the number of iterations determines the training time of the model." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "PGeMeJG5r7bJ", + "outputId": "c8950540-41ea-4a5a-9cc7-73058dbd8df3" + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "Ij2kfC9Rr7bJ" - }, - "source": [ - "# 3. Train a model\n", - "CTGAN (Conditional Tabular GAN) is a generative neural network model used to generate synthetic tabular data.\n", - "\n", - "Its principle is to achieve data generation by training a generator network and a discriminator network.\n", - "\n", - "The main parameters of CTGAN include:\n", - "\n", - "* embedding_dim: embedding dimension, used to convert discrete features into continuous vector representation.\n", - "* generator_dim: the hidden layer dimension of the generator network.\n", - "* discriminator_dim: the hidden layer dimension of the discriminator network.\n", - "* generator_lr: The learning rate of the generator network.\n", - "* discriminator_lr: The learning rate of the discriminator network.\n", - "*batch_size: The number of samples in each training batch.\n", - "* epochs: The number of iterations of training.\n", - "\n", - "The significance of these parameters is to adjust the performance of the model and the stability of the training process. A larger embedding dimension can improve the representation ability of discrete features, while a larger hidden layer dimension can increase the complexity of the network. The learning rate and batch size can affect the convergence speed and stability of the model, while the number of iterations determines the training time of the model." - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001B[32m2024-07-31 22:00:22.478\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m292\u001B[0m - \u001B[1mFitting data processors...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.559\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m71\u001B[0m - \u001B[1mNonValueTransformer Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.560\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m87\u001B[0m - \u001B[1mNonValueTransformer get int columns: {'offsprings', 'year_of_loan', 'title', 'scoring_high', 'region', 'house_loan_status', 'house_exist', 'f1', 'early_return_amount', 'f5', 'f0', 'recircle_b', 'initial_list_status', 'f2', 'del_in_18month', 'early_return', 'f3', 'f4', 'censor_status', 'early_return_amount_3mon', 'use', 'scoring_low', 'is_default', 'pub_dero_bankrup', 'post_code', 'marriage', 'total_loan'}.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.561\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m96\u001B[0m - \u001B[1mNonValueTransformer get float columns: {'recircle_u', 'interest', 'monthly_payment', 'debt_loan_ratio'}.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.562\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m101\u001B[0m - \u001B[1mNonValueTransformer get column list from metadata: ['loan_id', 'user_id', 'total_loan', 'year_of_loan', 'interest', 'monthly_payment', 'class', 'sub_class', 'work_type', 'employer_type', 'industry', 'work_year', 'house_exist', 'house_loan_status', 'censor_status', 'marriage', 'offsprings', 'issue_date', 'use', 'post_code', 'region', 'debt_loan_ratio', 'del_in_18month', 'scoring_low', 'scoring_high', 'pub_dero_bankrup', 'early_return', 'early_return_amount', 'early_return_amount_3mon', 'recircle_b', 'recircle_u', 'initial_list_status', 'earlies_credit_mon', 'title', 'policy_code', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'is_default'].\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.563\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m70\u001B[0m - \u001B[1mOutlierTransformer Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.564\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.int\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m40\u001B[0m - \u001B[1mIntValueFormatter Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.565\u001B[0m | \u001B[33m\u001B[1mWARNING \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m70\u001B[0m - \u001B[33m\u001B[1mColumn issue_date has no datetime_format, DatetimeFormatter will REMOVE this column!\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.565\u001B[0m | \u001B[33m\u001B[1mWARNING \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m70\u001B[0m - \u001B[33m\u001B[1mColumn earlies_credit_mon has no datetime_format, DatetimeFormatter will REMOVE this column!\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.566\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m77\u001B[0m - \u001B[1mDatetimeFormatter Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.566\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m49\u001B[0m - \u001B[1mConstValueTransformer Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.567\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m54\u001B[0m - \u001B[1mEmptyTransformer Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.567\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m41\u001B[0m - \u001B[1mColumnOrderTransformer Fitted.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.568\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m301\u001B[0m - \u001B[1mFitted 9 data processors in 0.009096860885620117s.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.568\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m311\u001B[0m - \u001B[1mInitializing processed data loader...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.667\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m110\u001B[0m - \u001B[1mConverting data using NonValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.679\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m130\u001B[0m - \u001B[1mConverting data using NonValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.679\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m84\u001B[0m - \u001B[1mConverting data using OutlierTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.735\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m106\u001B[0m - \u001B[1mConverting data using OutlierTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.736\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.int\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m50\u001B[0m - \u001B[1mConverting data using IntValueFormatter... Finished (No Action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.736\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m89\u001B[0m - \u001B[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.739\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m69\u001B[0m - \u001B[1mConverting data using ConstValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.741\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m77\u001B[0m - \u001B[1mConverting data using ConstValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.742\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m72\u001B[0m - \u001B[1mConverting data using EmptyTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.742\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m76\u001B[0m - \u001B[1mConverting data using EmptyTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.743\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m51\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.743\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m52\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.763\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m318\u001B[0m - \u001B[1mInitialized processed data loader in 0.19505667686462402s\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.764\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m320\u001B[0m - \u001B[1mModel fit Started...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.770\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m110\u001B[0m - \u001B[1mConverting data using NonValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.781\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m130\u001B[0m - \u001B[1mConverting data using NonValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.782\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m84\u001B[0m - \u001B[1mConverting data using OutlierTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.837\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m106\u001B[0m - \u001B[1mConverting data using OutlierTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.838\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.int\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m50\u001B[0m - \u001B[1mConverting data using IntValueFormatter... Finished (No Action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.838\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m89\u001B[0m - \u001B[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.842\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m69\u001B[0m - \u001B[1mConverting data using ConstValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.845\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m77\u001B[0m - \u001B[1mConverting data using ConstValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.845\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m72\u001B[0m - \u001B[1mConverting data using EmptyTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.845\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m76\u001B[0m - \u001B[1mConverting data using EmptyTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.846\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m51\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.846\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m52\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.847\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_pre_fit\u001B[0m:\u001B[36m234\u001B[0m - \u001B[1mFitting model's transformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.861\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m110\u001B[0m - \u001B[1mConverting data using NonValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.872\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m130\u001B[0m - \u001B[1mConverting data using NonValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.872\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m84\u001B[0m - \u001B[1mConverting data using OutlierTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.928\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m106\u001B[0m - \u001B[1mConverting data using OutlierTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.929\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.int\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m50\u001B[0m - \u001B[1mConverting data using IntValueFormatter... Finished (No Action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.929\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m89\u001B[0m - \u001B[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.933\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m69\u001B[0m - \u001B[1mConverting data using ConstValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.935\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m77\u001B[0m - \u001B[1mConverting data using ConstValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.936\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m72\u001B[0m - \u001B[1mConverting data using EmptyTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.936\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m76\u001B[0m - \u001B[1mConverting data using EmptyTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.936\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m51\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:22.937\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m52\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.759\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_pre_fit\u001B[0m:\u001B[36m236\u001B[0m - \u001B[1mTransforming data...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.772\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m110\u001B[0m - \u001B[1mConverting data using NonValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.786\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m130\u001B[0m - \u001B[1mConverting data using NonValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.786\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m84\u001B[0m - \u001B[1mConverting data using OutlierTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.854\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m106\u001B[0m - \u001B[1mConverting data using OutlierTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.854\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.int\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m50\u001B[0m - \u001B[1mConverting data using IntValueFormatter... Finished (No Action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.855\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m89\u001B[0m - \u001B[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.859\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m69\u001B[0m - \u001B[1mConverting data using ConstValueTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.862\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m77\u001B[0m - \u001B[1mConverting data using ConstValueTransformer... Finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.862\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m72\u001B[0m - \u001B[1mConverting data using EmptyTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.863\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m76\u001B[0m - \u001B[1mConverting data using EmptyTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.863\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m51\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer...\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:29.864\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mconvert\u001B[0m:\u001B[36m52\u001B[0m - \u001B[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:35.669\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_pre_fit\u001B[0m:\u001B[36m239\u001B[0m - \u001B[1mSampling data.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:35.929\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_pre_fit\u001B[0m:\u001B[36m244\u001B[0m - \u001B[1mInitialize Generator.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:35.936\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m219\u001B[0m - \u001B[1mCTGAN prefit finished, start CTGAN training.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:35.936\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m261\u001B[0m - \u001B[1mFit using data_size:5939, data_dim: 940.\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:36.487\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m287\u001B[0m - \u001B[1mStarting model training, epochs: 128\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:40.684\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 1, Loss G: 3.5656, Loss D: -0.9016, Time: 4.1961\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:44.811\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 2, Loss G: 3.1313, Loss D: -0.7388, Time: 4.1267\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:49.123\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 3, Loss G: 3.2781, Loss D: -0.4140, Time: 4.3107\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:53.481\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 4, Loss G: 2.5242, Loss D: 0.1795, Time: 4.3582\u001B[0m\n", + "\u001B[32m2024-07-31 22:00:57.639\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 5, Loss G: 2.7830, Loss D: 0.0826, Time: 4.1564\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:02.018\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 6, Loss G: 2.3206, Loss D: 0.2006, Time: 4.3793\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:06.355\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 7, Loss G: 2.3349, Loss D: -0.0512, Time: 4.3355\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:10.650\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 8, Loss G: 2.1620, Loss D: 0.1793, Time: 4.2951\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:15.189\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 9, Loss G: 1.9790, Loss D: 0.1838, Time: 4.5379\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:19.689\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 10, Loss G: 2.1239, Loss D: -0.0678, Time: 4.4992\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:24.157\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 11, Loss G: 1.4735, Loss D: 0.4072, Time: 4.4682\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:28.557\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 12, Loss G: 2.0881, Loss D: -0.1495, Time: 4.3990\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:33.052\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 13, Loss G: 2.1537, Loss D: 0.3297, Time: 4.4945\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:37.499\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 14, Loss G: 2.1371, Loss D: -0.0799, Time: 4.4461\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:42.070\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 15, Loss G: 2.3304, Loss D: -0.2645, Time: 4.5702\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:46.842\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 16, Loss G: 1.6159, Loss D: -0.0236, Time: 4.7713\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:51.671\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 17, Loss G: 1.7017, Loss D: -0.0217, Time: 4.8291\u001B[0m\n", + "\u001B[32m2024-07-31 22:01:56.425\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 18, Loss G: 1.5476, Loss D: -0.0250, Time: 4.7529\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:01.106\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 19, Loss G: 1.3616, Loss D: -0.0025, Time: 4.6804\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:05.892\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 20, Loss G: 1.2867, Loss D: 0.0913, Time: 4.7850\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:10.535\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 21, Loss G: 1.2751, Loss D: 0.1456, Time: 4.6427\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:14.993\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 22, Loss G: 1.2072, Loss D: 0.0235, Time: 4.4574\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:19.321\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 23, Loss G: 0.8498, Loss D: 0.0748, Time: 4.3270\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:23.629\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 24, Loss G: 0.6174, Loss D: -0.1485, Time: 4.3074\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:28.077\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 25, Loss G: 0.5495, Loss D: 0.0521, Time: 4.4480\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:32.653\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 26, Loss G: 0.3071, Loss D: 0.1874, Time: 4.5754\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:37.159\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 27, Loss G: 0.1517, Loss D: 0.3242, Time: 4.5053\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:42.228\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 28, Loss G: 0.4298, Loss D: -0.0382, Time: 5.0683\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:47.240\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 29, Loss G: 0.2015, Loss D: 0.2327, Time: 5.0114\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:51.804\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 30, Loss G: 0.4866, Loss D: -0.0539, Time: 4.5629\u001B[0m\n", + "\u001B[32m2024-07-31 22:02:56.382\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 31, Loss G: 0.1323, Loss D: 0.2341, Time: 4.5769\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:01.325\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 32, Loss G: -0.1002, Loss D: 0.0964, Time: 4.9430\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:05.792\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 33, Loss G: -0.0113, Loss D: -0.0111, Time: 4.4665\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:10.214\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 34, Loss G: 0.0415, Loss D: 0.1495, Time: 4.4214\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:14.663\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 35, Loss G: -0.1970, Loss D: 0.0337, Time: 4.4484\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:19.175\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 36, Loss G: -0.5090, Loss D: 0.0600, Time: 4.5108\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:23.794\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 37, Loss G: -0.6783, Loss D: -0.0398, Time: 4.6189\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:28.764\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 38, Loss G: -0.4069, Loss D: 0.0213, Time: 4.9692\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:33.724\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 39, Loss G: -0.2248, Loss D: 0.1907, Time: 4.9594\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:38.401\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 40, Loss G: 0.0568, Loss D: -0.0311, Time: 4.6760\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:42.914\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 41, Loss G: -0.5412, Loss D: 0.1807, Time: 4.5124\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:47.645\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 42, Loss G: -1.0769, Loss D: 0.0082, Time: 4.7304\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:52.123\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 43, Loss G: -1.3720, Loss D: 0.0847, Time: 4.4777\u001B[0m\n", + "\u001B[32m2024-07-31 22:03:56.613\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 44, Loss G: -1.1507, Loss D: -0.2779, Time: 4.4893\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:00.919\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 45, Loss G: -0.7390, Loss D: 0.3318, Time: 4.3052\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:05.462\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 46, Loss G: -0.4738, Loss D: 0.0462, Time: 4.5422\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:09.864\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 47, Loss G: -0.2025, Loss D: -0.2303, Time: 4.4017\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:14.280\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 48, Loss G: -1.0703, Loss D: 0.2680, Time: 4.4152\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:18.839\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 49, Loss G: -0.9106, Loss D: 0.1036, Time: 4.5581\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:23.130\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 50, Loss G: -0.8841, Loss D: -0.1180, Time: 4.2903\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:27.649\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 51, Loss G: -0.8777, Loss D: 0.0075, Time: 4.5192\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:32.049\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 52, Loss G: -0.9021, Loss D: 0.1670, Time: 4.3991\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:36.550\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 53, Loss G: -1.0699, Loss D: 0.0113, Time: 4.5001\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:40.954\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 54, Loss G: -1.6622, Loss D: 0.2371, Time: 4.4039\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:45.528\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 55, Loss G: -1.1970, Loss D: -0.3943, Time: 4.5733\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:50.372\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 56, Loss G: -1.5198, Loss D: 0.2903, Time: 4.8432\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:55.099\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 57, Loss G: -1.0063, Loss D: 0.0263, Time: 4.7257\u001B[0m\n", + "\u001B[32m2024-07-31 22:04:59.750\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 58, Loss G: -0.7125, Loss D: 0.0578, Time: 4.6512\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:04.354\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 59, Loss G: -1.3335, Loss D: 0.0691, Time: 4.6030\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:09.024\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 60, Loss G: -1.5909, Loss D: 0.0581, Time: 4.6695\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:13.879\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 61, Loss G: -1.2680, Loss D: -0.1030, Time: 4.8538\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:18.616\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 62, Loss G: -1.4616, Loss D: 0.0331, Time: 4.7368\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:23.166\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 63, Loss G: -1.4102, Loss D: -0.1837, Time: 4.5488\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:27.910\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 64, Loss G: -1.5758, Loss D: 0.2447, Time: 4.7440\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:32.346\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 65, Loss G: -1.1718, Loss D: -0.2493, Time: 4.4350\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:37.227\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 66, Loss G: -1.7329, Loss D: 0.1330, Time: 4.8806\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:42.113\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 67, Loss G: -1.9235, Loss D: 0.1215, Time: 4.8855\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:46.600\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 68, Loss G: -1.4622, Loss D: -0.0406, Time: 4.4858\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:51.045\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 69, Loss G: -1.5342, Loss D: 0.1001, Time: 4.4450\u001B[0m\n", + "\u001B[32m2024-07-31 22:05:55.896\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 70, Loss G: -1.6563, Loss D: -0.0506, Time: 4.8504\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:00.619\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 71, Loss G: -2.0623, Loss D: 0.2623, Time: 4.7220\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:05.218\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 72, Loss G: -1.9524, Loss D: -0.2363, Time: 4.5986\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:10.212\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 73, Loss G: -1.9208, Loss D: -0.0587, Time: 4.9934\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:15.336\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 74, Loss G: -2.0287, Loss D: 0.0633, Time: 5.1230\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:19.841\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 75, Loss G: -1.3292, Loss D: -0.1503, Time: 4.5040\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:24.617\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 76, Loss G: -1.6228, Loss D: 0.1179, Time: 4.7756\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:29.354\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 77, Loss G: -1.6932, Loss D: -0.1207, Time: 4.7366\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:33.946\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 78, Loss G: -1.9788, Loss D: 0.3591, Time: 4.5908\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:38.580\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 79, Loss G: -1.7408, Loss D: -0.0951, Time: 4.6337\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:43.303\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 80, Loss G: -1.8963, Loss D: -0.1322, Time: 4.7219\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:48.194\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 81, Loss G: -2.0979, Loss D: 0.0977, Time: 4.8906\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:52.852\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 82, Loss G: -1.8864, Loss D: -0.2171, Time: 4.6578\u001B[0m\n", + "\u001B[32m2024-07-31 22:06:57.993\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 83, Loss G: -2.2306, Loss D: 0.1204, Time: 5.1399\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:02.594\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 84, Loss G: -1.5337, Loss D: -0.4507, Time: 4.6001\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:07.572\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 85, Loss G: -2.1490, Loss D: 0.0864, Time: 4.9771\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:12.567\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 86, Loss G: -1.9775, Loss D: 0.0961, Time: 4.9948\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:17.336\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 87, Loss G: -2.2696, Loss D: 0.0413, Time: 4.7680\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:22.041\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 88, Loss G: -2.6165, Loss D: 0.2644, Time: 4.7050\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:26.575\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 89, Loss G: -2.2877, Loss D: 0.0110, Time: 4.5334\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:31.093\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 90, Loss G: -1.8445, Loss D: -0.0691, Time: 4.5171\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:36.070\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 91, Loss G: -2.5772, Loss D: 0.2146, Time: 4.9767\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:41.017\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 92, Loss G: -2.2175, Loss D: -0.0301, Time: 4.9461\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:45.872\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 93, Loss G: -2.2149, Loss D: 0.2580, Time: 4.8546\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:50.847\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 94, Loss G: -2.3147, Loss D: 0.2163, Time: 4.9742\u001B[0m\n", + "\u001B[32m2024-07-31 22:07:56.393\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 95, Loss G: -2.3773, Loss D: 0.1169, Time: 5.5447\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:01.856\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 96, Loss G: -2.3995, Loss D: 0.0252, Time: 5.4623\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:06.663\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 97, Loss G: -2.2262, Loss D: -0.0638, Time: 4.8072\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:11.569\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 98, Loss G: -2.5274, Loss D: 0.0954, Time: 4.9048\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:16.429\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 99, Loss G: -2.2327, Loss D: -0.0301, Time: 4.8597\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:21.016\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 100, Loss G: -2.6972, Loss D: 0.0751, Time: 4.5862\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:25.694\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 101, Loss G: -2.5082, Loss D: -0.1018, Time: 4.6774\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:30.517\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 102, Loss G: -2.3979, Loss D: 0.0254, Time: 4.8225\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:35.275\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 103, Loss G: -2.3065, Loss D: -0.2229, Time: 4.7569\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:39.950\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 104, Loss G: -2.5719, Loss D: -0.0927, Time: 4.6749\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:44.785\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 105, Loss G: -2.4959, Loss D: 0.2089, Time: 4.8341\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:50.037\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 106, Loss G: -2.6720, Loss D: 0.0774, Time: 5.2510\u001B[0m\n", + "\u001B[32m2024-07-31 22:08:55.299\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 107, Loss G: -2.3443, Loss D: 0.2967, Time: 5.2619\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:00.146\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 108, Loss G: -2.4426, Loss D: -0.0938, Time: 4.8463\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:04.927\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 109, Loss G: -2.6049, Loss D: -0.1226, Time: 4.7796\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:09.861\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 110, Loss G: -2.8208, Loss D: 0.1464, Time: 4.9341\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:14.591\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 111, Loss G: -2.6502, Loss D: -0.2162, Time: 4.7293\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:19.161\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 112, Loss G: -2.3836, Loss D: -0.0607, Time: 4.5689\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:23.929\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 113, Loss G: -2.3902, Loss D: 0.2194, Time: 4.7678\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:28.871\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 114, Loss G: -2.5546, Loss D: -0.1221, Time: 4.9412\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:33.666\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 115, Loss G: -2.9514, Loss D: -0.2805, Time: 4.7943\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:38.094\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 116, Loss G: -2.7115, Loss D: -0.0764, Time: 4.4272\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:42.928\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 117, Loss G: -2.3738, Loss D: -0.0811, Time: 4.8334\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:47.917\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 118, Loss G: -2.7055, Loss D: 0.0308, Time: 4.9881\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:52.878\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 119, Loss G: -2.5128, Loss D: -0.1309, Time: 4.9611\u001B[0m\n", + "\u001B[32m2024-07-31 22:09:57.776\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 120, Loss G: -2.4333, Loss D: 0.2413, Time: 4.8966\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:02.357\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 121, Loss G: -2.7877, Loss D: -0.1948, Time: 4.5812\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:07.016\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 122, Loss G: -2.6151, Loss D: -0.1602, Time: 4.6585\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:11.679\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 123, Loss G: -2.6241, Loss D: -0.1602, Time: 4.6620\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:16.621\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 124, Loss G: -2.4804, Loss D: 0.0241, Time: 4.9418\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:21.444\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 125, Loss G: -2.6715, Loss D: -0.0785, Time: 4.8215\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:26.098\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 126, Loss G: -2.6651, Loss D: 0.1986, Time: 4.6537\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:30.935\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 127, Loss G: -2.5683, Loss D: 0.1953, Time: 4.8367\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:35.859\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36m_fit\u001B[0m:\u001B[36m367\u001B[0m - \u001B[1mEpoch 128, Loss G: -2.5901, Loss D: -0.0753, Time: 4.9234\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:35.876\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.models.ml.single_table.ctgan\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m221\u001B[0m - \u001B[1mCTGAN training finished.\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:35.877\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36mfit\u001B[0m:\u001B[36m322\u001B[0m - \u001B[1mModel fit... Finished\u001B[0m\n" + ] + } + ], + "source": [ + "# Fit the model\n", + "synthesizer.fit()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vkjsRH1zr7bK" + }, + "source": [ + "# 4. Generate synthetic data" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "_uK_dL_nr7bK", + "outputId": "ae58a42e-e3d6-484d-d3b2-667cfbc2922b" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "PGeMeJG5r7bJ", - "outputId": "c8950540-41ea-4a5a-9cc7-73058dbd8df3" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2024-07-31 22:00:22.478\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m292\u001b[0m - \u001b[1mFitting data processors...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.559\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m71\u001b[0m - \u001b[1mNonValueTransformer Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.560\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m87\u001b[0m - \u001b[1mNonValueTransformer get int columns: {'offsprings', 'year_of_loan', 'title', 'scoring_high', 'region', 'house_loan_status', 'house_exist', 'f1', 'early_return_amount', 'f5', 'f0', 'recircle_b', 'initial_list_status', 'f2', 'del_in_18month', 'early_return', 'f3', 'f4', 'censor_status', 'early_return_amount_3mon', 'use', 'scoring_low', 'is_default', 'pub_dero_bankrup', 'post_code', 'marriage', 'total_loan'}.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.561\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m96\u001b[0m - \u001b[1mNonValueTransformer get float columns: {'recircle_u', 'interest', 'monthly_payment', 'debt_loan_ratio'}.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.562\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m101\u001b[0m - \u001b[1mNonValueTransformer get column list from metadata: ['loan_id', 'user_id', 'total_loan', 'year_of_loan', 'interest', 'monthly_payment', 'class', 'sub_class', 'work_type', 'employer_type', 'industry', 'work_year', 'house_exist', 'house_loan_status', 'censor_status', 'marriage', 'offsprings', 'issue_date', 'use', 'post_code', 'region', 'debt_loan_ratio', 'del_in_18month', 'scoring_low', 'scoring_high', 'pub_dero_bankrup', 'early_return', 'early_return_amount', 'early_return_amount_3mon', 'recircle_b', 'recircle_u', 'initial_list_status', 'earlies_credit_mon', 'title', 'policy_code', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'is_default'].\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.563\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m70\u001b[0m - \u001b[1mOutlierTransformer Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.564\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.int\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m40\u001b[0m - \u001b[1mIntValueFormatter Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.565\u001b[0m | \u001b[33m\u001b[1mWARNING \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m70\u001b[0m - \u001b[33m\u001b[1mColumn issue_date has no datetime_format, DatetimeFormatter will REMOVE this column!\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.565\u001b[0m | \u001b[33m\u001b[1mWARNING \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m70\u001b[0m - \u001b[33m\u001b[1mColumn earlies_credit_mon has no datetime_format, DatetimeFormatter will REMOVE this column!\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.566\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m77\u001b[0m - \u001b[1mDatetimeFormatter Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.566\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m49\u001b[0m - \u001b[1mConstValueTransformer Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.567\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m54\u001b[0m - \u001b[1mEmptyTransformer Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.567\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m41\u001b[0m - \u001b[1mColumnOrderTransformer Fitted.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.568\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m301\u001b[0m - \u001b[1mFitted 9 data processors in 0.009096860885620117s.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.568\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m311\u001b[0m - \u001b[1mInitializing processed data loader...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.667\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m110\u001b[0m - \u001b[1mConverting data using NonValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.679\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m130\u001b[0m - \u001b[1mConverting data using NonValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.679\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mConverting data using OutlierTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.735\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m106\u001b[0m - \u001b[1mConverting data using OutlierTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.736\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.int\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mConverting data using IntValueFormatter... Finished (No Action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.736\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m89\u001b[0m - \u001b[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.739\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m69\u001b[0m - \u001b[1mConverting data using ConstValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.741\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m77\u001b[0m - \u001b[1mConverting data using ConstValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.742\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m72\u001b[0m - \u001b[1mConverting data using EmptyTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.742\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m76\u001b[0m - \u001b[1mConverting data using EmptyTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.743\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m51\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.743\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m52\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.763\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m318\u001b[0m - \u001b[1mInitialized processed data loader in 0.19505667686462402s\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.764\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m320\u001b[0m - \u001b[1mModel fit Started...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.770\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m110\u001b[0m - \u001b[1mConverting data using NonValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.781\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m130\u001b[0m - \u001b[1mConverting data using NonValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.782\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mConverting data using OutlierTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.837\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m106\u001b[0m - \u001b[1mConverting data using OutlierTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.838\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.int\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mConverting data using IntValueFormatter... Finished (No Action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.838\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m89\u001b[0m - \u001b[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.842\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m69\u001b[0m - \u001b[1mConverting data using ConstValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.845\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m77\u001b[0m - \u001b[1mConverting data using ConstValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.845\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m72\u001b[0m - \u001b[1mConverting data using EmptyTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.845\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m76\u001b[0m - \u001b[1mConverting data using EmptyTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.846\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m51\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.846\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m52\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.847\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_pre_fit\u001b[0m:\u001b[36m234\u001b[0m - \u001b[1mFitting model's transformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.861\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m110\u001b[0m - \u001b[1mConverting data using NonValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.872\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m130\u001b[0m - \u001b[1mConverting data using NonValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.872\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mConverting data using OutlierTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.928\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m106\u001b[0m - \u001b[1mConverting data using OutlierTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.929\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.int\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mConverting data using IntValueFormatter... Finished (No Action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.929\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m89\u001b[0m - \u001b[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.933\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m69\u001b[0m - \u001b[1mConverting data using ConstValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.935\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m77\u001b[0m - \u001b[1mConverting data using ConstValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.936\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m72\u001b[0m - \u001b[1mConverting data using EmptyTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.936\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m76\u001b[0m - \u001b[1mConverting data using EmptyTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.936\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m51\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:22.937\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m52\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.759\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_pre_fit\u001b[0m:\u001b[36m236\u001b[0m - \u001b[1mTransforming data...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.772\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m110\u001b[0m - \u001b[1mConverting data using NonValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.786\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m130\u001b[0m - \u001b[1mConverting data using NonValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.786\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m84\u001b[0m - \u001b[1mConverting data using OutlierTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.854\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m106\u001b[0m - \u001b[1mConverting data using OutlierTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.854\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.int\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m50\u001b[0m - \u001b[1mConverting data using IntValueFormatter... Finished (No Action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.855\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m89\u001b[0m - \u001b[1mConverting data using DatetimeFormatter... Finished (No datetime columns).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.859\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m69\u001b[0m - \u001b[1mConverting data using ConstValueTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.862\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m77\u001b[0m - \u001b[1mConverting data using ConstValueTransformer... Finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.862\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m72\u001b[0m - \u001b[1mConverting data using EmptyTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.863\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m76\u001b[0m - \u001b[1mConverting data using EmptyTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.863\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m51\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer...\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:29.864\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mconvert\u001b[0m:\u001b[36m52\u001b[0m - \u001b[1mConverting data using ColumnOrderTransformer... Finished (No action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:35.669\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_pre_fit\u001b[0m:\u001b[36m239\u001b[0m - \u001b[1mSampling data.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:35.929\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_pre_fit\u001b[0m:\u001b[36m244\u001b[0m - \u001b[1mInitialize Generator.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:35.936\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m219\u001b[0m - \u001b[1mCTGAN prefit finished, start CTGAN training.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:35.936\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m261\u001b[0m - \u001b[1mFit using data_size:5939, data_dim: 940.\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:36.487\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m287\u001b[0m - \u001b[1mStarting model training, epochs: 128\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:40.684\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 1, Loss G: 3.5656, Loss D: -0.9016, Time: 4.1961\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:44.811\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 2, Loss G: 3.1313, Loss D: -0.7388, Time: 4.1267\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:49.123\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 3, Loss G: 3.2781, Loss D: -0.4140, Time: 4.3107\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:53.481\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 4, Loss G: 2.5242, Loss D: 0.1795, Time: 4.3582\u001b[0m\n", - "\u001b[32m2024-07-31 22:00:57.639\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 5, Loss G: 2.7830, Loss D: 0.0826, Time: 4.1564\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:02.018\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 6, Loss G: 2.3206, Loss D: 0.2006, Time: 4.3793\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:06.355\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 7, Loss G: 2.3349, Loss D: -0.0512, Time: 4.3355\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:10.650\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 8, Loss G: 2.1620, Loss D: 0.1793, Time: 4.2951\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:15.189\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 9, Loss G: 1.9790, Loss D: 0.1838, Time: 4.5379\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:19.689\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 10, Loss G: 2.1239, Loss D: -0.0678, Time: 4.4992\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:24.157\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 11, Loss G: 1.4735, Loss D: 0.4072, Time: 4.4682\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:28.557\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 12, Loss G: 2.0881, Loss D: -0.1495, Time: 4.3990\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:33.052\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 13, Loss G: 2.1537, Loss D: 0.3297, Time: 4.4945\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:37.499\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 14, Loss G: 2.1371, Loss D: -0.0799, Time: 4.4461\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:42.070\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 15, Loss G: 2.3304, Loss D: -0.2645, Time: 4.5702\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:46.842\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 16, Loss G: 1.6159, Loss D: -0.0236, Time: 4.7713\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:51.671\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 17, Loss G: 1.7017, Loss D: -0.0217, Time: 4.8291\u001b[0m\n", - "\u001b[32m2024-07-31 22:01:56.425\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 18, Loss G: 1.5476, Loss D: -0.0250, Time: 4.7529\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:01.106\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 19, Loss G: 1.3616, Loss D: -0.0025, Time: 4.6804\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:05.892\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 20, Loss G: 1.2867, Loss D: 0.0913, Time: 4.7850\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:10.535\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 21, Loss G: 1.2751, Loss D: 0.1456, Time: 4.6427\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:14.993\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 22, Loss G: 1.2072, Loss D: 0.0235, Time: 4.4574\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:19.321\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 23, Loss G: 0.8498, Loss D: 0.0748, Time: 4.3270\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:23.629\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 24, Loss G: 0.6174, Loss D: -0.1485, Time: 4.3074\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:28.077\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 25, Loss G: 0.5495, Loss D: 0.0521, Time: 4.4480\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:32.653\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 26, Loss G: 0.3071, Loss D: 0.1874, Time: 4.5754\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:37.159\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 27, Loss G: 0.1517, Loss D: 0.3242, Time: 4.5053\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:42.228\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 28, Loss G: 0.4298, Loss D: -0.0382, Time: 5.0683\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:47.240\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 29, Loss G: 0.2015, Loss D: 0.2327, Time: 5.0114\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:51.804\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 30, Loss G: 0.4866, Loss D: -0.0539, Time: 4.5629\u001b[0m\n", - "\u001b[32m2024-07-31 22:02:56.382\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 31, Loss G: 0.1323, Loss D: 0.2341, Time: 4.5769\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:01.325\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 32, Loss G: -0.1002, Loss D: 0.0964, Time: 4.9430\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:05.792\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 33, Loss G: -0.0113, Loss D: -0.0111, Time: 4.4665\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:10.214\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 34, Loss G: 0.0415, Loss D: 0.1495, Time: 4.4214\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:14.663\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 35, Loss G: -0.1970, Loss D: 0.0337, Time: 4.4484\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:19.175\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 36, Loss G: -0.5090, Loss D: 0.0600, Time: 4.5108\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:23.794\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 37, Loss G: -0.6783, Loss D: -0.0398, Time: 4.6189\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:28.764\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 38, Loss G: -0.4069, Loss D: 0.0213, Time: 4.9692\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:33.724\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 39, Loss G: -0.2248, Loss D: 0.1907, Time: 4.9594\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:38.401\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 40, Loss G: 0.0568, Loss D: -0.0311, Time: 4.6760\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:42.914\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 41, Loss G: -0.5412, Loss D: 0.1807, Time: 4.5124\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:47.645\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 42, Loss G: -1.0769, Loss D: 0.0082, Time: 4.7304\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:52.123\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 43, Loss G: -1.3720, Loss D: 0.0847, Time: 4.4777\u001b[0m\n", - "\u001b[32m2024-07-31 22:03:56.613\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 44, Loss G: -1.1507, Loss D: -0.2779, Time: 4.4893\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:00.919\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 45, Loss G: -0.7390, Loss D: 0.3318, Time: 4.3052\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:05.462\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 46, Loss G: -0.4738, Loss D: 0.0462, Time: 4.5422\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:09.864\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 47, Loss G: -0.2025, Loss D: -0.2303, Time: 4.4017\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:14.280\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 48, Loss G: -1.0703, Loss D: 0.2680, Time: 4.4152\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:18.839\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 49, Loss G: -0.9106, Loss D: 0.1036, Time: 4.5581\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:23.130\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 50, Loss G: -0.8841, Loss D: -0.1180, Time: 4.2903\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:27.649\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 51, Loss G: -0.8777, Loss D: 0.0075, Time: 4.5192\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:32.049\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 52, Loss G: -0.9021, Loss D: 0.1670, Time: 4.3991\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:36.550\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 53, Loss G: -1.0699, Loss D: 0.0113, Time: 4.5001\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:40.954\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 54, Loss G: -1.6622, Loss D: 0.2371, Time: 4.4039\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:45.528\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 55, Loss G: -1.1970, Loss D: -0.3943, Time: 4.5733\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:50.372\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 56, Loss G: -1.5198, Loss D: 0.2903, Time: 4.8432\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:55.099\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 57, Loss G: -1.0063, Loss D: 0.0263, Time: 4.7257\u001b[0m\n", - "\u001b[32m2024-07-31 22:04:59.750\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 58, Loss G: -0.7125, Loss D: 0.0578, Time: 4.6512\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:04.354\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 59, Loss G: -1.3335, Loss D: 0.0691, Time: 4.6030\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:09.024\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 60, Loss G: -1.5909, Loss D: 0.0581, Time: 4.6695\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:13.879\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 61, Loss G: -1.2680, Loss D: -0.1030, Time: 4.8538\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:18.616\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 62, Loss G: -1.4616, Loss D: 0.0331, Time: 4.7368\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:23.166\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 63, Loss G: -1.4102, Loss D: -0.1837, Time: 4.5488\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:27.910\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 64, Loss G: -1.5758, Loss D: 0.2447, Time: 4.7440\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:32.346\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 65, Loss G: -1.1718, Loss D: -0.2493, Time: 4.4350\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:37.227\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 66, Loss G: -1.7329, Loss D: 0.1330, Time: 4.8806\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:42.113\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 67, Loss G: -1.9235, Loss D: 0.1215, Time: 4.8855\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:46.600\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 68, Loss G: -1.4622, Loss D: -0.0406, Time: 4.4858\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:51.045\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 69, Loss G: -1.5342, Loss D: 0.1001, Time: 4.4450\u001b[0m\n", - "\u001b[32m2024-07-31 22:05:55.896\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 70, Loss G: -1.6563, Loss D: -0.0506, Time: 4.8504\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:00.619\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 71, Loss G: -2.0623, Loss D: 0.2623, Time: 4.7220\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:05.218\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 72, Loss G: -1.9524, Loss D: -0.2363, Time: 4.5986\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:10.212\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 73, Loss G: -1.9208, Loss D: -0.0587, Time: 4.9934\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:15.336\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 74, Loss G: -2.0287, Loss D: 0.0633, Time: 5.1230\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:19.841\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 75, Loss G: -1.3292, Loss D: -0.1503, Time: 4.5040\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:24.617\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 76, Loss G: -1.6228, Loss D: 0.1179, Time: 4.7756\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:29.354\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 77, Loss G: -1.6932, Loss D: -0.1207, Time: 4.7366\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:33.946\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 78, Loss G: -1.9788, Loss D: 0.3591, Time: 4.5908\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:38.580\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 79, Loss G: -1.7408, Loss D: -0.0951, Time: 4.6337\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:43.303\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 80, Loss G: -1.8963, Loss D: -0.1322, Time: 4.7219\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:48.194\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 81, Loss G: -2.0979, Loss D: 0.0977, Time: 4.8906\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:52.852\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 82, Loss G: -1.8864, Loss D: -0.2171, Time: 4.6578\u001b[0m\n", - "\u001b[32m2024-07-31 22:06:57.993\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 83, Loss G: -2.2306, Loss D: 0.1204, Time: 5.1399\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:02.594\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 84, Loss G: -1.5337, Loss D: -0.4507, Time: 4.6001\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:07.572\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 85, Loss G: -2.1490, Loss D: 0.0864, Time: 4.9771\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:12.567\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 86, Loss G: -1.9775, Loss D: 0.0961, Time: 4.9948\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:17.336\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 87, Loss G: -2.2696, Loss D: 0.0413, Time: 4.7680\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:22.041\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 88, Loss G: -2.6165, Loss D: 0.2644, Time: 4.7050\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:26.575\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 89, Loss G: -2.2877, Loss D: 0.0110, Time: 4.5334\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:31.093\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 90, Loss G: -1.8445, Loss D: -0.0691, Time: 4.5171\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:36.070\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 91, Loss G: -2.5772, Loss D: 0.2146, Time: 4.9767\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:41.017\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 92, Loss G: -2.2175, Loss D: -0.0301, Time: 4.9461\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:45.872\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 93, Loss G: -2.2149, Loss D: 0.2580, Time: 4.8546\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:50.847\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 94, Loss G: -2.3147, Loss D: 0.2163, Time: 4.9742\u001b[0m\n", - "\u001b[32m2024-07-31 22:07:56.393\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 95, Loss G: -2.3773, Loss D: 0.1169, Time: 5.5447\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:01.856\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 96, Loss G: -2.3995, Loss D: 0.0252, Time: 5.4623\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:06.663\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 97, Loss G: -2.2262, Loss D: -0.0638, Time: 4.8072\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:11.569\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 98, Loss G: -2.5274, Loss D: 0.0954, Time: 4.9048\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:16.429\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 99, Loss G: -2.2327, Loss D: -0.0301, Time: 4.8597\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:21.016\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 100, Loss G: -2.6972, Loss D: 0.0751, Time: 4.5862\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:25.694\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 101, Loss G: -2.5082, Loss D: -0.1018, Time: 4.6774\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:30.517\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 102, Loss G: -2.3979, Loss D: 0.0254, Time: 4.8225\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:35.275\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 103, Loss G: -2.3065, Loss D: -0.2229, Time: 4.7569\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:39.950\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 104, Loss G: -2.5719, Loss D: -0.0927, Time: 4.6749\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:44.785\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 105, Loss G: -2.4959, Loss D: 0.2089, Time: 4.8341\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:50.037\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 106, Loss G: -2.6720, Loss D: 0.0774, Time: 5.2510\u001b[0m\n", - "\u001b[32m2024-07-31 22:08:55.299\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 107, Loss G: -2.3443, Loss D: 0.2967, Time: 5.2619\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:00.146\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 108, Loss G: -2.4426, Loss D: -0.0938, Time: 4.8463\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:04.927\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 109, Loss G: -2.6049, Loss D: -0.1226, Time: 4.7796\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:09.861\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 110, Loss G: -2.8208, Loss D: 0.1464, Time: 4.9341\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:14.591\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 111, Loss G: -2.6502, Loss D: -0.2162, Time: 4.7293\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:19.161\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 112, Loss G: -2.3836, Loss D: -0.0607, Time: 4.5689\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:23.929\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 113, Loss G: -2.3902, Loss D: 0.2194, Time: 4.7678\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:28.871\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 114, Loss G: -2.5546, Loss D: -0.1221, Time: 4.9412\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:33.666\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 115, Loss G: -2.9514, Loss D: -0.2805, Time: 4.7943\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:38.094\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 116, Loss G: -2.7115, Loss D: -0.0764, Time: 4.4272\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:42.928\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 117, Loss G: -2.3738, Loss D: -0.0811, Time: 4.8334\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:47.917\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 118, Loss G: -2.7055, Loss D: 0.0308, Time: 4.9881\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:52.878\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 119, Loss G: -2.5128, Loss D: -0.1309, Time: 4.9611\u001b[0m\n", - "\u001b[32m2024-07-31 22:09:57.776\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 120, Loss G: -2.4333, Loss D: 0.2413, Time: 4.8966\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:02.357\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 121, Loss G: -2.7877, Loss D: -0.1948, Time: 4.5812\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:07.016\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 122, Loss G: -2.6151, Loss D: -0.1602, Time: 4.6585\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:11.679\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 123, Loss G: -2.6241, Loss D: -0.1602, Time: 4.6620\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:16.621\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 124, Loss G: -2.4804, Loss D: 0.0241, Time: 4.9418\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:21.444\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 125, Loss G: -2.6715, Loss D: -0.0785, Time: 4.8215\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:26.098\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 126, Loss G: -2.6651, Loss D: 0.1986, Time: 4.6537\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:30.935\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 127, Loss G: -2.5683, Loss D: 0.1953, Time: 4.8367\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:35.859\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36m_fit\u001b[0m:\u001b[36m367\u001b[0m - \u001b[1mEpoch 128, Loss G: -2.5901, Loss D: -0.0753, Time: 4.9234\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:35.876\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.models.ml.single_table.ctgan\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m221\u001b[0m - \u001b[1mCTGAN training finished.\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:35.877\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36mfit\u001b[0m:\u001b[36m322\u001b[0m - \u001b[1mModel fit... Finished\u001b[0m\n" - ] - } - ], - "source": [ - "# Fit the model\n", - "synthesizer.fit()" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001B[32m2024-07-31 22:10:35.900\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.synthesizer\u001B[0m:\u001B[36msample\u001B[0m:\u001B[36m346\u001B[0m - \u001B[1mSampling...\u001B[0m\n" + ] }, { - "cell_type": "markdown", - "metadata": { - "id": "vkjsRH1zr7bK" - }, - "source": [ - "# 4. Generate synthetic data" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001B[32m2024-07-31 22:10:42.690\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.nan\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m140\u001B[0m - \u001B[1mData reverse-converted by NonValueTransformer (No Action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:42.690\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.outlier\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m120\u001B[0m - \u001B[1mData reverse-converted by OutlierTransformer (No Action).\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:42.695\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.int\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m64\u001B[0m - \u001B[1mData reverse-converted by IntValueFormatter.\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:42.695\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.formatters.datetime\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m162\u001B[0m - \u001B[1mData reverse-converted by DatetimeFormatter (No datetime columns).\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:42.697\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.const\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m103\u001B[0m - \u001B[1mData reverse-converted by ConstValueTransformer.\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:42.697\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.empty\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m98\u001B[0m - \u001B[1mData reverse-converted by EmptyTransformer.\u001B[0m\n", + "\u001B[32m2024-07-31 22:10:42.699\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_processors.transformers.column_order\u001B[0m:\u001B[36mreverse_convert\u001B[0m:\u001B[36m62\u001B[0m - \u001B[1mData reverse-converted by ColumnOrderTransformer.\u001B[0m\n" + ] }, { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "_uK_dL_nr7bK", - "outputId": "ae58a42e-e3d6-484d-d3b2-667cfbc2922b" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2024-07-31 22:10:35.900\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.synthesizer\u001b[0m:\u001b[36msample\u001b[0m:\u001b[36m346\u001b[0m - \u001b[1mSampling...\u001b[0m\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2024-07-31 22:10:42.690\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.nan\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m140\u001b[0m - \u001b[1mData reverse-converted by NonValueTransformer (No Action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:42.690\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.outlier\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m120\u001b[0m - \u001b[1mData reverse-converted by OutlierTransformer (No Action).\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:42.695\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.int\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m64\u001b[0m - \u001b[1mData reverse-converted by IntValueFormatter.\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:42.695\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.formatters.datetime\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m162\u001b[0m - \u001b[1mData reverse-converted by DatetimeFormatter (No datetime columns).\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:42.697\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.const\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m103\u001b[0m - \u001b[1mData reverse-converted by ConstValueTransformer.\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:42.697\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.empty\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m98\u001b[0m - \u001b[1mData reverse-converted by EmptyTransformer.\u001b[0m\n", - "\u001b[32m2024-07-31 22:10:42.699\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_processors.transformers.column_order\u001b[0m:\u001b[36mreverse_convert\u001b[0m:\u001b[36m62\u001b[0m - \u001b[1mData reverse-converted by ColumnOrderTransformer.\u001b[0m\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " loan_id user_id total_loan year_of_loan interest monthly_payment \\\n", - "0 622612 2567 10526 3 14.335978 1425.701544 \n", - "1 529899 3632 14792 5 6.116150 989.792713 \n", - "2 235196 -3707 19165 5 5.023798 642.992555 \n", - "3 610273 11341 13014 3 10.524919 485.403111 \n", - "4 150342 8035 16491 5 13.739752 426.543842 \n", - ".. ... ... ... ... ... ... \n", - "95 493639 3874 11726 3 14.248113 388.626379 \n", - "96 438115 3434 10551 3 6.412447 305.972997 \n", - "97 -53115 -1020 12302 3 4.216293 495.886196 \n", - "98 381992 2971 12244 3 14.558308 911.221105 \n", - "99 391390 7394 11097 3 17.127234 495.387353 \n", - "\n", - " class sub_class work_type employer_type ... earlies_credit_mon title \\\n", - "0 C B4 职员 政府机构 ... Apr-2001 -350 \n", - "1 B C2 其他 普通企业 ... Jun-1990 -216 \n", - "2 B A4 其他 上市企业 ... Sep-2004 -234 \n", - "3 B A5 其他 政府机构 ... Nov-2000 -22 \n", - "4 F D4 其他 政府机构 ... Aug-2002 -118 \n", - ".. ... ... ... ... ... ... ... \n", - "95 A C5 其他 政府机构 ... Oct-1997 -299 \n", - "96 A D3 其他 政府机构 ... Feb-2000 -107 \n", - "97 B A2 其他 普通企业 ... Aug-2000 -400 \n", - "98 C B5 职员 上市企业 ... Jul-2007 1305 \n", - "99 C E4 职员 高等教育机构 ... Apr-1993 -234 \n", - "\n", - " policy_code f0 f1 f2 f3 f4 f5 is_default \n", - "0 1.0 8 0 8 9 13 0 0 \n", - "1 1.0 2 0 14 7 12 0 1 \n", - "2 1.0 11 0 7 -1 29 0 1 \n", - "3 1.0 8 0 7 -1 6 0 0 \n", - "4 1.0 0 0 40 16 20 0 1 \n", - ".. ... .. .. .. .. .. .. ... \n", - "95 1.0 2 0 14 11 12 0 1 \n", - "96 1.0 2 0 10 10 9 1 1 \n", - "97 1.0 5 0 19 5 11 2 1 \n", - "98 1.0 11 0 13 50 13 2 1 \n", - "99 1.0 2 0 38 7 25 2 0 \n", - "\n", - "[100 rows x 42 columns]\n" - ] - } - ], - "source": [ - "# Sample\n", - "real_data = data_loader.load_all()\n", - "sampled_data = synthesizer.sample(100)\n", - "\n", - "print(sampled_data)" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + " loan_id user_id total_loan year_of_loan interest monthly_payment \\\n", + "0 622612 2567 10526 3 14.335978 1425.701544 \n", + "1 529899 3632 14792 5 6.116150 989.792713 \n", + "2 235196 -3707 19165 5 5.023798 642.992555 \n", + "3 610273 11341 13014 3 10.524919 485.403111 \n", + "4 150342 8035 16491 5 13.739752 426.543842 \n", + ".. ... ... ... ... ... ... \n", + "95 493639 3874 11726 3 14.248113 388.626379 \n", + "96 438115 3434 10551 3 6.412447 305.972997 \n", + "97 -53115 -1020 12302 3 4.216293 495.886196 \n", + "98 381992 2971 12244 3 14.558308 911.221105 \n", + "99 391390 7394 11097 3 17.127234 495.387353 \n", + "\n", + " class sub_class work_type employer_type ... earlies_credit_mon title \\\n", + "0 C B4 职员 政府机构 ... Apr-2001 -350 \n", + "1 B C2 其他 普通企业 ... Jun-1990 -216 \n", + "2 B A4 其他 上市企业 ... Sep-2004 -234 \n", + "3 B A5 其他 政府机构 ... Nov-2000 -22 \n", + "4 F D4 其他 政府机构 ... Aug-2002 -118 \n", + ".. ... ... ... ... ... ... ... \n", + "95 A C5 其他 政府机构 ... Oct-1997 -299 \n", + "96 A D3 其他 政府机构 ... Feb-2000 -107 \n", + "97 B A2 其他 普通企业 ... Aug-2000 -400 \n", + "98 C B5 职员 上市企业 ... Jul-2007 1305 \n", + "99 C E4 职员 高等教育机构 ... Apr-1993 -234 \n", + "\n", + " policy_code f0 f1 f2 f3 f4 f5 is_default \n", + "0 1.0 8 0 8 9 13 0 0 \n", + "1 1.0 2 0 14 7 12 0 1 \n", + "2 1.0 11 0 7 -1 29 0 1 \n", + "3 1.0 8 0 7 -1 6 0 0 \n", + "4 1.0 0 0 40 16 20 0 1 \n", + ".. ... .. .. .. .. .. .. ... \n", + "95 1.0 2 0 14 11 12 0 1 \n", + "96 1.0 2 0 10 10 9 1 1 \n", + "97 1.0 5 0 19 5 11 2 1 \n", + "98 1.0 11 0 13 50 13 2 1 \n", + "99 1.0 2 0 38 7 25 2 0 \n", + "\n", + "[100 rows x 42 columns]\n" + ] + } + ], + "source": [ + "# Sample\n", + "real_data = data_loader.load_all()\n", + "sampled_data = synthesizer.sample(100)\n", + "\n", + "print(sampled_data)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 439 }, + "id": "E19_YHEzr7bK", + "outputId": "86e25aa8-6ad5-47ff-ed82-74a57488e008" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 439 - }, - "id": "E19_YHEzr7bK", - "outputId": "86e25aa8-6ad5-47ff-ed82-74a57488e008" - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
loan_iduser_idtotal_loanyear_of_loaninterestmonthly_paymentclasssub_classwork_typeemployer_type...earlies_credit_montitlepolicy_codef0f1f2f3f4f5is_default
0622612256710526314.3359781425.701544CB4职员政府机构...Apr-2001-3501.080891300
152989936321479256.116150989.792713BC2其他普通企业...Jun-1990-2161.0201471201
2235196-37071916555.023798642.992555BA4其他上市企业...Sep-2004-2341.01107-12901
36102731134113014310.524919485.403111BA5其他政府机构...Nov-2000-221.0807-1600
4150342803516491513.739752426.543842FD4其他政府机构...Aug-2002-1181.00040162001
..................................................................
95493639387411726314.248113388.626379AC5其他政府机构...Oct-1997-2991.02014111201
9643811534341055136.412447305.972997AD3其他政府机构...Feb-2000-1071.0201010911
97-53115-10201230234.216293495.886196BA2其他普通企业...Aug-2000-4001.0501951121
98381992297112244314.558308911.221105CB5职员上市企业...Jul-200713051.011013501321
99391390739411097317.127234495.387353CE4职员高等教育机构...Apr-1993-2341.0203872520
\n", - "

100 rows × 42 columns

\n", - "
" - ], - "text/plain": [ - " loan_id user_id total_loan year_of_loan interest monthly_payment \\\n", - "0 622612 2567 10526 3 14.335978 1425.701544 \n", - "1 529899 3632 14792 5 6.116150 989.792713 \n", - "2 235196 -3707 19165 5 5.023798 642.992555 \n", - "3 610273 11341 13014 3 10.524919 485.403111 \n", - "4 150342 8035 16491 5 13.739752 426.543842 \n", - ".. ... ... ... ... ... ... \n", - "95 493639 3874 11726 3 14.248113 388.626379 \n", - "96 438115 3434 10551 3 6.412447 305.972997 \n", - "97 -53115 -1020 12302 3 4.216293 495.886196 \n", - "98 381992 2971 12244 3 14.558308 911.221105 \n", - "99 391390 7394 11097 3 17.127234 495.387353 \n", - "\n", - " class sub_class work_type employer_type ... earlies_credit_mon title \\\n", - "0 C B4 职员 政府机构 ... Apr-2001 -350 \n", - "1 B C2 其他 普通企业 ... Jun-1990 -216 \n", - "2 B A4 其他 上市企业 ... Sep-2004 -234 \n", - "3 B A5 其他 政府机构 ... Nov-2000 -22 \n", - "4 F D4 其他 政府机构 ... Aug-2002 -118 \n", - ".. ... ... ... ... ... ... ... \n", - "95 A C5 其他 政府机构 ... Oct-1997 -299 \n", - "96 A D3 其他 政府机构 ... Feb-2000 -107 \n", - "97 B A2 其他 普通企业 ... Aug-2000 -400 \n", - "98 C B5 职员 上市企业 ... Jul-2007 1305 \n", - "99 C E4 职员 高等教育机构 ... Apr-1993 -234 \n", - "\n", - " policy_code f0 f1 f2 f3 f4 f5 is_default \n", - "0 1.0 8 0 8 9 13 0 0 \n", - "1 1.0 2 0 14 7 12 0 1 \n", - "2 1.0 11 0 7 -1 29 0 1 \n", - "3 1.0 8 0 7 -1 6 0 0 \n", - "4 1.0 0 0 40 16 20 0 1 \n", - ".. ... .. .. .. .. .. .. ... \n", - "95 1.0 2 0 14 11 12 0 1 \n", - "96 1.0 2 0 10 10 9 1 1 \n", - "97 1.0 5 0 19 5 11 2 1 \n", - "98 1.0 11 0 13 50 13 2 1 \n", - "99 1.0 2 0 38 7 25 2 0 \n", - "\n", - "[100 rows x 42 columns]" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loan_iduser_idtotal_loanyear_of_loaninterestmonthly_paymentclasssub_classwork_typeemployer_type...earlies_credit_montitlepolicy_codef0f1f2f3f4f5is_default
0622612256710526314.3359781425.701544CB4职员政府机构...Apr-2001-3501.080891300
152989936321479256.116150989.792713BC2其他普通企业...Jun-1990-2161.0201471201
2235196-37071916555.023798642.992555BA4其他上市企业...Sep-2004-2341.01107-12901
36102731134113014310.524919485.403111BA5其他政府机构...Nov-2000-221.0807-1600
4150342803516491513.739752426.543842FD4其他政府机构...Aug-2002-1181.00040162001
..................................................................
95493639387411726314.248113388.626379AC5其他政府机构...Oct-1997-2991.02014111201
9643811534341055136.412447305.972997AD3其他政府机构...Feb-2000-1071.0201010911
97-53115-10201230234.216293495.886196BA2其他普通企业...Aug-2000-4001.0501951121
98381992297112244314.558308911.221105CB5职员上市企业...Jul-200713051.011013501321
99391390739411097317.127234495.387353CE4职员高等教育机构...Apr-1993-2341.0203872520
\n", + "

100 rows × 42 columns

\n", + "
" ], - "source": [ - "sampled_data\n", - "\n", - "# real_data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2GhCwFHBr7bK" - }, - "source": [ - "# 5. Data quality assessment on synthetic data\n", - "\n", - "In the field of simulated data, the comparison of the mean and variance of each feature between real data and simulated data is very important:\n", - "\n", - "1. The mean and variance of real data reflect the data distribution in the real world. By comparing the mean and variance of real and simulated data on each feature, the accuracy and credibility of the simulated data can be evaluated.\n", - "\n", - "2. The mean and variance are important statistics that describe the center and dispersion of the data set. The mean reflects the central tendency of the data set, and the variance reflects the dispersion of the data set. By comparing the mean and variance of real and simulated data on each feature, you can evaluate whether the simulated data accurately simulates the central tendency and dispersion of the real data." + "text/plain": [ + " loan_id user_id total_loan year_of_loan interest monthly_payment \\\n", + "0 622612 2567 10526 3 14.335978 1425.701544 \n", + "1 529899 3632 14792 5 6.116150 989.792713 \n", + "2 235196 -3707 19165 5 5.023798 642.992555 \n", + "3 610273 11341 13014 3 10.524919 485.403111 \n", + "4 150342 8035 16491 5 13.739752 426.543842 \n", + ".. ... ... ... ... ... ... \n", + "95 493639 3874 11726 3 14.248113 388.626379 \n", + "96 438115 3434 10551 3 6.412447 305.972997 \n", + "97 -53115 -1020 12302 3 4.216293 495.886196 \n", + "98 381992 2971 12244 3 14.558308 911.221105 \n", + "99 391390 7394 11097 3 17.127234 495.387353 \n", + "\n", + " class sub_class work_type employer_type ... earlies_credit_mon title \\\n", + "0 C B4 职员 政府机构 ... Apr-2001 -350 \n", + "1 B C2 其他 普通企业 ... Jun-1990 -216 \n", + "2 B A4 其他 上市企业 ... Sep-2004 -234 \n", + "3 B A5 其他 政府机构 ... Nov-2000 -22 \n", + "4 F D4 其他 政府机构 ... Aug-2002 -118 \n", + ".. ... ... ... ... ... ... ... \n", + "95 A C5 其他 政府机构 ... Oct-1997 -299 \n", + "96 A D3 其他 政府机构 ... Feb-2000 -107 \n", + "97 B A2 其他 普通企业 ... Aug-2000 -400 \n", + "98 C B5 职员 上市企业 ... Jul-2007 1305 \n", + "99 C E4 职员 高等教育机构 ... Apr-1993 -234 \n", + "\n", + " policy_code f0 f1 f2 f3 f4 f5 is_default \n", + "0 1.0 8 0 8 9 13 0 0 \n", + "1 1.0 2 0 14 7 12 0 1 \n", + "2 1.0 11 0 7 -1 29 0 1 \n", + "3 1.0 8 0 7 -1 6 0 0 \n", + "4 1.0 0 0 40 16 20 0 1 \n", + ".. ... .. .. .. .. .. .. ... \n", + "95 1.0 2 0 14 11 12 0 1 \n", + "96 1.0 2 0 10 10 9 1 1 \n", + "97 1.0 5 0 19 5 11 2 1 \n", + "98 1.0 11 0 13 50 13 2 1 \n", + "99 1.0 2 0 38 7 25 2 0 \n", + "\n", + "[100 rows x 42 columns]" ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sampled_data\n", + "\n", + "# real_data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2GhCwFHBr7bK" + }, + "source": [ + "# 5. Data quality assessment on synthetic data\n", + "\n", + "In the field of simulated data, the comparison of the mean and variance of each feature between real data and simulated data is very important:\n", + "\n", + "1. The mean and variance of real data reflect the data distribution in the real world. By comparing the mean and variance of real and simulated data on each feature, the accuracy and credibility of the simulated data can be evaluated.\n", + "\n", + "2. The mean and variance are important statistics that describe the center and dispersion of the data set. The mean reflects the central tendency of the data set, and the variance reflects the dispersion of the data set. By comparing the mean and variance of real and simulated data on each feature, you can evaluate whether the simulated data accurately simulates the central tendency and dispersion of the real data." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 788 }, + "id": "SNEpFE9jr7bL", + "outputId": "dcbc95ad-1020-43d9-cf37-aa9d412e2853" + }, + "outputs": [ { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 788 - }, - "id": "SNEpFE9jr7bL", - "outputId": "dcbc95ad-1020-43d9-cf37-aa9d412e2853" - }, - "outputs": [ - { - "data": { - "image/png": "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TX1x+fJlODs782gT3U6ia6uI7lltF8Ru2LBBBAcHC6VSKQICAqrd2ODdd98VrVu3Fi4uLmLQoEHixx9/FHZ2diIpKemOF9gKcfOi2V69egkXFxfRr18/8eSTT5ousE1OThZhYWHC2dlZdOzYUaxYsUJERUWJmTNnCiGESEtLE76+vsLV1VWUlJTcMcdf/fmi11sAiIMHD5oeDxgwwHRhq0ajEXPmzBEBAQFCqVSKHj16iG+++UYIIURlZaWIjo4WKpVKeHp6iokTJ4r169cLd3d3odVqa9xXTExMtRs2/Nm3334r2rVrV+t7curUKTF69Gjh6ekp2rRpI2JjY8WNGzdMz9+1a5cICgoSbm5uYtSoUWL48OFi+vTppvXbtm0TPXv2rHHfRESWyFrGLp1OJ1566SWhVquFUqkUISEhprHIaDSK4cOHCycnJ7F69WohhBCrV68WnTp1EkqlUsTExIiwsLBabw4RFxcn+vfvb3r817Hr119/FZGRkUKlUgl/f38xb948odFoTOtv7cvT01NER0eLsLAw8dZbb5nWL126VIwbN67GfZN1kwnRQieXIaImV1VVhU6dOuHzzz/HAw880KBts7KyYDAYqp0eMXr0aISGhpq+xXz00UcxbNgwzJw5s1FzExGR5bp27RoCAwNx8uRJ+Pr6Nmjb9PR0uLq6IiAgwLSse/fuePHFFzFt2jQAQI8ePfD2229jxIgRjRmbWgCeqkdEd83e3h4LFy7EihUrGrxtZmYmBgwYYJqh/ciRIzhw4ABGjhwJADh16hROnz6N6dOnN2pmIiKybK1atcLzzz+PuLi4Bm97a5y5evUqjEYjvvzyS5w5c8Z0I459+/bBzc2NRRPViDeHIKJ7MnXqVOzatQs///wz+vXrV+/txo4di+PHj2PAgAEoKiqCv78/Pv30U9NNLWbPno34+HjI5fKmik5ERBZq/vz5iIyMxNmzZ2+7K96dPPfcczhz5gxCQkJQXl6OLl264KuvvoK/vz90Oh0WLFhQ6w0yiHiqHhERERERUR14qh4REREREVEdWDgRERERERHVgYUTERERERFRHVg4ERERERER1YGFExERERERUR1YOBEREREREdWBhRMREREREVEdWDgRERERERHV4f8B7Tu4bGJoIEgAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib.font_manager import fontManager\n", - "plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']\n", - "\n", - "# use table_evaluator for evaluation\n", - "from table_evaluator import TableEvaluator\n", - "\n", - "table_evaluator = TableEvaluator(\n", - " real_data[list(set(real_data.columns) - set(loan_metadata.discrete_columns))],\n", - " sampled_data[list(set(real_data.columns) - set(loan_metadata.discrete_columns))])\n", - "table_evaluator.plot_mean_std()" + "data": { + "image/png": "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TX1x+fJlODs782gT3U6ia6uI7lltF8Ru2LBBBAcHC6VSKQICAqrd2ODdd98VrVu3Fi4uLmLQoEHixx9/FHZ2diIpKemOF9gKcfOi2V69egkXFxfRr18/8eSTT5ousE1OThZhYWHC2dlZdOzYUaxYsUJERUWJmTNnCiGESEtLE76+vsLV1VWUlJTcMcdf/fmi11sAiIMHD5oeDxgwwHRhq0ajEXPmzBEBAQFCqVSKHj16iG+++UYIIURlZaWIjo4WKpVKeHp6iokTJ4r169cLd3d3odVqa9xXTExMtRs2/Nm3334r2rVrV+t7curUKTF69Gjh6ekp2rRpI2JjY8WNGzdMz9+1a5cICgoSbm5uYtSoUWL48OFi+vTppvXbtm0TPXv2rHHfRESWyFrGLp1OJ1566SWhVquFUqkUISEhprHIaDSK4cOHCycnJ7F69WohhBCrV68WnTp1EkqlUsTExIiwsLBabw4RFxcn+vfvb3r817Hr119/FZGRkUKlUgl/f38xb948odFoTOtv7cvT01NER0eLsLAw8dZbb5nWL126VIwbN67GfZN1kwnRQieXIaImV1VVhU6dOuHzzz/HAw880KBts7KyYDAYqp0eMXr0aISGhpq+xXz00UcxbNgwzJw5s1FzExGR5bp27RoCAwNx8uRJ+Pr6Nmjb9PR0uLq6IiAgwLSse/fuePHFFzFt2jQAQI8ePfD2229jxIgRjRmbWgCeqkdEd83e3h4LFy7EihUrGrxtZmYmBgwYYJqh/ciRIzhw4ABGjhwJADh16hROnz6N6dOnN2pmIiKybK1atcLzzz+PuLi4Bm97a5y5evUqjEYjvvzyS5w5c8Z0I459+/bBzc2NRRPViDeHIKJ7MnXqVOzatQs///wz+vXrV+/txo4di+PHj2PAgAEoKiqCv78/Pv30U9NNLWbPno34+HjI5fKmik5ERBZq/vz5iIyMxNmzZ2+7K96dPPfcczhz5gxCQkJQXl6OLl264KuvvoK/vz90Oh0WLFhQ6w0yiHiqHhERERERUR14qh4REREREVEdWDgRERERERHVgYUTERERERFRHVg4ERERERER1YGFExERERERUR1YOBEREREREdWBhRMREREREVEdWDgRERERERHV4f8B7Tu4bGJoIEgAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.font_manager import fontManager\n", + "plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']\n", + "\n", + "# use table_evaluator for evaluation\n", + "from table_evaluator import TableEvaluator\n", + "\n", + "table_evaluator = TableEvaluator(\n", + " real_data[list(set(real_data.columns) - set(loan_metadata.discrete_columns))],\n", + " sampled_data[list(set(real_data.columns) - set(loan_metadata.discrete_columns))])\n", + "table_evaluator.plot_mean_std()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "m0auS-D7r7bL" + }, + "source": [ + "There are 42 columns in the target list. We select some important features for **statistical distribution assessment**.\n", + "\n", + "Through the analysis of these features, we can have a more comprehensive understanding of the borrower's professional status, work experience, industry background, and repayment so as to more accurately assess its loan risk and credit reliability, as follows:\n", + "\n", + "1. work_type (work type): Indicates the borrower’s work type, such as clerk, worker, other, etc. This characteristic is important in understanding a borrower's professional identity and stability, as different job types may have an impact on a borrower's ability to repay.\n", + "\n", + "2. work_year (working years): Indicates the borrower’s working years in the current workplace. This feature can reflect the borrower’s work experience and stability. Borrowers who have worked for the same unit for a long time may have greater repayment ability and credit reliability.\n", + "\n", + "3. Industry: Indicates the industry in which the borrower is located, such as mining, information transmission, finance, etc. Understanding the borrower's industry can help us evaluate the borrower's career stability and industry prospects, and thus determine his or her repayment ability.\n", + "\n", + "4. monthly_payment (monthly payment amount): Indicates the loan amount that the borrower needs to repay every month. This feature is an important indicator for evaluating the borrower's repayment ability. A higher monthly payment may mean that the borrower has heavier debts and requires higher repayment ability.\n", + "\n", + "5. post_code (postal code): Indicates the postal code of the borrower's location. Postal codes can provide geographic location information about the borrower's location, which helps us understand the economic conditions and risk profile of the borrower's location.\n", + "\n", + "6. recircle_b (revolving line usage rate): Indicates the proportion of the revolving line used by the borrower to the total revolving line. Revolving limit refers to a credit card or other credit card that can be used repeatedly. The borrower's utilization rate can reflect his or her credit card usage and repayment habits, which is of great significance for assessing the borrower's credit status and repayment ability." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 }, + "id": "LCOBVCkWr7bL", + "outputId": "925d7188-ec28-4cda-aa60-d4a29a74a5b6" + }, + "outputs": [ { - "cell_type": "markdown", - "metadata": { - "id": "m0auS-D7r7bL" - }, - "source": [ - "There are 42 columns in the target list. We select some important features for **statistical distribution assessment**.\n", - "\n", - "Through the analysis of these features, we can have a more comprehensive understanding of the borrower's professional status, work experience, industry background, and repayment so as to more accurately assess its loan risk and credit reliability, as follows:\n", - "\n", - "1. work_type (work type): Indicates the borrower’s work type, such as clerk, worker, other, etc. This characteristic is important in understanding a borrower's professional identity and stability, as different job types may have an impact on a borrower's ability to repay.\n", - "\n", - "2. work_year (working years): Indicates the borrower’s working years in the current workplace. This feature can reflect the borrower’s work experience and stability. Borrowers who have worked for the same unit for a long time may have greater repayment ability and credit reliability.\n", - "\n", - "3. Industry: Indicates the industry in which the borrower is located, such as mining, information transmission, finance, etc. Understanding the borrower's industry can help us evaluate the borrower's career stability and industry prospects, and thus determine his or her repayment ability.\n", - "\n", - "4. monthly_payment (monthly payment amount): Indicates the loan amount that the borrower needs to repay every month. This feature is an important indicator for evaluating the borrower's repayment ability. A higher monthly payment may mean that the borrower has heavier debts and requires higher repayment ability.\n", - "\n", - "5. post_code (postal code): Indicates the postal code of the borrower's location. Postal codes can provide geographic location information about the borrower's location, which helps us understand the economic conditions and risk profile of the borrower's location.\n", - "\n", - "6. recircle_b (revolving line usage rate): Indicates the proportion of the revolving line used by the borrower to the total revolving line. Revolving limit refers to a credit card or other credit card that can be used repeatedly. The borrower's utilization rate can reflect his or her credit card usage and repayment habits, which is of great significance for assessing the borrower's credit status and repayment ability." - ] + "name": "stderr", + "output_type": "stream", + "text": [ + "/opt/anaconda3/lib/python3.12/site-packages/table_evaluator/table_evaluator.py:182: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n", + " ax.set_xticklabels(axes[i].get_xticklabels(), rotation='vertical')\n", + "/opt/anaconda3/lib/python3.12/site-packages/table_evaluator/table_evaluator.py:182: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n", + " ax.set_xticklabels(axes[i].get_xticklabels(), rotation='vertical')\n", + "/opt/anaconda3/lib/python3.12/site-packages/table_evaluator/table_evaluator.py:182: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n", + " ax.set_xticklabels(axes[i].get_xticklabels(), rotation='vertical')\n" + ] }, { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 - }, - "id": "LCOBVCkWr7bL", - "outputId": "925d7188-ec28-4cda-aa60-d4a29a74a5b6" - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/opt/anaconda3/lib/python3.12/site-packages/table_evaluator/table_evaluator.py:182: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n", - " ax.set_xticklabels(axes[i].get_xticklabels(), rotation='vertical')\n", - "/opt/anaconda3/lib/python3.12/site-packages/table_evaluator/table_evaluator.py:182: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n", - " ax.set_xticklabels(axes[i].get_xticklabels(), rotation='vertical')\n", - "/opt/anaconda3/lib/python3.12/site-packages/table_evaluator/table_evaluator.py:182: UserWarning: set_ticklabels() should only be used with a fixed number of ticks, i.e. after set_ticks() or using a FixedLocator.\n", - " ax.set_xticklabels(axes[i].get_xticklabels(), rotation='vertical')\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABjUAAASECAYAAAAsio3wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde1hVZfr/8Q+CoMJmIyLKwVOKo4OiM6mV4qHJtMzMrEm0MTGtRsf8NaUJkabopFkxTpYzpYnHkianr1lWOqGZ2XfUGgU74QELIUVFzrgl2L8/vNjfdiBy2LD3wvfrutZ1uZ71rPXczwLldt88a7lZrVarAAAAAAAAAAAAXFwzZwcAAAAAAAAAAABQExQ1AAAAAAAAAACAIVDUAAAAAAAAAAAAhkBRAwAAAAAAAAAAGAJFDQAAAAAAAAAAYAgUNQAAAAAAAAAAgCFQ1AAAAAAAAAAAAIZAUQMAAAAAAAAAABgCRQ0AAADgKn766Sdnh1ArRosX/4evHQAAAFA9ihoAAABwWbt375abm1ulzd3dXT4+PgoLC9OkSZN04MCBKs9fsGCB3NzctGDBgjrHsG3bNt166621OmfYsGFyc3PT7t27q21ztB9++EHjxo3TZ599dtV4ULVNmzYpPDxcLVq0kL+/v1asWNEo454/f14PPfSQ3njjjUYZDwAAADAqD2cHAAAAAFyNt7e37r33Xtu+1WpVUVGRvv76a23cuFFvvPGG/vKXvygmJsah4/7www8aM2aMOnXq5NDrNpTo6Gjt2rVLs2bNcnYohpSWlqZJkybJarXqpptuUseOHRUREdEoY8+ZM0eJiYkaNGhQo4wHAAAAGBVFDQAAALi8gIAArV27tspj27dv1/3336/Y2Fh17txZUVFRtmMzZ85UVFSUAgIC6jRueXl5nc5bv369iouL1bFjxzqdX1dXitdZ8RhNamqqrFarhg8frp07dzbq2HX9XgMAAACuNTx+CgAAAIY2atQorVu3TpL02GOPqaSkxHYsICBAPXr0qHNRo646duyoHj16qFWrVo067pW4WjyuqqCgQJIUEhLi5EgAAAAAXAlFDQAAABjemDFjdMMNN+jMmTP617/+ZWu/0js1kpOTddtttyk4OFitWrVSt27d9NBDD+no0aN253bp0kWS9P3338vNzU2dO3eW9H/v+njsscf06quvKjg4WH5+fvr9738vq9Va7TssSktLtWDBAnXq1EktWrRQ9+7dtWDBArtijCStXbtWbm5uio6OrnLOFe8XkaSTJ0/Kzc1Nn3zyiSTp5ptvthv/SvEUFRXpL3/5iyIiItSyZUuZzWYNHTq0yvc6VNzL9957T9u3b9fgwYNlMplkNpt12223VXqPR3Xc3NzUr18/nTlzRn/4wx/Upk0beXt7a8CAAdqwYUOV51itVq1fv16DBw+W2WyWt7e3rr/+ev3tb39TWVlZlfdu+fLlWrhwofz9/RUQEKDHHnusymtX3L8pU6ZIktatWyc3NzcNGzasTuNX+OCDDzRmzBh16dJFLVq0kLe3t/r27asXXnhBVqvV7n5UFOamTJkiNzc328qk6Ohou/2fq/g+/HmcNZl7UVGRFi1apN69e6tVq1by9/fXiBEj9N5771U5DwAAAMCVUNQAAABAk3D77bdLkv79739X2y8xMVG33HKLPvnkE/Xu3Vt33XWXWrVqpdWrV2vgwIG2wkbfvn11zz33SLr8To/JkyfbvddDknbu3KkZM2aoT58+GjBggLy9vW2Fhiv585//rPj4eF133XW66667lJeXp4ULF+q2227TpUuX6jR3Hx8fTZ48We3atZMkjRw5UpMnT1b79u2veM7Zs2d1ww036Omnn1Z2drbuvPNODRo0SPv379f9999ve7fEL23YsEF33HGHcnNzNWrUKAUFBemjjz7S7373O/3nP/+pccyFhYUaNmyY3nnnHQ0ePFg333yzUlJS9MADDyguLq5S/wcffFCTJ0/WgQMH1LdvX40YMUJZWVl67LHHdOutt1Z571atWqVnn31WQ4YMUc+ePeXr61tlLBX3r+J9Fl27dtXkyZN122231Xn8BQsWaNSoUdq5c6e6d++ue+65R/369VNqaqrmzJmjJ554wtZ38uTJ6tq1qyRp0KBBmjx5srp161bje1mVK839woULioyM1Pz585WVlaWbb75Z/fv312effaY777xTTz/9dL3GBQAAABqcFQAAAHBRu3btskqydurU6ap916xZY5VkHTBggK3tmWeesUqyPvPMM7a2Tp06WT08PKxHjx61O//JJ5+0SrJOnz7d1paenl7l+BVxSbIuW7bM1l5eXm61Wq3WoUOHWiVZd+3aZTtW0ebu7m597733bO15eXnW/v37WyVZFy9ebGtPTEy0SrJO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q1WTJk3SsWPHbO3l5eV6+umntWPHDhUWFjbY6prajl9RiPjoo4/srnP48GFNmTLFtm+xWGx/vtLXruL7YNOmTbZ3cUjSrl27tGrVqlrNo0uXLho7dqxOnTqlBx980O56hYWFio6O1pEjR9ShQ4dqH00GAAAAOBOPnwIAAIDLO3funKKjo237P/30k86fP69vvvlG33//vZo3b67ly5fr3nvvrfY67u7uWrVqle6++27de++96tevn63QsWfPHpWVlWnlypW2l2G3adNGbdq00fnz53XzzTerU6dOWrduXb3mcsMNN2j48OEaNmyY2rRpo3//+9/Kzc3V5MmTNXXqVFu/0NBQTZw4UW+88Yb69eunESNGqLS0VLt379Zvf/tb9enTx/YekQq/+tWvtH37dj3++ON6++239f/+3//TjTfeWGUca9as0S233KJ//etf+uyzzzRkyBBdvHhRycnJKioq0uTJk+0KCw3h/PnzCgsL0+9+9zsVFhbq448/VllZmVavXq3u3bvb+s2cOVOfffaZ3nrrLfXu3VsDBgxQu3bt9MUXX+jEiRNq37693nzzzQaLs7bjP/bYY9q7d69efvllffrpp+rRo4e+//577d+/X9dff70GDhyoffv26fTp0+rZs6eky1876XLR6+DBg5owYYLGjBmje+65RwsWLNA333yjsLAwDRkyRJmZmfr88881ffp0/f3vf6/VXP7xj3/ou+++01tvvaWPP/5YAwYMkKenpz799FPl5OQoMjJS8fHxjrt5AAAAgIOxUgMAAAAur6ioSOvWrbNtb775pg4cOKDWrVvr8ccf11dffVXjVQVjxozR559/rnvvvVfnz5/XO++8o//+978aPny4duzYoenTp9v6NmvWTGvXrlWPHj30+eefa9u2bcrLy6vXXF5//XXFxsbqu+++07Zt29SpUye99tprSkxMrNR33bp1Wrx4sTp16qQdO3bo66+/1qxZs7Rz584qX7QdGxurUaNGKScnR++8847dCo9fCgwM1P79+7VkyRK1a9dO27Zt0+7du3XDDTfoX//6l9auXdvgv62/Z88eDRkyRB9++KE+++wzDR06VMnJyXarGaTLX4fNmzdr3bp16t+/vw4fPqz33ntPnp6eevzxx/Xll18qLCysweKs7fj33HOPduzYoaFDhyojI0PvvfeeJGnlypXat2+f7rjjDknShx9+aDvnoYce0v3336+ffvpJW7Zs0cGDByVdXsGxb98+PfTQQ3J3d9e2bdtUWFioV199VQkJCbWeS2BgoP7zn/8oPj5eISEh2r17tz755BN16dJFf/vb37Rjx44rvsweAAAAcAVuVh6WCgAAAKARVRRL+K8IAAAAgNpipQYAAAAAAAAAADAEihoAAAAAAAAAAMAQKGoAAAAAAAAAAABDoKgBAAAAAAAAAAAMwcPZAQAAAAC4tvCCcAAAAAB1xUoNAAAAAAAAAABgCBQ1AAAAAAAAAACAIVDUAAAAAAAAAAAAhkBRAwAAAAAAAAAAGAJFDQAAAAAAAAAAYAgUNQAAAAAAAAAAgCFQ1AAAAAAAAAAAAIZAUQMAAAAAAAAAABgCRQ0AAAAAAAAAAGAIFDUAAAAAAAAAAIAhUNQAAAAAAAAAAACGQFEDAAAAAAAAAAAYAkUNAAAAAAAAAABgCBQ1AAAAAAAAAACAIVDUAAAAAAAAAAAAhkBRAwAAAAAAAAAAGAJFDQAAAAAAAAAAYAgUNQAAAAAAAAAAgCFQ1AAAAAAAAAAAAIZAUQMAAAAAAAAAABgCRQ0AAAAAAAAAAGAIFDUAAAAAAAAAAIAhUNQAAAAAAAAAAACGQFEDAAAAAAAAAAAYAkUNAAAAAAAAAABgCBQ1AAAAAAAAAACAIVDUAAAAAAAAAAAAhuDh7ACcrby8XFlZWTKZTHJzc3N2OAAAOI3ValVBQYGCg4PVrBm/91BT5BIAAFxGLlE35BIAAFxW01zimi9qZGVlqUOHDs4OAwAAl5GRkaHQ0FBnh2EY5BIAANgjl6gdcgkAAOxdLZe45osaJpNJ0uUb5evr6+RoAABwnvz8fHXo0MH2sxE1Qy4BAMBl5BJ1Qy4BAMBlNc0lrvmiRsXSTl9fX5IHAAAkHntQS+QSAADYI5eoHXIJAADsXS2X4CGXAAAAAAAAAADAEChqAAAAAAAAAAAAQ6CoAQAAAAAAAAAADOGaf6cGAMCYysvLdenSJWeHYSjNmzeXu7u7s8MAAMAlkEvUHrkEAAD/p6ysTKWlpc4Ow1AclUtQ1AAAGM6lS5eUnp6u8vJyZ4diOH5+fmrfvj0v8AQAXNPIJeqOXAIAcK2zWq06ffq0cnNznR2KITkil6CoAQAwFKvVqh9//FHu7u7q0KGDmjXjSYo1YbVaVVxcrOzsbElSUFCQkyMCAMA5yCXqhlwCAIDLKgoagYGBatWqFYX+GnJkLkFRAwBgKD/99JOKi4sVHBysVq1aOTscQ2nZsqUkKTs7W4GBgTw+AgBwTSKXqDtyCQDAta6srMxW0GjTpo2zwzEcR+US/EoKAMBQysrKJEmenp5OjsSYKj684bmfAIBrFblE/ZBLAACuZRU///jFiLpzRC5BUQMAYEgs76wb7hsAAJfxM7FuuG8AAPDzsD4cce8oagAAAAAAAAAAAEOgqAEAAAAAAAAAAAyBogYAAFdx8uRJubm56eTJk3btn376qXx8fOp83c6dO2vt2rX1Cw4AALg8cgkAAFAf5BL2KGoAAFBHgwcPVmFhobPDAAAABkUuAQAA6uNazSUoagAAUEvx8fEKCQnRypUrbS+4qvitibVr16pLly7y8/PT3XffrTNnzkiSrFarXnjhBXXp0kXt2rXTY489prKyMmdOAwAAOAm5BAAAqI9rPZegqAEAQC3Mnz9fa9eu1aeffqpf//rXlY5/+OGH2r9/v9LT05Wenq4FCxZIkjZu3Khly5bpnXfe0Q8//CA/Pz+dOnWqkaMHAADORi4BAADqg1yCogYAADU2b948LVu2TJ988omuu+66Kvs8+eSTatu2rVq3bq2RI0cqLS1NkrR+/XpNnTpVffv2lZeXl+bNm6fAwMDGDB8AADgZuQQAAKgPconLPJwdgFEcem6Ks0Ow03duorNDAIBrzpEjR9SmTRu98cYbmjt3bpV9/P39bX9u2bKlbSlnZmamxo0bZzvm7u6uLl26NGzAcIq65gz8bAeApo9cAjVRl1yCPAIArg3kEpdR1AAAoIaSkpKUlpame++9V6NGjarVuR07dtSxY8ds+1arVVlZWY4OEQAAuDByCQAAUB/kEpfx+CkAAGrI09NTo0eP1vjx4zVp0iRdunSpxuf+8Y9/1Lp163Tw4EH99NNPeu6555SRkdGA0QIAAFdDLgEAAOqDXOIyVmoAAFBLf/vb3xQeHq5nnnmmxueMHTtWZ8+e1YQJE3TmzBmNGzdO119/fQNGCQAAXBW5BAAAqI9rPZegqAEAwFV07txZVqvVtu/n56fMzMxq+0jSggUL7PYfeughPfTQQw0WJwAAcE3kEgAAoD7IJezx+CkAAAAAAAAAAGAIFDUAAAAAAAAAAIAhUNQAAACGlJ2drXHjxslkMikgIECzZs1SaWlppX7l5eVauHChOnbsKLPZrJtuukmfffaZ7bjVapXZbJa3t7d8fHxsW1FRUWNOBwAAAAAA1ABFDQAAYEhRUVHy8PBQVlaWDh8+rOTkZMXHx1fqt3LlSq1bt07JycnKy8vT008/rdtvv10XLlyQJKWlpam4uFjnz59XYWGhbfP29m7sKQEAAAAAgKugqAEAAAzn+PHj2rVrlxISEmQymRQSEqKYmBglJiZW6jt9+nQdOnRI3bp1U2lpqc6cOaOCggKlp6dLkg4cOKDw8HC1aNGisacBAAAAAABqiaIGAAAwnNTUVPn7+ys0NNTWFhERoczMTOXm5tr1dXd3l6+vr3bs2KGWLVtq6tSpGjt2rPr27SvpclGjvLxcAwcOVNu2bTVkyBDt27fvimNbLBbl5+fbbQAAAAAAoHFQ1AAAAIZTUFBQ6fFQFfuFhYVVnjNs2DBZLBbt3r1bZrPZVvzw8vJSv379tGXLFmVkZGjMmDEaMWKETpw4UeV1lixZIrPZbNs6dOjguIkBAAAAAIBqUdQAAACGYzKZKr3Iu2LfZDJVeY6np6fc3d01dOhQeXt7a8GCBZKkZcuWac2aNQoKClKLFi00e/ZsderUSdu3b6/yOrGxscrLy7NtGRkZjpsYAAAAAAColoezAwAAwBEOPTelUcfrO7fyuxvQeMLDw5WTk6PMzEyFhIRIklJSUhQaGiqz2WzX94knnpAkvfjii7a2kpIS20qN+fPna+zYsfrtb39rO26xWOTj41Pl2F5eXvLy8nLkdAAALoBcAgAA1Ae5RONhpQYAAI2gc+fOatGihXx8fOy2ESNGXPVcNzc37d69u+GDNJCwsDBFRkYqJiZGJSUlSk9P1+LFizVt2rRKfQcPHqxXX31V+/btU3l5ubZu3apNmzZp/PjxkqQjR45o1qxZOnPmjCwWixYtWqTi4mKNGTOmsacFAMAVkUsAAID6aEq5BEUNAAAayT/+8Q8VFhbabTt27HB2WIaVlJSk3NxcBQYGql+/fho1apTi4uIkST4+Ptq0aZMkaezYsfrrX/+q6Ohomc1mzZ8/X2vWrLEVNdasWaMePXqod+/eCg4O1ueff67k5GT5+/s7bW4AAFSFXAIAANRHU8klKGoAAOBk586d0x/+8Ae1b99ePj4+6tatmxITq15GunbtWrVu3Vp79uyRJB07dkyjRo1SQECA2rVrp9mzZ8tisTRm+E4THBysbdu2qaCgQOfPn1dCQoI8PC4/WbOwsFD333+/re9DDz2ktLQ0FRQU6PDhw3bH/Pz8tHr1amVnZ+v8+fPavn27evTo0ejzAQCgrsglAABAfRgtl6CoAQCAk02dOlWenp5KT09Xfn6+ZsyYoUceeUQlJSV2/VavXq0nn3xSO3fu1JAhQ1RcXKzf/e536tGjhzIyMpSamqrU1FTNnTvXSTMBAADOQC4BAADqw2i5BEUNAAAayYwZM+Tn52e3FRUV6eWXX9by5cvVvHlzff/99zKZTCotLdW5c+ds565evVoPP/yw3nvvPfXr10+S9N5778liseiFF15Qy5YtFRgYqPj4eL3++usqLy931jQBAEADIZcAAAD10VRyCY8GuzIAALCzcuVKRUdHV2o/ePCg5s2bp7S0NHXu3Fm/+tWvJEllZWW2Pnv37tWvf/1rJSYmasCAAZKkkydP6vz583bvfrBarSotLVVOTo4CAgIadkIAAKBRkUsAAID6aCq5BCs1AABwIovFotGjR2vy5Mn68ccf9b//+7966KGHKvV77bXXtGHDBr3++uv68MMPJUkdOnRQ165dlZuba9tOnz6tr776Sm3atGnsqQAAACcglwAAAPVhxFyClRoAADjRTz/9pIsXL6pZs2Zyc3PT8ePHbc+eLC0ttfXz9PTUb37zG8XGxmrq1Kk6cuSI7rjjDs2ePVtLly7VY489pkuXLmnmzJn69ttvtX//fmdNCXU0fs6bdTov6fkJDo4EAGAk5BIAAKA+jJhLUNQAADQJfecmOjuEOvH29taaNWs0b948PfroowoPD9eCBQs0depUHTp0SGFhYXb9n376aW3dulUzZszQm2++qX//+9964okn9OKLL6q8vFw333yztm7d6qTZAABgXOQS5BIAANQHuUTj5RIUNQAAaAQnT5684rFJkyZp0qRJdm1ZWVm2P1utVtufmzdvrkOHDtn2e/bsqe3btzssTgAA4JrIJQAAQH00pVyCd2oAAAAAAAAAAABDoKgBAAAAAAAAAAAMgaIGAAAAAABocrKzszVu3DiZTCYFBARo1qxZdi88rcqWLVvUpUsXuzYfHx+7rVWrVnJzc9Mbb7whSfriiy/UrFkzuz5DhgxpsHkBAHCto6gBAAAAAACanKioKHl4eCgrK0uHDx9WcnKy4uPjq+x76dIlLVu2TBMmTLB7brgkFRYW2m0TJ07U4MGD9fvf/16SdPDgQQ0aNMiuz549exp8fgAAXKsoagAAAAAAgCbl+PHj2rVrlxISEmQymRQSEqKYmBglJiZW2X/kyJHavXu34uLiqr3u+vXrtXXrVr399ttq3ry5JOnAgQO6/vrrHT4HAABQNYoaAAAAAACgSUlNTZW/v79CQ0NtbREREcrMzFRubm6l/hs2bND27dvVqVOnK16zqKhIc+bMUXx8vAIDA23tBw4c0FdffaWePXuqXbt2Gj9+vE6dOnXF61gsFuXn59ttAACg5ihqAAAAAACAJqWgoEDe3t52bRX7hYWFlfr/vPhxJS+99JLMZrMefvhhW1t5ebnatWun4cOHa//+/frqq6/k5uamUaNGqaysrMrrLFmyRGaz2bZ16NChNlMDAOCa5+HsAAAAAAAAABzJZDKpqKjIrq1i32Qy1emar732mv74xz/K3d3d1tasWTPt2LHDbtwVK1YoMDBQ33zzjXr16lXpOrGxsXr88cdt+/n5+RQ2AACoBYoaAIAmYfycNxt1vKTnJzTqeAAAoGGRSzQt4eHhysnJUWZmpkJCQiRJKSkpCg0NldlsrvX1Dh48qO+//16TJk2ya8/MzNTy5cs1b948+fr6SpIuXrwoSfLx8anyWl5eXvLy8qp1DAAA10Yu0Xh4/BQAAAAAAGhSwsLCFBkZqZiYGJWUlCg9PV2LFy/WtGnT6nS9ffv2qVOnTgoODrZrDwgI0MaNGxUXF6eLFy/q/PnzmjlzpkaOHKnOnTs7YCYAAOCXKGoAANAIOnfurBYtWsjHx0c+Pj7y9vaWyWTS7bffrq+//rre14+OjlZ0dHT9AwUAAC6JXKL2kpKSlJubq8DAQPXr10+jRo1SXFycpMurKDZt2lTja33//ffq3bt3pXYvLy/t3LlTR48eVVBQkCIiIhQUFKTNmzc7bB4AADhCU8olKGoAANBI/vGPf6iwsFCFhYUqKirS0aNH1axZM911113ODg0AABgAuUTtBAcHa9u2bSooKND58+eVkJAgD4/LT+EuLCzU/fffX+mc6OhonTx5slL7iy++qHfffbfKcXr16qUPP/xQFy5cUGZmpv7xj3/Iz8/PkVMBAMAhmkouQVEDAAAnad++vaZPn65jx47pwoULOn36tKKiohQUFCR/f39NnTpVubm5tv4vvfSSfvWrX8lsNqtNmzaaPHmyiouLnTcBAADgVOQSAACgPoyaS1DUAADASX744QclJCSoX79+8vPz05133ilJ+uabb3Ty5EmVlpbalm6+8847WrZsmbZv3668vDzt3btX77//vt58s3FfRAYAAFwHuQQAAKgPo+YSFDUAAGgkM2bMkJ+fn1q2bKnmzZtrxIgR6t+/vz788EMdOHBA//3vf22PK/D19dXzzz+vd999V2fOnNHw4cP1+eefq2vXrjp79qzOnTunNm3aKCsry9nTAgAAjYRcAgAA1EdTySUoagAA0EhWrlyp3NxcXbhwQUuWLFFOTo6GDx+uNm3a6OTJkyovL1fnzp3l5+cnPz8//epXv5Knp6dOnTqlS5cuaeHChQoNDdXgwYO1cuVKWSwWlZWVOXtaAACgkZBLAACA+mgquYRHo48IAMA1rkWLFpo9e7Zyc3N1991367PPPlOHDh3UsmVLnT9/Xu7u7pKk8vJyHTt2TNddd51mzJihU6dO6dtvv5WPj48kqVu3bs6cBgAAcBJyCTSkQ89NqfU5fecmNkAkAICGYvRcgpUaAAA4ycKFC9W3b19NmDBBvXr1UlhYmB577DEVFBTo4sWLeuqpp3TLLbeorKxMBQUFcnNzk7u7u4qKihQfH6/jx4+rtLTU2dMAAABOQi4BAADqw6i5BCs1AABNQtLzE5wdQq25u7tr48aN6tOnj+bMmaP3339fTzzxhMLCwmSxWDRgwADt2LFDXl5e+stf/qIpU6aobdu28vf31+TJk/XnP/9Zhw4dcvY0AABoEsglAABAfZBLNB6XLGpkZ2frj3/8o3bu3CkvLy9NnDhRL774opo3b16p75133qmdO3fKw+P/pvL222/rtttua8yQAQCo1smTJ6ts79y5s/Ly8mz7mzdvrrLfddddp08++eSK11+7dm19wgMAAC6OXAIAANRHU8olXPLxU1FRUfLw8FBWVpYOHz6s5ORkxcfHV9n34MGDev/991VYWGjbKGgAAAAAAAAAAND0uFxR4/jx49q1a5cSEhJkMpkUEhKimJgYJSZWfunUqVOndPr0af32t791QqQAAAAAAAAAAKAxuVxRIzU1Vf7+/goNDbW1RUREKDMzU7m5uXZ9Dxw4IJPJpAcffFCBgYHq1atXlcWPn7NYLMrPz7fbAAAAAAAAAACA63O5okZBQYG8vb3t2ir2CwsL7dpLSkoUGRmpZ555RllZWUpISNCsWbOUlJR0xesvWbJEZrPZtnXo0MHxkwAAAAAAAAAAAA7nckUNk8mkoqIiu7aKfZPJZNc+ceJEbd++XX379pWHh4dGjBihBx54QP/85z+veP3Y2Fjl5eXZtoyMDMdPAgDQ4KxWq7NDMCTuGwAAl/EzsW64bwAA8POwPhxx71yuqBEeHq6cnBxlZmba2lJSUhQaGiqz2WzXd926dXrrrbfs2i5evCgfH58rXt/Ly0u+vr52GwDAONzd3SVJly5dcnIkxlRcXCxJat68uZMjAQDAOcgl6odcAgBwLav4+Vfx8xC154hcwsNRwThKWFiYIiMjFRMTo9dee02nT5/W4sWLNW3atEp98/LyNGfOHHXv3l0RERH68MMPtXnzZu3YscMJkQMAGoOHh4datWqls2fPqnnz5mrWzOXq8y7JarWquLhY2dnZ8vPzs32gAwDAtYZcom7IJQAAuPzLEX5+fsrOzpYktWrVSm5ubk6OyhgcmUu4XFFDkpKSkvTII48oMDBQnp6emjx5suLi4iRJPj4+evXVV3X//ffr0UcfVVFRkcaNG6dz586pe/fu+uc//6lBgwY5eQYAgIbi5uamoKAgpaen6/vvv3d2OIbj5+en9u3bOzsMAACchlyifsglAADXuoqfgxWFDdSOI3IJlyxqBAcHa9u2bVUe+/nLwt3c3BQbG6vY2NjGCg0A4AI8PT0VFhbGYyNqqXnz5vxWJQAAIpeoK3IJAAD+7xckAgMDVVpa6uxwDMVRuYRLFjUAALiaZs2aqUWLFs4OAwAAGBS5BAAAqA93d3eK/U7Cw0MBAAAAAAAAAIAhUNQAAAAAAAAAAACGQFEDAAAAAAAAAAAYAkUNAAAAAAAAAABgCBQ1AAAAAAAAAACAIVDUAAAAAAAAAAAAhkBRAwAAGFJ2drbGjRsnk8mkgIAAzZo1S6WlpZX6lZeXa+HCherYsaPMZrNuuukmffbZZ3Z9li1bppCQEHl7e2vo0KH65ptvGmsaAAAAAACgFihqAAAAQ4qKipKHh4eysrJ0+PBhJScnKz4+vlK/lStXat26dUpOTlZeXp6efvpp3X777bpw4YIkaf369UpISND27duVm5urG264QaNHj66yQAIAAAAAAJyLogYAADCc48ePa9euXUpISJDJZFJISIhiYmKUmJhYqe/06dN16NAhdevWTaWlpTpz5owKCgqUnp4uSVq1apUeffRR9enTR82bN1d8fLzOnDmjTz75pMqxLRaL8vPz7TYAAAAAANA4KGoAAADDSU1Nlb+/v0JDQ21tERERyszMVG5url1fd3d3+fr6aseOHWrZsqWmTp2qsWPHqm/fvrZrRURE2Pq3aNFC3bt315EjR6oce8mSJTKbzbatQ4cODp8fAAAAAACoGkUNAABgOAUFBfL29rZrq9gvLCys8pxhw4bJYrFo9+7dMpvNtuLHla51pevExsYqLy/PtmVkZNRzNgAAAAAAoKYoagAAAMMxmUwqKiqya6vYN5lMVZ7j6ekpd3d3DR06VN7e3lqwYEG117rSdby8vOTr62u3AQAAAACAxkFRAwAAGE54eLhycnKUmZlpa0tJSVFoaKjMZrNd3yeeeEJPPPGEXVtJSYlOnTplu1ZqaqrtmMViUVpamnr16tWAMwAAAAAAAHVBUQMAABhOWFiYIiMjFRMTo5KSEqWnp2vx4sWaNm1apb6DBw/Wq6++qn379qm8vFxbt27Vpk2bNH78eEnSgw8+qJdffllpaWkqKSnR3LlzFRQUpKFDhzb2tAAAAAAAwFVQ1AAAAIaUlJSk3NxcBQYGql+/fho1apTi4uIkST4+Ptq0aZMkaezYsfrrX/+q6Ohomc1mzZ8/X2vWrLEVNaZOnarp06dr6NChCggI0OHDh/X+++/Lw8PDaXMDAAAAAABV43/rAADAkIKDg7Vt27Yqj/3yJd8PPfSQHnrooStea968eZo3b55D4wMAAAAAAI7HSg0AAAAAAAAAAGAIFDUAAAAAAAAAAIAhUNQAAAAAAAAAAACGQFEDAAAAAAAAAAAYAkUNAAAAAAAAAABgCBQ1AAAAAAAAAACAIVDUAAAAAAAATU52drbGjRsnk8mkgIAAzZo1S6WlpdWes2XLFnXp0sWuzWq1ymw2y9vbWz4+PratqKhIklRUVKQpU6bIz89Pfn5++sMf/qD8/PwGmxcAANc6ihoAAAAAAKDJiYqKkoeHh7KysnT48GElJycrPj6+yr6XLl3SsmXLNGHCBFmtVrtjaWlpKi4u1vnz51VYWGjbvL29JUmPPvqojh07pqNHj+rEiRPKysrSn/70pwafHwAA1yqKGgAAAAAAoEk5fvy4du3apYSEBJlMJoWEhCgmJkaJiYlV9h85cqR2796tuLi4SscOHDig8PBwtWjRotKx4uJivfHGG1q6dKnatm0rf39/xcfH66233lJxcbHD5wUAAChqAAAAAACAJiY1NVX+/v4KDQ21tUVERCgzM1O5ubmV+m/YsEHbt29Xp06dKh07cOCAysvLNXDgQLVt21ZDhgzRvn37JF1exWGxWBQREWE3zqVLl5SWllZlbBaLRfn5+XYbAACoOQ9nBwAAAAAAAOBIBQUFtsdDVajYLywslJ+fn92xnxc/fsnLy0v9+vXTX/7yF7Vu3Vovv/yyRowYoZSUFBUUFNhd+5fjVGXJkiVauHBhreeE6o2f82atz0l6fkIDRAIAaGis1AAAAAAAAE2KyWSyvci7QsW+yWSq1bWWLVumNWvWKCgoSC1atNDs2bPVqVMnbd++3Xatn491tXFiY2OVl5dn2zIyMmoVDwAA1zqKGgAAAAAAoEkJDw9XTk6OMjMzbW0pKSkKDQ2V2Wyu1bXmz5+vL7/80q7NYrHIx8dHYWFh8vT0VGpqqt04np6eCgsLq/J6Xl5e8vX1tdsAAEDNUdQAAAAAAABNSlhYmCIjIxUTE6OSkhKlp6dr8eLFmjZtWq2vdeTIEc2aNUtnzpyRxWLRokWLVFxcrDFjxsjb21v33Xef5s+fr9zcXJ09e1axsbGaOHGiWrVq1QAzAwAAFDUAAAAAAECTk5SUpNzcXAUGBqpfv34aNWqU4uLiJEk+Pj7atGlTja6zZs0a9ejRQ71791ZwcLA+//xzJScny9/fX5L0yiuvqH379urcubO6deumrl27asWKFQ02LwAArnW8KBwAAAAAADQ5wcHB2rZtW5XHrvQS7+joaEVHR9u1+fn5afXq1Vccx9fXVxs3bqxznAAAoHZYqQEAAAAAAAAAAAyBogYAAAAAAAAAADAEihoAAAAAAAAAAMAQKGoAAAAAAAAAAABDoKgBAAAAAAAAAAAMgaIGAAAAAAAAAAAwBIoaAAAAAAAAAADAEChqAAAAAAAAAAAAQ6CoAQAAAAAAAAAADIGiBgAAAAAAAAAAMASKGgAAAAAAAAAAwBAoagAAAAAAAAAAAEOgqAEAAAAAAAAAAAyBogYAAAAAAAAAADAED2cHAAAAAAAAAFQ49NyUOpw1wuFxAABcEys1AAAAAAAAAACAIVDUAAAAAAAAAAAAhkBRAwAAAAAAAAAAGAJFDQAAAAAAAAAAYAgUNQAAAAAAAAAAgCFQ1AAAAAAAAAAAAIZAUQMAAAAAAAAAABgCRQ0AAAAAAAAAAGAIFDUAAAAAAAAAAIAhuGRRIzs7W+PGjZPJZFJAQIBmzZql0tLSas/JzMxU27ZttXbt2sYJEgAAAAAAAAAANCqXLGpERUXJw8NDWVlZOnz4sJKTkxUfH3/F/mVlZZo4caIuXLjQiFECAAAAAAAAAIDG5HJFjePHj2vXrl1KSEiQyWRSSEiIYmJilJiYeMVzFixYoK5duyo0NPSq17dYLMrPz7fbAACA8dRmZefy5csVFhYmX19f9erVS0lJSbZjVqtVZrNZ3t7e8vHxsW1FRUWNNRUAAAAAAFBDLlfUSE1Nlb+/v12BIiIiQpmZmcrNza3UPzk5Wf/617+0YsWKGl1/yZIlMpvNtq1Dhw6OCh0AADSimq7sfP311/XCCy/onXfeUV5enpYuXaro6Gjt379fkpSWlqbi4mKdP39ehYWFts3b27uxpwQAAAAAAK7C5YoaBQUFlT5EqNgvLCy0a8/OztbUqVO1adOmGn/wEBsbq7y8PNuWkZHhmMABAECjqc3KzuzsbD311FPq1auX3NzcNHr0aPXs2VN79+6VJB04cEDh4eFq0aJFY08DAAAAAADUkoezA/glk8lU6XEPFfsmk8nWZrVaNWnSJP35z39W3759a3x9Ly8veXl5OSRWAADgHFdb2enn52drj42NtTv32LFj+vrrr9W/f39Jl4sa5eXlGjhwoI4ePaqePXtq6dKlGjhwYJVjWywWWSwW2z6PsgQAAAAAoPG43EqN8PBw5eTkKDMz09aWkpKi0NBQmc1mW1tGRoY++eQTzZ8/X35+fvLz89MPP/ygGTNmaPTo0c4IHQAANJLarOz8ue+++0633XabJk6cqMGDB0u6/AsP/fr105YtW5SRkaExY8ZoxIgROnHiRJXX4FGWAAAAAAA4j8sVNcLCwhQZGamYmBiVlJQoPT1dixcv1rRp0+z6dezYURcvXlRubq5t69ixo1auXKn33nvPSdEDAIDGUNOVnT+3Y8cO3Xjjjbr11lu1atUqW/uyZcu0Zs0aBQUFqUWLFpo9e7Y6deqk7du3V3kdHmUJAAAAAIDzuFxRQ5KSkpKUm5urwMBA9evXT6NGjVJcXJwkycfHR5s2bXJyhAAAwJlqurKzwgsvvKCxY8fq+eef19///ne5u7vbjs2fP19ffvmlXX+LxSIfH58qx/by8pKvr6/dBgAAAAAAGofLvVNDkoKDg7Vt27Yqj1X3SImTJ082UEQAAMCV/Hxl52uvvabTp09XubJTklatWqWFCxcqOTlZN954Y6XjR44cUXJysrZs2SI/Pz8tW7ZMxcXFGjNmTGNMBQAAAAAA1IJLrtQAAAC4mpqu7Fy4cKFKSko0fPhw+fj42LZnn31WkrRmzRr16NFDvXv3VnBwsD7//HMlJyfL39/faXMDAAAAAABVc8mVGgAAAFdT05Wdp06dqvY6fn5+Wr16tUNjAwAAAAAADYOVGgAAAAAAAAAAwBAoagAAAAAAAAAAAEOgqAEAAAAAAAAAAAyBogYAAAAAAAAAADAEihoAAAAAAKDJyc7O1rhx42QymRQQEKBZs2aptLS02nO2bNmiLl262LUVFBRoxowZCg4OVuvWrTVs2DB9+eWXtuNffPGFmjVrJh8fH9s2ZMiQBpkTAACgqAEAAAAAAJqgqKgoeXh4KCsrS4cPH1ZycrLi4+Or7Hvp0iUtW7ZMEyZMkNVqtTs2Y8YMHTt2TIcPH9aZM2c0ZMgQ3X777SoqKpIkHTx4UIMGDVJhYaFt27NnT4PPDwCAaxVFDQAAAAAA0KQcP35cu3btUkJCgkwmk0JCQhQTE6PExMQq+48cOVK7d+9WXFxcpWMWi0XPPPOM2rZtK09PT82ePVvZ2dn67rvvJEkHDhzQ9ddf36DzAQAA/4eiBgAAAAAAaFJSU1Pl7++v0NBQW1tERIQyMzOVm5tbqf+GDRu0fft2derUqdKxt956S4MGDbLtb926VX5+fgoLC5N0uajx1VdfqWfPnmrXrp3Gjx+vU6dOXTE2i8Wi/Px8uw0AANQcRQ0AAAAAANCkFBQUyNvb266tYr+wsLBS/58XP6qzdetWzZgxQ8uXL5fJZFJ5ebnatWun4cOHa//+/frqq6/k5uamUaNGqaysrMprLFmyRGaz2bZ16NChlrMDAODaRlEDAAAAAAA0KSaTyfbOiwoV+yaTqU7XXLZsmaKiorRixQpNnjxZktSsWTPt2LFDc+fOtb2QfMWKFUpNTdU333xT5XViY2OVl5dn2zIyMuoUDwAA1yqKGgAAAAAAoEkJDw9XTk6OMjMzbW0pKSkKDQ2V2Wyu1bUsFovuu+8+rVixQrt27VJ0dLTtWGZmpubMmWP3CKmLFy9Kknx8fKq8npeXl3x9fe02AABQcx7ODgB1M37Om84OwU7S8xOcHQIAAAAAAJKksLAwRUZGKiYmRq+99ppOnz6txYsXa9q0abW+1pQpU/T111/r4MGDateund2xgIAAbdy4URcvXtTzzz+voqIizZw5UyNHjlTnzp0dNBsAAPBzrNQAAAAAAABNTlJSknJzcxUYGKh+/fpp1KhRiouLk3R5FcWmTZuueo1jx47pzTff1NGjR9W1a1f5+PjYtk8//VReXl7auXOnjh49qqCgIEVERCgoKEibN29u6OkBAHDNYqUGAAAAAABocoKDg7Vt27Yqj1X1snBJio6Otnu8VLdu3WS1Wqsdp1evXvrwww/rHCcAAKgdVmoAAAAAAAAAAABDoKgBAAAAAAAAAAAMgaIGAAAAAAAAAAAwBIoaAAAAAAAAAADAEHhROAAAAAAAgIGNn/Nmrc9Jen5CkxkfAHBtYaUGAAAAAAAAAAAwBIoaAAAAAAAAAADAEChqAAAAAAAAAAAAQ6CoAQAAAAAAAAAADIGiBgAAAAAAAAAAMASKGgAAAAAAAAAAwBAoagAAAAAAAAAAAEOgqAEAAAAAAAAAAAyBogYAAAAAAAAAADAEihoAAAAAAAAAAMAQKGoAAAAAAAAAAABD8HD0Bc+ePasFCxYoLS1NZWVldseSk5MdPRwAADAYcgUAAFAdcgUAAFAdhxc1HnnkEaWnp2vkyJFq2bKloy8PAAAMjlwBAABUh1wBAABUx+FFjd27dys9PV1ms9nRlwYAAE0AuQIAAKgOuQIAAKiOw9+p4efnV2l5KAAAQAVyBQAAUB1yBQAAUB2Hr9R45plnNHPmTM2dO1etW7e2O9axY0dHDwcAAAyGXAEAAFSHXAEAAFTH4UWNKVOmSJI2b94sSXJzc5PVapWbmxu/aQEAAMgVAABAtcgVAABAdRxe1EhPT3f0JQEAQBNCrgAAAKpDrgAAAKrj8KJGp06dVF5ergMHDujkyZMKCQnRTTfdJHd3d0cPBQAADIhcAQAAVIdcAQAAVMfhRY3Tp09r9OjROnz4sNq0aaNz586pe/fu+vjjjxUUFOTo4QAAgMGQKwAAgOqQKwBA3Yyf82atz0l6fkIDRAI0rGaOvuDs2bMVFhamnJwcnT59WufOndP111+vmJgYRw8FAAAMiFwBAABUh1wBAABUx+ErNT7++GN99913MplMkiQ/Pz+98sor+tWvfuXooQAAgAGRKwAAgOqQKwAAgOo4fKWGJDVrVvmyVqu1IYYCAAAGRK4AAACqQ64AAACuxOFFjd/97neaOXOmiouLJUmFhYWaMWOGbr31VkcPBQAADIhcAQAAVIdcAQAAVMfhRY0XXnhBqamp8vPzU3BwsPz9/fXtt99q2bJljh4KAAAYkKNyhezsbI0bN04mk0kBAQGaNWuWSktLq+y7fPlyhYWFydfXV7169VJSUpLd8WXLlikkJETe3t4aOnSovvnmmzrPDwAA1A+fKwAAgOo4/J0aQUFB2r9/vw4ePKgffvhBnTp10m9/+1t5eDh8KAAAYECOyhWioqIUEBCgrKws5efna+TIkYqPj9eiRYvs+r3++ut64YUX9OGHHyo8PFzvv/++fv/736tLly4aMGCA1q9fr4SEBH300Uf69a9/rbi4OI0ePVrffvutmjdv7sipAwCAGuBzBQAAUB2HrdT47LPPJEl79uzRZ599JovFonbt2unixYvat2+f9uzZ46ihAACAATkyVzh+/Lh27dqlhIQEmUwmhYSEKCYmRomJiZX6Zmdn66mnnlKvXr3k5uam0aNHq2fPntq7d68kadWqVXr00UfVp08fNW/eXPHx8Tpz5ow++eSTKse2WCzKz8+32wAAQP3xuQIAAKgJh/2aw+233678/HwNGzasyuNubm4qKytz1HAAAMBgHJkrpKamyt/fX6Ghoba2iIgIZWZmKjc3V35+frb22NhYu3OPHTumr7/+Wv3797dd68knn7Qdb9Gihbp3764jR45o+PDhlcZesmSJFi5cWKM4AQBAzfG5AgAAqAmHrdSo+C3F8vLyKjcSDwAArm2OzBUKCgrk7e1t11axX1hYeMXzvvvuO912222aOHGiBg8eXO21rnSd2NhY5eXl2baMjIwaxw0AAK6MzxUAAEBNOPxF4RW/9fhLXbt2dfRQAADAgByRK5hMJhUVFdm1VeybTKYqz9mxY4duvPFG3XrrrVq1atVVr3Wl63h5ecnX19duAwAAjsPnCgAAoDoOefzU8ePH9Ze//EWSlJKSogcffNDueG5urgoKChwxFAAAMCBH5wrh4eHKyclRZmamQkJCbNcNDQ2V2Wyu1P+FF17Q/Pnz9dJLL2natGmVrpWamqo777xT0uV3ZqSlpalXr161miMAAKg7PlcAAAA15ZCVGl27dlVAQICsVmuVW2BgoDZs2OCIoQAAgAE5OlcICwtTZGSkYmJiVFJSovT0dC1evLhSwUK6/CLwhQsXKjk5ucrjDz74oF5++WWlpaWppKREc+fOVVBQkIYOHVqvOQMAgJrjcwUAAFBTDntR+LJlyyRdTkRiY2Pl7u7uqEsDAIAmwNG5QlJSkh555BEFBgbK09NTkydPVlxcnCTJx8dHr776qu6//34tXLhQJSUllV76/dRTT+mpp57S1KlTlZWVpaFDhyo/P18DBgzQ+++/Lw8Ph6VJAACgBvhcAQAA1ITD/7eekJCgxx9/XK1atXL0pQEAQBPgqFwhODhY27Ztq/LYz1/yferUqatea968eZo3b1694gEAAI7B5woAAKA6Dn9ReO/evXX48GFHXxYAADQR5AoAAKA65AoAAKA6Di9q+Pj4aPDgwYqIiNDvfvc7u62msrOzNW7cOJlMJgUEBGjWrFkqLS2t1K+8vFwLFy5Ux44dZTabddNNN+mzzz5z5HQAAICDOSJXAAAATZejcoWafrbwc1u2bFGXLl0qtS9btkwhISHy9vbW0KFD9c0339iOFRUVacqUKfLz85Ofn5/+8Ic/KD8/v1axAgCAmnP446cGDBigAQMG1OsaUVFRCggIUFZWlvLz8zVy5EjFx8dr0aJFdv1WrlypdevWKTk5Wd26ddP777+v22+/Xd9//71at25drxgAAEDDcESuAAAAmi5H5Qo1/WxBki5duqTly5fr6aefVnBwsN2x9evXKyEhQR999JF+/etfKy4uTqNHj9a3336r5s2b69FHH9WxY8d09OhRubu7695779Wf/vQnXmwOAEADcXhR45lnnrH9+cyZM/L391fz5s1rfP7x48e1a9cuZWRkyGQyyWQyKSYmRjExMZUSj+nTp+uBBx6Qr6+vSktLdebMGRUUFCg9Pf2KRQ2LxSKLxWLb57cnAABoXPXNFQAAQNPmiFyhNp8tSNLIkSPVsmVLxcXFKTEx0e7YqlWr9Oijj6pPnz6SpPj4eK1cuVKffPKJBg4cqDfeeEMff/yx2rZtazt+yy236NVXX63yvSB8LgEAQP04vKhRWlqqOXPmaPXq1SopKZGXl5cmTpyolStXytPT86rnp6amyt/fX6Ghoba2iIgIZWZmKjc3V35+frZ2d3d3+fr6aseOHRo1apTKyso0duxY9e3b94rXX7JkiRYuXFifKQIAgHqob64AAACaNkfkCrX5bEGSNmzYoNDQUK1du7bKaz355JO2/RYtWqh79+46cuSIAgICZLFYFBERYTfOpUuXlJaWVuXnE3wuAQBN1/g5b9b6nKTnJzRAJE2bw9+psWjRIiUnJ+utt97SV199pc2bN+uLL77Qs88+W6PzCwoK5O3tbddWsV9YWFjlOcOGDZPFYtHu3btlNpuVm5t7xevHxsYqLy/PtmVkZNRsYgAAwCHqmysAAICmzRG5Qm0/W/h58aOm1yosLFRBQYHdta82jsTnEgAA1JfDV2ps2rRJO3bsUNeuXSVJPXr0UO/evXXLLbdowYIFVz3fZDKpqKjIrq1i32QyVXlOxW9qDB06VG+99ZYWLFigl156qcq+Xl5e8vLyqul0AACAg9U3VwAAAE2bI3KFuny2UNtrVTzW6uf7NRmHzyUAAKgfh6/UuHDhgjp16mTXFhoaqgsXLtTo/PDwcOXk5CgzM9PWlpKSotDQUJnNZru+TzzxhJ544gm7tpKSEp06daqO0QMAgIZW31wBAAA0bY7IFWrz2UJNrpWammrbt1gsSktLU69evRQWFiZPT0+74ykpKfL09FRYWFitxgEAADXj8KJGnz59tGrVKru2f/zjH/rNb35To/PDwsIUGRmpmJgYlZSUKD09XYsXL9a0adMq9R08eLBeffVV7du3T+Xl5dq6das2bdqk8ePHO2QuAADA8eqbKwAAgKbNEblCbT5buJoHH3xQL7/8stLS0lRSUqK5c+cqKChIQ4cOlbe3t+677z7Nnz9fubm5Onv2rGJjYzVx4sQqXxIOAADqz+GPn1q6dKlGjBihdevW6brrrtPx48f13XffaefOnTW+RlJSkh555BEFBgbK09NTkydPVlxcnCTJx8dHr776qu6//36NHTtWf/3rXxUdHa0ff/xR1113ndasWUNRAwAAF+aIXAEAADRdjsoVavrZwtVMnTpVWVlZGjp0qPLz8zVgwAC9//778vC4/JHKK6+8ohkzZqhz586yWq26++67tWLFitpPHAAA1IjDixo33HCDUlJStHnzZv3www+65557dN9996lz5841vkZwcLC2bdtW5bFfvmjroYce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WVmZbDab/P395Xa762dNeIvT6dT999+v8847Tz169NDBgwfldrs1a9YsvfXWW1qwYAEFjXbC8lMAAAAAAAAATuqnG4Vv3bpVt99+uzZs2KDzzjtP4eHh9de53W4tWLBAkZGRxgXbyZjN5vrNsN1u9zGvP/74Y11//fV68MEHdffddxsZarsYPXq0hg8frmeffVYTJ07U448/rpUrV6q2tlaPPvpom/V7yy23qKCgQIMHD9af//xn3XvvvXryySc1Y8YMxcTEHHP9nDlz2iyWroyZGgAAAAAAAOg0ysvLVVRUpMTERKND6dSGDBmiL774Qg899JA+/PBDLVy4UN27dzc6rE6rtrZWkqeIYbPZdOjQIYWEhEiSwsPDdeqpp+rTTz/VOeeco379+unCCy80Mtw2k52d3WCZrf79++vQoUO64oorVFdXp9LSUi1durT+/N69e73a/znnnKM//OEP6tOnj9xut9atWyen06k33nhDU6ZMabB5O9oOMzUAAAAAAADQKeTk5OiCCy5QXV2dtmzZIj8/P6ND6lQqKipkt9s1a9Ys/fKXv9Tw4cMlSY899phee+01ffvtt/UD7Wg7P98o3GKxqKioSKGhoVqxYoVuueUW7d69u8Hsmc5i8uTJWrlypSorK3XmmWdq6tSpWrhwoR544AENGDBAV1xxhebNm6cBAwZIkvr16+fV/nfs2KGpU6dq69atslgsqq2t1Xfffad77rlHRUVFevPNNzVw4ECv9oljeXdhMQAAAAAAAMAAdXV1uuqqqxQcHKylS5dS0GgD/v7+euSRR2Sz2WSxWOqPP/LIIxo4cKDuv/9+A6PrOoqKihrsV5KUlFS/f8Sll16q888/X6tWrTIqvDb1xhtvqKysTMOGDdP48eP19NNPa+PGjerZs6f69++vX/ziF9qxY4f69evn9YKGJCUnJystLU3Sj/uZjB49Wl988YWuuOIKnXHGGfr888+93i8aYqYGAAAAAAAAfN7hw4d177336t///rcCAgKMDqfLKSkpUUVFhXr06GF0KF1KaWmpQkNDGxz76Z4bndULL7ygq666SpGRkdq4caMGDBigwMBA7dy5Uw6Ho34WUVtYs2aNzj77bK1du/aYjcH/+c9/avfu3VqwYEGb9Q+KGgAAAAAAAADgc6qrq3XOOedo2rRpuv32240OBz/oCkUlo7H8FAAA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tddeq2/X4XAoIiJCn3zySZv9XoCuhqIGAAAAAAAAAJ+zbNkyffrpp8rNzZW/v7/uuusuSdK6det0yy23aMGCBcrNzdU555yjb775pkltVlZW6pprrtGjjz6q0tJS/ec//9EjjzyizZs368UXX9SZZ56phx56SO+88079PQUFBcrLy9Pjjz+uqVOnavHixfXn3n//fdntdk2cONG7Hx7owihqAAAAAAAAAPA5d911lxITExUYGKhf/OIX2rt3ryTplVde0eWXX64JEybIarXq5ptv1ogRI5rUptlsVnBwsN588019/PHHSklJUVFRkYYNG3bce26++WZZrVaFh4frpptu0qeffqq8vLz6WKZPny6zmWFYwFv4rwkAAAAAAACAz4mMjKx/HRgYKKfTKUnKyspSUlJSg2tTU1OP247b7a5/HRAQoP/+97+yWCy69tprFRERoV/+8pfKzc097v3R0dH1r0eNGqVTTjlFr7/+uvLz8/XJJ5/oxhtvbPZnA3B8FDUAAAAAAAAAdBpJSUnat29fg2OHDh2qf+3n56fa2tr699nZ2fWvy8rKdOTIEb322msqKCjQhg0btG3bNs2fP7/J/d94441asmSJ3nrrLZ1xxhlKSUlpxacB8HMUNQAAAAAAAAB0GrfeeqtWrlypjz/+WC6XS0uWLNGXX35Zf75379763//+p7S0NFVWVuqRRx6pXx6qvLxckyZN0gsvvCC3263u3bvLarUqLi5OkmSz2VRcXHzC/q+//vr6PThuuummNvucQFdFUQMAAAAAAABApzFixAi9/vrr+t3vfqfQ0FC9/vrruuiii+rP33HHHTr11FM1aNAgpaamauDAgUpMTJQkxcXF6a233tKCBQsUHh6u4cOH68ILL9Q999wjSZoyZYoWLlyos88++7j9R0dH65JLLtH+/ft11VVXteVHBbokk/uni8YBAAAAAAAAAFrlt7/9raqqqvTss88aHQrQ6ViNDgAAAAAAAAAAOoPMzEylp6fr5Zdf1urVq40OB+iUWH4KAAAAAAAAALzghRde0GWXXaYHHnhAQ4cONTocoFNi+SkAAAAAAAAAAOATmKkBAAAAAAAAAAB8AkUNAAAAAAAAAADgEyhqAAAAAAAAAAAAn0BRAwAAAAAAAAAA+ASKGgAAAAAAAAAAwCdQ1AAAAAAAAAAAAD6BogYAAAAAAAAA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Xs2ECRMAmDRpEq+88gp79+6loqKChx9+mMTERIYMGdLY1RJCCCFEI5G2hBBCCCHOlrQjhBBCiOYtIEkNgE8//RS73U5cXBx9+/blyiuv5LHHHgPAZDIxd+5cADp27Mi8efP4y1/+gslkYubMmXz++edkZGQAcPvtt3PPPfcwZMgQYmJi2LJlC19//TVa7bmPrGUwGHjyySdP6BYabKSewUXqGVyknsGlpdSzsTSHtsT5Jr9DgSffQdMg30PgyXcQePIdnJuW2I44W/K7VjdynupGzlPdybmqGzlPdRNs50mlKIoS6CCEEEIIIYQQQgghhBBCCCHOJGA9NYQQQgghhBBCCCGEEEIIIepDkhpCCCGEEEIIIYQQQgghhGgWJKkhhBBCCCGEEEIIIYQQQohmQZIaQgghhBBCCCGEEEIIIYRoFiSpcQqFhYVcd911mM1mYmJiuP/++/F6vYEOq97Wr1/P0KFDiYyMJCkpifvuu4/y8vKadf379ycsLIz09HTeeuutWvu+//77tGnThrCwMHr37s2aNWsCUYV6+8Mf/sDQoUNr3gdTPV0uF3fddRcxMTFERkYyatQocnNzgeCq56ZNmxg6dCgREREkJiYyZcoUPB4PEBz1tFqttGnThuXLl9csO5d6VVdXM23aNGJjYzGbzYwaNYojR440VnVO6WT1nDt3Ll27diU8PJz27dvz73//u9Y+wVLPY5xOJxkZGTz11FO1ljfHeorAC5a2SVPWEttNTVkwt+maupbS5mzKgr09LJqPltL+aKg2wJna9s35/J7P63QwnqeGupYG27lqqOtdsJynxr5/dKbzcqZjNypFnNSwYcOU66+/XikrK1MOHz6sdOnSRXn88ccDHVa9FBUVKZGRkcq///1vxev1Kjk5OUrfvn2V++67T7HZbEp0dLTy/PPPK5WVlcrq1asVo9GoLF26VFEURVm+fLliNBqVH374QamqqlL+9a9/KRaLRbFarQGu1em99dZbikajUYYMGaIoihJ09bzpppuUiy66SMnJyVHKy8uV66+/XhkxYkTQ1TMtLU3585//rFRWVipFRUXK4MGDlcceeywo6rl69Wqlffv2CqAsW7ZMUZRz/z3961//qnTs2FHJyspSysvLlZtuukkZNGhQoKqoKMrJ67l06VIlPDxcWbVqleLz+ZS1a9cqERERymeffaYoSvDU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6tSJTz75BPDfeDCbzQwfPrxe5wzg9ddf55FHHqFPnz6o1WrGjh3LgAEDmDdvXs1n3X777XTs2BGtVsu4cePYu3dvneonhBBCBLu//e1vpKWlYbFYeO6551iyZAm5ubm8++67XHPNNYwdOxatVkvfvn159NFHefPNNwEIDw9nzZo1zJ8/n6qqKtavX8+UKVPqdezs7GxWrFjB888/T3R0NGazmTlz5vDEE0+wYcMGtmzZwmuvvYbFYiEiIoK33nqLLVu2sH79eubNm0evXr34wx/+gFar5corr+Saa66p+ezXX3+du+66i+HDh6NWq7n44ou54YYbmDNnznk9f0IIIYT4jdVqpbCwkAEDBpz24YJTPdRwMjt27ODw4cN8+OGHLFu2jEmTJvHcc89RVlbGSy+9xM0333zCPJnn+nDDF198wYcffkheXh7t27fn6quvrrlnIoSoH0lqCNGMxcfH17zWaDRERkbWvNdqtfh8Pg4dOkSbNm1q7demTZuam/cAUVFRNa9DQ0MBqK6uPuVxExMTa17r9fqTXoSvueYaVCoVixcvZvPmzWRlZXHDDTfUqV6dOnWq9T49Pb0mcbFlyxYGDx5MWloakydPZuvWrfh8vpptb7vtNj766CPAn0iZOHFircnN63LOwH9DZPr06URERNSUlStXkpubW7P978/b8XEIIYQQLdnx1/L09HTAP+zTmdol7733HoMGDeKxxx4jPj6eiy66iJ9//rlex87Pz691XICEhAS6dOnCoUOHiImJwWw216wLDw8nOjqa7OxscnNzSU1NrfV57du3r3mdnZ3Na6+9Vqt98OGHH9a0U4QQQghx/t1+++1otVo++eSTUz5ccLqHGk5m4sSJ6PV6IiIieP/99xkzZgxXXnklarWaESNGsGbNGpKTk2vtc64PNzz00EN07dqVkJAQZs+ezf79++vdzhFC+ElSQ4hmTK0+8z/htLQ09u/fX2tZZmYmSUlJDRUW4E923HzzzcydO5dPPvmE66+/HpPJVKd9j08cAGRlZZGens6hQ4e44YYbeOaZZ8jLy2PlypVce+21tbadMGEC27dvZ+3atXz77bdMnDix1vq6nDOAlJQU3n77bex2e03ZtWsXf/3rX+u0vxBCCNGSHX8tz8rKAvxJhtO1SxRFYc+ePcyYMYOsrCxycnJISEjgvvvuq9exjyUlDh48WLNs165dPPXUU6SlpWG1WmvNB2a327FarSQlJZGamnpCD9TDhw/XvE5JSWHGjBm12geZmZm8/fbb9YpRCCGEEHV3bD6t0z1ccLqHGk73meB/IOL4/QD69euHxWKptexcH25o165dzWuTyUR0dHRN3EKI+pGkhhBBbvLkyTz77LNs2rSJ6upqvvjiC/73v//xxz/+sU77GwwG7Hb7WR170qRJfPPNN3z55Zd1HnoKYMWKFXz22WdUV1ezePFiFi5cyJ133klFRQXV1dU1iYktW7Ywa9YsgJreIrGxsVx99dVMmTKFQYMGndAwqas77riDp59+ml27dgGwcuVKunXrxurVq+u0v16vP+vzJoQQQjR3TzzxBEVFRdjtdv785z8zbtw4YmNjmThxIosWLaq5zm/dupV//vOfNT0r7733Xv7yl79QUVFBdHQ0RqOxpoeowWCgtLT0jMdOSkpi5MiRTJ8+ndLSUpxOJ4899hh79+6ld+/edO/enbvvvpvS0lLKysqYMmUK7dq148ILL+SWW25h7969vP/++/h8Pn744Qf++9//1nz2HXfcwb/+9S9++eUXFEVh27ZtDBgwgPnz5zfYuRRCCCGE3+keLjjdQw1nkpqaWms/gJdeeom1a9fW+fh1cfww3w6HA6vVSuvWreu0rxCiNklqCBHkHnzwQR588EFuvPFGIiMjmT17Nl999RXDhg2r0/633HILjz/+eM0k2PXRvXt3MjIyABg0aFCd9+vZsyeffvopMTExTJ8+nc8//5wePXrQoUMHZs+ezc0334zZbGbq1Km8+uqraLVaNm/eXLP/bbfdxsaNG+uVSPm9Bx98kNtuu43Ro0djNpu56667eOmll7jqqqvqtP/EiRO5+eabmTFjxlnHIIQQQjRXPXr0YMCAAWRkZBAfH88777wDwIABA1iwYAHPPfcckZGRjBs3jqlTp9ZcL+fPn09OTg5JSUkkJyfjcrl46623ALjiiiuwWq1YLBYcDsdpjz937lyMRiMdOnQgPT0di8XCm2++iU6nY9GiRahUKjIyMmqGlvrxxx/R6XQkJyfz3Xff8eqrr2KxWHjqqacYN25czeeOGzeOZ599lsmTJ2OxWLjmmmu47777uPfeexviNAohhBDiOKd7uOB0DzWcyaRJk1iwYAFLly7F5/OxfPlyHn/88VrDVZ7p+HUxc+ZMMjMzcblcPPjgg/Tp04fevXuf1bkQoqVTKYqiBDoIIUTwGjNmDAMGDGD69Ol12v6pp55i+fLlLF++/KyPuWXLFoYOHUpeXh4hISFn/TlCCCGEqD+VSsWyZcsYOnRooEMRQgghRDOWnZ1N69ata4akBnj//ff55z//ycGDB4mOjubuu+/m4YcfBqC4uJgHHniAJUuWUFVVxahRo/jXv/6F2Wyu1T45WVvl888/Z+bMmTXH+tvf/saoUaNOuEdxuuOfTnp6OuPHj2fBggUUFRUxbNgwXnnllQYfGlyIYCVJDSFEg8jKymLbtm1MmDCBvXv31kzQ/dBDD/Hmm2+edJ+HHnoIlUp11kkNh8NBTk4ODz/8MBkZGTz//PPnUgUhhBBCnIXGSGr079+fnTt3nnTdl19+yaWXXtpgxxZCCCGEEEIEljbQAQghgtNTTz3FN998w6uvvlqT0AB4/vnnT5tsqMt4l6eSk5PDgAEDGDBgAE888cRZf44QQgghmrZ169YFOgQhhBBCiBrywIUQjUt6agghhBBCCCGEEEIIIYQQolmQicKFEEIIIYQQQgghhBBCCNEsSFJDCCGEEEIIIYQQQgghhBDNgiQ1hBBCCCGEEEIIIYQQQgjRLEhSQwghhBBCCCGEEEIIIYQQzYIkNYQQQgghhBBCCCGEEEII0SxIUkMIIYQQQgghhBBCCCGEEM2CJDWEEEIIIYQQQgghhBBCCNEsSFJDCCGEEEIIIYQQQgghhBDNwv8De2ACaje4zIEAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "target_cols = ['work_type','work_year','industry','monthly_payment', 'post_code',\"recircle_b\" ]\n", - "\n", - "table_evaluator = TableEvaluator(real_data.loc[:, target_cols], sampled_data.loc[:, target_cols], cat_cols= [\"work_year\", \"work_type\", 'industry'])\n", - "table_evaluator.plot_distributions(nr_cols=3)" + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABjUAAASECAYAAAAsio3wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde1hVZfr/8Q+CoMJmIyLKwVOKo4OiM6mV4qHJtMzMrEm0MTGtRsf8NaUJkabopFkxTpYzpYnHkianr1lWOqGZ2XfUGgU74QELIUVFzrgl2L8/vNjfdiBy2LD3wvfrutZ1uZ71rPXczwLldt88a7lZrVarAAAAAAAAAAAAXFwzZwcAAAAAAAAAAABQExQ1AAAAAAAAAACAIVDUAAAAAAAAAAAAhkBRAwAAAAAAAAAAGAJFDQAAAAAAAAAAYAgUNQAAAAAAAAAAgCFQ1AAAAAAAAAAAAIZAUQMAAAAAAAAAABgCRQ0AAADgKn766Sdnh1ArRosX/4evHQAAAFA9ihoAAABwWbt375abm1ulzd3dXT4+PgoLC9OkSZN04MCBKs9fsGCB3NzctGDBgjrHsG3bNt166621OmfYsGFyc3PT7t27q21ztB9++EHjxo3TZ599dtV4ULVNmzYpPDxcLVq0kL+/v1asWNEo454/f14PPfSQ3njjjUYZDwAAADAqD2cHAAAAAFyNt7e37r33Xtu+1WpVUVGRvv76a23cuFFvvPGG/vKXvygmJsah4/7www8aM2aMOnXq5NDrNpTo6Gjt2rVLs2bNcnYohpSWlqZJkybJarXqpptuUseOHRUREdEoY8+ZM0eJiYkaNGhQo4wHAAAAGBVFDQAAALi8gIAArV27tspj27dv1/3336/Y2Fh17txZUVFRtmMzZ85UVFSUAgIC6jRueXl5nc5bv369iouL1bFjxzqdX1dXitdZ8RhNamqqrFarhg8frp07dzbq2HX9XgMAAACuNTx+CgAAAIY2atQorVu3TpL02GOPqaSkxHYsICBAPXr0qHNRo646duyoHj16qFWrVo067pW4WjyuqqCgQJIUEhLi5EgAAAAAXAlFDQAAABjemDFjdMMNN+jMmTP617/+ZWu/0js1kpOTddtttyk4OFitWrVSt27d9NBDD+no0aN253bp0kWS9P3338vNzU2dO3eW9H/v+njsscf06quvKjg4WH5+fvr9738vq9Va7TssSktLtWDBAnXq1EktWrRQ9+7dtWDBArtijCStXbtWbm5uio6OrnLOFe8XkaSTJ0/Kzc1Nn3zyiSTp5ptvthv/SvEUFRXpL3/5iyIiItSyZUuZzWYNHTq0yvc6VNzL9957T9u3b9fgwYNlMplkNpt12223VXqPR3Xc3NzUr18/nTlzRn/4wx/Upk0beXt7a8CAAdqwYUOV51itVq1fv16DBw+W2WyWt7e3rr/+ev3tb39TWVlZlfdu+fLlWrhwofz9/RUQEKDHHnusymtX3L8pU6ZIktatWyc3NzcNGzasTuNX+OCDDzRmzBh16dJFLVq0kLe3t/r27asXXnhBVqvV7n5UFOamTJkiNzc328qk6Ohou/2fq/g+/HmcNZl7UVGRFi1apN69e6tVq1by9/fXiBEj9N5771U5DwAAAMCVUNQAAABAk3D77bdLkv79739X2y8xMVG33HKLPvnkE/Xu3Vt33XWXWrVqpdWrV2vgwIG2wkbfvn11zz33SLr8To/JkyfbvddDknbu3KkZM2aoT58+GjBggLy9vW2Fhiv585//rPj4eF133XW66667lJeXp4ULF+q2227TpUuX6jR3Hx8fTZ48We3atZMkjRw5UpMnT1b79u2veM7Zs2d1ww036Omnn1Z2drbuvPNODRo0SPv379f9999ve7fEL23YsEF33HGHcnNzNWrUKAUFBemjjz7S7373O/3nP/+pccyFhYUaNmyY3nnnHQ0ePFg333yzUlJS9MADDyguLq5S/wcffFCTJ0/WgQMH1LdvX40YMUJZWVl67LHHdOutt1Z571atWqVnn31WQ4YMUc+ePeXr61tlLBX3r+J9Fl27dtXkyZN122231Xn8BQsWaNSoUdq5c6e6d++ue+65R/369VNqaqrmzJmjJ554wtZ38uTJ6tq1qyRp0KBBmjx5srp161bje1mVK839woULioyM1Pz585WVlaWbb75Z/fv312effaY777xTTz/9dL3GBQAAABqcFQAAAHBRu3btskqydurU6ap916xZY5VkHTBggK3tmWeesUqyPvPMM7a2Tp06WT08PKxHjx61O//JJ5+0SrJOnz7d1paenl7l+BVxSbIuW7bM1l5eXm61Wq3WoUOHWiVZd+3aZTtW0ebu7m597733bO15eXnW/v37WyVZFy9ebGtPTEy0SrJO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q1WTJk3SsWPHbO3l5eV6+umntWPHDhUWFjbY6prajl9RiPjoo4/srnP48GFNmTLFtm+xWGx/vtLXruL7YNOmTbZ3cUjSrl27tGrVqlrNo0uXLho7dqxOnTqlBx980O56hYWFio6O1pEjR9ShQ4dqH00GAAAAOBOPnwIAAIDLO3funKKjo237P/30k86fP69vvvlG33//vZo3b67ly5fr3nvvrfY67u7uWrVqle6++27de++96tevn63QsWfPHpWVlWnlypW2l2G3adNGbdq00fnz53XzzTerU6dOWrduXb3mcsMNN2j48OEaNmyY2rRpo3//+9/Kzc3V5MmTNXXqVFu/0NBQTZw4UW+88Yb69eunESNGqLS0VLt379Zvf/tb9enTx/YekQq/+tWvtH37dj3++ON6++239f/+3//TjTfeWGUca9as0S233KJ//etf+uyzzzRkyBBdvHhRycnJKioq0uTJk+0KCw3h/PnzCgsL0+9+9zsVFhbq448/VllZmVavXq3u3bvb+s2cOVOfffaZ3nrrLfXu3VsDBgxQu3bt9MUXX+jEiRNq37693nzzzQaLs7bjP/bYY9q7d69efvllffrpp+rRo4e+//577d+/X9dff70GDhyoffv26fTp0+rZs6eky1876XLR6+DBg5owYYLGjBmje+65RwsWLNA333yjsLAwDRkyRJmZmfr88881ffp0/f3vf6/VXP7xj3/ou+++01tvvaWPP/5YAwYMkKenpz799FPl5OQoMjJS8fHxjrt5AAAAgIOxUgMAAAAur6ioSOvWrbNtb775pg4cOKDWrVvr8ccf11dffVXjVQVjxozR559/rnvvvVfnz5/XO++8o//+978aPny4duzYoenTp9v6NmvWTGvXrlWPHj30+eefa9u2bcrLy6vXXF5//XXFxsbqu+++07Zt29SpUye99tprSkxMrNR33bp1Wrx4sTp16qQdO3bo66+/1qxZs7Rz584qX7QdGxurUaNGKScnR++8847dCo9fCgwM1P79+7VkyRK1a9dO27Zt0+7du3XDDTfoX//6l9auXdvgv62/Z88eDRkyRB9++KE+++wzDR06VMnJyXarGaTLX4fNmzdr3bp16t+/vw4fPqz33ntPnp6eevzxx/Xll18qLCysweKs7fj33HOPduzYoaFDhyojI0PvvfeeJGnlypXat2+f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86rnp6amyt/fX6Ghoba2iIgIZWZmKjc3V35+frZ2d3d3+fr6aseOHRo1apTKyso0duxY9e3b94rXX7JkiRYuXFifKQIAgHqob64AAACaNkfkCrX5bEGSNmzYoNDQUK1du7bKaz355JO2/RYtWqh79+46cuSIAgICZLFYFBERYTfOpUuXlJaWVuXnE3wuAQBN1/g5b9b6nKTnJzRAJE2bw9+psWjRIiUnJ+utt97SV199pc2bN+uLL77Qs88+W6PzCwoK5O3tbddWsV9YWFjlOcOGDZPFYtHu3btlNpuVm5t7xevHxsYqLy/PtmVkZNRsYgAAwCHqmysAAICmzRG5Qm0/W/h58aOm1yosLFRBQYHdta82jsTnEgAA1JfDV2ps2rRJO3bsUNeuXSVJPXr0UO/evXXLLbdowYIFVz3fZDKpqKjIrq1i32QyVXlOxW9qDB06VG+99ZYWLFigl156qcq+Xl5e8vLyqul0AACAg9U3VwAAAE2bI3KFuny2UNtrVTzW6uf7NRmHzyUAAKgfh6/UuHDhgjp16mTXFhoaqgsXLtTo/PDwcOXk5CgzM9PWlpKSotDQUJnNZru+TzzxhJ544gm7tpKSEp06daqO0QMAgIZW31wBAAA0bY7IFWrz2UJNrpWammrbt1gsSktLU69evRQWFiZPT0+74ykpKfL09FRYWFitxgEAADXj8KJGnz59tGrVKru2f/zjH/rNb35To/PDwsIUGRmpmJgYlZSUKD09XYsXL9a0adMq9R08eLBeffVV7du3T+Xl5dq6das2bdqk8ePHO2QuAADA8eqbKwAAgKbNEblCbT5buJoHH3xQL7/8stLS0lRSUqK5c+cqKChIQ4cOlbe3t+677z7Nnz9fubm5Onv2rGJjYzVx4sQqXxIOAADqz+GPn1q6dKlGjBihdevW6brrrtPx48f13XffaefOnTW+RlJSkh555BEFBgbK09NTkydPVlxcnCTJx8dHr776qu6//36NHTtWf/3rXxUdHa0ff/xR1113ndasWUNRAwAAF+aIXAEAADRdjsoVavrZwtVMnTpVWVlZGjp0qPLz8zVgwAC9//778vC4/JHKK6+8ohkzZqhz586yWq26++67tWLFitpPHAAA1IjDixo33HCDUlJStHnzZv3www+65557dN9996lz5841vkZwcLC2bdtW5bFfvmjroYce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WVmZbDab/P395Xa762dNeIvT6dT999+v8847Tz169NDBgwfldrs1a9YsvfXWW1qwYAEFjXbC8lMAAAAAAAAATuqnG4Vv3bpVt99+uzZs2KDzzjtP4eHh9de53W4tWLBAkZGRxgXbyZjN5vrNsN1u9zGvP/74Y11//fV68MEHdffddxsZarsYPXq0hg8frmeffVYTJ07U448/rpUrV6q2tlaPPvpom/V7yy23qKCgQIMHD9af//xn3XvvvXryySc1Y8YMxcTEHHP9nDlz2iyWroyZGgAAAAAAAOg0ysvLVVRUpMTERKND6dSGDBmiL774Qg899JA+/PBDLVy4UN27dzc6rE6rtrZWkqeIYbPZdOjQIYWEhEiSwsPDdeqpp+rTTz/VOeeco379+unCCy80Mtw2k52d3WCZrf79++vQoUO64oorVFdXp9LSUi1durT+/N69e73a/znnnKM//OEP6tOnj9xut9atWyen06k33nhDU6ZMabB5O9oOMzUAAAAAAADQKeTk5OiCCy5QXV2dtmzZIj8/P6ND6lQqKipkt9s1a9Ys/fKXv9Tw4cMlSY899phee+01ffvtt/UD7Wg7P98o3GKxqKioSKGhoVqxYoVuueUW7d69u8Hsmc5i8uTJWrlypSorK3XmmWdq6tSpWrhwoR544AENGDBAV1xxhebNm6cBAwZIkvr16+fV/nfs2KGpU6dq69atslgsqq2t1Xfffad77rlHRUVFevPNNzVw4ECv9oljeXdhMQAAAAAAAMAAdXV1uuqqqxQcHKylS5dS0GgD/v7+euSRR2Sz2WSxWOqPP/LIIxo4cKDuv/9+A6PrOoqKihrsV5KUlFS/f8Sll16q888/X6tWrTIqvDb1xhtvqKysTMOGDdP48eP19NNPa+PGjerZs6f69++vX/ziF9qxY4f69evn9YKGJCUnJystLU3Sj/uZjB49Wl988YWuuOIKnXHGGfr888+93i8aYqYGAAAAAAAAfN7hw4d177336t///rcCAgKMDqfLKSkpUUVFhXr06GF0KF1KaWmpQkNDGxz76Z4bndULL7ygq666SpGRkdq4caMGDBigwMBA7dy5Uw6Ho34WUVtYs2aNzj77bK1du/aYjcH/+c9/avfu3VqwYEGb9Q+KGgAAAAAAAADgc6qrq3XOOedo2rRpuv32240OBz/oCkUlo7H8FAAA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tddeq2/X4XAoIiJCn3zySZv9XoCuhqIGAAAAAAAAAJ+zbNkyffrpp8rNzZW/v7/uuusuSdK6det0yy23aMGCBcrNzdU555yjb775pkltVlZW6pprrtGjjz6q0tJS/ec//9EjjzyizZs368UXX9SZZ56phx56SO+88079PQUFBcrLy9Pjjz+uqVOnavHixfXn3n//fdntdk2cONG7Hx7owihqAAAAAAAAAPA5d911lxITExUYGKhf/OIX2rt3ryTplVde0eWXX64JEybIarXq5ptv1ogRI5rUptlsVnBwsN588019/PHHSklJUVFRkYYNG3bce26++WZZrVaFh4frpptu0qeffqq8vLz6WKZPny6zmWFYwFv4rwkAAAAAAACAz4mMjKx/HRgYKKfTKUnKyspSUlJSg2tTU1OP247b7a5/HRAQoP/+97+yWCy69tprFRERoV/+8pfKzc097v3R0dH1r0eNGqVTTjlFr7/+uvLz8/XJJ5/oxhtvbPZnA3B8FDUAAAAAAAAAdBpJSUnat29fg2OHDh2qf+3n56fa2tr699nZ2fWvy8rKdOTIEb322msqKCjQhg0btG3bNs2fP7/J/d94441asmSJ3nrrLZ1xxhlKSUlpxacB8HMUNQAAAAAAAAB0GrfeeqtWrlypjz/+WC6XS0uWLNGXX35Zf75379763//+p7S0NFVWVuqRRx6pXx6qvLxckyZN0gsvvCC3263u3bvLarUqLi5OkmSz2VRcXHzC/q+//vr6PThuuummNvucQFdFUQMAAAAAAABApzFixAi9/vrr+t3vfqfQ0FC9/vrruuiii+rP33HHHTr11FM1aNAgpaamauDAgUpMTJQkxcXF6a233tKCBQsUHh6u4cOH68ILL9Q999wjSZoyZYoWLlyos88++7j9R0dH65JLLtH+/ft11VVXteVHBbokk/uni8YBAAAAAAAAAFrlt7/9raqqqvTss88aHQrQ6ViNDgAAAAAAAAAAOoPMzEylp6fr5Zdf1urVq40OB+iUWH4KAAAAAAAAALzghRde0GWXXaYHHnhAQ4cONTocoFNi+SkAAAAAAAAAAOATmKkBAAAAAAAAAAB8AkUNAAAAAAAAAADgEyhqAAAAAAAAAAAAn0BRAwAAAAAAAAAA+ASKGgAAAAAAAAAAwCdQ1AAAAAAAAAAAAD6BogYAAAAAAAAA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Xs2ECRMAmDRpEq+88gp79+6loqKChx9+mMTERIYMGdLY1RJCCCFEI5G2hBBCCCHOlrQjhBBCiOYtIEkNgE8//RS73U5cXBx9+/blyiuv5LHHHgPAZDIxd+5cADp27Mi8efP4y1/+gslkYubMmXz++edkZGQAcPvtt3PPPfcwZMgQYmJi2LJlC19//TVa7bmPrGUwGHjyySdP6BYabKSewUXqGVyknsGlpdSzsTSHtsT5Jr9DgSffQdMg30PgyXcQePIdnJuW2I44W/K7VjdynupGzlPdybmqGzlPdRNs50mlKIoS6CCEEEIIIYQQQgghhBBCCCHOJGA9NYQQQgghhBBCCCGEEEIIIepDkhpCCCGEEEIIIYQQQgghhGgWJKkhhBBCCCGEEEIIIYQQQohmQZIaQgghhBBCCCGEEEIIIYRoFiSpcQqFhYVcd911mM1mYmJiuP/++/F6vYEOq97Wr1/P0KFDiYyMJCkpifvuu4/y8vKadf379ycsLIz09HTeeuutWvu+//77tGnThrCwMHr37s2aNWsCUYV6+8Mf/sDQoUNr3gdTPV0uF3fddRcxMTFERkYyatQocnNzgeCq56ZNmxg6dCgREREkJiYyZcoUPB4PEBz1tFqttGnThuXLl9csO5d6VVdXM23aNGJjYzGbzYwaNYojR440VnVO6WT1nDt3Ll27diU8PJz27dvz73//u9Y+wVLPY5xOJxkZGTz11FO1ljfHeorAC5a2SVPWEttNTVkwt+maupbS5mzKgr09LJqPltL+aKg2wJna9s35/J7P63QwnqeGupYG27lqqOtdsJynxr5/dKbzcqZjNypFnNSwYcOU66+/XikrK1MOHz6sdOnSRXn88ccDHVa9FBUVKZGRkcq///1vxev1Kjk5OUrfvn2V++67T7HZbEp0dLTy/PPPK5WVlcrq1asVo9GoLF26VFEURVm+fLliNBqVH374QamqqlL+9a9/KRaLRbFarQGu1em99dZbikajUYYMGaIoihJ09bzpppuUiy66SMnJyVHKy8uV66+/XhkxYkTQ1TMtLU3585//rFRWVipFRUXK4MGDlcceeywo6rl69Wqlffv2CqAsW7ZMUZRz/z3961//qnTs2FHJyspSysvLlZtuukkZNGhQoKqoKMrJ67l06VIlPDxcWbVqleLz+ZS1a9cqERERymeffaYoSvDU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6tSJTz75BPDfeDCbzQwfPrxe5wzg9ddf55FHHqFPnz6o1WrGjh3LgAEDmDdvXs1n3X777XTs2BGtVsu4cePYu3dvneonhBBCBLu//e1vpKWlYbFYeO6551iyZAm5ubm8++67XHPNNYwdOxatVkvfvn159NFHefPNNwEIDw9nzZo1zJ8/n6qqKtavX8+UKVPqdezs7GxWrFjB888/T3R0NGazmTlz5vDEE0+wYcMGtmzZwmuvvYbFYiEiIoK33nqLLVu2sH79eubNm0evXr34wx/+gFar5corr+Saa66p+ezXX3+du+66i+HDh6NWq7n44ou54YYbmDNnznk9f0IIIYT4jdVqpbCwkAEDBpz24YJTPdRwMjt27ODw4cN8+OGHLFu2jEmTJvHcc89RVlbGSy+9xM0333zCPJnn+nDDF198wYcffkheXh7t27fn6quvrrlnIoSoH0lqCNGMxcfH17zWaDRERkbWvNdqtfh8Pg4dOkSbNm1q7demTZuam/cAUVFRNa9DQ0MBqK6uPuVxExMTa17r9fqTXoSvueYaVCoVixcvZvPmzWRlZXHDDTfUqV6dOnWq9T49Pb0mcbFlyxYGDx5MWloakydPZuvWrfh8vpptb7vtNj766CPAn0iZOHFircnN63LOwH9DZPr06URERNSUlStXkpubW7P978/b8XEIIYQQLdnx1/L09HTAP+zTmdol7733HoMGDeKxxx4jPj6eiy66iJ9//rlex87Pz691XICEhAS6dOnCoUOHiImJwWw216wLDw8nOjqa7OxscnNzSU1NrfV57du3r3mdnZ3Na6+9Vqt98OGHH9a0U4QQQghx/t1+++1otVo++eSTUz5ccLqHGk5m4sSJ6PV6IiIieP/99xkzZgxXXnklarWaESNGsGbNGpKTk2vtc64PNzz00EN07dqVkJAQZs+ezf79++vdzhFC+ElSQ4hmTK0+8z/htLQ09u/fX2tZZmYmSUlJDRUW4E923HzzzcydO5dPPvmE66+/HpPJVKd9j08cAGRlZZGens6hQ4e44YYbeOaZZ8jLy2PlypVce+21tbadMGEC27dvZ+3atXz77bdMnDix1vq6nDOAlJQU3n77bex2e03ZtWsXf/3rX+u0vxBCCNGSHX8tz8rKAvxJhtO1SxRFYc+ePcyYMYOsrCxycnJISEjgvvvuq9exjyUlDh48WLNs165dPPXUU6SlpWG1WmvNB2a327FarSQlJZGamnpCD9TDhw/XvE5JSWHGjBm12geZmZm8/fbb9YpRCCGEEHV3bD6t0z1ccLqHGk73meB/IOL4/QD69euHxWKptexcH25o165dzWuTyUR0dHRN3EKI+pGkhhBBbvLkyTz77LNs2rSJ6upqvvjiC/73v//xxz/+sU77GwwG7Hb7WR170qRJfPPNN3z55Zd1HnoKYMWKFXz22WdUV1ezePFiFi5cyJ133klFRQXV1dU1iYktW7Ywa9YsgJreIrGxsVx99dVMmTKFQYMGndAwqas77riDp59+ml27dgGwcuVKunXrxurVq+u0v16vP+vzJoQQQjR3TzzxBEVFRdjtdv785z8zbtw4YmNjmThxIosWLaq5zm/dupV//vOfNT0r7733Xv7yl79QUVFBdHQ0RqOxpoeowWCgtLT0jMdOSkpi5MiRTJ8+ndLSUpxOJ4899hh79+6ld+/edO/enbvvvpvS0lLKysqYMmUK7dq148ILL+SWW25h7969vP/++/h8Pn744Qf++9//1nz2HXfcwb/+9S9++eUXFEVh27ZtDBgwgPnz5zfYuRRCCCGE3+keLjjdQw1nkpqaWms/gJdeeom1a9fW+fh1cfww3w6HA6vVSuvWreu0rxCiNklqCBHkHnzwQR588EFuvPFGIiMjmT17Nl999RXDhg2r0/633HILjz/+eM0k2PXRvXt3MjIyABg0aFCd9+vZsyeffvopMTExTJ8+nc8//5wePXrQoUMHZs+ezc0334zZbGbq1Km8+uqraLVaNm/eXLP/bbfdxsaNG+uVSPm9Bx98kNtuu43Ro0djNpu56667eOmll7jqqqvqtP/EiRO5+eabmTFjxlnHIIQQQjRXPXr0YMCAAWRkZBAfH88777wDwIABA1iwYAHPPfcckZGRjBs3jqlTp9ZcL+fPn09OTg5JSUkkJyfjcrl46623ALjiiiuwWq1YLBYcDsdpjz937lyMRiMdOnQgPT0di8XCm2++iU6nY9GiRahUKjIyMmqGlvrxxx/R6XQkJyfz3Xff8eqrr2KxWHjqqacYN25czeeOGzeOZ599lsmTJ2OxWLjmmmu47777uPfeexviNAohhBDiOKd7uOB0DzWcyaRJk1iwYAFLly7F5/OxfPlyHn/88VrDVZ7p+HUxc+ZMMjMzcblcPPjgg/Tp04fevXuf1bkQoqVTKYqiBDoIIUTwGjNmDAMGDGD69Ol12v6pp55i+fLlLF++/KyPuWXLFoYOHUpeXh4hISFn/TlCCCGEqD+VSsWyZcsYOnRooEMRQgghRDOWnZ1N69ata4akBnj//ff55z//ycGDB4mOjubuu+/m4YcfBqC4uJgHHniAJUuWUFVVxahRo/jXv/6F2Wyu1T45WVvl888/Z+bMmTXH+tvf/saoUaNOuEdxuuOfTnp6OuPHj2fBggUUFRUxbNgwXnnllQYfGlyIYCVJDSFEg8jKymLbtm1MmDCBvXv31kzQ/dBDD/Hmm2+edJ+HHnoIlUp11kkNh8NBTk4ODz/8MBkZGTz//PPnUgUhhBBCnIXGSGr079+fnTt3nnTdl19+yaWXXtpgxxZCCCGEEEIEljbQAQghgtNTTz3FN998w6uvvlqT0AB4/vnnT5tsqMt4l6eSk5PDgAEDGDBgAE888cRZf44QQgghmrZ169YFOgQhhBBCiBrywIUQjUt6agghhBBCCCGEEEIIIYQQolmQicKFEEIIIYQQQgghhBBCCNEsSFJDCCGEEEIIIYQQQgghhBDNgiQ1hBBCCCGEEEIIIYQQQgjRLEhSQwghhBBCCCGEEEIIIYQQzYIkNYQQQgghhBBCCCGEEEII0SxIUkMIIYQQQgghhBBCCCGEEM2CJDWEEEIIIYQQQgghhBBCCNEsSFJDCCGEEEIIIYQQQgghhBDNwv8De2ACaje4zIEAAAAASUVORK5CYII=", + "text/plain": [ + "
" ] + }, + "metadata": {}, + "output_type": "display_data" } - ], - "metadata": { - "colab": { - "provenance": [], - "toc_visible": true - }, - "kernelspec": { - "display_name": "sdg", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } + ], + "source": [ + "target_cols = ['work_type','work_year','industry','monthly_payment', 'post_code',\"recircle_b\" ]\n", + "\n", + "table_evaluator = TableEvaluator(real_data.loc[:, target_cols], sampled_data.loc[:, target_cols], cat_cols= [\"work_year\", \"work_type\", 'industry'])\n", + "table_evaluator.plot_distributions(nr_cols=3)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "sdg", + "language": "python", + "name": "python3" }, - "nbformat": 4, - "nbformat_minor": 0 + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/example/sdgx_example_metadata.ipynb b/example/sdgx_example_metadata.ipynb index 38b53a33..44900e77 100644 --- a/example/sdgx_example_metadata.ipynb +++ b/example/sdgx_example_metadata.ipynb @@ -1,704 +1,1043 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "i5w5Oktvr7bC" - }, - "source": [ - "\n", - "\n", - "
\n", - "

\n", - "\n", - "\n", - "# 🚀 Synthetic Data Generator\n", - "\n", - "

\n", - "
\n", - "The Synthetic Data Generator (SDG) is a specialized framework designed to generate high-quality structured tabular data.\n", - "\n", - "Synthetic data does not contain any sensitive information, yet it retains the essential characteristics of the original data, making it exempt from privacy regulations such as GDPR and ADPPA.\n", - "\n", - "High-quality synthetic data can be safely utilized across various domains including data sharing, model training and debugging, system development and testing, etc." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "OikMoGinr7bF", - "outputId": "3ce73c4d-c7e5-4160-b912-0bc78d6d9a11" - }, - "outputs": [], - "source": [ - "# install from git\n", - "!pip install git+https://github.com/hitsz-ids/synthetic-data-generator.git" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "NkzQVyvRr7bH" - }, - "source": [ - "We demonstrate with a single table data synthetic example." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "id": "a1JTesuSr7bH" - }, - "outputs": [], - "source": [ - "from sdgx.data_connectors.csv_connector import CsvConnector\n", - "from sdgx.data_loader import DataLoader\n", - "from sdgx.data_models.metadata import Metadata" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hNCC1XASr7bH" - }, - "source": [ - "# 1. Load data\n", - "\n", - "The demo data set for this demonstration is a risk control data set used to predict whether an individual will default on a loan. This dataset contains the following features:\n", - "\n", - "| Column name | Meaning |\n", - "|-----------------------|-----------------------|\n", - "| loan_id | loan ID |\n", - "| user_id | user ID |\n", - "| total_loan | Total loan amount |\n", - "| year_of_loan | Loan period |\n", - "...\n", - "\n", - "This code shows the process of loading real data:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "Fo4RAlowr7bH", - "outputId": "7c82f12e-0ded-43ca-fb67-459bc5022052" - }, - "outputs": [], - "source": [ - "# In the future, this part of the function will be integrated into `sdgx.processor`\n", - "import os \n", - "import requests\n", - "\n", - "\n", - "def download_file(url, path):\n", - " response = requests.get(url)\n", - " if response.status_code == 200:\n", - " with open(path, 'wb') as file:\n", - " file.write(response.content)\n", - " print(f\"File downloaded successfully to {path}\")\n", - " else:\n", - " print(f\"Failed to download file from {url}\")\n", - "\n", - "# download dataset from github\n", - "# This datajset can be downloaded through sdgx.utils \n", - "dataset_url = \"https://raw.githubusercontent.com/aialgorithm/Blog/master/projects/一文梳理风控建模全流程/train_internet.csv\"\n", - "file_path = 'train_internet.csv'\n", - "\n", - "if not os.path.exists(file_path):\n", - " download_file(dataset_url, file_path)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "id": "x5t8M4E6r7bI" - }, - "outputs": [], - "source": [ - "from pathlib import Path\n", - "\n", - "path_obj = Path(file_path)\n", - "\n", - "# Create a data connector and data loader for csv data\n", - "data_connector = CsvConnector(path=path_obj)\n", - "data_loader = DataLoader(data_connector)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2. Create Metadata from Dataloader\n", - "\n", - "sdgx supports creating metadata from pd.DataFrame or DataLoader, and also supports creating metadata from scratch from blank metadata (but this method is not recommended because it is more troublesome).\n", - "\n", - "In this example, we use `from_dataloader` to create the first Metadata." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\u001b[32m2024-03-25 17:10:54.848\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_models.metadata\u001b[0m:\u001b[36mfrom_dataloader\u001b[0m:\u001b[36m280\u001b[0m - \u001b[1mInspecting metadata...\u001b[0m\n", - "\u001b[32m2024-03-25 17:10:58.441\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36msdgx.data_models.metadata\u001b[0m:\u001b[36mupdate_primary_key\u001b[0m:\u001b[36m482\u001b[0m - \u001b[1mPrimary Key updated: {'loan_id', 'user_id'}.\u001b[0m\n" - ] - } - ], - "source": [ - "loan_metadata = Metadata.from_dataloader(data_loader)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let’s first understand some common member variables in Metadata.\n", - "\n", - "The most important and commonly used method is to use `column_list` to view column information. This variable returns a list. The order of columns corresponds to the order of the actual table." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['loan_id',\n", - " 'user_id',\n", - " 'total_loan',\n", - " 'year_of_loan',\n", - " 'interest',\n", - " 'monthly_payment',\n", - " 'class',\n", - " 'sub_class',\n", - " 'work_type',\n", - " 'employer_type',\n", - " 'industry',\n", - " 'work_year',\n", - " 'house_exist',\n", - " 'house_loan_status',\n", - " 'censor_status',\n", - " 'marriage',\n", - " 'offsprings',\n", - " 'issue_date',\n", - " 'use',\n", - " 'post_code',\n", - " 'region',\n", - " 'debt_loan_ratio',\n", - " 'del_in_18month',\n", - " 'scoring_low',\n", - " 'scoring_high',\n", - " 'pub_dero_bankrup',\n", - " 'early_return',\n", - " 'early_return_amount',\n", - " 'early_return_amount_3mon',\n", - " 'recircle_b',\n", - " 'recircle_u',\n", - " 'initial_list_status',\n", - " 'earlies_credit_mon',\n", - " 'title',\n", - " 'policy_code',\n", - " 'f0',\n", - " 'f1',\n", - " 'f2',\n", - " 'f3',\n", - " 'f4',\n", - " 'f5',\n", - " 'is_default']" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loan_metadata.column_list" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 3. Use Inspectors to automatically label column types\n", - "\n", - "Currently, when a sdgx's Metadata module pd.DataFrame or DataLoader is created, it will load Inspectors, automatically scan some data (not all data), and label the columns in the table according to the logic of each Inspector.\n", - "\n", - "Currently, we support automatic inference of multiple data types, and sdgx supports the following basic types:\n", - "- bool\n", - "- int\n", - "- float\n", - "- datetime\n", - "- discrete\n", - "- id\n", - "\n", - "Basic data types guarantee that each column will be labeled to one of the data types.\n", - "\n", - "sdgx also supports the following data types, and the sdgx team will continue to add data types:\n", - "\n", - "- english_name\n", - "- email\n", - "- china_mainland_mobile_phone\n", - "- china_mainland_id\n", - "- china_mainland_postcode\n", - "- unified_social_credit_code\n", - "- china_mainland_address\n", - "- chinese_name\n", - "\n", - "If you need to query a column of a certain data type, you can access it through `.{column_name}_columns`, for example: access the datetime column through `.datetime_columns`, and access the english_name column through `english_name_columns`.\n", - "\n", - "For example, we can access discrete columns through `.discrete_columns`, which will return a set containing the set of column names that are considered **discrete** columns.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/" - }, - "id": "2ILAVWcEr7bI", - "outputId": "5da2b0cf-ccec-4d61-b982-fd410275eb12" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'class',\n", - " 'earlies_credit_mon',\n", - " 'employer_type',\n", - " 'industry',\n", - " 'issue_date',\n", - " 'sub_class',\n", - " 'work_type',\n", - " 'work_year'}" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Automatically infer discrete columns\n", - "loan_metadata.discrete_columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Similarly, we can view `int_columns`, `bool_columns` and other columns as follows:" - ] + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "i5w5Oktvr7bC" + }, + "source": [ + "\n", + "\n", + "
\n", + "

\n", + "\n", + "\n", + "# 🚀 Synthetic Data Generator\n", + "\n", + "

\n", + "
\n", + "The Synthetic Data Generator (SDG) is a specialized framework designed to generate high-quality structured tabular data.\n", + "\n", + "Synthetic data does not contain any sensitive information, yet it retains the essential characteristics of the original data, making it exempt from privacy regulations such as GDPR and ADPPA.\n", + "\n", + "High-quality synthetic data can be safely utilized across various domains including data sharing, model training and debugging, system development and testing, etc." + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "OikMoGinr7bF", + "outputId": "3ce73c4d-c7e5-4160-b912-0bc78d6d9a11", + "ExecuteTime": { + "end_time": "2024-11-29T03:16:48.397254Z", + "start_time": "2024-11-29T03:16:27.783975Z" + } + }, + "source": [ + "# install from git\n", + "!pip install git+https://github.com/hitsz-ids/synthetic-data-generator.git" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "set()" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# No Bool columns in current tabular data.\n", - "loan_metadata.bool_columns" - ] + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple\n", + "Collecting git+https://github.com/hitsz-ids/synthetic-data-generator.git\n", + " Cloning https://github.com/hitsz-ids/synthetic-data-generator.git to c:\\users\\elvin\\appdata\\local\\temp\\pip-req-build-cyx2iv05\n", + " Resolved https://github.com/hitsz-ids/synthetic-data-generator.git to commit 0fc9ea290d5836d079d029c8d6702e526c2676a4\n", + " Installing build dependencies: started\n", + " Installing build dependencies: finished with status 'done'\n", + " Getting requirements to build wheel: started\n", + " Getting requirements to build wheel: finished with status 'done'\n", + " Preparing metadata (pyproject.toml): started\n", + " Preparing metadata (pyproject.toml): finished with status 'done'\n", + "Requirement already satisfied: click in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (8.1.7)\n", + "Requirement already satisfied: cloudpickle in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (3.0.0)\n", + "Requirement already satisfied: faker>=10 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (27.0.0)\n", + "Requirement already satisfied: importlib-metadata in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (8.2.0)\n", + "Requirement already satisfied: joblib>=1.4.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.4.2)\n", + "Requirement already satisfied: loguru in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (0.7.2)\n", + "Requirement already satisfied: matplotlib in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (3.9.2)\n", + "Requirement already satisfied: numpy<2 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.26.4)\n", + "Requirement already satisfied: openai>=1.10.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.40.6)\n", + "Requirement already satisfied: pandas in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.5.3)\n", + "Requirement already satisfied: pluggy in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.0.0)\n", + "Requirement already satisfied: pyarrow in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (17.0.0)\n", + "Requirement already satisfied: pydantic>=2 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (2.8.2)\n", + "Requirement already satisfied: python-dotenv in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.0.1)\n", + "Requirement already satisfied: pyyaml in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (6.0.1)\n", + "Requirement already satisfied: scikit-learn<2,>=0.24 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.5.1)\n", + "Requirement already satisfied: scipy in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.14.0)\n", + "Requirement already satisfied: table-evaluator in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (1.6.1)\n", + "Requirement already satisfied: torch>=2 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sdgx==0.2.4.dev0) (2.4.0)\n", + "Requirement already satisfied: python-dateutil>=2.4 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from faker>=10->sdgx==0.2.4.dev0) (2.9.0.post0)\n", + "Requirement already satisfied: anyio<5,>=3.5.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (4.2.0)\n", + "Requirement already satisfied: distro<2,>=1.7.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (1.9.0)\n", + "Requirement already satisfied: httpx<1,>=0.23.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (0.27.0)\n", + "Requirement already satisfied: jiter<1,>=0.4.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (0.5.0)\n", + "Requirement already satisfied: sniffio in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (1.3.0)\n", + "Requirement already satisfied: tqdm>4 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (4.66.5)\n", + "Requirement already satisfied: typing-extensions<5,>=4.11 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from openai>=1.10.0->sdgx==0.2.4.dev0) (4.11.0)\n", + "Requirement already satisfied: annotated-types>=0.4.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from pydantic>=2->sdgx==0.2.4.dev0) (0.6.0)\n", + "Requirement already satisfied: pydantic-core==2.20.1 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from pydantic>=2->sdgx==0.2.4.dev0) (2.20.1)\n", + "Requirement already satisfied: threadpoolctl>=3.1.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from scikit-learn<2,>=0.24->sdgx==0.2.4.dev0) (3.5.0)\n", + "Requirement already satisfied: filelock in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from torch>=2->sdgx==0.2.4.dev0) (3.15.4)\n", + "Requirement already satisfied: sympy in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from torch>=2->sdgx==0.2.4.dev0) (1.13.2)\n", + "Requirement already satisfied: networkx in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from torch>=2->sdgx==0.2.4.dev0) (3.3)\n", + "Requirement already satisfied: jinja2 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from torch>=2->sdgx==0.2.4.dev0) (3.1.4)\n", + "Requirement already satisfied: fsspec in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from torch>=2->sdgx==0.2.4.dev0) (2024.6.1)\n", + "Requirement already satisfied: colorama in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from click->sdgx==0.2.4.dev0) (0.4.6)\n", + "Requirement already satisfied: zipp>=0.5 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from importlib-metadata->sdgx==0.2.4.dev0) (3.20.0)\n", + "Requirement already satisfied: win32-setctime>=1.0.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from loguru->sdgx==0.2.4.dev0) (1.1.0)\n", + "Requirement already satisfied: contourpy>=1.0.1 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (1.2.1)\n", + "Requirement already satisfied: cycler>=0.10 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (4.53.1)\n", + "Requirement already satisfied: kiwisolver>=1.3.1 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (24.1)\n", + "Requirement already satisfied: pillow>=8 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (10.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from matplotlib->sdgx==0.2.4.dev0) (3.1.2)\n", + "Requirement already satisfied: pytz>=2020.1 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from pandas->sdgx==0.2.4.dev0) (2024.1)\n", + "Collecting pandas (from sdgx==0.2.4.dev0)\n", + " Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ed/30/b97456e7063edac0e5a405128065f0cd2033adfe3716fb2256c186bd41d0/pandas-2.0.3-cp310-cp310-win_amd64.whl (10.7 MB)\n", + "Requirement already satisfied: psutil in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from table-evaluator->sdgx==0.2.4.dev0) (5.9.0)\n", + "Requirement already satisfied: dython==0.7.3 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from table-evaluator->sdgx==0.2.4.dev0) (0.7.3)\n", + "Requirement already satisfied: seaborn in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from table-evaluator->sdgx==0.2.4.dev0) (0.13.2)\n", + "Requirement already satisfied: tzdata>=2022.1 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from pandas->sdgx==0.2.4.dev0) (2024.1)\n", + "Requirement already satisfied: scikit-plot>=0.3.7 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from dython==0.7.3->table-evaluator->sdgx==0.2.4.dev0) (0.3.7)\n", + "Collecting psutil (from table-evaluator->sdgx==0.2.4.dev0)\n", + " Downloading https://pypi.tuna.tsinghua.edu.cn/packages/11/91/87fa6f060e649b1e1a7b19a4f5869709fbf750b7c8c262ee776ec32f3028/psutil-6.1.0-cp37-abi3-win_amd64.whl (254 kB)\n", + "Requirement already satisfied: idna>=2.8 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from anyio<5,>=3.5.0->openai>=1.10.0->sdgx==0.2.4.dev0) (3.7)\n", + "Requirement already satisfied: exceptiongroup>=1.0.2 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from anyio<5,>=3.5.0->openai>=1.10.0->sdgx==0.2.4.dev0) (1.2.0)\n", + "Requirement already satisfied: certifi in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from httpx<1,>=0.23.0->openai>=1.10.0->sdgx==0.2.4.dev0) (2024.7.4)\n", + "Requirement already satisfied: httpcore==1.* in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from httpx<1,>=0.23.0->openai>=1.10.0->sdgx==0.2.4.dev0) (1.0.2)\n", + "Requirement already satisfied: h11<0.15,>=0.13 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai>=1.10.0->sdgx==0.2.4.dev0) (0.14.0)\n", + "Requirement already satisfied: six>=1.5 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from python-dateutil>=2.4->faker>=10->sdgx==0.2.4.dev0) (1.16.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from jinja2->torch>=2->sdgx==0.2.4.dev0) (2.1.3)\n", + "Requirement already satisfied: mpmath<1.4,>=1.1.0 in c:\\users\\elvin\\.conda\\envs\\synthetic-data-generator\\lib\\site-packages (from sympy->torch>=2->sdgx==0.2.4.dev0) (1.3.0)\n", + "Building wheels for collected packages: sdgx\n", + " Building wheel for sdgx (pyproject.toml): started\n", + " Building wheel for sdgx (pyproject.toml): finished with status 'done'\n", + " Created wheel for sdgx: filename=sdgx-0.2.4.dev0-py3-none-any.whl size=255204 sha256=f84fa6f76622bba96259daa272314e42aa131a2b48b4105fe24527f90e036b5c\n", + " Stored in directory: C:\\Users\\Elvin\\AppData\\Local\\Temp\\pip-ephem-wheel-cache-4uww2jbp\\wheels\\a3\\7c\\29\\b6529b1098dfaed856ca7c2c6dfd0113422a7a8f29d63c6a5c\n", + "Successfully built sdgx\n", + "Installing collected packages: psutil, pandas, sdgx\n", + " Attempting uninstall: psutil\n", + " Found existing installation: psutil 5.9.0\n", + " Uninstalling psutil-5.9.0:\n", + " Successfully uninstalled psutil-5.9.0\n", + " Attempting uninstall: pandas\n", + " Found existing installation: pandas 1.5.3\n", + " Uninstalling pandas-1.5.3:\n", + " Successfully uninstalled pandas-1.5.3\n", + "Successfully installed pandas-2.0.3 psutil-5.9.1 sdgx-0.2.4.dev0\n" + ] }, { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'censor_status',\n", - " 'del_in_18month',\n", - " 'early_return',\n", - " 'early_return_amount',\n", - " 'early_return_amount_3mon',\n", - " 'f0',\n", - " 'f1',\n", - " 'f2',\n", - " 'f3',\n", - " 'f4',\n", - " 'f5',\n", - " 'house_exist',\n", - " 'house_loan_status',\n", - " 'initial_list_status',\n", - " 'is_default',\n", - " 'loan_id',\n", - " 'marriage',\n", - " 'offsprings',\n", - " 'policy_code',\n", - " 'post_code',\n", - " 'pub_dero_bankrup',\n", - " 'recircle_b',\n", - " 'region',\n", - " 'scoring_high',\n", - " 'scoring_low',\n", - " 'title',\n", - " 'total_loan',\n", - " 'use',\n", - " 'user_id',\n", - " 'year_of_loan'}" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# check int columns\n", - "loan_metadata.int_columns" - ] + "name": "stderr", + "output_type": "stream", + "text": [ + " Running command git clone --filter=blob:none --quiet https://github.com/hitsz-ids/synthetic-data-generator.git 'C:\\Users\\Elvin\\AppData\\Local\\Temp\\pip-req-build-cyx2iv05'\n", + " WARNING: Failed to remove contents in a temporary directory 'C:\\Users\\Elvin\\.conda\\envs\\synthetic-data-generator\\Lib\\site-packages\\~andas'.\n", + " You can safely remove it manually.\n", + "ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", + "copulas 0.8.0 requires pandas<2,>=1.3.4; python_version >= \"3.10\" and python_version < \"3.11\", but you have pandas 2.0.3 which is incompatible.\n", + "sdmetrics 0.9.0 requires pandas<2,>=1.5.0; python_version >= \"3.10\", but you have pandas 2.0.3 which is incompatible.\n" + ] + } + ], + "execution_count": 3 + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NkzQVyvRr7bH" + }, + "source": [ + "We demonstrate with a single table data synthetic example." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "a1JTesuSr7bH", + "ExecuteTime": { + "end_time": "2024-11-29T03:16:48.413123Z", + "start_time": "2024-11-29T03:16:48.399180Z" + } + }, + "source": [ + "from sdgx.data_connectors.csv_connector import CsvConnector\n", + "from sdgx.data_loader import DataLoader\n", + "from sdgx.data_models.metadata import Metadata" + ], + "outputs": [], + "execution_count": 4 + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hNCC1XASr7bH" + }, + "source": [ + "# 1. Load data\n", + "\n", + "The demo data set for this demonstration is a risk control data set used to predict whether an individual will default on a loan. This dataset contains the following features:\n", + "\n", + "| Column name | Meaning |\n", + "|-----------------------|-----------------------|\n", + "| loan_id | loan ID |\n", + "| user_id | user ID |\n", + "| total_loan | Total loan amount |\n", + "| year_of_loan | Loan period |\n", + "...\n", + "\n", + "This code shows the process of loading real data:" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "Fo4RAlowr7bH", + "outputId": "7c82f12e-0ded-43ca-fb67-459bc5022052", + "ExecuteTime": { + "end_time": "2024-11-29T03:18:23.985567Z", + "start_time": "2024-11-29T03:18:22.967222Z" + } + }, + "source": [ + "# In the future, this part of the function will be integrated into `sdgx.processor`\n", + "import os \n", + "import requests\n", + "\n", + "\n", + "def download_file(url, path):\n", + " response = requests.get(url)\n", + " if response.status_code == 200:\n", + " with open(path, 'wb') as file:\n", + " file.write(response.content)\n", + " print(f\"File downloaded successfully to {path}\")\n", + " else:\n", + " print(f\"Failed to download file from {url}\")\n", + "\n", + "# download dataset from github\n", + "# This datajset can be downloaded through sdgx.utils \n", + "dataset_url = \"https://raw.githubusercontent.com/aialgorithm/Blog/master/projects/一文梳理风控建模全流程/train_internet.csv\"\n", + "file_path = 'train_internet.csv'\n", + "\n", + "if not os.path.exists(file_path):\n", + " download_file(dataset_url, file_path)" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Use `datetime_columns` to view datetime types, but note that datetime type needs to add formats before data processing, **datetime formats need to completely correspond to datetime columns**. \n", - "\n", - "For specific operations, please refer to the manual interface of metadata below." - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "File downloaded successfully to train_internet.csv\n" + ] + } + ], + "execution_count": 8 + }, + { + "cell_type": "code", + "metadata": { + "id": "x5t8M4E6r7bI", + "ExecuteTime": { + "end_time": "2024-11-29T03:18:26.467442Z", + "start_time": "2024-11-29T03:18:26.449340Z" + } + }, + "source": [ + "\n", + "from pathlib import Path\n", + "\n", + "path_obj = Path(file_path)\n", + "\n", + "# Create a data connector and data loader for large csv data\n", + "# SDG will load data with chunk, can reduce memory usage.\n", + "data_connector = CsvConnector(path=path_obj)\n", + "# For small data you can use DataFrameConnector\n", + "# from sdgx.data_connectors.dataframe_connector import DataFrameConnector\n", + "# data_connector = DataFrameConnector(dataframe)\n", + "data_loader = DataLoader(data_connector)" + ], + "outputs": [], + "execution_count": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 2. Create Metadata from Dataloader\n", + "\n", + "sdgx supports creating metadata from pd.DataFrame or DataLoader, and also supports creating metadata from scratch from blank metadata (but this method is not recommended because it is more troublesome).\n", + "\n", + "In this example, we use `from_dataloader` to create the first Metadata." + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:30.373315Z", + "start_time": "2024-11-29T03:18:27.845644Z" + } + }, + "source": [ + "loan_metadata = Metadata.from_dataloader(data_loader)" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'earlies_credit_mon', 'issue_date'}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loan_metadata.datetime_columns" - ] - }, + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001B[32m2024-11-29 11:18:27.846\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_models.metadata\u001B[0m:\u001B[36mfrom_dataloader\u001B[0m:\u001B[36m318\u001B[0m - \u001B[1mInspecting metadata...\u001B[0m\n", + "\u001B[32m2024-11-29 11:18:30.355\u001B[0m | \u001B[1mINFO \u001B[0m | \u001B[36msdgx.data_models.metadata\u001B[0m:\u001B[36mupdate_primary_key\u001B[0m:\u001B[36m527\u001B[0m - \u001B[1mPrimary Key updated: {'user_id', 'loan_id'}.\u001B[0m\n" + ] + } + ], + "execution_count": 10 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let’s first understand some common member variables in Metadata.\n", + "\n", + "The most important and commonly used method is to use `column_list` to view column information. This variable returns a list. The order of columns corresponds to the order of the actual table." + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:30.389263Z", + "start_time": "2024-11-29T03:18:30.375305Z" + } + }, + "source": [ + "loan_metadata.column_list" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "⚠️ It is worth noting that Inspectors work well in most cases, but all types in tabular data may not be fully covered, or there may be incomplete coverage.\n", - "\n", - "Therefore, before proceeding to the next step of training the model or further processing the data, we still recommend that data analysts **check** all the labeling of data types." + "data": { + "text/plain": [ + "['loan_id',\n", + " 'user_id',\n", + " 'total_loan',\n", + " 'year_of_loan',\n", + " 'interest',\n", + " 'monthly_payment',\n", + " 'class',\n", + " 'sub_class',\n", + " 'work_type',\n", + " 'employer_type',\n", + " 'industry',\n", + " 'work_year',\n", + " 'house_exist',\n", + " 'house_loan_status',\n", + " 'censor_status',\n", + " 'marriage',\n", + " 'offsprings',\n", + " 'issue_date',\n", + " 'use',\n", + " 'post_code',\n", + " 'region',\n", + " 'debt_loan_ratio',\n", + " 'del_in_18month',\n", + " 'scoring_low',\n", + " 'scoring_high',\n", + " 'pub_dero_bankrup',\n", + " 'early_return',\n", + " 'early_return_amount',\n", + " 'early_return_amount_3mon',\n", + " 'recircle_b',\n", + " 'recircle_u',\n", + " 'initial_list_status',\n", + " 'earlies_credit_mon',\n", + " 'title',\n", + " 'policy_code',\n", + " 'f0',\n", + " 'f1',\n", + " 'f2',\n", + " 'f3',\n", + " 'f4',\n", + " 'f5',\n", + " 'is_default']" ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 11 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 3. Use Inspectors to automatically label column types\n", + "\n", + "Currently, when a sdgx's Metadata module pd.DataFrame or DataLoader is created, it will load Inspectors, automatically scan some data (not all data), and label the columns in the table according to the logic of each Inspector.\n", + "\n", + "Currently, we support automatic inference of multiple data types, and sdgx supports the following basic types:\n", + "- bool\n", + "- int\n", + "- float\n", + "- datetime\n", + "- discrete\n", + "- id\n", + "\n", + "Basic data types guarantee that each column will be labeled to one of the data types.\n", + "\n", + "sdgx also supports the following data types, and the sdgx team will continue to add data types:\n", + "\n", + "- english_name\n", + "- email\n", + "- china_mainland_mobile_phone\n", + "- china_mainland_id\n", + "- china_mainland_postcode\n", + "- unified_social_credit_code\n", + "- china_mainland_address\n", + "- chinese_name\n", + "\n", + "If you need to query a column of a certain data type, you can access it through `.{column_name}_columns`, for example: access the datetime column through `.datetime_columns`, and access the english_name column through `english_name_columns`.\n", + "\n", + "For example, we can access discrete columns through `.discrete_columns`, which will return a set containing the set of column names that are considered **discrete** columns.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" }, + "id": "2ILAVWcEr7bI", + "outputId": "5da2b0cf-ccec-4d61-b982-fd410275eb12", + "ExecuteTime": { + "end_time": "2024-11-29T03:18:30.499210Z", + "start_time": "2024-11-29T03:18:30.489212Z" + } + }, + "source": [ + "# Automatically infer discrete columns\n", + "loan_metadata.discrete_columns" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 4. Understand the inspect_level mechanism in Metadata\n", - " \n", - "Since Metadata will run multiple Inspectors when it is created, the same data column may be labeled multiple times. For example, a column is marked as PostCode and discrete at the same time. In fact, this column is a post code column. \n", - "\n", - "From this, we use `inspect_level` to solve this problem. Different inspectors have different inspect levels, and the final mark of the final column is determined by the mark with the higher inspect level." + "data": { + "text/plain": [ + "{'class',\n", + " 'earlies_credit_mon',\n", + " 'employer_type',\n", + " 'industry',\n", + " 'issue_date',\n", + " 'sub_class',\n", + " 'work_type',\n", + " 'work_year'}" ] - }, + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 12 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similarly, we can view `int_columns`, `bool_columns` and other columns as follows:" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:30.902756Z", + "start_time": "2024-11-29T03:18:30.886801Z" + } + }, + "source": [ + "# No Bool columns in current tabular data.\n", + "loan_metadata.bool_columns" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(()>,\n", - " {'id_columns': 20,\n", - " 'int_columns': 10,\n", - " 'float_columns': 10,\n", - " 'bool_columns': 10,\n", - " 'datetime_columns': 20,\n", - " 'discrete_columns': 10,\n", - " 'china_mainland_mobile_phone_columns': 30,\n", - " 'unified_social_credit_code_columns': 30,\n", - " 'china_mainland_id_columns': 30,\n", - " 'china_mainland_postcode_columns': 20,\n", - " 'email_columns': 30})" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# ·column_inspect_level· records the inspect_level values of all inspectors\n", - "# the default inspect_level is 10 \n", - "loan_metadata.column_inspect_level" + "data": { + "text/plain": [ + "set()" ] - }, + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 13 + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:31.090571Z", + "start_time": "2024-11-29T03:18:31.083590Z" + } + }, + "source": [ + "# check int columns\n", + "loan_metadata.int_columns" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 5. Metadata manual interface\n", - "\n", - "Metadata supports the following manual interfaces, which can finely modify column labels one by one according to your ideas:\n", - "- query: Query the tag of a certain column.\n", - "- get: Get all tags by key.\n", - "- set:Set tags, will convert value to set if value is not a set.\n", - "- add: Add tags.\n", - "\n" + "data": { + "text/plain": [ + "{'censor_status',\n", + " 'del_in_18month',\n", + " 'early_return',\n", + " 'early_return_amount',\n", + " 'early_return_amount_3mon',\n", + " 'f0',\n", + " 'f1',\n", + " 'f2',\n", + " 'f3',\n", + " 'f4',\n", + " 'f5',\n", + " 'house_exist',\n", + " 'house_loan_status',\n", + " 'initial_list_status',\n", + " 'is_default',\n", + " 'loan_id',\n", + " 'marriage',\n", + " 'offsprings',\n", + " 'policy_code',\n", + " 'post_code',\n", + " 'pub_dero_bankrup',\n", + " 'recircle_b',\n", + " 'region',\n", + " 'scoring_high',\n", + " 'scoring_low',\n", + " 'title',\n", + " 'total_loan',\n", + " 'use',\n", + " 'user_id',\n", + " 'year_of_loan'}" ] - }, + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 14 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `datetime_columns` to view datetime types, but note that datetime type needs to add formats before data processing, **datetime formats need to completely correspond to datetime columns**. \n", + "\n", + "For specific operations, please refer to the manual interface of metadata below." + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:31.460546Z", + "start_time": "2024-11-29T03:18:31.445595Z" + } + }, + "source": [ + "loan_metadata.datetime_columns" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'loan_id'}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loan_metadata.set('id_columns', {'loan_id'})\n", - "\n", - "loan_metadata.id_columns" + "data": { + "text/plain": [ + "{'earlies_credit_mon', 'issue_date'}" ] - }, + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 15 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "⚠️ It is worth noting that Inspectors work well in most cases, but all types in tabular data may not be fully covered, or there may be incomplete coverage.\n", + "\n", + "Therefore, before proceeding to the next step of training the model or further processing the data, we still recommend that data analysts **check** all the labeling of data types." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 4. Understand the inspect_level mechanism in Metadata\n", + " \n", + "Since Metadata will run multiple Inspectors when it is created, the same data column may be labeled multiple times. For example, a column is marked as PostCode and discrete at the same time. In fact, this column is a post code column. \n", + "\n", + "From this, we use `inspect_level` to solve this problem. Different inspectors have different inspect levels, and the final mark of the final column is determined by the mark with the higher inspect level." + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:32.018881Z", + "start_time": "2024-11-29T03:18:32.004929Z" + } + }, + "source": [ + "# ·column_inspect_level· records the inspect_level values of all inspectors\n", + "# the default inspect_level is 10 \n", + "loan_metadata.column_inspect_level" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that currently only the datetime type needs to `add formats`, and before data processing, datetime formats need to completely correspond to datetime columns (otherwise the column will be deleted during the data preprocessing process), other data types do not need it." + "data": { + "text/plain": [ + "defaultdict(()>,\n", + " {'email_columns': 30,\n", + " 'unified_social_credit_code_columns': 30,\n", + " 'chinese_company_name_columns': 40,\n", + " 'id_columns': 20,\n", + " 'china_mainland_address_columns': 30,\n", + " 'china_mainland_postcode_columns': 20,\n", + " 'english_name_columns': 40,\n", + " 'china_mainland_id_columns': 30,\n", + " 'datetime_columns': 20,\n", + " 'int_columns': 10,\n", + " 'float_columns': 10,\n", + " 'empty_columns': 90,\n", + " 'bool_columns': 10,\n", + " 'china_mainland_mobile_phone_columns': 30,\n", + " 'chinese_name_columns': 40,\n", + " 'discrete_columns': 10,\n", + " 'const_columns': 80})" ] - }, + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 16 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 5. Metadata manual interface\n", + "\n", + "Metadata supports the following manual interfaces, which can finely modify column labels one by one according to your ideas:\n", + "- query: Query the tag of a certain column.\n", + "- get: Get all tags by key.\n", + "- set:Set tags, will convert value to set if value is not a set.\n", + "- add: Add tags.\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:32.391587Z", + "start_time": "2024-11-29T03:18:32.378587Z" + } + }, + "source": [ + "loan_metadata.set('id_columns', {'loan_id'})\n", + "\n", + "loan_metadata.id_columns" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "defaultdict(str, {})" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# datetime_format has no content, which will cause an error in the subsequent process.\n", - "loan_metadata.datetime_format" + "data": { + "text/plain": [ + "{'loan_id'}" ] - }, + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 17 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that currently only the datetime type needs to `add formats`, and before data processing, datetime formats need to completely correspond to datetime columns (otherwise the column will be deleted during the data preprocessing process), other data types do not need it." + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:32.750626Z", + "start_time": "2024-11-29T03:18:32.739077Z" + } + }, + "source": [ + "# datetime_format has no content, which will cause an error in the subsequent process.\n", + "loan_metadata.datetime_format" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The above four basic methods only apply to columns.\n", - "\n", - "For the dict type datetime format, it is recommended to assign values directly." + "data": { + "text/plain": [ + "defaultdict(str, {})" ] - }, + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 18 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above four basic methods only apply to columns.\n", + "\n", + "For the dict type datetime format, it is recommended to assign values directly." + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:33.121041Z", + "start_time": "2024-11-29T03:18:33.109081Z" + } + }, + "source": [ + "datetime_format = {\n", + " 'issue_date': '%Y-%m-%d',\n", + " 'earlies_credit_mon': '%b-%Y'\n", + "}\n", + "loan_metadata.datetime_format = datetime_format\n", + "# You can also try this.\n", + "# loan_metadata.datetime_format[\"issue_date\"] = \"%Y-%m-%d\"\n", + "# loan_metadata.datetime_format[\"earlies_credit_mon\"] = \"%b-%Y\"\n", + "loan_metadata.datetime_format" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'issue_date': '%Y-%m-%d', 'earlies_credit_mon': '%b-%Y'}" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "datetime_format = {\n", - " 'issue_date': '%Y-%m-%d',\n", - " 'earlies_credit_mon': '%b-%Y'\n", - "}\n", - "loan_metadata.datetime_format = datetime_format\n", - "\n", - "loan_metadata.datetime_format" + "data": { + "text/plain": [ + "{'issue_date': '%Y-%m-%d', 'earlies_credit_mon': '%b-%Y'}" ] - }, + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 19 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# 6. Get the exact data type of each column\n", + "\n", + "We provide the get_column_data_type method to query the final data type of each column:" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:33.492940Z", + "start_time": "2024-11-29T03:18:33.480010Z" + } + }, + "source": [ + "loan_metadata.get_column_data_type(\"f0\")" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 6. Get the exact data type of each column\n", - "\n", - "We provide the get_column_data_type method to query the final data type of each column:" + "data": { + "text/plain": [ + "'int'" ] - }, + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 20 + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:33.691293Z", + "start_time": "2024-11-29T03:18:33.677334Z" + } + }, + "source": [ + "loan_metadata.get_column_data_type(\"recircle_u\")" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'int'" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loan_metadata.get_column_data_type(\"f0\")" + "data": { + "text/plain": [ + "'float'" ] - }, + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 21 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you need to get the exact data type of all columns, you can combine it with the `.column_list` method:" + ] + }, + { + "cell_type": "code", + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:34.050918Z", + "start_time": "2024-11-29T03:18:34.038895Z" + } + }, + "source": [ + "for each_col in loan_metadata.column_list:\n", + " print(f'{each_col}: {loan_metadata.get_column_data_type(each_col)}')" + ], + "outputs": [ { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'float'" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "loan_metadata.get_column_data_type(\"recircle_u\")" - ] - }, + "name": "stdout", + "output_type": "stream", + "text": [ + "loan_id: id\n", + "user_id: int\n", + "total_loan: int\n", + "year_of_loan: int\n", + "interest: float\n", + "monthly_payment: float\n", + "class: discrete\n", + "sub_class: discrete\n", + "work_type: discrete\n", + "employer_type: discrete\n", + "industry: discrete\n", + "work_year: discrete\n", + "house_exist: int\n", + "house_loan_status: int\n", + "censor_status: int\n", + "marriage: int\n", + "offsprings: int\n", + "issue_date: datetime\n", + "use: int\n", + "post_code: int\n", + "region: int\n", + "debt_loan_ratio: float\n", + "del_in_18month: int\n", + "scoring_low: int\n", + "scoring_high: int\n", + "pub_dero_bankrup: int\n", + "early_return: int\n", + "early_return_amount: int\n", + "early_return_amount_3mon: int\n", + "recircle_b: int\n", + "recircle_u: float\n", + "initial_list_status: int\n", + "earlies_credit_mon: datetime\n", + "title: int\n", + "policy_code: const\n", + "f0: int\n", + "f1: int\n", + "f2: int\n", + "f3: int\n", + "f4: int\n", + "f5: int\n", + "is_default: int\n" + ] + } + ], + "execution_count": 22 + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": [ + "# 7. Setting the categorical encoder for ML Model.\n", + "This feature now only be available in `CTGANSynthesizerModel`.\n", + "For some ML Model such as `CTGANSynthesizerModel`, it supports specifying the encoder for categorical columns. You can use `CategoricalEncoderType` to check which encoder you can use." + ] + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-12-01T10:29:00.935274Z", + "start_time": "2024-12-01T10:29:00.486237Z" + } + }, + "cell_type": "code", + "source": [ + "from sdgx.data_models.metadata import CategoricalEncoderType\n", + "CategoricalEncoderType" + ], + "outputs": [ { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you need to get the exact data type of all columns, you can combine it with the `.column_list` method:" + "data": { + "text/plain": [ + "{'label', 'onehot', 'frequency'}" ] - }, + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 1 + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": "" + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:34.777434Z", + "start_time": "2024-11-29T03:18:34.768464Z" + } + }, + "cell_type": "code", + "source": "loan_metadata.discrete_columns", + "outputs": [ { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "loan_id: id\n", - "user_id: int\n", - "total_loan: int\n", - "year_of_loan: int\n", - "interest: float\n", - "monthly_payment: float\n", - "class: discrete\n", - "sub_class: discrete\n", - "work_type: discrete\n", - "employer_type: discrete\n", - "industry: discrete\n", - "work_year: discrete\n", - "house_exist: int\n", - "house_loan_status: int\n", - "censor_status: int\n", - "marriage: int\n", - "offsprings: int\n", - "issue_date: datetime\n", - "use: int\n", - "post_code: int\n", - "region: int\n", - "debt_loan_ratio: float\n", - "del_in_18month: int\n", - "scoring_low: int\n", - "scoring_high: int\n", - "pub_dero_bankrup: int\n", - "early_return: int\n", - "early_return_amount: int\n", - "early_return_amount_3mon: int\n", - "recircle_b: int\n", - "recircle_u: float\n", - "initial_list_status: int\n", - "earlies_credit_mon: datetime\n", - "title: int\n", - "policy_code: int\n", - "f0: int\n", - "f1: int\n", - "f2: int\n", - "f3: int\n", - "f4: int\n", - "f5: int\n", - "is_default: int\n" - ] - } - ], - "source": [ - "for each_col in loan_metadata.column_list:\n", - " print(f'{each_col}: {loan_metadata.get_column_data_type(each_col)}')" + "data": { + "text/plain": [ + "{'class',\n", + " 'earlies_credit_mon',\n", + " 'employer_type',\n", + " 'industry',\n", + " 'issue_date',\n", + " 'sub_class',\n", + " 'work_type',\n", + " 'work_year'}" ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" } - ], - "metadata": { - "colab": { - "provenance": [], - "toc_visible": true - }, - "kernelspec": { - "display_name": "sdg", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - } - }, - "nbformat": 4, - "nbformat_minor": 0 + ], + "execution_count": 24 + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": [ + "Then you can specify the column's encoder directly by setting the `categorical_encoder`.\n", + "Tips: \n", + "1. For datetime columns if we used the `DatetimeFormatter` in processors, we don't need to select an encoder for it. Cause the processor has been transform it to a float.\n", + "2. If we don't specify the encoder for some columns, the model will using its default logic to select encoder. For `CTGANSynthesizerModel`, it will use 'onehot'." + ] + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:35.165828Z", + "start_time": "2024-11-29T03:18:35.151876Z" + } + }, + "cell_type": "code", + "source": [ + "loan_metadata.categorical_encoder = {\n", + " \"class\": \"label\",\n", + " \"sub_class\": \"label\", \n", + " \"employer_type\": \"onehot\", # this line can be removed for CTGANSynthesizerModel, cause the default encoder is \"onehot\" in the model.\n", + " \"industry\": \"frequency\",\n", + " \"work_year\": \"label\"\n", + " # \"work_type\" using default encoder, we are not specified its encoder.\n", + " # \"issue_date\" and \"earlies_credit_mon\" are datetime columns. We not need to specify its encoder when we use DatetimeFormatter in training, because it transformed as float. \n", + "}" + ], + "outputs": [], + "execution_count": 25 + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": "Furthermore, if the columns unique values are too large, using onehot encoder for ML Model can cause performance problem because of the large training dimensions. We can use `categorical_threshold` to automatically select encoder." + }, + { + "metadata": { + "ExecuteTime": { + "end_time": "2024-11-29T03:18:35.537990Z", + "start_time": "2024-11-29T03:18:35.524681Z" + } + }, + "cell_type": "code", + "source": [ + "loan_metadata.categorical_threshold = {\n", + " # if the length of unique values less than 100, use onehot encoder.\n", + " 100: \"frequency\", # if the length of unique values greater than 100, use frequency encoder.\n", + " 10000: \"label\" # if the length of unique values greater than 10000, use label encoder.\n", + "}" + ], + "outputs": [], + "execution_count": 26 + }, + { + "metadata": {}, + "cell_type": "markdown", + "source": "In `CTGANSynthesizerModel`, if we both specify the `categorical_threshold` and `categorical_encoder`, the `categorical_encoder` are firstly used even if the column matched a regulation in `categorical_threshold`. " + } + ], + "metadata": { + "colab": { + "provenance": [], + "toc_visible": true + }, + "kernelspec": { + "display_name": "sdg", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 } diff --git a/sdgx/cachers/disk_cache.py b/sdgx/cachers/disk_cache.py index cac14ab9..e65cc1f1 100644 --- a/sdgx/cachers/disk_cache.py +++ b/sdgx/cachers/disk_cache.py @@ -1,9 +1,8 @@ from __future__ import annotations import shutil -from functools import lru_cache from pathlib import Path -from typing import Generator +from typing import Generator, List import pandas as pd @@ -108,19 +107,23 @@ def load(self, offset: int, chunksize: int, data_connector: DataConnector) -> pd data = data_connector.read(offset=offset, limit=limit) if data is None: return data + + data_list: List[pd.DataFrame] = [data] while len(data) < limit: # When generator size is less than blocksize # Continue to read until fit the limit next_data = data_connector.read(offset=offset + len(data), limit=limit - len(data)) if next_data is None or len(next_data) == 0: break - data = pd.concat( - [ - data, - next_data, - ], + data_list.append(next_data) + data = ( + pd.concat( + data_list, ignore_index=True, ) + if len(data_list) > 1 + else data + ) self._refresh(offset, data) if len(data) < chunksize: diff --git a/sdgx/data_connectors/dataframe_connector.py b/sdgx/data_connectors/dataframe_connector.py new file mode 100644 index 00000000..374c5ad2 --- /dev/null +++ b/sdgx/data_connectors/dataframe_connector.py @@ -0,0 +1,67 @@ +from __future__ import annotations + +import os +from functools import cached_property +from typing import Callable, Generator + +import pandas as pd + +from sdgx.data_connectors.base import DataConnector + + +class DataFrameConnector(DataConnector): + """ + Directly Wraps DataFrame into :ref:`DataConnector`, for small dataset can be loaded all in memory. + + Args: + df (pd.DataFrame): DataFrame to be wrapped. + + Example: + + .. code-block:: python + from sdgx.data_connectors.dataframe_connector import DataFrameConnector + connector = DataFrameConnector( + df=pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]}), + ) + df = connector.read() + + + """ + + def __init__( + self, + df: pd.DataFrame, + *args, + **kwargs, + ): + super().__init__(*args, **kwargs) + self.df: pd.DataFrame = df + + def _read(self, offset: int = 0, limit: int | None = None) -> pd.DataFrame | None: + length = self.df.shape[0] + if offset >= length: + return None + limit = limit or length + return self.df.iloc[offset : min(offset + limit, length)] + + def _columns(self) -> list[str]: + return list(self.df.columns) + + def _iter(self, offset=0, chunksize=0) -> Generator[pd.DataFrame, None, None]: + def generator() -> Generator[pd.DataFrame, None, None]: + length = self.df.shape[0] + if offset < length: + current = offset + while current < length: + yield self.df.iloc[current : min(current + chunksize, length)] + current += chunksize + + return generator() + + +from sdgx.data_connectors.extension import hookimpl + + +@hookimpl +def register(manager): + manager.register("DataFrameConnector", DataFrameConnector) diff --git a/sdgx/data_loader.py b/sdgx/data_loader.py index 02d5e809..93f1593d 100644 --- a/sdgx/data_loader.py +++ b/sdgx/data_loader.py @@ -9,6 +9,7 @@ from sdgx.cachers.disk_cache import DiskCache from sdgx.cachers.manager import CacherManager from sdgx.data_connectors.base import DataConnector +from sdgx.data_connectors.dataframe_connector import DataFrameConnector from sdgx.data_connectors.generator_connector import GeneratorConnector from sdgx.exceptions import DataLoaderInitError from sdgx.utils import cache @@ -89,7 +90,7 @@ def generator() -> Generator[pd.DataFrame, None, None]: """ - DEFAULT_CACHER = DiskCache + DEFAULT_CACHER_INITIAL = DiskCache def __init__( self, @@ -99,6 +100,11 @@ def __init__( cacher_kwargs: None | dict[str, Any] = None, identity: str | None = None, ) -> None: + if isinstance(data_connector, DataFrameConnector): + self.DEFAULT_CACHER = NoCache + else: + self.DEFAULT_CACHER = DataLoader.DEFAULT_CACHER_INITIAL + self.data_connector = data_connector self.chunksize = chunksize self.cache_manager = CacherManager() diff --git a/sdgx/data_models/inspectors/numeric.py b/sdgx/data_models/inspectors/numeric.py index f789b5af..3f49dee7 100644 --- a/sdgx/data_models/inspectors/numeric.py +++ b/sdgx/data_models/inspectors/numeric.py @@ -171,7 +171,10 @@ def fit(self, raw_data: pd.DataFrame, *args, **kwargs): # Iterate all columns and determain the final data type for col in raw_data.columns: - if raw_data[col].dtype in ["int64", "float64"]: + if pd.api.types.is_integer_dtype(raw_data[col].dtype) or pd.api.types.is_float_dtype( + raw_data[col].dtype + ): + # series type may be 32/64bit. # float or int if self._is_int_column(raw_data[col]): self.int_columns.add(col) diff --git a/sdgx/data_models/metadata.py b/sdgx/data_models/metadata.py index fe1e1a84..075a907d 100644 --- a/sdgx/data_models/metadata.py +++ b/sdgx/data_models/metadata.py @@ -5,7 +5,7 @@ from collections.abc import Iterable from itertools import chain from pathlib import Path -from typing import Any, Dict, List, Set +from typing import Any, Dict, List, Literal, Set, Union import pandas as pd from pydantic import BaseModel, Field, field_validator @@ -14,9 +14,16 @@ from sdgx.data_models.inspectors.base import RelationshipInspector from sdgx.data_models.inspectors.manager import InspectorManager from sdgx.exceptions import MetadataInitError, MetadataInvalidError +from sdgx.models.components.utils import StrValuedBaseEnum from sdgx.utils import logger +class CategoricalEncoderType(StrValuedBaseEnum): + ONEHOT = "onehot" + LABEL = "label" + FREQUENCY = "frequency" + + class Metadata(BaseModel): """ Metadata is mainly used to describe the data types of all columns in a single data table. @@ -58,7 +65,7 @@ def check_column_list(cls, value) -> Any: column_inspect_level is used to store every inspector's level, to specify the true type of each column. """ - pii_columns: Set[set] = set() + pii_columns: Set[str] = set() """ pii_columns is used to store all PII columns' name """ @@ -75,6 +82,11 @@ def check_column_list(cls, value) -> Any: datetime_format: Dict = defaultdict(str) numeric_format: Dict = defaultdict(list) + # def columns encoder, even not matched categorical_threshold. + categorical_encoder: Union[Dict[str, CategoricalEncoderType], None] = defaultdict(str) + # if greater than categorical_threshold, encoder is the mapped. + categorical_threshold: Union[Dict[int, CategoricalEncoderType], None] = None + # version info version: str = "1.0" _extend: Dict[str, Set[str]] = defaultdict(set) @@ -82,6 +94,26 @@ def check_column_list(cls, value) -> Any: For extend information, use ``get`` and ``set`` """ + def get_column_encoder_by_categorical_threshold( + self, num_categories: int + ) -> Union[CategoricalEncoderType, None]: + encoder_type = None + if self.categorical_threshold is None: + return encoder_type + + for threshold in sorted(self.categorical_threshold.keys()): + if num_categories > threshold: + encoder_type = self.categorical_threshold[threshold] + else: + break + return encoder_type + + def get_column_encoder_by_name(self, column_name) -> Union[CategoricalEncoderType, None]: + encoder_type = None + if self.categorical_encoder and column_name in self.categorical_encoder: + encoder_type = self.categorical_encoder[column_name] + return encoder_type + @property def tag_fields(self) -> Iterable[str]: """ @@ -188,7 +220,13 @@ def set(self, key: str, value: Any): if isinstance(old_value, Iterable) and not isinstance(old_value, str): # list, set, tuple... value = value if isinstance(value, Iterable) and not isinstance(value, str) else [value] - value = type(old_value)(value) + try: + value = type(old_value)(value) + except TypeError as e: + if type(old_value) == defaultdict: + value = dict(value) + else: + raise e if key in self.model_fields: setattr(self, key, value) @@ -272,7 +310,7 @@ def from_dataloader( cls, dataloader: DataLoader, max_chunk: int = 10, - primary_keys: set[str] = None, + primary_keys: Set[str] = None, include_inspectors: Iterable[str] | None = None, exclude_inspectors: Iterable[str] | None = None, inspector_init_kwargs: dict[str, Any] | None = None, @@ -395,6 +433,10 @@ def save(self, path: str | Path): with path.open("w") as f: f.write(self._dump_json()) + @classmethod + def loads(cls, attributes): + return Metadata(**attributes) + @classmethod def load(cls, path: str | Path) -> "Metadata": """ @@ -473,6 +515,28 @@ def check(self): f"Found undefined column: {set(all_dtype_columns) - set(self.column_list)}." ) + if self.categorical_encoder is not None: + for i in self.categorical_encoder.keys(): + if not isinstance(i, str) or i not in self.discrete_columns: + raise MetadataInvalidError( + f"categorical_encoder key {i} is invalid, it should be an str and is a discrete column name." + ) + if self.categorical_encoder.values() not in CategoricalEncoderType: + raise MetadataInvalidError( + f"In categorical_encoder values, categorical encoder type invalid, now supports {list(CategoricalEncoderType)}." + ) + + if self.categorical_threshold is not None: + for i in self.categorical_threshold.keys(): + if not isinstance(i, int) or i < 0: + raise MetadataInvalidError( + f"categorical threshold {i} is invalid, it should be an positive int." + ) + if self.categorical_threshold.values() not in CategoricalEncoderType: + raise MetadataInvalidError( + f"In categorical_threshold values, categorical encoder type invalid, now supports {list(CategoricalEncoderType)}." + ) + logger.debug("Metadata check succeed.") def update_primary_key(self, primary_keys: Iterable[str] | str): @@ -544,3 +608,75 @@ def get_column_pii(self, column_name: str): if column_name in self.pii_columns: return True return False + + def change_column_type( + self, column_names: str | List[str], column_original_type: str, column_new_type: str + ): + """Change the type of column.""" + if not column_names: + return + if isinstance(column_names, str): + column_names = [column_names] + all_fields = list(self.tag_fields) + original_type = f"{column_original_type}_columns" + new_type = f"{column_new_type}_columns" + if original_type not in all_fields: + raise MetadataInvalidError(f"Column type {column_original_type} not exist in metadata.") + if new_type not in all_fields: + raise MetadataInvalidError(f"Column type {column_new_type} not exist in metadata.") + type_columns = self.get(original_type) + diff = set(column_names).difference(type_columns) + if diff: + raise MetadataInvalidError(f"Columns {column_names} not exist in {original_type}.") + self.add(new_type, column_names) + type_columns = type_columns.difference(column_names) + self.set(original_type, type_columns) + + def remove_column(self, column_names: List[str] | str): + """ + Remove a column from all columns type. + Args: + column_names: List[str]: To removed columns name list. + """ + if not column_names: + return + if isinstance(column_names, str): + column_names = [column_names] + column_names = frozenset(column_names) + inter = column_names.intersection(self.column_list) + if not inter: + raise MetadataInvalidError(f"Columns {inter} not exist in metadata.") + + def do_remove_columns(key, get=True, to_removes=column_names): + obj = self + if get: + target = obj.get(key) + else: + target = getattr(obj, key) + res = None + if isinstance(target, list): + res = [item for item in target if item not in to_removes] + elif isinstance(target, dict): + if key == "numeric_format": + obj.set( + key, + {k: {v2 for v2 in v if v2 not in to_removes} for k, v in target.items()}, + ) + else: + res = {k: v for k, v in target.items() if k not in to_removes} + elif isinstance(target, set): + res = target.difference(to_removes) + + if res is not None: + if get: + obj.set(key, res) + else: + setattr(obj, key, res) + + to_remove_attribute = list(self.tag_fields) + to_remove_attribute.extend(list(self.format_fields)) + for attr in to_remove_attribute: + do_remove_columns(attr) + for attr in ["column_list", "primary_keys"]: + do_remove_columns(attr, False) + self.check() diff --git a/sdgx/data_processors/formatters/datetime.py b/sdgx/data_processors/formatters/datetime.py index 61e0d4a3..1db00ac3 100644 --- a/sdgx/data_processors/formatters/datetime.py +++ b/sdgx/data_processors/formatters/datetime.py @@ -4,6 +4,7 @@ from datetime import datetime from typing import Any, Dict +import numpy as np import pandas as pd from sdgx.data_models.metadata import Metadata @@ -77,6 +78,12 @@ def fit(self, metadata: Metadata | None = None, **kwargs: dict[str, Any]): f"Column {each_col} has no datetime_format, DatetimeFormatter will REMOVE this column!" ) + # Remove successful formatted datetime columns from metadata.discrete_columns + if not (set(datetime_columns) - set(metadata.discrete_columns)): + metadata.change_column_type(datetime_columns, "discrete", "datetime") + # Remove dead_columns from metadata + metadata.remove_column(dead_columns) + self.datetime_columns = datetime_columns self.dead_columns = dead_columns @@ -133,14 +140,16 @@ def datetime_formatter(each_value, datetime_format): datetime_obj = datetime.strptime(str(each_value), datetime_format) each_stamp = datetime.timestamp(datetime_obj) except Exception as e: - logger.warning(f"An error occured when convert str to timestamp {e}.") + logger.warning( + f"An error occured when convert str to timestamp {e}, we set as mean." + ) logger.warning(f"Input parameters: ({str(each_value)}, {datetime_format})") logger.warning(f"Input type: ({type(each_value)}, {type(datetime_format)})") - each_stamp = 0 + each_stamp = np.nan return each_stamp # Make a copy of processed_data to avoid modifying the original data - result_data = processed_data.copy() + result_data: pd.DataFrame = processed_data.copy() # Convert each datetime column in datetime_column_list to timestamp for column in datetime_column_list: @@ -148,6 +157,7 @@ def datetime_formatter(each_value, datetime_format): result_data[column] = result_data[column].apply( datetime_formatter, datetime_format=datetime_formats[column] ) + result_data[column].fillna(result_data[column].mean(), inplace=True) return result_data def reverse_convert(self, processed_data: pd.DataFrame) -> pd.DataFrame: @@ -185,25 +195,18 @@ def convert_timestamp_to_datetime(timestamp_column_list, format_dict, processed_ Returns: - result_data (pd.DataFrame): DataFrame with timestamp columns converted to datetime format. - """ - def convert_single_column_timestamp_to_str(column_data: pd.Series, datetime_format: str): - """ - convert each single column timestamp(int) to datetime string. - """ - res = [] - - for each_stamp in column_data: - try: - each_str = datetime.fromtimestamp(each_stamp).strftime(datetime_format) - except Exception as e: - logger.debug(f"An error occured when convert timestamp to str {e}.") - each_str = "No Datetime" + TODO: + if the value <0, the result will be `No Datetime`, try to fix it. + """ - res.append(each_str) - res = pd.Series(res) - res = res.astype(str) - return res + def column_timestamp_formatter(each_stamp: int, timestamp_format: str) -> str: + try: + each_str = datetime.fromtimestamp(each_stamp).strftime(timestamp_format) + except Exception as e: + logger.debug(f"An error occured when convert timestamp to str {e}.") + each_str = "No Datetime" + return each_str # Copy the processed data to result_data result_data = processed_data.copy() @@ -213,8 +216,8 @@ def convert_single_column_timestamp_to_str(column_data: pd.Series, datetime_form # Check if the column is in the DataFrame if column in result_data.columns: # Convert the timestamp to datetime format using the format provided in datetime_column_dict - result_data[column] = convert_single_column_timestamp_to_str( - result_data[column], format_dict[column] + result_data[column] = result_data[column].apply( + column_timestamp_formatter, timestamp_format=format_dict[column] ) else: logger.error(f"Column {column} not in processed data's column list!") diff --git a/sdgx/data_processors/formatters/int.py b/sdgx/data_processors/formatters/int.py index a7eff5be..e4bef86a 100644 --- a/sdgx/data_processors/formatters/int.py +++ b/sdgx/data_processors/formatters/int.py @@ -62,8 +62,10 @@ def reverse_convert(self, processed_data: pd.DataFrame) -> pd.DataFrame: """ for col in self.int_columns: - processed_data[col] = processed_data[col].astype(int) - + if col in processed_data.columns: + processed_data[col] = processed_data[col].astype(int) + else: + logger.error("Column {} not found in processed_data.".format(col)) logger.info("Data reverse-converted by IntValueFormatter.") return processed_data diff --git a/sdgx/models/base.py b/sdgx/models/base.py index f5f86bdf..a880786e 100644 --- a/sdgx/models/base.py +++ b/sdgx/models/base.py @@ -62,7 +62,7 @@ def save(self, save_dir: str | Path): raise NotImplementedError @classmethod - def load(cls, save_dir: str | Path) -> "SynthesizerModel": + def load(cls, save_dir: str | Path, **kwargs) -> "SynthesizerModel": """ Load model from file. diff --git a/sdgx/models/components/__init__.py b/sdgx/models/components/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sdgx/models/components/optimize/ndarray_loader.py b/sdgx/models/components/optimize/ndarray_loader.py index 09955d21..7d34be89 100644 --- a/sdgx/models/components/optimize/ndarray_loader.py +++ b/sdgx/models/components/optimize/ndarray_loader.py @@ -8,8 +8,12 @@ from uuid import uuid4 import numpy as np +import pandas as pd from numpy import ndarray +from sdgx.data_connectors.dataframe_connector import DataFrameConnector +from sdgx.data_loader import DataLoader + DEFAULT_CACHE_ROOT = os.getenv("SDG_NDARRAY_CACHE_ROOT", "./.ndarry_cache") @@ -20,10 +24,24 @@ class NDArrayLoader: Support for storing two-dimensional data by columns. """ - def __init__(self, cache_root: str | Path = DEFAULT_CACHE_ROOT) -> None: + def __init__(self, cache_root: str | Path = DEFAULT_CACHE_ROOT, save_to_file=True) -> None: self.store_index = 0 self.cache_root = Path(cache_root).expanduser().resolve() - self.cache_root.mkdir(exist_ok=True, parents=True) + self.save_to_file = save_to_file + if save_to_file: + self.cache_root.mkdir(exist_ok=True, parents=True) + else: + self.ndarray_list = [] + + @staticmethod + def get_auto_save(raw_data) -> NDArrayLoader: + save_to_file = True + if isinstance(raw_data, pd.DataFrame) or ( + isinstance(raw_data, DataLoader) + and isinstance(raw_data.data_connector, DataFrameConnector) + ): + save_to_file = False + return NDArrayLoader(save_to_file=save_to_file) @cached_property def subdir(self) -> str: @@ -45,22 +63,31 @@ def store(self, ndarray: ndarray): """ Spliting and storing columns of ndarry to disk, one by one. """ - self.cache_dir.mkdir(exist_ok=True, parents=True) - for ndarray in np.split(ndarray, indices_or_sections=ndarray.shape[1], axis=1): - np.save(self._get_cache_filename(self.store_index), ndarray) - self.store_index += 1 + if self.save_to_file: + self.cache_dir.mkdir(exist_ok=True, parents=True) + for ndarray in np.split(ndarray, indices_or_sections=ndarray.shape[1], axis=1): + np.save(self._get_cache_filename(self.store_index), ndarray) + self.store_index += 1 + else: + for ndarray in np.split(ndarray, indices_or_sections=ndarray.shape[1], axis=1): + self.ndarray_list.append(ndarray) + self.store_index += 1 def load(self, index: int) -> ndarray: """ Load ndarray from disk by index of column. """ - return np.load(self._get_cache_filename(int(index))) + if self.save_to_file: + return np.load(self._get_cache_filename(int(index))) + else: + return self.ndarray_list[index] def cleanup(self): - try: - shutil.rmtree(self.cache_dir, ignore_errors=True) - except AttributeError: - pass + if self.save_to_file: + try: + shutil.rmtree(self.cache_dir, ignore_errors=True) + except AttributeError: + pass self.store_index = 0 def iter(self) -> Generator[ndarray, None, None]: @@ -71,8 +98,12 @@ def get_all(self) -> ndarray: return np.concatenate([array for array in self.iter()], axis=1) @cached_property + def __shape_0(self): + return self.load(0).shape[0] + + @property def shape(self) -> tuple[int, int]: - return (self.load(0).shape[0], self.store_index) + return self.__shape_0, self.store_index def __len__(self): return self.shape[0] diff --git a/sdgx/models/components/optimize/sdv_copulas/data_transformer.py b/sdgx/models/components/optimize/sdv_copulas/data_transformer.py index a1af92b2..95b64965 100644 --- a/sdgx/models/components/optimize/sdv_copulas/data_transformer.py +++ b/sdgx/models/components/optimize/sdv_copulas/data_transformer.py @@ -6,8 +6,10 @@ DataTransformer, SpanInfo, ) -from sdgx.models.components.sdv_rdt.transformers import ClusterBasedNormalizer -from sdgx.models.components.sdv_rdt.transformers.categorical import FrequencyEncoder +from sdgx.models.components.sdv_rdt.transformers import ( + ClusterBasedNormalizer, + FrequencyEncoder, +) # TODO(Enhance) - Use different type of Encoder for discrete, like ordered columns, high cardinality columns... diff --git a/sdgx/models/components/optimize/sdv_ctgan/data_sampler.py b/sdgx/models/components/optimize/sdv_ctgan/data_sampler.py index 7d865a36..3c3e81b4 100644 --- a/sdgx/models/components/optimize/sdv_ctgan/data_sampler.py +++ b/sdgx/models/components/optimize/sdv_ctgan/data_sampler.py @@ -2,26 +2,35 @@ from __future__ import annotations +from typing import List + import numpy as np from tqdm import autonotebook as tqdm from sdgx.models.components.optimize.ndarray_loader import NDArrayLoader +from sdgx.models.components.optimize.sdv_ctgan.types import SpanInfo class DataSampler(object): """DataSampler samples the conditional vector and corresponding data for CTGAN.""" - def __init__(self, data: NDArrayLoader | np.ndarray, output_info, log_frequency): + def __init__( + self, + data: NDArrayLoader | np.ndarray, + output_info: List[List[SpanInfo]], + log_frequency: bool, + ): self._data: NDArrayLoader | np.ndarray = data - def is_discrete_column(column_info): + def is_onehot_encoding_column(column_info: List[SpanInfo]): + # Notice: Because of historical reasons, this is related to `_fit_discrete` in `DataTransformer`. return len(column_info) == 1 and column_info[0].activation_fn == "softmax" - n_discrete_columns = sum( - [1 for column_info in output_info if is_discrete_column(column_info)] + n_onehot_columns = sum( + [1 for column_info in output_info if is_onehot_encoding_column(column_info)] ) - self._discrete_column_matrix_st = np.zeros(n_discrete_columns, dtype="int32") + self._onehot_column_matrix_st = np.zeros(n_onehot_columns, dtype="int32") # Store the row id for each category in each discrete column. # For example _rid_by_cat_cols[a][b] is a list of all rows with the @@ -31,7 +40,7 @@ def is_discrete_column(column_info): # Compute _rid_by_cat_cols st = 0 for column_info in output_info: - if is_discrete_column(column_info): + if is_onehot_encoding_column(column_info): span_info = column_info[0] ed = st + span_info.dim @@ -46,40 +55,49 @@ def is_discrete_column(column_info): # Prepare an interval matrix for efficiently sample conditional vector max_category = max( - [column_info[0].dim for column_info in output_info if is_discrete_column(column_info)], + [ + column_info[0].dim + for column_info in output_info + if is_onehot_encoding_column(column_info) + ], default=0, ) - self._discrete_column_cond_st = np.zeros(n_discrete_columns, dtype="int32") - self._discrete_column_n_category = np.zeros(n_discrete_columns, dtype="int32") - self._discrete_column_category_prob = np.zeros((n_discrete_columns, max_category)) - self._n_discrete_columns = n_discrete_columns + self._onehot_column_cond_st = np.zeros(n_onehot_columns, dtype="int32") + self._onehot_column_n_category = np.zeros(n_onehot_columns, dtype="int32") + self._onehot_column_category_prob = np.zeros((n_onehot_columns, max_category)) + self._n_onehot_columns = n_onehot_columns self._n_categories = sum( - [column_info[0].dim for column_info in output_info if is_discrete_column(column_info)] + [ + column_info[0].dim + for column_info in output_info + if is_onehot_encoding_column(column_info) + ] ) st = 0 current_id = 0 current_cond_st = 0 for column_info in output_info: - if is_discrete_column(column_info): + if is_onehot_encoding_column(column_info): span_info = column_info[0] ed = st + span_info.dim category_freq = np.sum(data[:, st:ed], axis=0) if log_frequency: category_freq = np.log(category_freq + 1) category_prob = category_freq / np.sum(category_freq) - self._discrete_column_category_prob[current_id, : span_info.dim] = category_prob - self._discrete_column_cond_st[current_id] = current_cond_st - self._discrete_column_n_category[current_id] = span_info.dim + self._onehot_column_category_prob[current_id, : span_info.dim] = category_prob + self._onehot_column_cond_st[current_id] = current_cond_st + self._onehot_column_n_category[current_id] = span_info.dim current_cond_st += span_info.dim current_id += 1 st = ed else: st += sum([span_info.dim for span_info in column_info]) + assert st == data.shape[1] def _random_choice_prob_index(self, discrete_column_id): - probs = self._discrete_column_category_prob[discrete_column_id] + probs = self._onehot_column_category_prob[discrete_column_id] r = np.expand_dims(np.random.rand(probs.shape[0]), axis=1) return (probs.cumsum(axis=1) > r).argmax(axis=1) @@ -96,34 +114,34 @@ def sample_condvec(self, batch): category_id_in_col (batch): Selected category in the selected discrete column. """ - if self._n_discrete_columns == 0: + if self._n_onehot_columns == 0: return None - discrete_column_id = np.random.choice(np.arange(self._n_discrete_columns), batch) + onehot_column_id = np.random.choice(np.arange(self._n_onehot_columns), batch) cond = np.zeros((batch, self._n_categories), dtype="float32") - mask = np.zeros((batch, self._n_discrete_columns), dtype="float32") - mask[np.arange(batch), discrete_column_id] = 1 - category_id_in_col = self._random_choice_prob_index(discrete_column_id) - category_id = self._discrete_column_cond_st[discrete_column_id] + category_id_in_col + mask = np.zeros((batch, self._n_onehot_columns), dtype="float32") + mask[np.arange(batch), onehot_column_id] = 1 + category_id_in_col = self._random_choice_prob_index(onehot_column_id) + category_id = self._onehot_column_cond_st[onehot_column_id] + category_id_in_col cond[np.arange(batch), category_id] = 1 - return cond, mask, discrete_column_id, category_id_in_col + return cond, mask, onehot_column_id, category_id_in_col def sample_original_condvec(self, batch): """Generate the conditional vector for generation use original frequency.""" - if self._n_discrete_columns == 0: + if self._n_onehot_columns == 0: return None cond = np.zeros((batch, self._n_categories), dtype="float32") for i in tqdm.tqdm(range(batch), desc="Sampling in batch", delay=3, leave=False): row_idx = np.random.randint(0, len(self._data)) - col_idx = np.random.randint(0, self._n_discrete_columns) - matrix_st = self._discrete_column_matrix_st[col_idx] - matrix_ed = matrix_st + self._discrete_column_n_category[col_idx] + col_idx = np.random.randint(0, self._n_onehot_columns) + matrix_st = self._onehot_column_matrix_st[col_idx] + matrix_ed = matrix_st + self._onehot_column_n_category[col_idx] pick = np.argmax(self._data[row_idx, matrix_st:matrix_ed]) - cond[i, pick + self._discrete_column_cond_st[col_idx]] = 1 + cond[i, pick + self._onehot_column_cond_st[col_idx]] = 1 return cond @@ -150,7 +168,7 @@ def dim_cond_vec(self): def generate_cond_from_condition_column_info(self, condition_info, batch): """Generate the condition vector.""" vec = np.zeros((batch, self._n_categories), dtype="float32") - id_ = self._discrete_column_matrix_st[condition_info["discrete_column_id"]] + id_ = self._onehot_column_matrix_st[condition_info["discrete_column_id"]] id_ += condition_info["value_id"] vec[:, id_] = 1 return vec diff --git a/sdgx/models/components/optimize/sdv_ctgan/data_transformer.py b/sdgx/models/components/optimize/sdv_ctgan/data_transformer.py index f5cf275f..ed09e764 100644 --- a/sdgx/models/components/optimize/sdv_ctgan/data_transformer.py +++ b/sdgx/models/components/optimize/sdv_ctgan/data_transformer.py @@ -2,7 +2,7 @@ from __future__ import annotations -from collections import namedtuple +from typing import Any, Callable, Dict, List, NamedTuple, Tuple, Type import numpy as np import pandas as pd @@ -10,18 +10,43 @@ from tqdm import autonotebook as tqdm from sdgx.data_loader import DataLoader +from sdgx.data_models.metadata import CategoricalEncoderType, Metadata from sdgx.models.components.optimize.ndarray_loader import NDArrayLoader +from sdgx.models.components.optimize.sdv_ctgan.types import ( + ActivationFuncType, + CategoricalEncoderInstanceType, + ColumnTransformInfo, + SpanInfo, +) from sdgx.models.components.sdv_rdt.transformers import ( ClusterBasedNormalizer, + NormalizedFrequencyEncoder, + NormalizedLabelEncoder, OneHotEncoder, ) from sdgx.utils import logger -SpanInfo = namedtuple("SpanInfo", ["dim", "activation_fn"]) -ColumnTransformInfo = namedtuple( - "ColumnTransformInfo", - ["column_name", "column_type", "transform", "output_info", "output_dimensions"], +CategoricalEncoderParams = NamedTuple( + "CategoricalEncoderParams", + ( + ("encoder", Callable[[], CategoricalEncoderInstanceType]), + ("categories_caculator", Callable[[CategoricalEncoderInstanceType], int]), + ("activate_fn", ActivationFuncType), + ), ) +CategoricalEncoderMapper: Dict[CategoricalEncoderType, CategoricalEncoderParams] = { + CategoricalEncoderType.ONEHOT: CategoricalEncoderParams( + lambda: OneHotEncoder(), lambda encoder: len(encoder.dummies), ActivationFuncType.SOFTMAX + ), + CategoricalEncoderType.LABEL: CategoricalEncoderParams( + lambda: NormalizedLabelEncoder(order_by="alphabetical"), + lambda encoder: 1, + ActivationFuncType.LINEAR, + ), + CategoricalEncoderType.FREQUENCY: CategoricalEncoderParams( + lambda: NormalizedFrequencyEncoder(), lambda encoder: 1, ActivationFuncType.LINEAR + ), +} class DataTransformer(object): @@ -31,7 +56,7 @@ class DataTransformer(object): Discrete columns are encoded using a scikit-learn OneHotEncoder. """ - def __init__(self, max_clusters=10, weight_threshold=0.005): + def __init__(self, max_clusters=10, weight_threshold=0.005, metadata=None): """Create a data transformer. Args: @@ -40,9 +65,23 @@ def __init__(self, max_clusters=10, weight_threshold=0.005): weight_threshold (float): Weight threshold for a Gaussian distribution to be kept. """ + self.metadata: Metadata = metadata self._max_clusters = max_clusters self._weight_threshold = weight_threshold + def _fit_categorical_encoder( + self, column_name: str, data: pd.DataFrame, encoder_type: CategoricalEncoderType + ) -> Tuple[CategoricalEncoderInstanceType, int, ActivationFuncType]: + if encoder_type not in CategoricalEncoderMapper.keys(): + raise ValueError("Unsupported encoder type {0}.".format(encoder_type)) + p: CategoricalEncoderParams = CategoricalEncoderMapper[encoder_type] + encoder = p.encoder() + encoder.fit(data, column_name) + num_categories = p.categories_caculator(encoder) + # Notice: if `activate_fn` is modified, the function `is_onehot_encoding_column` in `DataSampler` should also be modified. + activate_fn = p.activate_fn + return encoder, num_categories, activate_fn + def _fit_continuous(self, data): """Train Bayesian GMM for continuous columns. @@ -67,7 +106,7 @@ def _fit_continuous(self, data): output_dimensions=1 + num_components, ) - def _fit_discrete(self, data): + def _fit_discrete(self, data, encoder_type: CategoricalEncoderType = None): """Fit one hot encoder for discrete column. Args: @@ -78,16 +117,46 @@ def _fit_discrete(self, data): namedtuple: A ``ColumnTransformInfo`` object. """ + encoder, activate_fn, selected_encoder_type = None, None, None column_name = data.columns[0] - ohe = OneHotEncoder() - ohe.fit(data, column_name) - num_categories = len(ohe.dummies) + + # Load encoder from metadata + if encoder_type is None and self.metadata: + selected_encoder_type = encoder_type = self.metadata.get_column_encoder_by_name( + column_name + ) + # if the encoder is not be specified, using onehot. + if encoder_type is None: + encoder_type = "onehot" + # if the encoder is onehot, or not be specified. + num_categories = -1 # if zero may cause crash to onehot. + if encoder_type == "onehot": + encoder, num_categories, activate_fn = self._fit_categorical_encoder( + column_name, data, encoder_type + ) + + # if selected_encoder_type is not specified and using onehot num_categories > threshold, change the encoder. + if not selected_encoder_type and self.metadata and num_categories != -1: + encoder_type = ( + self.metadata.get_column_encoder_by_categorical_threshold(num_categories) + or encoder_type + ) + + if encoder_type == "onehot": + pass + else: + encoder, num_categories, activate_fn = self._fit_categorical_encoder( + column_name, data, encoder_type + ) + + assert encoder and activate_fn return ColumnTransformInfo( column_name=column_name, column_type="discrete", - transform=ohe, - output_info=[SpanInfo(num_categories, "softmax")], + transform=encoder, + output_info=[SpanInfo(num_categories, activate_fn)], + # Notice: if `output_info` is modified, the function `is_onehot_encoding_column` in `DataSampler` should also be modified. output_dimensions=num_categories, ) @@ -99,14 +168,15 @@ def fit(self, data_loader: DataLoader, discrete_columns=()): This step also counts the #columns in matrix data and span information. """ - self.output_info_list = [] - self.output_dimensions = 0 - self.dataframe = True + self.output_info_list: List[List[SpanInfo]] = [] + self.output_dimensions: int = 0 + self.dataframe: bool = True self._column_raw_dtypes = data_loader[: data_loader.chunksize].infer_objects().dtypes - self._column_transform_info_list = [] + self._column_transform_info_list: List[ColumnTransformInfo] = [] for column_name in tqdm.tqdm(data_loader.columns(), desc="Preparing data", delay=3): if column_name in discrete_columns: + # or column_name in self.metadata.label_columns logger.debug(f"Fitting discrete column {column_name}...") column_transform_info = self._fit_discrete(data_loader[[column_name]]) else: @@ -136,15 +206,15 @@ def _transform_continuous(self, column_transform_info, data): def _transform_discrete(self, column_transform_info, data): logger.debug(f"Transforming discrete column {column_transform_info.column_name}...") - ohe = column_transform_info.transform - return ohe.transform(data).to_numpy() + encoder = column_transform_info.transform + return encoder.transform(data).to_numpy() def _synchronous_transform(self, raw_data, column_transform_info_list) -> NDArrayLoader: """Take a Pandas DataFrame and transform columns synchronous. Outputs a list with Numpy arrays. """ - loader = NDArrayLoader() + loader = NDArrayLoader.get_auto_save(raw_data) for column_transform_info in column_transform_info_list: column_name = column_transform_info.column_name data = raw_data[[column_name]] @@ -173,7 +243,7 @@ def _parallel_transform(self, raw_data, column_transform_info_list) -> NDArrayLo p = Parallel(n_jobs=-1, return_as="generator") - loader = NDArrayLoader() + loader = NDArrayLoader.get_auto_save(raw_data) for ndarray in tqdm.tqdm( p(processes), desc="Transforming data", total=len(processes), delay=3 ): @@ -214,9 +284,12 @@ def inverse_transform(self, data, sigmas=None): Output uses the same type as input to the transform function. Either np array or pd dataframe. """ + + # TODO using pd.df.apply to increase performance. st = 0 recovered_column_data_list = [] column_names = [] + for column_transform_info in tqdm.tqdm( self._column_transform_info_list, desc="Inverse transforming", delay=3 ): @@ -230,7 +303,6 @@ def inverse_transform(self, data, sigmas=None): recovered_column_data = self._inverse_transform_discrete( column_transform_info, column_data ) - recovered_column_data_list.append(recovered_column_data) column_names.append(column_transform_info.column_name) st += dim @@ -241,7 +313,6 @@ def inverse_transform(self, data, sigmas=None): ) if not self.dataframe: recovered_data = recovered_data.to_numpy() - return recovered_data def convert_column_name_value_to_id(self, column_name, value): diff --git a/sdgx/models/components/optimize/sdv_ctgan/types.py b/sdgx/models/components/optimize/sdv_ctgan/types.py new file mode 100644 index 00000000..945c1b28 --- /dev/null +++ b/sdgx/models/components/optimize/sdv_ctgan/types.py @@ -0,0 +1,55 @@ +from __future__ import annotations + +from enum import unique +from typing import List, Union + +from sdgx.models.components.sdv_rdt.transformers import ( + ClusterBasedNormalizer, + NormalizedFrequencyEncoder, + NormalizedLabelEncoder, + OneHotEncoder, +) +from sdgx.models.components.utils import StrValuedBaseEnum + +CategoricalEncoderInstanceType = Union[ + OneHotEncoder, NormalizedFrequencyEncoder, NormalizedLabelEncoder +] +ContinuousEncoderInstanceType = Union[ClusterBasedNormalizer] +TransformerEncoderInstanceType = Union[ + CategoricalEncoderInstanceType, ContinuousEncoderInstanceType +] + + +@unique +class ActivationFuncType(StrValuedBaseEnum): + SOFTMAX = "softmax" + TANH = "tanh" + LINEAR = "linear" + + +@unique +class ColumnTransformType(StrValuedBaseEnum): + DISCRETE = "discrete" + CONTINUOUS = "continuous" + + +class SpanInfo: + def __init__(self, dim: int, activation_fn: ActivationFuncType | str): + self.dim: int = dim + self.activation_fn: ActivationFuncType = ActivationFuncType(activation_fn) + + +class ColumnTransformInfo: + def __init__( + self, + column_name: str, + column_type: ColumnTransformType | str, + transform: TransformerEncoderInstanceType, + output_info: List[SpanInfo], + output_dimensions: int, + ): + self.column_name: str = column_name + self.column_type: ColumnTransformType = ColumnTransformType(column_type) + self.transform: TransformerEncoderInstanceType = transform + self.output_info: List[SpanInfo] = output_info + self.output_dimensions: int = output_dimensions diff --git a/sdgx/models/components/sdv_ctgan/synthesizers/base.py b/sdgx/models/components/sdv_ctgan/synthesizers/base.py index 51bb91be..4ddfafae 100644 --- a/sdgx/models/components/sdv_ctgan/synthesizers/base.py +++ b/sdgx/models/components/sdv_ctgan/synthesizers/base.py @@ -1,6 +1,9 @@ """BaseSynthesizer module.""" import contextlib +import warnings +from pathlib import Path +from typing import Union import cloudpickle import numpy as np @@ -109,8 +112,10 @@ def save(self, path): self.set_device(device_backup) @classmethod - def load(cls, path, device="cuda" if torch.cuda.is_available() else "cpu"): - """Load the model stored in the passed `path`.""" + def load( + cls, path: Union[str, Path], device: str = "cuda" if torch.cuda.is_available() else "cpu" + ): + """Load the model stored in the passed arg `path`.""" with open(path, "rb") as f: model = cloudpickle.load(f) model.set_device(device) @@ -142,3 +147,16 @@ def set_random_state(self, random_state): f"`random_state` {random_state} expected to be an int or a tuple of " "(`np.random.RandomState`, `torch.Generator`)" ) + + +class BatchedSynthesizer(BaseSynthesizer): + def __init__(self, batch_size, **kwargs): + self._batch_size = batch_size + super().__init__(**kwargs) + + def get_batch_size(self): + return self._batch_size + + def set_batch_size(self, b: int): + warnings.warn("Reset batch_size may caused unintentional behavior.") + self._batch_size = b diff --git a/sdgx/models/components/sdv_ctgan/synthesizers/ctgan.py b/sdgx/models/components/sdv_ctgan/synthesizers/ctgan.py index d75c0276..542bb5ec 100644 --- a/sdgx/models/components/sdv_ctgan/synthesizers/ctgan.py +++ b/sdgx/models/components/sdv_ctgan/synthesizers/ctgan.py @@ -21,7 +21,7 @@ from sdgx.models.components.sdv_ctgan.data_sampler import DataSampler from sdgx.models.components.sdv_ctgan.data_transformer import DataTransformer from sdgx.models.components.sdv_ctgan.synthesizers.base import ( - BaseSynthesizer, + BatchedSynthesizer, random_state, ) @@ -108,7 +108,7 @@ def forward(self, input_): return data -class CTGAN(BaseSynthesizer): +class CTGAN(BatchedSynthesizer): """Conditional Table GAN Synthesizer. This is the core class of the CTGAN project, where the different components @@ -173,6 +173,7 @@ def __init__( cuda=True, ): assert batch_size % 2 == 0 + super().__init__(batch_size) self._embedding_dim = embedding_dim self._generator_dim = generator_dim @@ -183,7 +184,6 @@ def __init__( self._discriminator_lr = discriminator_lr self._discriminator_decay = discriminator_decay - self._batch_size = batch_size self._discriminator_steps = discriminator_steps self._log_frequency = log_frequency self._verbose = verbose @@ -263,7 +263,7 @@ def _cond_loss(self, data, c, m): for column_info in self._transformer.output_info_list: for span_info in column_info: if len(column_info) != 1 or span_info.activation_fn != "softmax": - # not discrete column + # not onehot column st += span_info.dim else: ed = st + span_info.dim diff --git a/sdgx/models/components/sdv_ctgan/synthesizers/tvae.py b/sdgx/models/components/sdv_ctgan/synthesizers/tvae.py index 3588cdee..997a0201 100644 --- a/sdgx/models/components/sdv_ctgan/synthesizers/tvae.py +++ b/sdgx/models/components/sdv_ctgan/synthesizers/tvae.py @@ -9,7 +9,7 @@ from sdgx.models.components.sdv_ctgan.data_transformer import DataTransformer from sdgx.models.components.sdv_ctgan.synthesizers.base import ( - BaseSynthesizer, + BatchedSynthesizer, random_state, ) @@ -103,7 +103,7 @@ def _loss_function(recon_x, x, sigmas, mu, logvar, output_info, factor): return sum(loss) * factor / x.size()[0], KLD / x.size()[0] -class TVAE(BaseSynthesizer): +class TVAE(BatchedSynthesizer): """TVAE.""" def __init__( @@ -117,12 +117,12 @@ def __init__( loss_factor=2, cuda=True, ): + super().__init__(batch_size) self.embedding_dim = embedding_dim self.compress_dims = compress_dims self.decompress_dims = decompress_dims self.l2scale = l2scale - self.batch_size = batch_size self.loss_factor = loss_factor self.epochs = epochs @@ -152,7 +152,7 @@ def fit(self, train_data, discrete_columns=()): self.transformer.fit(train_data, discrete_columns) train_data = self.transformer.transform(train_data) dataset = TensorDataset(torch.from_numpy(train_data.astype("float32")).to(self._device)) - loader = DataLoader(dataset, batch_size=self.batch_size, shuffle=True, drop_last=False) + loader = DataLoader(dataset, batch_size=self._batch_size, shuffle=True, drop_last=False) data_dim = self.transformer.output_dimensions encoder = Encoder(data_dim, self.compress_dims, self.embedding_dim).to(self._device) @@ -196,10 +196,10 @@ def sample(self, samples): """ self.decoder.eval() - steps = samples // self.batch_size + 1 + steps = samples // self._batch_size + 1 data = [] for _ in range(steps): - mean = torch.zeros(self.batch_size, self.embedding_dim) + mean = torch.zeros(self._batch_size, self.embedding_dim) std = mean + 1 noise = torch.normal(mean=mean, std=std).to(self._device) fake, sigmas = self.decoder(noise) diff --git a/sdgx/models/components/sdv_rdt/transformers/__init__.py b/sdgx/models/components/sdv_rdt/transformers/__init__.py index fefb12f9..a15bc928 100644 --- a/sdgx/models/components/sdv_rdt/transformers/__init__.py +++ b/sdgx/models/components/sdv_rdt/transformers/__init__.py @@ -12,6 +12,8 @@ CustomLabelEncoder, FrequencyEncoder, LabelEncoder, + NormalizedFrequencyEncoder, + NormalizedLabelEncoder, OneHotEncoder, ) from sdgx.models.components.sdv_rdt.transformers.datetime import ( @@ -41,6 +43,8 @@ "LabelEncoder", "NullTransformer", "OneHotEncoder", + "NormalizedLabelEncoder", + "NormalizedFrequencyEncoder", "OptimizedTimestampEncoder", "UnixTimestampEncoder", "RegexGenerator", @@ -81,7 +85,6 @@ def get_transformer_name(transformer): for transformer in BaseTransformer.get_subclasses() } - DEFAULT_TRANSFORMERS = { "numerical": FloatFormatter(missing_value_replacement="mean"), "categorical": FrequencyEncoder(), diff --git a/sdgx/models/components/sdv_rdt/transformers/categorical.py b/sdgx/models/components/sdv_rdt/transformers/categorical.py index 9753145e..c132b90a 100644 --- a/sdgx/models/components/sdv_rdt/transformers/categorical.py +++ b/sdgx/models/components/sdv_rdt/transformers/categorical.py @@ -1,5 +1,6 @@ """Transformers for categorical data.""" +import math import warnings import numpy as np @@ -68,7 +69,7 @@ def is_transform_deterministic(self): return not self.add_noise @staticmethod - def _get_intervals(data): + def _get_intervals(data, normalized=False): """Compute intervals for each categorical value. Args: @@ -82,15 +83,15 @@ def _get_intervals(data): data = data.fillna(np.nan) frequencies = data.value_counts(dropna=False) - start = 0 - end = 0 + start = -1.0 if normalized else 0.0 + end = 0.0 elements = len(data) + probes = frequencies / (elements / 2.0) if normalized else frequencies / elements intervals = {} means = [] starts = [] - for value, frequency in frequencies.items(): - prob = frequency / elements + for value, prob in probes.items(): end = start + prob mean = start + prob / 2 std = prob / 6 @@ -230,7 +231,7 @@ def _reverse_transform_by_row(self, data): """Reverse transform the data by iterating over each row.""" return data.apply(self._get_category_from_start).astype(self.dtype) - def _reverse_transform(self, data): + def _reverse_transform(self, data, normalize=False): """Convert float values back to the original categorical values. Args: @@ -240,7 +241,7 @@ def _reverse_transform(self, data): Returns: pandas.Series """ - data = data.clip(0, 1) + data = data.clip(-1 if normalize else 0, 1) num_rows = len(data) num_categories = len(self.means) @@ -485,6 +486,7 @@ def _fit(self, data): unique_data = pd.unique(data.fillna(np.nan)) unique_data = self._order_categories(unique_data) self.values_to_categories = dict(enumerate(unique_data)) + self.categories_to_values = { category: value for value, category in self.values_to_categories.items() } @@ -540,6 +542,79 @@ def _reverse_transform(self, data): return data.round().map(self.values_to_categories) +class NormalizedLabelEncoder(LabelEncoder): + """Same to the LabelEncoder except the transform result will be [-1, 1] instead of positive integer.""" + + def __init__(self, order_by=None): + super().__init__(False, order_by) + self._round_digit = None + + def _order_categories(self, unique_data): + # TODO for more check + if self.order_by == "alphabetical": + if unique_data.dtype.type not in [np.str_, np.object_]: + pass + + elif self.order_by == "numerical_value": + if not np.issubdtype(unique_data.dtype.type, np.number): + pass + + if self.order_by is not None: + nans = pd.isna(unique_data) + unique_data = np.sort(unique_data[~nans]) + if nans.any(): + unique_data = np.append(unique_data, [np.nan]) + + return unique_data + + def _fit(self, data): + """Fit the transformer to the data. + + Generate a unique integer representation for each category and + store them in the ``categories_to_values`` dict and its reverse + ``values_to_categories``. + + Args: + data (pandas.Series): + Data to fit the transformer to. + """ + unique_data = pd.unique(data.fillna(np.nan)) + unique_data = self._order_categories(unique_data) + + def normalize_array_to_dict(arr): + n = len(arr) + digit = math.ceil(math.log10(n)) + 1 + self._round_digit = digit + normalized_dict = {round((2 * i / (n - 1)) - 1, digit): arr[i] for i in range(n)} + return normalized_dict + + self.values_to_categories = normalize_array_to_dict(unique_data) + + self.categories_to_values = { + category: value for value, category in self.values_to_categories.items() + } + + def _reverse_transform(self, data): + """Convert float values back to the original categorical values. + + Args: + data (pd.Series or numpy.ndarray): + Data to revert. + + Returns: + pandas.Series + """ + value_dict_keys = self.values_to_categories.keys() + value_dict = self.values_to_categories + + def find_nearest_key(x): + nearest_key = min(value_dict_keys, key=lambda k: abs(k - x)) + return value_dict[nearest_key] + + data: pd.Series = data.clip(min(self.values_to_categories), max(self.values_to_categories)) + return data.apply(find_nearest_key) + + class CustomLabelEncoder(LabelEncoder): """Custom label encoder for categorical data. @@ -584,3 +659,22 @@ def _fit(self, data): self.categories_to_values = { category: value for value, category in self.values_to_categories.items() } + + +class NormalizedFrequencyEncoder(FrequencyEncoder): + """Same to FrequencyEncoder except the transform result is in [-1, 1] instead of [0, 1]""" + + def _fit(self, data): + """Fit the transformer to the data. + + Compute the intervals for each categorical value. + + Args: + data (pandas.Series): + Data to fit the transformer to. + """ + self.dtype = data.dtype + self.intervals, self.means, self.starts = self._get_intervals(data, normalized=True) + + def _reverse_transform(self, data): + return super()._reverse_transform(data, True) diff --git a/sdgx/models/components/utils.py b/sdgx/models/components/utils.py index e251ef6c..0520acb1 100644 --- a/sdgx/models/components/utils.py +++ b/sdgx/models/components/utils.py @@ -1,6 +1,57 @@ +from enum import Enum, EnumMeta +from functools import cached_property +from typing import Iterable, List + import numpy as np +class StrValuedEnumMeta(EnumMeta): + + def __str__(self): + return str(self.values) + + __repr__ = __str__ + + def __contains__(cls, item): + if isinstance(item, str): + return item in cls.values + elif isinstance(item, Iterable): + a = np.array(list(item)).astype(str) + if len(a.shape) == 0 or a.shape[0] == 0: + return True + values = set(a) + return values.issubset(set(cls.values)) + else: + super().__contains__(item) + + +class StrValuedBaseEnum(Enum, metaclass=StrValuedEnumMeta): + def __hash__(self): + return hash(self.value) + + @property + def value(self): + return str(super().value) + + @classmethod + @property + def values(cls) -> set: + if not hasattr(cls, "__VALUES"): + cls.__VALUES = {i.value for i in cls} + return cls.__VALUES + + def __eq__(self, other) -> bool: + if isinstance(other, type(self)): + return self.value == other.value + elif isinstance(other, str): + return self.value == other + else: + return False + + def __str__(self): + return self.value + + def flatten_array(nested, prefix=""): """Flatten an array as a dict. diff --git a/sdgx/models/manager.py b/sdgx/models/manager.py index 320c9303..232347c2 100644 --- a/sdgx/models/manager.py +++ b/sdgx/models/manager.py @@ -35,7 +35,7 @@ def init_model(self, model_name, **kwargs: dict[str, Any]) -> SynthesizerModel: return self.init(model_name, **kwargs) - def load(self, model: type[SynthesizerModel] | str, model_path) -> SynthesizerModel: + def load(self, model: type[SynthesizerModel] | str, model_path, **kwargs) -> SynthesizerModel: if not (isinstance(model, type) or isinstance(model, str)): raise ManagerLoadModelError( "model must be type of SynthesizerModel or str for model_name" @@ -48,6 +48,6 @@ def load(self, model: type[SynthesizerModel] | str, model_path) -> SynthesizerMo model = model if isinstance(model, type) else self.registed_models[model] try: - return model.load(model_path) + return model.load(model_path, **kwargs) except Exception as e: raise ManagerLoadModelError(e) diff --git a/sdgx/models/ml/single_table/ctgan.py b/sdgx/models/ml/single_table/ctgan.py index 9bbaa6f2..39f90daf 100644 --- a/sdgx/models/ml/single_table/ctgan.py +++ b/sdgx/models/ml/single_table/ctgan.py @@ -1,8 +1,9 @@ from __future__ import annotations +import math import time from pathlib import Path -from typing import List +from typing import List, Optional import numpy as np import pandas as pd @@ -29,7 +30,10 @@ from sdgx.models.components.sdv_ctgan.synthesizers.base import ( BaseSynthesizer as SDVBaseSynthesizer, ) -from sdgx.models.components.sdv_ctgan.synthesizers.base import random_state +from sdgx.models.components.sdv_ctgan.synthesizers.base import ( + BatchedSynthesizer, + random_state, +) from sdgx.models.extension import hookimpl from sdgx.models.ml.single_table.base import MLSynthesizerModel from sdgx.utils import logger @@ -117,7 +121,7 @@ def forward(self, input_): return data -class CTGANSynthesizerModel(MLSynthesizerModel, SDVBaseSynthesizer): +class CTGANSynthesizerModel(MLSynthesizerModel, BatchedSynthesizer): """ Modified from ``sdgx.models.components.sdv_ctgan.synthesizers.ctgan.CTGANSynthesizer``. A CTGANSynthesizer but provided :ref:`SynthesizerModel` interface with chunked fit. @@ -182,7 +186,7 @@ def __init__( device="cuda" if torch.cuda.is_available() else "cpu", ): assert batch_size % 2 == 0 - + BatchedSynthesizer.__init__(self, batch_size=batch_size) self._embedding_dim = embedding_dim self._generator_dim = generator_dim self._discriminator_dim = discriminator_dim @@ -192,7 +196,6 @@ def __init__( self._discriminator_lr = discriminator_lr self._discriminator_decay = discriminator_decay - self._batch_size = batch_size self._discriminator_steps = discriminator_steps self._log_frequency = log_frequency self._epochs = epochs @@ -201,11 +204,11 @@ def __init__( self._device = torch.device(device) # Following components are initialized in `_pre_fit` - self._transformer = None - self._data_sampler = None + self._transformer: Optional[DataTransformer] = None + self._data_sampler: Optional[DataSampler] = None self._generator = None - self._ndarry_loader = None - self.data_dim = None + self._ndarry_loader: Optional[NDArrayLoader] = None + self.data_dim: Optional[int] = None def fit(self, metadata: Metadata, dataloader: DataLoader, epochs=None, *args, **kwargs): # In the future, sdgx use `sdgx.data_processor.transformers.discrete` to handle discrete_columns @@ -214,7 +217,7 @@ def fit(self, metadata: Metadata, dataloader: DataLoader, epochs=None, *args, ** discrete_columns = list(metadata.get("discrete_columns")) if epochs is not None: self._epochs = epochs - self._pre_fit(dataloader, discrete_columns) + self._pre_fit(dataloader, discrete_columns, metadata) if self.fit_data_empty: logger.info("CTGAN fit finished because of empty df detected.") return @@ -222,7 +225,9 @@ def fit(self, metadata: Metadata, dataloader: DataLoader, epochs=None, *args, ** self._fit(len(self._ndarry_loader)) logger.info("CTGAN training finished.") - def _pre_fit(self, dataloader: DataLoader, discrete_columns: list[str] = None) -> NDArrayLoader: + def _pre_fit( + self, dataloader: DataLoader, discrete_columns: list[str] = None, metadata: Metadata = None + ): if not discrete_columns: discrete_columns = [] @@ -232,7 +237,7 @@ def _pre_fit(self, dataloader: DataLoader, discrete_columns: list[str] = None) - if self.fit_data_empty: return # Fit Transformer and DataSampler - self._transformer = DataTransformer() + self._transformer = DataTransformer(metadata=metadata) logger.info("Fitting model's transformer...") self._transformer.fit(dataloader, discrete_columns) logger.info("Transforming data...") @@ -254,12 +259,7 @@ def _pre_fit(self, dataloader: DataLoader, discrete_columns: list[str] = None) - @random_state def _fit(self, data_size: int): - """Fit the CTGAN Synthesizer models to the training data. - - Args: - dataloader: :ref:`DataLoader` for the training data processed by :ref:`DataProcessor`. - - """ + """Fit the CTGAN Synthesizer models to the training data.""" logger.info(f"Fit using data_size:{data_size}, data_dim: {self.data_dim}.") epochs = self._epochs # data_dim = self._transformer.output_dimensions @@ -378,7 +378,7 @@ def sample(self, count: int, *args, **kwargs) -> pd.DataFrame: return self._sample(count, *args, **kwargs) @random_state - def _sample(self, n, condition_column=None, condition_value=None): + def _sample(self, n, condition_column=None, condition_value=None, drop_more=True): """Sample data similar to the training data. Choosing a condition_column and condition_value will increase the probability of the @@ -406,9 +406,9 @@ def _sample(self, n, condition_column=None, condition_value=None): else: global_condition_vec = None - steps = n // self._batch_size + 1 + steps = math.ceil(n / self._batch_size) data = [] - for i in tqdm.tqdm(range(steps), desc="Sampling batches", delay=3): + for _ in tqdm.tqdm(range(steps), desc="Sampling batches", delay=3): mean = torch.zeros(self._batch_size, self._embedding_dim) std = mean + 1 fakez = torch.normal(mean=mean, std=std).to(self._device) @@ -430,8 +430,9 @@ def _sample(self, n, condition_column=None, condition_value=None): data.append(fakeact.detach().cpu().numpy()) data = np.concatenate(data, axis=0) - data = data[:n] - + logger.info("CTGAN Generated {} raw samples.".format(data.shape[0])) + if drop_more: + data = data[:n] return self._transformer.inverse_transform(data) def save(self, save_dir: str | Path): @@ -439,8 +440,8 @@ def save(self, save_dir: str | Path): return SDVBaseSynthesizer.save(self, save_dir / self.MODEL_SAVE_NAME) @classmethod - def load(cls, save_dir: str | Path) -> "CTGANSynthesizerModel": - return SDVBaseSynthesizer.load(save_dir / cls.MODEL_SAVE_NAME) + def load(cls, save_dir: str | Path, device: str = None) -> "CTGANSynthesizerModel": + return SDVBaseSynthesizer.load(save_dir / cls.MODEL_SAVE_NAME, device) @staticmethod def _gumbel_softmax(logits, tau=1, hard=False, eps=1e-10, dim=-1): @@ -489,6 +490,12 @@ def _apply_activate(self, data): transformed = self._gumbel_softmax(data[:, st:ed], tau=0.2) data_t.append(transformed) st = ed + elif span_info.activation_fn == "linear": + # for label encoder + ed = st + span_info.dim + transformed = data[:, st:ed].clone() + data_t.append(transformed) + st = ed else: raise ValueError(f"Unexpected activation function {span_info.activation_fn}.") diff --git a/sdgx/synthesizer.py b/sdgx/synthesizer.py index efdf7177..90abf407 100644 --- a/sdgx/synthesizer.py +++ b/sdgx/synthesizer.py @@ -5,6 +5,7 @@ from typing import Any, Generator import pandas as pd +from tqdm import autonotebook as tqdm from sdgx.data_connectors.base import DataConnector from sdgx.data_connectors.generator_connector import GeneratorConnector @@ -15,7 +16,9 @@ from sdgx.data_processors.manager import DataProcessorManager from sdgx.exceptions import SynthesizerInitError, SynthesizerSampleError from sdgx.models.base import SynthesizerModel +from sdgx.models.components.sdv_ctgan.synthesizers.base import BatchedSynthesizer from sdgx.models.manager import ModelManager +from sdgx.models.ml.single_table.ctgan import CTGANSynthesizerModel from sdgx.models.statistics.single_table.base import StatisticSynthesizerModel from sdgx.utils import logger @@ -138,7 +141,7 @@ def __init__( ) if (isinstance(model, str) or isinstance(model, type)) and model_path: # Load model by cls or str - self.model = self.model_manager.load(model, model_path) + self.model = self.model_manager.load(model, model_path, **(model_kwargs or {})) if model_kwargs: logger.warning("model_kwargs will be ignored when loading model from model_path") elif isinstance(model, str) or isinstance(model, type): @@ -189,6 +192,7 @@ def load( processed_data_loaders_kwargs: None | dict[str, Any] = None, data_processors: None | list[str | DataProcessor | type[DataProcessor]] = None, data_processors_kwargs: None | dict[str, dict[str, Any]] = None, + model_kwargs=None, ) -> "Synthesizer": """ Load metadata and model, allow rebuilding Synthesizer for finetuning or other use cases. @@ -233,6 +237,7 @@ def load( model_path=model_path, metadata=metadata, metadata_path=metadata_path, + model_kwargs=model_kwargs, data_connector=data_connector, data_connector_kwargs=data_connector_kwargs, raw_data_loaders_kwargs=raw_data_loaders_kwargs, @@ -287,7 +292,8 @@ def fit( inspector_init_kwargs=inspector_init_kwargs, ) ) - self.metadata = metadata # Ensure update metadata + # Some processors may cause metadata update before model fitting, we need to make a copy. + self.metadata = metadata.model_copy() # Ensure update metadata logger.info("Fitting data processors...") if not self.dataloader: @@ -391,13 +397,28 @@ def _sample_once( missing_count = count max_trails = 50 sample_data_list = [] + psb = tqdm.tqdm(total=count, desc="Sampling") + + # To improve batched model performance, such as tvae or ctgan. + batch_size: int = 0 + multiply_factor: float = 4.0 + if isinstance(self.model, BatchedSynthesizer): + batch_size = self.model.get_batch_size() + multiply_factor = 1.2 + if isinstance(self.model, CTGANSynthesizerModel): + model_sample_args = {"drop_more": False} + while missing_count > 0 and max_trails > 0: - sample_data = self.model.sample(int(missing_count * 4), **model_sample_args) + sample_data = self.model.sample( + max(int(missing_count * multiply_factor), batch_size), **model_sample_args + ) + # TODO table separated parallel process for d in self.data_processors: sample_data = d.reverse_convert(sample_data) sample_data = sample_data.dropna(how="all") sample_data_list.append(sample_data) missing_count = missing_count - len(sample_data) + psb.update(len(sample_data)) max_trails -= 1 return pd.concat(sample_data_list)[:count] diff --git a/tests/data_connector/test_dataframe_connector.py b/tests/data_connector/test_dataframe_connector.py new file mode 100644 index 00000000..56f307af --- /dev/null +++ b/tests/data_connector/test_dataframe_connector.py @@ -0,0 +1,34 @@ +import pandas as pd +import pytest +from pandas.testing import assert_frame_equal + +from sdgx.data_connectors.dataframe_connector import DataFrameConnector + + +@pytest.fixture +def data_for_test(): + return pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]}) + + +def test_dataframe_connector(data_for_test): + df = data_for_test.copy() + c = DataFrameConnector(data_for_test) + assert c._columns() == ["a", "b"] + assert_frame_equal(c._read(), df) + assert_frame_equal(c._read(offset=1), df[1:]) + assert_frame_equal(c._read(offset=2), df[2:]) + assert c._read(offset=3) is None + + assert_frame_equal(c._read(offset=0), df) + assert c._read(offset=5555) is None + + # iter + for d, g in zip(c.iter(chunksize=3), [data_for_test]): + assert_frame_equal(d, g) + + for d, g in zip(c.iter(chunksize=2), [data_for_test[:2], data_for_test[2:]]): + assert_frame_equal(d, g) + + +if __name__ == "__main__": + pytest.main(["-vv", "-s", __file__]) diff --git a/tests/data_models/test_enums.py b/tests/data_models/test_enums.py new file mode 100644 index 00000000..9fb17931 --- /dev/null +++ b/tests/data_models/test_enums.py @@ -0,0 +1,23 @@ +import pytest + +from sdgx.models.components.utils import StrValuedBaseEnum as SE + + +class A(SE): + a = "1" + b = "2" + + +def test_se(): + a = A("1") + b = A("2") + assert isinstance(a.value, str) and a.value == "1" + assert b.value == "2" + assert A.values == {"1", "2"} + assert a != b + assert ["1", "2", "3"] not in A + assert "1" in A + assert ["2"] in A + assert ["1", "2"] in A + assert "1" == a + assert 1 != a diff --git a/tests/data_models/test_metadata.py b/tests/data_models/test_metadata.py index f3a82adb..85916d19 100644 --- a/tests/data_models/test_metadata.py +++ b/tests/data_models/test_metadata.py @@ -6,7 +6,8 @@ from sdgx.data_connectors.csv_connector import CsvConnector from sdgx.data_loader import DataLoader -from sdgx.data_models.metadata import Metadata +from sdgx.data_models.metadata import CategoricalEncoderType, Metadata +from sdgx.exceptions import MetadataInvalidError @pytest.fixture @@ -30,11 +31,32 @@ def test_metadata(metadata: Metadata): assert metadata.float_columns == metadata.get("float_columns") metadata.set("a", "something") - assert metadata.get("a") == set(["something"]) + assert metadata.get("a") == {"something"} assert metadata._dump_json() +def test_change_metadata(metadata: Metadata): + metadata = metadata.model_copy() + col = "age" + assert col in metadata.int_columns + assert col not in metadata.datetime_columns + metadata.change_column_type(col, "int", "datetime") + assert col in metadata.datetime_columns + assert col not in metadata.int_columns + metadata.change_column_type(col, "datetime", "int") + assert col in metadata.int_columns + assert col not in metadata.datetime_columns + + +def test_remove_metadata(metadata: Metadata): + metadata = metadata.model_copy() + col = "age" + assert col in metadata.int_columns + metadata.remove_column([col]) + assert col not in metadata.int_columns + + def test_metadata_save_load(metadata: Metadata, tmp_path: Path): test_path = tmp_path / "metadata_path_test.json" metadata.save(test_path) @@ -48,7 +70,7 @@ def test_metadata_primary_key(metadata: Metadata): metadata.add("id_columns", "fnlwgt") # set fnlwgt as primary key metadata.update_primary_key(["fnlwgt"]) - assert metadata.primary_keys == set(["fnlwgt"]) + assert metadata.primary_keys == {"fnlwgt"} def test_metadata_primary_query_filed_tags(): @@ -117,5 +139,30 @@ def test_demo_multi_table_data_metadata_child(demo_multi_data_child_matadata): assert "column_data_type" in demo_multi_data_child_matadata.dump().keys() +def test_meta_encoder(metadata: Metadata): + metadata = metadata.model_copy() + metadata.categorical_threshold = {1: "aaa"} + with pytest.raises(MetadataInvalidError): + metadata.check() + metadata.categorical_threshold[1] = CategoricalEncoderType.ONEHOT + metadata.check() + metadata.categorical_threshold["1"] = CategoricalEncoderType.ONEHOT + with pytest.raises(MetadataInvalidError): + metadata.check() + del metadata.categorical_threshold["1"] + assert "education" in metadata.discrete_columns + metadata.categorical_encoder = { + "education": CategoricalEncoderType.ONEHOT, + } + metadata.check() + metadata.categorical_encoder["1"] = CategoricalEncoderType.ONEHOT + with pytest.raises(MetadataInvalidError): + metadata.check() + del metadata.categorical_encoder["1"] + metadata.categorical_encoder["1"] = "a" + with pytest.raises(MetadataInvalidError): + metadata.check() + + if __name__ == "__main__": pytest.main(["-vv", "-s", __file__]) diff --git a/tests/models/test_nfrequencyencoder.py b/tests/models/test_nfrequencyencoder.py new file mode 100644 index 00000000..41a3255e --- /dev/null +++ b/tests/models/test_nfrequencyencoder.py @@ -0,0 +1,37 @@ +import pandas as pd +import pytest + +from sdgx.models.components.sdv_rdt.transformers.categorical import ( + NormalizedFrequencyEncoder, +) + + +@pytest.fixture(scope="module") +def data_test(): + return pd.DataFrame( + { + "x": [str(i) for i in range(100)], + "y": [str(-i) for i in range(50)] * 2, + "z": [str(i) for i in range(25)] * 4, + }, + columns=["x", "y", "z"], + ) + + +def test_encoder(data_test: pd.DataFrame): + + for col in ["x", "y", "z"]: + nlabel_encoder = NormalizedFrequencyEncoder() + nlabel_encoder.fit(data_test, col) + td = nlabel_encoder.transform(data_test.copy()) + rd = nlabel_encoder.reverse_transform(td.copy()) + td.rename(columns={f"{col}.value": f"{col}"}, inplace=True) + assert (rd[col].sort_values().values == data_test[col].sort_values().values).all() + assert (td[col] >= -1).all() + assert (td[col] <= 1).all() + assert td[col].shape == data_test[col].shape + assert len(td[col].unique()) == len(data_test[col].unique()) + + +if __name__ == "__main__": + pytest.main(["-vv", "-s", __file__]) diff --git a/tests/models/test_nlabelencoder.py b/tests/models/test_nlabelencoder.py new file mode 100644 index 00000000..0ec0c5ae --- /dev/null +++ b/tests/models/test_nlabelencoder.py @@ -0,0 +1,39 @@ +import shutil + +import pandas as pd +import pytest + +from sdgx.models.components.sdv_rdt.transformers.categorical import ( + NormalizedLabelEncoder, +) + + +@pytest.fixture(scope="module") +def data_test(): + return pd.DataFrame( + { + "x": [str(i) for i in range(100)], + "y": [str(-i) for i in range(50)] * 2, + "z": [str(i) for i in range(25)] * 4, + }, + columns=["x", "y", "z"], + ) + + +def test_encoder(data_test: pd.DataFrame): + + for col in ["x", "y", "z"]: + nlabel_encoder = NormalizedLabelEncoder() + nlabel_encoder.fit(data_test, col) + td = nlabel_encoder.transform(data_test.copy()) + rd = nlabel_encoder.reverse_transform(td.copy()) + td.rename(columns={f"{col}.value": f"{col}"}, inplace=True) + assert (rd[col].sort_values().values == data_test[col].sort_values().values).all() + assert (td[col] >= -1).all() + assert (td[col] <= 1).all() + assert td[col].shape == data_test[col].shape + assert len(td[col].unique()) == len(data_test[col].unique()) + + +if __name__ == "__main__": + pytest.main(["-vv", "-s", __file__]) diff --git a/tests/optmize/test_ndarry_loader.py b/tests/optmize/test_ndarry_loader.py index 2bd0ccfc..fe181a4f 100644 --- a/tests/optmize/test_ndarry_loader.py +++ b/tests/optmize/test_ndarry_loader.py @@ -5,13 +5,17 @@ @pytest.fixture -def ndarray_loader(tmp_path, ndarray_list): - cache_dir = tmp_path / "ndarrycache" - loader = NDArrayLoader(cache_root=cache_dir) - for ndarray in ndarray_list: - loader.store(ndarray) - yield loader - loader.cleanup() +def ndarray_loaders(tmp_path, ndarray_list): + def generator(): + cache_dir = tmp_path / "ndarrycache" + for save in [True, False]: + loader = NDArrayLoader(cache_root=cache_dir, save_to_file=save) + for ndarray in ndarray_list: + loader.store(ndarray) + yield loader + loader.cleanup() + + yield generator() @pytest.fixture @@ -28,7 +32,7 @@ def ndarray_list(): ] -def test_ndarray_loader_function(ndarray_loader: NDArrayLoader, ndarray_list): +def subtest_ndarray_loader_function(ndarray_loader: NDArrayLoader, ndarray_list): ndarray_all = np.concatenate(ndarray_list, axis=1) for i, ndarray in enumerate(ndarray_loader.iter()): @@ -38,7 +42,7 @@ def test_ndarray_loader_function(ndarray_loader: NDArrayLoader, ndarray_list): assert ndarray_loader.shape == ndarray_all.shape -def test_ndarray_loader_slice(ndarray_loader: NDArrayLoader, ndarray_list): +def subtest_ndarray_loader_slice(ndarray_loader: NDArrayLoader, ndarray_list): ndarray_all = np.concatenate(ndarray_list, axis=1) np.testing.assert_equal(ndarray_loader[:], ndarray_all[:]) @@ -68,5 +72,11 @@ def test_ndarray_loader_slice(ndarray_loader: NDArrayLoader, ndarray_list): """ +def test_ndarray_loader(ndarray_list, ndarray_loaders): + for ndarray_loader in ndarray_loaders: + subtest_ndarray_loader_function(ndarray_loader, ndarray_list) + subtest_ndarray_loader_slice(ndarray_loader, ndarray_list) + + if __name__ == "__main__": pytest.main(["-vv", "-s", __file__]) diff --git a/tests/test_ctgan_synthesizer.py b/tests/test_ctgan_synthesizer.py index 14f89c94..8557a82f 100644 --- a/tests/test_ctgan_synthesizer.py +++ b/tests/test_ctgan_synthesizer.py @@ -1,97 +1,130 @@ +from typing import List + +import faker import numpy as np import pandas as pd import pytest -from sdgx.data_connectors.csv_connector import CsvConnector -from sdgx.data_loader import DataLoader +from sdgx.data_connectors.dataframe_connector import DataFrameConnector from sdgx.data_models.metadata import Metadata +from sdgx.models.components.optimize.sdv_ctgan.data_transformer import DataTransformer +from sdgx.models.components.optimize.sdv_ctgan.types import SpanInfo +from sdgx.models.components.sdv_rdt.transformers import ( + ClusterBasedNormalizer, + NormalizedFrequencyEncoder, + NormalizedLabelEncoder, + OneHotEncoder, +) from sdgx.models.ml.single_table.ctgan import CTGANSynthesizerModel from sdgx.synthesizer import Synthesizer @pytest.fixture def demo_single_table_data_pos_neg(): - row_cnt = 1000 - header = ["int_id", "pos_int", "neg_int", "pos_float", "neg_float", "mixed_int", "mixed_float"] - + row_cnt = 1000 # must be 200 multiply because of the encode setting np.random.seed(42) - int_id = list(range(row_cnt)) - pos_int = np.random.randint(1, 100, size=row_cnt) - neg_int = np.random.randint(-100, 0, size=row_cnt) - pos_float = np.random.uniform(0, 100, size=row_cnt) - neg_float = np.random.uniform(-100, 0, size=row_cnt) - mixed_int = np.random.randint(-50, 50, size=row_cnt) - mixed_float = np.random.uniform(-50, 50, size=row_cnt) - - X = [ - [ - int_id[i], - pos_int[i], - neg_int[i], - pos_float[i], - neg_float[i], - mixed_int[i], - mixed_float[i], - ] - for i in range(row_cnt) - ] - - yield pd.DataFrame(X, columns=header) + faker.Faker.seed(42) + fake = faker.Faker() + X = { + "int_id": list(range(row_cnt)), + "pos_int": np.random.randint(1, 100, size=row_cnt), + "neg_int": np.random.randint(-100, 0, size=row_cnt), + "pos_float": np.random.uniform(0, 100, size=row_cnt), + "neg_float": np.random.uniform(-100, 0, size=row_cnt), + "mixed_int": np.random.randint(-50, 50, size=row_cnt), + "mixed_float": np.random.uniform(-50, 50, size=row_cnt), + "cat_onehot": [str(i) for i in range(row_cnt)], + "cat_label": [str(i) for i in range(row_cnt)], + "cat_date": [fake.date() for _ in range(row_cnt)], + "cat_freq": [str(i) for i in range(row_cnt)], + "cat_thres_freq": [str(i) for i in range(100)] * (row_cnt // 100), + "cat_thres_label": [str(i) for i in range(200)] * (row_cnt // 200), + } + header = X.keys() + yield pd.DataFrame(X, columns=list(header)) @pytest.fixture def demo_single_table_data_pos_neg_metadata(demo_single_table_data_pos_neg): - yield Metadata.from_dataframe(demo_single_table_data_pos_neg) - - -@pytest.fixture -def demo_single_table_data_pos_neg_path(tmp_path, demo_single_table_data_pos_neg): - df = demo_single_table_data_pos_neg - save_path = tmp_path / "dummy_demo_single_table_data_pos_neg.csv" - df.to_csv(save_path, index=False, header=True) - yield save_path - save_path.unlink() + metadata = Metadata.from_dataframe(demo_single_table_data_pos_neg.copy(), check=True) + metadata.categorical_encoder = { + "cat_onehot": "onehot", + "cat_label": "label", + "cat_freq": "frequency", + } + metadata.datetime_format = {"cat_date": "%Y-%m-%d"} + metadata.categorical_threshold = {99: "frequency", 199: "label"} + yield metadata @pytest.fixture -def demo_single_table_data_pos_neg_connector(demo_single_table_data_pos_neg_path): - yield CsvConnector( - path=demo_single_table_data_pos_neg_path, - ) +def demo_single_table_data_pos_neg_connector(demo_single_table_data_pos_neg): + yield DataFrameConnector(df=demo_single_table_data_pos_neg) @pytest.fixture -def demo_single_table_data_pos_neg_loader(demo_single_table_data_pos_neg_connector, cacher_kwargs): - d = DataLoader(demo_single_table_data_pos_neg_connector, cacher_kwargs=cacher_kwargs) - yield d - d.finalize() - - -@pytest.fixture -def ctgan_synthesizer(demo_single_table_data_pos_neg_connector): +def ctgan_synthesizer( + demo_single_table_data_pos_neg_connector, demo_single_table_data_pos_neg_metadata +): yield Synthesizer( + metadata=demo_single_table_data_pos_neg_metadata, model=CTGANSynthesizerModel(epochs=1), data_connector=demo_single_table_data_pos_neg_connector, ) def test_ctgan_synthesizer_with_pos_neg( - ctgan_synthesizer: Synthesizer, - demo_single_table_data_pos_neg_metadata, - demo_single_table_data_pos_neg_loader, - demo_single_table_data_pos_neg, + ctgan_synthesizer: Synthesizer, demo_single_table_data_pos_neg ): original_data = demo_single_table_data_pos_neg - metadata = demo_single_table_data_pos_neg_metadata # Train the CTGAN model - ctgan_synthesizer.fit(demo_single_table_data_pos_neg_metadata) + ctgan_synthesizer.fit() + ctgan: CTGANSynthesizerModel = ctgan_synthesizer.model + transformer: DataTransformer = ctgan._transformer + transform_list = transformer._column_transform_info_list + transformed_data = ctgan._ndarry_loader.get_all() + + current_dim = 0 + for item in transform_list: + span_info: List[SpanInfo] = item.output_info + col_dim = item.output_dimensions + current_data = transformed_data[:, current_dim : current_dim + col_dim] + current_dim += col_dim + col = item.column_name + if col in ["cat_freq", "cat_thres_freq"]: + assert isinstance(item.transform, NormalizedFrequencyEncoder) + assert col_dim == 1 + assert len(span_info) == 1 + assert span_info[0].activation_fn == "linear" + assert len(item.transform.intervals) == original_data[col].nunique(dropna=False) + assert (current_data >= -1).all() and (current_data <= 1).all() + elif col in ["cat_thres_label", "cat_label"]: + assert isinstance(item.transform, NormalizedLabelEncoder) + assert col_dim == 1 + assert len(span_info) == 1 + assert span_info[0].activation_fn == "linear" + assert len(item.transform.categories_to_values.keys()) == original_data[col].nunique( + dropna=False + ) + assert (current_data >= -1).all() and (current_data <= 1).all() + elif col in ["cat_onehot"]: + assert isinstance(item.transform, OneHotEncoder) + nunique = original_data[col].nunique(dropna=False) + assert col_dim == nunique + assert len(span_info) == 1 + assert span_info[0].activation_fn == "softmax" + assert len(item.transform.dummies) == nunique + assert np.all((current_data == 0) | (current_data == 1)) + else: + assert isinstance(item.transform, ClusterBasedNormalizer) + sampled_data = ctgan_synthesizer.sample(1000) # Check each column for column in original_data.columns: # Skip columns that are identifiers or not intended for positivity checks - if column == "int_id": + if column in ["int_id"] or column.startswith("cat_"): continue is_all_positive = (original_data[column] >= 0).all()