Metadata-Version: 2.1
Name: shortcutml
Version: 0.8
Summary: Machine learning baseline prototyping tools
Home-page: https://github.com/SulthanAbiyyu/ShortcutML
Author: Sulthan Abiyyu Hakim
Author-email: sabiyyuhakim@student.ub.ac.id
License: MIT
Download-URL: https://github.com/SulthanAbiyyu/ShortcutML/archive/refs/tags/0.8.tar.gz
Keywords: machine learning,summary
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: joblib
Requires-Dist: lightgbm
Requires-Dist: matplotlib
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: PySastrawi
Requires-Dist: scikit-learn
Requires-Dist: seaborn
Requires-Dist: xgboost

# ShortcutML

![banner](./img/banner.png)

## Description

Sometimes, we don’t want to pay attention to detail very much in some machine learning phase. We are in a hurry and only need to prototype our ideas as fast as possible. Then, this library is for you. It’s not making any magic optimization, but it’s summarising all code that maybe you would write when in this kind of situation. This library will be fully customizable from model selection until scoring metrics in the future.

## Installation

\
Via pip

```bash
# Install via pip
$ pip install shortcutml
```

Via git clone

```bash
# Clone the repo
$ git clone https://github.com/SulthanAbiyyu/ShortcutML

# Change working dir to shortcutml
$ cd shortcutml

# Install requirements
$ python3 -m pip install -r requirements.txt

# Run one-time setup
$ python3 install.py
```

## Usage

<br />

### BaselineModel

```python
from shortcutml.model_selection import BaselineModel

bm = BaselineModel(type="regression") # other type option: "classification"

# Evaluate baseline model
bm.evaluate(X_train, X_test, y_train, y_test)

# Plot result
bm.plot_baseline()

# Result dataframe
bm.test_result

# Model lists
bm.classification_models()
bm.regression_models()

# Still not support custom model and scoring
# Default scoring for classification tasks is f1 score and RMSE for regression
```

### TextCleaningIndo

```python
from shortcutml.preprocessing import TextCleaningIndo

tci = TextCleaningIndo()

# Applying all preprocessing process
df["text"] = df["text"].apply(tci.all_preprocessing)
```

### AutoSearchCV

```python
from shortcutml.model_selection import AutoSearchCV

search = AutoSearchCV(model, type="grid") # other type option: "random"
search.search(X,y)

search.cv_results_
```

## Project Plan

- [x] BaselineModel
- [x] TextCleaningIndo
- [ ] TextCleaningEnglish
- [ ] Fully customizable component
- [x] FeatureSelection -> Pearson, Lasso, Chi Squared, ..
- [x] AutoSearchCV -> Random and Grid
- [ ] ..
      <br />

## Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

---

<br />
Sulthan Abiyyu, <br />
16 January 2022


