Skip to main content

Biblioteca para balanceamento de dados tabulares com Deep SMOTE Optimize.

Project description

DSTO-GAN: Balanceamento de Dados com GAN

O DSTO-GAN é uma biblioteca Python que utiliza uma Rede Generativa Adversarial (GAN) para gerar amostras sintéticas e balancear datasets desbalanceados. Ele é especialmente útil para problemas de classificação em que as classes estão desproporcionais.


Funcionalidades

  1. Geração de amostras sintéticas para balanceamento de classes.
  2. Treinamento de um GAN personalizado para dados tabulares.
  3. Salvamento do dataset balanceado em um arquivo .csv.

Pré-requisitos

  • Python 3.7 ou superior.
  • Gerenciador de pacotes pip.

Instalação

Você pode instalar a biblioteca diretamente via pip:

pip install dsto-gan

Dependências

As dependências serão instaladas automaticamente durante a instalação. Caso prefira instalar manualmente, execute:

pip install numpy torch pandas scikit-learn xgboost scikit-optimize

Como Usar

1. Importação e Inicialização

Primeiro, importe a classe DSTO_GAN e inicialize o objeto:

from dsto_gan import DSTO_GAN

Inicializar o DSTO-GAN

dsto_gan = DSTO_GAN(dim_h=64, n_z=10, lr=0.0002, epochs=100, batch_size=64)

2. Balanceamento de Dados

Use o método fit_resample para balancear os dados:

# Dados desbalanceados
X = ...  # Features (numpy array ou pandas DataFrame)
y = ...  # Labels (numpy array ou pandas Series)

# Balancear os dados
X_resampled, y_resampled = dsto_gan.fit_resample(X, y)

print(f"Shape dos dados balanceados: {X_resampled.shape}, {y_resampled.shape}")

3. Integração com Scikit-Learn

O DSTO_GAN é compatível com pipelines do Scikit-Learn. Você pode usá-lo como parte de um pipeline de pré-processamento:

from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Dividir os dados em treino e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Criar um pipeline com DSTO-GAN e um classificador
pipeline = Pipeline([
    ('dsto_gan', DSTO_GAN()),  # Balanceamento com DSTO-GAN
    ('classifier', RandomForestClassifier())  # Classificador
])

# Treinar o modelo
pipeline.fit(X_train, y_train)

# Avaliar o modelo
accuracy = pipeline.score(X_test, y_test)
print(f"Acurácia do modelo: {accuracy:.2f}")

---

## Exemplo de Uso

Aqui está um exemplo completo de uso do DSTO-GAN:

```bash
import pandas as pd
from sklearn.model_selection import train_test_split
from dsto_gan import DSTO_GAN

# 1. Carregar dados desbalanceados
file_path = "caminho/para/desbalanceado.csv"
df = pd.read_csv(file_path)

# 2. Separar features (X) e labels (y)
X = df.iloc[:, :-1].values  # Todas as colunas, exceto a última
y = df.iloc[:, -1].values   # Última coluna é a classe

# 3. Dividir os dados em treino e teste
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 4. Balancear os dados de treino com DSTO-GAN
dsto_gan = DSTO_GAN()
X_train_resampled, y_train_resampled = dsto_gan.fit_resample(X_train, y_train)

print(f"Shape dos dados balanceados: {X_train_resampled.shape}, {y_train_resampled.shape}")

Estrutura do Projeto

dsto_gan/
│
├── dsto_gan/          # Pacote principal
│   ├── __init__.py    # Inicialização do pacote
│   ├── dsto_gan.py    # Código principal para balanceamento de dados
├── setup.py           # Configuração do pacote
├── README.md          # Documentação do projeto
└── LICENSE            # Licença do projeto

Contribuição

Contribuições são bem-vindas! Se você encontrar problemas ou tiver sugestões de melhorias, sinta-se à vontade para abrir uma issue ou enviar um pull request.

Licença

Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.


Contato


Agradecimentos

Este projeto foi desenvolvido como parte de uma pesquisa em balanceamento de dados usando GANs. Agradecimentos à comunidade de código aberto por fornecer as bibliotecas utilizadas.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsto_gan-0.1.4.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dsto_gan-0.1.4-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file dsto_gan-0.1.4.tar.gz.

File metadata

  • Download URL: dsto_gan-0.1.4.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for dsto_gan-0.1.4.tar.gz
Algorithm Hash digest
SHA256 7879c9009f6918faa8283fbd0121dac80429d2ddef831c942e4d7be049ddb3b3
MD5 4aec21cc89b22641d03a6a3b57814631
BLAKE2b-256 3e154e3fa1cb3c25fb98c7da401b4f0f5f18a4bf4c794f5411aa8a458e9b1dea

See more details on using hashes here.

File details

Details for the file dsto_gan-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: dsto_gan-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for dsto_gan-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5f1ecae3ff283097840ccfcf12ab91c08204859ef8926933a311a26ec71bbce3
MD5 6be04097c281c5dff122a289c9a9cfbc
BLAKE2b-256 0df05cc4641dbe3b3e2e354ac3a7e648a94f91a0fca0050af1538e5d7cb7da18

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page