Skip to main content

A Python module containing various machine learning algorithms.

Project description

Build Status PyPI version PyPI - Python Version

bareml is a set of "bare" implementations of machine learning / deep learning algorithms from scratch (only depending on numpy) in Python. "bare" means to aim at:

  1. Code as a direct translation of the algorithm / formula
  2. With minimum error handling and efficiency gain tricks

To maximise understandability of the code, interface of modules in bareml/machinelearning/ is aligned to Scikit-learn, and interface of modules in bareml/deeplearning/ is aligned to PyTorch, as seen in below 2 examples.

Example1:

from bareml.machinelearning.utils.model_selection import train_test_split
from bareml.machinelearning.supervised import KernelRidge

# assume the data X, y are defined
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

reg = KernelRidge(alpha=1, kernel='rbf')
reg.fit(X_train, y_train)
y_pred = reg.predict(X_test)
print(reg.score(X_test, y_test))

Example2:

from bareml.deeplearning import layers as nn
from bareml.deeplearning import functions as F

class Net(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=3, stride=1)
        self.conv2 = nn.Conv2d(in_channels=32, out_channels=64, kernel_size=3, stride=1)
        self.dropout1 = nn.Dropout(p=0.25)
        self.dropout2 = nn.Dropout(p=0.5)
        self.fc1 = nn.Linear(in_features=33856, out_features=128)
        self.fc2 = nn.Linear(in_features=128, out_features=10)

    def forward(self, x):
        x = self.conv1(x)
        x = F.relu(x)
        x = self.conv2(x)
        x = F.relu(x)
        x = F.max_pool2d(x, 2)
        x = self.dropout1(x)
        x = x.flatten()
        x = self.fc1(x)
        x = F.relu(x)
        x = self.dropout2(x)
        x = self.fc2(x)
        return x

Installation

$ pip install bareml

or

$ git clone https://github.com/shotahorii/bareml.git
$ cd bareml
$ python setup.py install

Dependencies

Mandatory

  • numpy

Optional

  • cupy
  • PIL
  • matplotlib

Examples

Generating handwriting digits by GAN

[Google Colab]

Implementations

Deep Learning

Supervised Learning

Unsupervised Learning

Ensemble Learning

Utilities

References

  • Deep learning programs are based on O'Reilly Japan's book "Deep learning from scratch 3" (Koki Saitoh) and its implementation Dezero.
  • References of machine learning programs are documented in each source file, but mostly based on original papers, "Pattern Recognition and Machine Learning" (Christopher M. Bishop) and/or "Machine Learning: A Probabilistic Perspective" (Kevin P. Murphy).

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

bareml-0.0.9-py3-none-any.whl (80.2 kB view details)

Uploaded Python 3

File details

Details for the file bareml-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: bareml-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 80.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.4.2 requests/2.23.0 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.5.6

File hashes

Hashes for bareml-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6a9e1beeedf7bd030df10be97d32d141241d794a09a1cef700b33854a8ef0f90
MD5 700444943696e81dd0d44a6bce9a0737
BLAKE2b-256 392a029f83d3d2ad2d8f7eeb47309c063f8373ea877a441d2f43fd26a0a22546

See more details on using hashes here.

Supported by

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