Small scale machine learning projects to understand the core concepts (order: oldest to newest)
- Topic Modelling using Latent Dirichlet Allocation with newsgroups20 dataset, implemented with Python and Scikit-Learn
- Implemented a simple neural network built with Keras on MNIST dataset
- Stock Price Forecasting on Google using Linear Regression
- Implemented a simple a social network to learn basics of Python
- Implemented Naives Bayes Classifier to filter spam messages on SpamAssasin Public Corpus
- Churn Prediction Model for banking dataset using Keras and Scikit-Learn
- Implemented Random Forest from scratch and built a classifier on Sonar dataset from UCI repository
- Simple Linear Regression in Python on sample dataset
- Multiple Regression in Python on sample dataset
- PCA and scaling sample stock data in Python [working_with_data]
- Decision Trees in Python on sample dataset
- Logistic Regression in Python on sample dataset
- Built a neural network in Python to defeat a captcha system
- Helper methods include commom operations used in Statistics, Probability, Linear Algebra and Data Analysis
- K-means clustering with example data; clustering colors with k-means; Bottom-up Hierarchical Clustering
- Generating Word Clouds
- Sentence generation using n-grams
- Sentence generation using Grammars and Automata Theory; Gibbs Sampling
- Topic Modelling using Latent Dirichlet Analysis (LDA)
- Wrapper for using Scikit-Learn's GridSearchCV for a Keras Neural Network
MLwP is built using Python 3.5. The easiest way to set up a compatible environment is to use Conda. This will set up a virtual environment with the exact version of Python used for development along with all the dependencies needed to run MLwP.
- Download and install Conda.
- Create a Conda environment with Python 3.
cd ~ to go on $HOME , then perform these commands)
``` conda create --name *your env name* python=3.5 ```
You will get the following, mlwp-test is the env name used in this example
Solving environment: done ## Package Plan ## environment location: /home/user/anaconda3/envs/mlwp-test added / updated specs: - python=3.5 The following NEW packages will be INSTALLED: ca-certificates: 2018.12.5-0 certifi: 2018.8.24-py35_1 libedit: 3.1.20181209-hc058e9b_0 libffi: 3.2.1-hd88cf55_4 libgcc-ng: 8.2.0-hdf63c60_1 libstdcxx-ng: 8.2.0-hdf63c60_1 ncurses: 6.1-he6710b0_1 openssl: 1.0.2p-h14c3975_0 pip: 10.0.1-py35_0 python: 3.5.6-hc3d631a_0 readline: 7.0-h7b6447c_5 setuptools: 40.2.0-py35_0 sqlite: 3.26.0-h7b6447c_0 tk: 8.6.8-hbc83047_0 wheel: 0.31.1-py35_0 xz: 5.2.4-h14c3975_4 zlib: 1.2.11-h7b6447c_3 Proceed ([y]/n)? *Press y* Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use: # > source activate mlwp-test # # To deactivate an active environment, use: # > source deactivate #
The environment is successfully created.
Now activate the Conda environment.
source activate *your env name*
You will get the following
conda listto get the list of available packages
(mlwp-test) amogh@hp15X34:~$ conda list # packages in environment at /home/amogh/anaconda3/envs/mlwp-test: # # Name Version Build Channel ca-certificates 2018.12.5 0 certifi 2018.8.24 py35_1 libedit 3.1.20181209 hc058e9b_0 libffi 3.2.1 hd88cf55_4 libgcc-ng 8.2.0 hdf63c60_1 libstdcxx-ng 8.2.0 hdf63c60_1 ncurses 6.1 he6710b0_1 openssl 1.0.2p h14c3975_0 pip 10.0.1 py35_0 python 3.5.6 hc3d631a_0 readline 7.0 h7b6447c_5 setuptools 40.2.0 py35_0 sqlite 3.26.0 h7b6447c_0 tk 8.6.8 hbc83047_0 wheel 0.31.1 py35_0 xz 5.2.4 h14c3975_4 zlib 1.2.11 h7b6447c_3
Install the required dependencies.
(mlwp-test) amogh@hp15X34:~$ conda install --yes --file *path to requirements.txt*
In case you are not able to install the packages or getting
PackagesNotFoundErrorUse the following command
conda install -c conda-forge *list of packages separated by space*. For more info, refer issue #3 Unable to install requirements
How good is the code ?
- It is well tested
- It passes style checks (PEP8 compliant)
- It can compile in its current state (and there are relatively no issues)
How much support is available?
- FAQs (coming soon)
- Documentation (coming soon)
Feel free to submit issues and enhancement requests.
Please refer to each project's style guidelines and guidelines for submitting patches and additions. In general, we follow the "fork-and-pull" Git workflow.
- Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull request so that we can review your changes
NOTE: Be sure to merge the latest from "upstream" before making a pull request!