All Projects → OFAI → hub-toolbox-python3

OFAI / hub-toolbox-python3

Licence: GPL-3.0 license
Hubness analysis and removal functions

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to hub-toolbox-python3

scikit-hubness
A Python package for hubness analysis and high-dimensional data mining
Stars: ✭ 41 (+141.18%)
Mutual labels:  data-mining, high-dimensional-data, hubness
PyDREAM
Python Implementation of Decay Replay Mining (DREAM)
Stars: ✭ 22 (+29.41%)
Mutual labels:  data-mining
scikit-cycling
Tools to analyze cycling data
Stars: ✭ 25 (+47.06%)
Mutual labels:  data-mining
xforest
A super-fast and scalable Random Forest library based on fast histogram decision tree algorithm and distributed bagging framework. It can be used for binary classification, multi-label classification, and regression tasks. This library provides both Python and command line interface to users.
Stars: ✭ 20 (+17.65%)
Mutual labels:  data-mining
KaliIntelligenceSuite
Kali Intelligence Suite (KIS) shall aid in the fast, autonomous, central, and comprehensive collection of intelligence by executing standard penetration testing tools. The collected data is internally stored in a structured manner to allow the fast identification and visualisation of the collected information.
Stars: ✭ 58 (+241.18%)
Mutual labels:  data-mining
Apriori-and-Eclat-Frequent-Itemset-Mining
Implementation of the Apriori and Eclat algorithms, two of the best-known basic algorithms for mining frequent item sets in a set of transactions, implementation in Python.
Stars: ✭ 36 (+111.76%)
Mutual labels:  data-mining
corpusexplorer2.0
Korpuslinguistik war noch nie so einfach...
Stars: ✭ 16 (-5.88%)
Mutual labels:  data-mining
bsu
🎓Repository for university labs on FAMCS, BSU
Stars: ✭ 91 (+435.29%)
Mutual labels:  data-mining
website-to-json
Converts website to json using jQuery selectors
Stars: ✭ 37 (+117.65%)
Mutual labels:  data-mining
xgboost-smote-detect-fraud
Can we predict accurately on the skewed data? What are the sampling techniques that can be used. Which models/techniques can be used in this scenario? Find the answers in this code pattern!
Stars: ✭ 59 (+247.06%)
Mutual labels:  data-mining
Medium-Stats-Analysis
Exploring data and analyzing metrics for user-specific Medium Stats
Stars: ✭ 27 (+58.82%)
Mutual labels:  data-mining
sciblox
sciblox - Easier Data Science and Machine Learning
Stars: ✭ 48 (+182.35%)
Mutual labels:  data-mining
ppmlhdfe
Poisson pseudo-likelihood regression with multiple levels of fixed effects
Stars: ✭ 46 (+170.59%)
Mutual labels:  high-dimensional-data
hierarchical-clustering
A Python implementation of divisive and hierarchical clustering algorithms. The algorithms were tested on the Human Gene DNA Sequence dataset and dendrograms were plotted.
Stars: ✭ 62 (+264.71%)
Mutual labels:  data-mining
Data-Analyst-Nanodegree
This repo consists of the projects that I completed as a part of the Udacity's Data Analyst Nanodegree's curriculum.
Stars: ✭ 13 (-23.53%)
Mutual labels:  data-mining
awesome-Python-data-science-books
Probably the best curated list of data science books in Python
Stars: ✭ 331 (+1847.06%)
Mutual labels:  data-mining
iis
Information Inference Service of the OpenAIRE system
Stars: ✭ 16 (-5.88%)
Mutual labels:  data-mining
teanaps
자연어 처리와 텍스트 분석을 위한 오픈소스 파이썬 라이브러리 입니다.
Stars: ✭ 91 (+435.29%)
Mutual labels:  data-mining
2018-Tencent-Lookalike
2018-腾讯广告算法大赛-相似人群拓展(初赛):10th/1563 (Top 0.64%)
Stars: ✭ 46 (+170.59%)
Mutual labels:  data-mining
simon-frontend
💹 SIMON is powerful, flexible, open-source and easy to use machine learning knowledge discovery platform 💻
Stars: ✭ 114 (+570.59%)
Mutual labels:  data-mining
Documentation Status https://travis-ci.org/OFAI/hub-toolbox-python3.svg?branch=master https://coveralls.io/repos/github/OFAI/hub-toolbox-python3/badge.svg?branch=master https://img.shields.io/aur/license/yaourt.svg?maxAge=2592000

HUB-TOOLBOX

#-----------------------------------------------------------------------------------

Checkout our new project scikit-hubness which provides the functionality of the Hub-Toolbox while integrating nicely into scikit-learn workflows.

Use skhubness.neighbors as a drop-in replacement for sklearn.neighbors. It offers the same functionality and adds transparent support for hubness reduction, approximate nearest neighbor search (HNSW, LSH), and approximate hubness reduction.

We strive to improve usability of hubness reduction with the development of scikit-hubness, and we are very interested in user feedback!

#-----------------------------------------------------------------------------------

