All Projects → kingfengji → Gcforest

kingfengji / Gcforest

This is the official implementation for the paper 'Deep forest: Towards an alternative to deep neural networks'

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Gcforest

User Machine Learning Tutorial
useR! 2016 Tutorial: Machine Learning Algorithmic Deep Dive http://user2016.org/tutorials/10.html
Stars: ✭ 393 (-67.63%)
Mutual labels:  random-forest, ensemble-learning
Predicting real estate prices using scikit Learn
Predicting Amsterdam house / real estate prices using Ordinary Least Squares-, XGBoost-, KNN-, Lasso-, Ridge-, Polynomial-, Random Forest-, and Neural Network MLP Regression (via scikit-learn)
Stars: ✭ 78 (-93.57%)
Mutual labels:  random-forest, ensemble-learning
H2o 3
H2O is an Open Source, Distributed, Fast & Scalable Machine Learning Platform: Deep Learning, Gradient Boosting (GBM) & XGBoost, Random Forest, Generalized Linear Modeling (GLM with Elastic Net), K-Means, PCA, Generalized Additive Models (GAM), RuleFit, Support Vector Machine (SVM), Stacked Ensembles, Automatic Machine Learning (AutoML), etc.
Stars: ✭ 5,656 (+365.9%)
Mutual labels:  random-forest, ensemble-learning
handson-ml
도서 "핸즈온 머신러닝"의 예제와 연습문제를 담은 주피터 노트북입니다.
Stars: ✭ 285 (-76.52%)
Mutual labels:  random-forest, ensemble-learning
AdaptiveRandomForest
Repository for the AdaptiveRandomForest algorithm implemented in MOA 2016-04
Stars: ✭ 28 (-97.69%)
Mutual labels:  random-forest, ensemble-learning
arboreto
A scalable python-based framework for gene regulatory network inference using tree-based ensemble regressors.
Stars: ✭ 33 (-97.28%)
Mutual labels:  random-forest, ensemble-learning
Awesome Decision Tree Papers
A collection of research papers on decision, classification and regression trees with implementations.
Stars: ✭ 1,908 (+57.17%)
Mutual labels:  random-forest, ensemble-learning
Sharplearning
Machine learning for C# .Net
Stars: ✭ 294 (-75.78%)
Mutual labels:  random-forest, ensemble-learning
Deep Forest
An Efficient, Scalable and Optimized Python Framework for Deep Forest (2021.2.1)
Stars: ✭ 547 (-54.94%)
Mutual labels:  random-forest, ensemble-learning
Ad examples
A collection of anomaly detection methods (iid/point-based, graph and time series) including active learning for anomaly detection/discovery, bayesian rule-mining, description for diversity/explanation/interpretability. Analysis of incorporating label feedback with ensemble and tree-based detectors. Includes adversarial attacks with Graph Convolutional Network.
Stars: ✭ 641 (-47.2%)
Mutual labels:  ensemble-learning
Cnn Svm Classifier
Using Tensorflow and a Support Vector Machine to Create an Image Classifications Engine
Stars: ✭ 33 (-97.28%)
Mutual labels:  random-forest
Vecstack
Python package for stacking (machine learning technique)
Stars: ✭ 587 (-51.65%)
Mutual labels:  ensemble-learning
Mlens
ML-Ensemble – high performance ensemble learning
Stars: ✭ 680 (-43.99%)
Mutual labels:  ensemble-learning
Mlj.jl
A Julia machine learning framework
Stars: ✭ 982 (-19.11%)
Mutual labels:  ensemble-learning
Edarf
exploratory data analysis using random forests
Stars: ✭ 62 (-94.89%)
Mutual labels:  random-forest
Mljar Supervised
Automated Machine Learning Pipeline with Feature Engineering and Hyper-Parameters Tuning 🚀
Stars: ✭ 961 (-20.84%)
Mutual labels:  random-forest
Thundergbm
ThunderGBM: Fast GBDTs and Random Forests on GPUs
Stars: ✭ 586 (-51.73%)
Mutual labels:  random-forest
Reproduce Stock Market Direction Random Forests
Reproduce research from paper "Predicting the direction of stock market prices using random forest"
Stars: ✭ 67 (-94.48%)
Mutual labels:  random-forest
Stock Market Sentiment Analysis
Identification of trends in the stock prices of a company by performing fundamental analysis of the company. News articles were provided as training data-sets to the model which classified the articles as positive or neutral. Sentiment score was computed by calculating the difference between positive and negative words present in the news article. Comparisons were made between the actual stock prices and the sentiment scores. Naive Bayes, OneR and Random Forest algorithms were used to observe the results of the model using Weka
Stars: ✭ 56 (-95.39%)
Mutual labels:  random-forest
Awesome Fraud Detection Papers
A curated list of data mining papers about fraud detection.
Stars: ✭ 843 (-30.56%)
Mutual labels:  random-forest

