All Projects → jernejk → MLSample.SimpleTransactionTagging

jernejk / MLSample.SimpleTransactionTagging

Licence: other
This is an simple example of tagging bank transactions with ML.NET

Programming Languages

C#
18002 projects
HTML
75241 projects
CSS
56736 projects
Dockerfile
14818 projects
powershell
5483 projects

Projects that are alternatives of or similar to MLSample.SimpleTransactionTagging

Lightautoml
LAMA - automatic model creation framework
Stars: ✭ 196 (+1407.69%)
Mutual labels:  classification, automl
Lazypredict
Lazy Predict help build a lot of basic models without much code and helps understand which models works better without any parameter tuning
Stars: ✭ 401 (+2984.62%)
Mutual labels:  classification, automl
Automlpipeline.jl
A package that makes it trivial to create and evaluate machine learning pipeline architectures.
Stars: ✭ 223 (+1615.38%)
Mutual labels:  classification, automl
Mlbox
MLBox is a powerful Automated Machine Learning python library.
Stars: ✭ 1,199 (+9123.08%)
Mutual labels:  classification, automl
Awesome-Tensorflow2
基于Tensorflow2开发的优秀扩展包及项目
Stars: ✭ 45 (+246.15%)
Mutual labels:  classification, automl
Python-Machine-Learning
Python Machine Learning Algorithms
Stars: ✭ 80 (+515.38%)
Mutual labels:  classification
AdaptiveRandomForest
Repository for the AdaptiveRandomForest algorithm implemented in MOA 2016-04
Stars: ✭ 28 (+115.38%)
Mutual labels:  classification
mri-deep-learning-tools
Resurces for MRI images processing and deep learning in 3D
Stars: ✭ 56 (+330.77%)
Mutual labels:  classification
shellnet
ShellNet: Efficient Point Cloud Convolutional Neural Networks using Concentric Shells Statistics
Stars: ✭ 80 (+515.38%)
Mutual labels:  classification
Audio cat dog classification
Classification of WAV files from cats and dogs
Stars: ✭ 16 (+23.08%)
Mutual labels:  classification
FineGrainedVisualRecognition
Fine grained visual recognition tensorflow baseline on CUB, Stanford Cars, Dogs, Aircrafts, and Flower102.
Stars: ✭ 19 (+46.15%)
Mutual labels:  classification
clana
CLANA is a toolkit for classifier analysis.
Stars: ✭ 28 (+115.38%)
Mutual labels:  classification
text2class
Multi-class text categorization using state-of-the-art pre-trained contextualized language models, e.g. BERT
Stars: ✭ 15 (+15.38%)
Mutual labels:  classification
CvT
This is an official implementation of CvT: Introducing Convolutions to Vision Transformers.
Stars: ✭ 262 (+1915.38%)
Mutual labels:  classification
projection-pursuit
An implementation of multivariate projection pursuit regression and univariate classification
Stars: ✭ 24 (+84.62%)
Mutual labels:  classification
KaggleBengaliAIHandwrittenGraphemeClassification
Some parts of my code for the Computer Vision Kaggle Bengali AI Handwritten Grapheme Classification competition
Stars: ✭ 25 (+92.31%)
Mutual labels:  classification
Auto-Surprise
An AutoRecSys library for Surprise. Automate algorithm selection and hyperparameter tuning 🚀
Stars: ✭ 19 (+46.15%)
Mutual labels:  automl
data-science-notes
Open-source project hosted at https://makeuseofdata.com to crowdsource a robust collection of notes related to data science (math, visualization, modeling, etc)
Stars: ✭ 52 (+300%)
Mutual labels:  classification
Credit
An example project that predicts risk of credit card default using a Logistic Regression classifier and a 30,000 sample dataset.
Stars: ✭ 18 (+38.46%)
Mutual labels:  classification
nas-encodings
Encodings for neural architecture search
Stars: ✭ 29 (+123.08%)
Mutual labels:  automl

MLSample.SimpleTransactionTagging

This is an simple example of tagging bank transactions with ML.NET built for a console as well as server-side Blazor application.

You can read more about this example and ML.NET on my blog post: https://jkdev.me/simple-machine-learning-classification/

Live demo: https://jernejk.github.io/MLSample.SimpleTransactionTagging/

Usage

You can either run console application (.NET Core 2.2 at the time of writing) or Server-side Blazor (.NET Core 3.0) either via dotnet run or Visual Studio 2019.

Console (MLSample.TransactionTagging)

This is the initial example on how to use ML.NET for classification. It will train based on the training.json in MLSample.TransationTagging.Core file and it will classify a couple of example transaction descriptions.

If it fails to correctly classify a transaction, it will likely be "Coffee & drink". This category will likely be a "catch-all" (but not always, the beauty of ML) simple because training data has a lot of them.

Cmd Dotnet Run Figure: Run Console application with training.

You can also run the application without building the model. Just make sure to run the console application 1 time to generate the model, before trying to run it without training.

dotnet run no-training

Cmd Dotnet Run No Training Figure: Run Console application without training.

Server-side Blazor

This is designed to be more interactive as well as you why ML.NET might have decided for a certain classification. It uses dependency injection to train and load ML model, so it doesn't have to be reloaded every time we hit the page where we want to do classification.

The DI is done based on a MS blog post: https://devblogs.microsoft.com/cesardelatorre/how-to-optimize-and-run-ml-net-models-on-scalable-asp-net-core-webapis-or-web-apps/ UPDATE: Upgraded the code to PredictionEnginePool.

Most of the code is in the Startup.cs and Pages/Index.razor.

Blazor Uber Sample Figure: Example of Blazor application.

Integration test

There is also a integration test, that tests the most common uses cases in my demos. If they fail, it usually because my demo data has changed and confused ML.NET.

AutoML

You can also try out AutoML, which will try to find the best trainer for the data.

For console run:

dotnet run auto-ml

Cmd Dotnet Run Auto Ml Figure: Running AutoML in console application.

For Blazor:

Run the app, go to AutoML and click train. This will create a new model every time you train.

Automl Blazor Training Figure: Running AutoML in Blazor application.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].