The Hub Toolbox is a software suite for hubness analysis and hubness reduction in high-dimensional data.

It allows to

  • analyze, whether your datasets show hubness
  • reduce hubness via a variety of different techniques (including scaling and centering approaches) and obtain secondary distances for downstream analysis inside or outside the Hub Toolbox
  • perform evaluation tasks with both internal and external measures (e.g. Goodman-Kruskal index and k-NN classification)
  • NEW IN 2.5: The approximate module provides approximate hubness reduction methods with linear complexity which allow to analyze large datasets.
  • NEW IN 2.5: Measure hubness with the recently proposed Robin-Hood index for fast and reliable hubness estimation.

Installation

Make sure you have a working Python3 environment (at least 3.6) with numpy, scipy and scikit-learn packages. Use pip3 to install the latest stable version:

pip3 install hub-toolbox

For more details and alternatives, please see the Installation instructions.

Documentation

Documentation is available online: http://hub-toolbox-python3.readthedocs.io/en/latest/index.html

Example

To run a full hubness analysis on the example dataset (DEXTER) using some of the provided hubness reduction methods, simply run the following in a Python shell:

>>> from hub_toolbox.HubnessAnalysis import HubnessAnalysis
>>> ana = HubnessAnalysis()
>>> ana.analyze_hubness()

See how you can conduct the individual analysis steps:

import hub_toolbox

# load the DEXTER example dataset
D, labels, vectors = hub_toolbox.io.load_dexter()

# calculate intrinsic dimension estimate
d_mle = hub_toolbox.intrinsic_dimension.intrinsic_dimension(vector)

# calculate hubness (here, skewness of 5-occurence)
S_k, _, _ = hub_toolbox.hubness.hubness(D=D, k=5, metric='distance')

# perform k-NN classification LOO-CV for two different values of k
acc, _, _ = hub_toolbox.knn_classification.score(
        D=D, target=labels, k=[1,5], metric='distance')

# calculate Goodman-Kruskal index
gamma = hub_toolbox.goodman_kruskal.goodman_kruskal_index(
    D=D, classes=labels, metric='distance')

# Reduce hubness with Mutual Proximity (Empiric distance distribution)
D_mp = hub_toolbox.global_scaling.mutual_proximity_empiric(
    D=D, metric='distance')

# Reduce hubness with Local Scaling variant NICDM
D_nicdm = hub_toolbox.local_scaling.nicdm(D=D, k=10, metric='distance')

# Check whether indices improve after hubness reduction
S_k_mp, _, _ = hub_toolbox.hubness.hubness(D=D_mp, k=5, metric='distance')
acc_mp, _, _ = hub_toolbox.knn_classification.score(
        D=D_mp, target=labels, k=[1,5], metric='distance')
gamma_mp = hub_toolbox.goodman_kruskal.goodman_kruskal_index(
        D=D_mp, classes=labels, metric='distance')

# Repeat the last steps for all secondary distances you calculated
...

Check the Tutorial for in-depth explanations of the same.

Development

Development of the Hub Toolbox has finished. Check out its successor scikit-hubness for fully scikit-learn compatible hubness analysis and approximate neighbor search.

(c) 2011-2018, Dominik Schnitzer and Roman Feldbauer
Austrian Research Institute for Artificial Intelligence (OFAI)
Contact: <[email protected]>

Citation

If you use the Hub Toolbox in your scientific publication, please cite:

@InProceedings{Feldbauer2018b,
           author        = {Roman Feldbauer and Maximilian Leodolter and Claudia Plant and Arthur Flexer},
           title         = {Fast Approximate Hubness Reduction for Large High-Dimensional Data},
           booktitle     = {2018 {IEEE} International Conference on Big Knowledge, {ICBK} 2018, Singapore, November 17-18, 2018},
           year          = {2018},
           editor        = {Xindong Wu and Yew{-}Soon Ong and Charu C. Aggarwal and Huanhuan Chen},
           pages         = {358--367},
           publisher     = {{IEEE} Computer Society},
           bibsource     = {dblp computer science bibliography, https://dblp.org},
           biburl        = {https://dblp.org/rec/conf/icbk/FeldbauerLPF18.bib},
           doi           = {10.1109/ICBK.2018.00055},
         }

Relevant literature:

2018: Fast approximate hubness reduction for large high-dimensional data, available as technical report at http://www.ofai.at/cgi-bin/tr-online?number+2018-02.

2018: A comprehensive empirical comparison of hubness reduction in high-dimensional spaces, full paper available at https://doi.org/10.1007/s10115-018-1205-y

2016: Centering Versus Scaling for Hubness Reduction, available as technical report at http://www.ofai.at/cgi-bin/tr-online?number+2016-05 .

2012: Local and Global Scaling Reduce Hubs in Space, full paper available at http://www.jmlr.org/papers/v13/schnitzer12a.html .

License

The HUB TOOLBOX is licensed under the terms of the GNU GPLv3.

Acknowledgements

PyVmMonitor is being used to support the development of this free open source software package. For more information go to http://www.pyvmmonitor.com

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