Giter Club home page Giter Club logo

kernelmethods's Introduction

Kernel methods and classes

docs/logo_kernelmethods.png

https://coveralls.io/repos/github/raamana/kernelmethods/badge.svg?branch=master

Documentation

API and usage: https://raamana.github.io/kernelmethods/

Demo notebooks (no setup required, click on the binder logo) :

Arxiv preprint

A paper presenting the design and some validation is available at https://arxiv.org/abs/2005.13483

News

  • Hadamard kernel is now available (which showed potential in some bioinformatics applications like breast cancer detection).

Description

kernelmethods is a pure python library defining modular classes that provides basic kernel methods as well as an intuitive interface for advanced functionality such as composite and hyper kernels. This library fills an important void in the ever-growing python-based machine learning ecosystem, where users can only use predefined kernels and are not able to customize or extend them for their own applications, which requires great flexibility owing to their diversity and need for better performing kernel.

schmeatic:

docs/flyer.png

This library defines the KernelMatrix class that is central to all the kernel methods and machines. As the KernelMatrix class is a key bridge between input data and the various kernel learning algorithms, it is designed to be highly usable and extensible to different applications and data types. Besides being able to apply basic kernels on a given sample (to produce a KernelMatrix), this library provides various kernel operations, such as normalization, centering, product, alignment evaluation, linear combination and ranking (by various performance metrics) of kernel matrices.

In addition, we provide several convenient classes, such as KernelSet and KernelBucket for easy management of a large collection of kernels. Dealing with a diverse configuration of kernels is necessary for automatic kernel selection and optimization in applications such as Multiple Kernel Learning (MKL) and the like.

In addition to the common numerical kernels such as the Gaussian and Polynomial kernels, we designed this library to make it easy to develop categorical, string and graph kernels, with the same attractive properties of intuitive and highly-testable API. In addition to providing native implementation of non-numerical kernels, we aim to provide a deeply and easily extensible framework for arbitrary input data types, such as sequences, trees and graphs etc, via data structures such as pyradigm.

Moreover, drop-in Estimator classes are provided, called KernelMachine, offering the power of SVM for seamless usage in the scikit-learn ecosystem. Another useful class is called OptimalKernelSVR which finds the most optimal kernel func for a given sample, and trains the SVM using the optimal kernel.

Docs

API and Usage: https://raamana.github.io/kernelmethods/

Demo notebook: on binder.

A paper presenting the design and some validation is available here

Note

The software is beta. All types of contributions are greatly welcome.

Dedication

This library is dedicated to The Concert for Bangladesh, George Harrison and Pandit Ravi Shankar, who moved me immensely with their empathy and kindness, by organizing the first benefit concert ever to raise international awareness and funds for Bangladesh's liberation war in 1971.

kernelmethods's People

Contributors

raamana avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kernelmethods's Issues

How to use kernelset to add test sets

  • kernelmethods version:
  • Python version:
  • Operating System:

Description

I am using kernelset for multi-core learning. How should I add test set data to kernelset and apply the learned weight data
image

What I Did

Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

ENH: support for sparse arrays

so far only full/dense arrays were tested thoroughly. Deeper/broader testing for sparse arrays would be helpful. This is not expected to take much time.

ENH: tighter parallelization

there is existing work on parallelizing KM computation for large N: #3. It needs to be studied thoroughly for computational and storage efficiencies.

Also, if the better internal data structure (other than the current dict) is feasible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.