Metadata-Version: 2.1
Name: tulia
Version: 0.2.1
Summary: numpy based machine learning package with sklearn-like API
Home-page: https://github.com/chuvalniy/tulia
Author: Valentin Belyaev
Author-email: chuvalik.work@gmail.com
License: MIT
Keywords: python,machine learning,from scratch,numpy,sklearn-like,random forest,tree,knn
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pytest

<div align="center">

![logo](/docs/logo.png)

Tulia: a comprehensive machine learning project entirely from scratch, utilizing the power of Python and numpy.

</div>

## Features

### Simplicity

By encapsulating both the training and predicting logic within just a couple of classes, complexity is greatly reduced compared to popular frameworks that heavily rely on abstraction.
Moreover, the library provided here offers a streamlined approach by maintaining only essential parameters in the model class. 

### Familiar approach

This library uses sklearn API to build the codebase. 

## Example usage

```python
from src.linear import LinearRegression

X_train, X_test, y_train, y_test = ...

lr = LinearRegression(n_steps=10_000, learning_rate=1e-4)
lr.fit(X_train, y_train)

y_pred = lr.predict(X_test)

mse = mean_squared_error(y_pred, y_test)  # Here mean_squared_error() is a pseudocode.
```

## Installation


### To use in code

```sh
pip install tulia
```

### Download a whole library

```sh
git clone https://github.com/chuvalniy/Tulia.git
pip install -r requirements.txt
```

## Testing

Every machine learning model is provided with unit test that verifies correctness of fit and predict methods.

Execute the following command in your project directory to run the tests.

```python
pytest -v
```

## License
MIT License
