https://github.com/daochenzha/autosmote
[CIKM 2022] Towards Automated Over-Sampling for Imbalanced Classification
https://github.com/daochenzha/autosmote
Last synced: 11 months ago
JSON representation
[CIKM 2022] Towards Automated Over-Sampling for Imbalanced Classification
- Host: GitHub
- URL: https://github.com/daochenzha/autosmote
- Owner: daochenzha
- Created: 2022-02-07T03:54:57.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-03-20T06:49:52.000Z (over 3 years ago)
- Last Synced: 2025-04-04T10:11:15.840Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 180 KB
- Stars: 10
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [CIKM 2022] Towards Automated Over-Sampling for Imbalanced Classification
This is the implementation for the paper [Towards Automated Over-Sampling for Imbalanced Classification](https://arxiv.org/abs/2208.12433). We propose AutoSMOTE, an automated over-sampling algorithm for imbalanced classification. It jointly optimize different levels of decisions with deep hierarchical reinforcement learning. Please refer the paper for more details.
:loudspeaker: Do you want to learn more about oversampling or data augmentation? Please check out our [data-centric AI survey](https://arxiv.org/abs/2303.10158) and [data-centric AI resources](https://github.com/daochenzha/data-centric-AI)!

## Cite this Work
If you find this project helpful, please cite
```bibtex
@inproceedings{zha2022automated,
title={Towards Automated Imbalanced Learning with Deep Hierarchical Reinforcement Learning},
author={Daochen Zha and Kwei-Herng Lai and Qiaoyu Tan and Sirui Ding and Na Zou and Xia Hu},
booktitle={CIKM},
year={2022},
}
```
# Installation
Make sure that you have Python 3.6+ installed. Install with
```
pip3 install -r requirements.txt
pip3 install -e .
```
# Datasets
You don't need to mannually download datasets. Just pass the dataset name, and it will be automatically downloaded.
# Quick Start
Train on the Mozilla4 dataset with undersampling ratio of 100 and SVM as the base classifier:
```
python3 train.py
```
# Important Arguments
You can run AutoSMOTE under different configurations. Some important arguments are listed below.
* `--dataset`: which dataset to use
* `--clf`: which base classifeir to use
* `--metric`: which metric to use
* `--device`: by default it trains with GPU. Train with CPU by passing `cpu`
* `--total_steps`: search budget