Update (Feb 1, 2021)

ATTENTION!

This repository will no longer be maintained, please check our new repository for Deep Forest with GREAT improvements on efficiency.

Details at:


You can install the newer version of gcForest via pip

pip install deep-forest

The older version (gcForest v1.1.1) in this repo will only be served as an illustration of the algorithm.


gcForest v1.1.1 Is Here!

This is the official clone for the implementation of gcForest.(The University's webserver is unstable sometimes, therefore we put the official clone here at github)

Package Official Website: http://lamda.nju.edu.cn/code_gcForest.ashx

This package is provided "AS IS" and free for academic usage. You can run it at your own risk. For other purposes, please contact Prof. Zhi-Hua Zhou ([email protected]).

Description: A python 2.7 implementation of gcForest proposed in [1].
A demo implementation of gcForest library as well as some demo client scripts to demostrate how to use the code.
The implementation is flexible enough for modifying the model or fit your own datasets.

Reference: [1] Z.-H. Zhou and J. Feng. Deep Forest: Towards an Alternative to Deep Neural Networks.
In IJCAI-2017. (https://arxiv.org/abs/1702.08835v2 )

Requirements: This package is developed with Python 2.7, please make sure all the dependencies are installed,
which is specified in requirements.txt

ATTN: This package was developed and maintained by Mr.Ji Feng(http://lamda.nju.edu.cn/fengj/) .For any problem concerning the codes, please feel free to contact Mr.Feng.([email protected]) or open some issues here.

What's NEW:

  • Scikit-Learn style API
  • Some more detailed examples
  • GPU support if you want to use xgboost as base estimators
  • Support Python 3.5(v1.1.1)

v1.1.1 Python 3.5 Compatibility: The package should work for Python 3.5. Haven't check everything for now but it seems OK.

v1.1.1 Bug Fixed : When doing multiple predictions for the same model, the result will be consistant if you are using pooling layer. The bug only occurs for the scikit-learn APIs and now it is OK for the new api also.

Quick start

The simplest way of using the library is as follows:

from gcforest.gcforest import GCForest
gc = GCForest(config) # should be a dict
X_train_enc = gc.fit_transform(X_train, y_train)
y_pred = gc.predict(X_test)

And that's it. Please see /examples/demo_mnist.py for a detailed useage.

For order versons AND some more model configs reported in the original paper, please refer:

Supported Based Classifier

The based classifiers inside gcForest can be any classifiers. This library support the following ones:

  • RandomForestClassifier
  • XGBClassifier
  • ExtraTreesClassifier
  • LogisticRegression
  • SGDClassifier

To add any classifiers, you could manually add them from lib/gcforest/estimators/__init__.py

Define your own structure

Define your model with a single json file.

  • IF you only need cascading forest structure. You only need to write one json file. see /examples/demo_mnist-ca.json for a reference.(here -ca is for cascading)

  • IF you need both fine grained and cascading forests, you will need to specifying the Finegraind structure of your model also.See /examples/demo_mnist-gc.json for a reference.

  • Then, use gcforest.utils.config_utils.load_json to load your json file.

    config = load_json(your_json_file)
    gc = GCForest(config) # that's it
    

    and run python examples/demo_mnist.py --model examples/yourmodel.json

Define your model inside your python scripts.

  • You can also define the model structure inside your python script. The model config should be a python dictionary, see the get_toy_config in /examples/demo_mnist.py as a reference.

Supported APIs

  • fit_transform(X_train,y_train)
  • fit_transform(X_train,y_train, X_test=X_test, y_test=y_test), this allows you to evaluate your model during training.
  • set_keep_model_in_mem(False). If your RAM is not enough, set this to false. (default is True). IF you set this to False, you would have to use fit_transform(X_train,y_train, X_test=X_test, y_test=y_test) to evaluate your model.
  • predict(X_test)
  • transform(X_test)

Supported Data Types

If you wish to use Cascade Layer only, the legal data type for X_train, X_test can be:

  • 2-D numpy array of shape (n_sampels, n_features).
  • 3-D or 4-D numpy array are also acceptable. For example, passing X_train of shape (60000, 28, 28) or (60000,3,28,28) will be automatically be reshape into (60000, 784)/(60000,2352).

If you need to use Finegraind Layer, X_train, X_test MUST be a 4-D numpy array

  • for image-like data. the dimension should be (n_sampels, n_channels, n_height, n_width)
  • for sequence-like data. the dimension should be (n_sampels, n_features, seq_len, 1). e.g. For IMDB data, n_features is 1. For music MFCC data, n_features is 13.

Others

Please read examples/demo_mnist.py for a detailed walk-through.

package dependencies

The package is developed in python 2.7, higher version of python is not suggested for the current version.

run the following command to install dependencies before running the code: pip install -r requirements.txt

Order Versions

For order versons, please refer:

Happy Hacking.

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].