diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..eb7c5aa --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,52 @@ +name: Publish documentation online + +# build the documentation whenever there are new commits on main +on: + push: + branches: + - main + # Alternative: only build for tags. + # tags: + # - '*' + +# security: restrict permissions for CI jobs. +permissions: + contents: read + +jobs: + # Build the documentation and upload the static HTML files as an artifact. + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + + # ADJUST THIS: install all dependencies (including pdoc) + - run: python -m pip install --upgrade pip + - run: python -m pip install pdoc + - run: if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - run: python -m pip install scikit-learn==1.2.2 + # ADJUST THIS: build your documentation into docs/. + # We use a custom build script for pdoc itself, ideally you just run `pdoc -o docs/ ...` here. + - run: python docs/make.py + + - uses: actions/upload-pages-artifact@v3 + with: + path: docs/ + + # Deploy the artifact to GitHub pages. + # This is a separate job so that only actions/deploy-pages has the necessary permissions. + deploy: + needs: build + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index b688916..973d168 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.8", "3.9", "3.10"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v3 diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..f89fc90 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,32 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +# Set the OS, Python version and other tools you might need +build: + os: ubuntu-22.04 + tools: + python: "3.12" + # You can also specify other tool versions: + # nodejs: "19" + # rust: "1.64" + # golang: "1.19" + +# Build documentation in the "docs/" directory with Sphinx +sphinx: + configuration: docs/conf.py + +# Optionally build your docs in additional formats such as PDF and ePub +# formats: +# - pdf +# - epub + +# Optional but recommended, declare the Python requirements required +# to build your documentation +# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html +# python: +# install: +# - requirements: docs/requirements.txt diff --git a/README.md b/README.md index 29b2490..e24719d 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,24 @@ Semi-Supervised Learning Library (sslearn) === -![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability-percentage/jlgarridol/sslearn) ![Code Climate coverage](https://img.shields.io/codeclimate/coverage/jlgarridol/sslearn) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/jlgarridol/sslearn/python-package.yml) + + + +![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability-percentage/jlgarridol/sslearn) ![Code Climate coverage](https://img.shields.io/codeclimate/coverage/jlgarridol/sslearn) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/jlgarridol/sslearn/python-package.yml) ![PyPI - Version](https://img.shields.io/pypi/v/sslearn) [![Static Badge](https://img.shields.io/badge/doc-available-blue?style=flat)](https://jlgarridol.github.io/sslearn/) The `sslearn` library is a Python package for machine learning over Semi-supervised datasets. It is an extension of [scikit-learn](https://github.com/scikit-learn/scikit-learn). -Installation ---- +## Installation + + ### Dependencies -* scikit_learn = 1.2.0 -* joblib = 1.2.0 -* numpy = 1.23.3 -* pandas = 1.4.3 -* scipy = 1.9.3 -* statsmodels = 0.13.2 +* joblib >= 1.2.0 +* numpy >= 1.23.3 +* pandas >= 1.4.3 +* scikit_learn >= 1.2.0 +* scipy >= 1.10.1 +* statsmodels >= 0.13.2 * pytest = 7.2.0 (only for testing) ### `pip` installation @@ -23,8 +27,9 @@ It can be installed using *Pypi*: pip install sslearn -Code example ---- +## Code example + + ```python from sslearn.wrapper import TriTraining from sslearn.model_selection import artificial_ssl_dataset @@ -37,20 +42,17 @@ model = TriTraining().fit(X, y) model.score(X_unlabel, true_label) ``` -Citing ---- +## Citing + ```bibtex -@software{jose_luis_garrido_labrador_2023_7565222, - author = {José Luis Garrido-Labrador and - César García-Osorio and - Juan J. Rodríguez and - Jesus Maudes}, - title = {jlgarridol/sslearn: V1.0.2}, +@software{jose_luis_garrido_labrador_2024_10623889, + author = {José Luis Garrido-Labrador}, + title = {jlgarridol/sslearn: v1.0.4}, month = feb, - year = 2023, + year = 2024, publisher = {Zenodo}, - version = {1.0.2}, - doi = {10.5281/zenodo.7650049}, - url = {https://doi.org/10.5281/zenodo.7650049} + version = {1.0.4}, + doi = {10.5281/zenodo.10623889}, + url = {https://doi.org/10.5281/zenodo.10623889} } ``` diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..ceadb09 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/make.py b/docs/make.py new file mode 100644 index 0000000..b1c8bdb --- /dev/null +++ b/docs/make.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 +from pathlib import Path +import shutil +import textwrap +import base64 + +from jinja2 import Environment +from jinja2 import FileSystemLoader +from markupsafe import Markup +import pygments.formatters.html +import pygments.lexers.python + +import pdoc.render + +here = Path(__file__).parent.parent + +# Ignore set_score_request in the docs + + +if __name__ == "__main__": + + favicon = (here / "docs" / "sslearn_mini.webp").read_bytes() + favicon = base64.b64encode(favicon).decode("utf8") + logo = (here / "docs" / "sslearn.webp").read_bytes() + logo = base64.b64encode(logo).decode("utf8") + + # Render main docs + pdoc.render.configure( + + favicon="data:image/webp;base64," + favicon, + logo="data:image/webp;base64," + logo, + logo_link="/sslearn", + footer_text=f"pdoc {pdoc.__version__}", + search=True, + math=True, + include_undocumented=False, + docformat="numpy", + ) + + pdoc.pdoc( + here / "sslearn", + output_directory=here / "docs", + ) + + + with (here / "sitemap.xml").open("w", newline="\n") as f: + f.write( + textwrap.dedent( + """ + + + """ + ).strip() + ) + for file in here.glob("**/*.html"): + if file.name.startswith("_"): + continue + filename = str(file.relative_to(here).as_posix()).replace("index.html", "") + f.write(f"""\nhttps://pdoc.dev/{filename}""") + f.write("""\n""") diff --git a/docs/search.js b/docs/search.js new file mode 100644 index 0000000..42844a8 --- /dev/null +++ b/docs/search.js @@ -0,0 +1,46 @@ +window.pdocSearch = (function(){ +/** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();oSemi-Supervised Learning Library (sslearn)\n\n

\n

\n\n

\"Code \"Code \"GitHub \"PyPI \"Static

\n\n

The sslearn library is a Python package for machine learning over Semi-supervised datasets. It is an extension of scikit-learn.

\n\n

Installation

\n\n

Dependencies

\n\n
    \n
  • joblib >= 1.2.0
  • \n
  • numpy >= 1.23.3
  • \n
  • pandas >= 1.4.3
  • \n
  • scikit_learn >= 1.2.0
  • \n
  • scipy >= 1.10.1
  • \n
  • statsmodels >= 0.13.2
  • \n
  • pytest = 7.2.0 (only for testing)
  • \n
\n\n

pip installation

\n\n

It can be installed using Pypi:

\n\n
pip install sslearn\n
\n\n

Code example

\n\n
\n
from sslearn.wrapper import TriTraining\nfrom sslearn.model_selection import artificial_ssl_dataset\nfrom sklearn.datasets import load_iris\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, true_label = artificial_ssl_dataset(X, y, label_rate=0.1)\n\nmodel = TriTraining().fit(X, y)\nmodel.score(X_unlabel, true_label)\n
\n
\n\n

Citing

\n\n
\n
@software{jose_luis_garrido_labrador_2024_10623889,\n  author       = {Jos\u00e9 Luis Garrido-Labrador},\n  title        = {jlgarridol/sslearn: v1.0.4},\n  month        = feb,\n  year         = 2024,\n  publisher    = {Zenodo},\n  version      = {1.0.4},\n  doi          = {10.5281/zenodo.10623889},\n  url          = {https://doi.org/10.5281/zenodo.10623889}\n}\n
\n
\n"}, "sslearn.base": {"fullname": "sslearn.base", "modulename": "sslearn.base", "kind": "module", "doc": "

Summary of module sslearn.base:

\n\n

Functions

\n\n

get_dataset(X, y):\n Check and divide dataset between labeled and unlabeled data.

\n\n

Classes

\n\n

FakedProbaClassifier:

\n\n
\n

Create a classifier that fakes predict_proba method if it does not exist.

\n
\n\n

OneVsRestSSLClassifier:

\n\n
\n

Adapted OneVsRestClassifier for SSL datasets

\n
\n"}, "sslearn.base.get_dataset": {"fullname": "sslearn.base.get_dataset", "modulename": "sslearn.base", "qualname": "get_dataset", "kind": "function", "doc": "

Check and divide dataset between labeled and unlabeled data.

\n\n
Parameters
\n\n
    \n
  • X (ndarray or DataFrame of shape (n_samples, n_features)):\nFeatures matrix.
  • \n
  • y (ndarray of shape (n_samples,)):\nTarget vector.
  • \n
\n\n
Returns
\n\n
    \n
  • X_label (ndarray or DataFrame of shape (n_label, n_features)):\nLabeled features matrix.
  • \n
  • y_label (ndarray or Serie of shape (n_label,)):\nLabeled target vector.
  • \n
  • X_unlabel (ndarray or Serie DataFrame of shape (n_unlabel, n_features)):\nUnlabeled features matrix.
  • \n
\n", "signature": "(X, y):", "funcdef": "def"}, "sslearn.base.FakedProbaClassifier": {"fullname": "sslearn.base.FakedProbaClassifier", "modulename": "sslearn.base", "qualname": "FakedProbaClassifier", "kind": "class", "doc": "

Fake predict_proba method for classifiers that do not have it. \nWhen predict_proba is called, it will use one hot encoding to fake the probabilities if base_estimator does not have predict_proba method.

\n\n
Examples
\n\n
\n
from sklearn.svm import SVC\n# SVC does not have predict_proba method\n\nfrom sslearn.base import FakedProbaClassifier\nfaked_svc = FakedProbaClassifier(SVC())\nfaked_svc.fit(X, y)\nfaked_svc.predict_proba(X) # One hot encoding probabilities\n
\n
\n", "bases": "sklearn.base.MetaEstimatorMixin, sklearn.base.ClassifierMixin, sklearn.base.BaseEstimator"}, "sslearn.base.FakedProbaClassifier.__init__": {"fullname": "sslearn.base.FakedProbaClassifier.__init__", "modulename": "sslearn.base", "qualname": "FakedProbaClassifier.__init__", "kind": "function", "doc": "

Create a classifier that fakes predict_proba method if it does not exist.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin):\nA classifier that implements fit and predict methods.
  • \n
\n", "signature": "(base_estimator)"}, "sslearn.base.FakedProbaClassifier.fit": {"fullname": "sslearn.base.FakedProbaClassifier.fit", "modulename": "sslearn.base", "qualname": "FakedProbaClassifier.fit", "kind": "function", "doc": "

Fit a FakedProbaClassifier.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
  • y ({array-like, sparse matrix} of shape (n_samples,)):\nThe target values.
  • \n
\n\n
Returns
\n\n
    \n
  • self (FakedProbaClassifier):\nReturns self.
  • \n
\n", "signature": "(self, X, y):", "funcdef": "def"}, "sslearn.base.FakedProbaClassifier.predict": {"fullname": "sslearn.base.FakedProbaClassifier.predict", "modulename": "sslearn.base", "qualname": "FakedProbaClassifier.predict", "kind": "function", "doc": "

Predict the classes of X.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nArray representing the data.
  • \n
\n\n
Returns
\n\n
    \n
  • y (ndarray of shape (n_samples,)):\nArray with predicted labels.
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.base.FakedProbaClassifier.predict_proba": {"fullname": "sslearn.base.FakedProbaClassifier.predict_proba", "modulename": "sslearn.base", "qualname": "FakedProbaClassifier.predict_proba", "kind": "function", "doc": "

Predict the probabilities of each class for X. \nIf the base estimator does not have a predict_proba method, it will be faked using one hot encoding.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):
  • \n
\n\n
Returns
\n\n
    \n
  • y (ndarray of shape (n_samples, n_classes)):\nArray with predicted probabilities.
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.base.OneVsRestSSLClassifier": {"fullname": "sslearn.base.OneVsRestSSLClassifier", "modulename": "sslearn.base", "qualname": "OneVsRestSSLClassifier", "kind": "class", "doc": "

Adapted OneVsRestClassifier for SSL datasets

\n\n

Prevent use unlabeled data as a independent class in the classifier.

\n\n

For more information of OvR classifier, see the documentation of OneVsRestClassifier.

\n", "bases": "sklearn.multiclass.OneVsRestClassifier"}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"fullname": "sslearn.base.OneVsRestSSLClassifier.__init__", "modulename": "sslearn.base", "qualname": "OneVsRestSSLClassifier.__init__", "kind": "function", "doc": "

Adapted OneVsRestClassifier for SSL datasets

\n\n
Parameters
\n\n
    \n
  • estimator ({ClassifierMixin, list},):\nAn estimator object implementing fit and predict_proba or a list of ClassifierMixin
  • \n
  • n_jobs : n_jobs (int, optional):\nThe number of jobs to run in parallel. -1 means using all processors., by default None
  • \n
\n", "signature": "(estimator, *, n_jobs=None)"}, "sslearn.base.OneVsRestSSLClassifier.fit": {"fullname": "sslearn.base.OneVsRestSSLClassifier.fit", "modulename": "sslearn.base", "qualname": "OneVsRestSSLClassifier.fit", "kind": "function", "doc": "

Fit underlying estimators.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nData.
  • \n
  • y ({array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)):\nMulti-class targets. An indicator matrix turns on multilabel\nclassification.
  • \n
\n\n
Returns
\n\n
    \n
  • self (object):\nInstance of fitted estimator.
  • \n
\n", "signature": "(self, X, y, **fit_params):", "funcdef": "def"}, "sslearn.base.OneVsRestSSLClassifier.predict": {"fullname": "sslearn.base.OneVsRestSSLClassifier.predict", "modulename": "sslearn.base", "qualname": "OneVsRestSSLClassifier.predict", "kind": "function", "doc": "

Predict multi-class targets using underlying estimators.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nData.
  • \n
\n\n
Returns
\n\n
    \n
  • y ({array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)):\nPredicted multi-class targets.
  • \n
\n", "signature": "(self, X, **kwards):", "funcdef": "def"}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"fullname": "sslearn.base.OneVsRestSSLClassifier.predict_proba", "modulename": "sslearn.base", "qualname": "OneVsRestSSLClassifier.predict_proba", "kind": "function", "doc": "

Probability estimates.

\n\n

The returned estimates for all classes are ordered by label of classes.

\n\n

Note that in the multilabel case, each sample can have any number of\nlabels. This returns the marginal probability that the given sample has\nthe label in question. For example, it is entirely consistent that two\nlabels both have a 90% probability of applying to a given sample.

\n\n

In the single label multiclass case, the rows of the returned matrix\nsum to 1.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nInput data.
  • \n
\n\n
Returns
\n\n
    \n
  • T (array-like of shape (n_samples, n_classes)):\nReturns the probability of the sample for each class in the model,\nwhere classes are ordered as they are in self.classes_.
  • \n
\n", "signature": "(self, X, **kwards):", "funcdef": "def"}, "sslearn.datasets": {"fullname": "sslearn.datasets", "modulename": "sslearn.datasets", "kind": "module", "doc": "

Summary of module sslearn.datasets:

\n\n

This module contains functions to load and save datasets in different formats.

\n\n

Functions

\n\n
    \n
  1. read_csv : Load a dataset from a CSV file.
  2. \n
  3. read_keel : Load a dataset from a KEEL file.
  4. \n
  5. secure_dataset : Secure the dataset by converting it into a secure format.
  6. \n
  7. save_keel : Save a dataset in KEEL format.
  8. \n
\n"}, "sslearn.datasets.read_csv": {"fullname": "sslearn.datasets.read_csv", "modulename": "sslearn.datasets", "qualname": "read_csv", "kind": "function", "doc": "

Read a .csv file

\n\n
Parameters
\n\n
    \n
  • path (str):\nFile path
  • \n
  • format (str, optional):\nObject that will contain the data, it can be numpy or pandas, by default \"pandas\"
  • \n
  • secure (bool, optional):\nIt guarantees that the dataset has not -1 as valid class, in order to make it semi-supervised after, by default False
  • \n
  • target_col ({str, int, None}, optional):\nColumn name or index to select class column, if None use the default value stored in the file, by default None
  • \n
\n\n
Returns
\n\n
    \n
  • X, y (array_like):\nDataset loaded.
  • \n
\n", "signature": "(path, format='pandas', secure=False, target_col=-1, **kwards):", "funcdef": "def"}, "sslearn.datasets.read_keel": {"fullname": "sslearn.datasets.read_keel", "modulename": "sslearn.datasets", "qualname": "read_keel", "kind": "function", "doc": "

Read a .dat file from KEEL (http://www.keel.es/)

\n\n
Parameters
\n\n
    \n
  • path (str):\nFile path
  • \n
  • format (str, optional):\nObject that will contain the data, it can be numpy or pandas, by default \"pandas\"
  • \n
  • secure (bool, optional):\nIt guarantees that the dataset has not -1 as valid class, in order to make it semi-supervised after, by default False
  • \n
  • target_col ({str, int, None}, optional):\nColumn name or index to select class column, if None use the default value stored in the file, by default None
  • \n
  • encoding (str, optional):\nEncoding of file, by default \"utf-8\"
  • \n
\n\n
Returns
\n\n
    \n
  • X, y (array_like):\nDataset loaded.
  • \n
\n", "signature": "(\tpath,\tformat='pandas',\tsecure=False,\ttarget_col=None,\tencoding='utf-8',\t**kwards):", "funcdef": "def"}, "sslearn.datasets.secure_dataset": {"fullname": "sslearn.datasets.secure_dataset", "modulename": "sslearn.datasets", "qualname": "secure_dataset", "kind": "function", "doc": "

It guarantees that the dataset has not -1 as valid class, in order to make it semi-supervised after

\n\n
Parameters
\n\n
    \n
  • X (Array-like):\nIgnored
  • \n
  • y (Array-like):\nTarget array.
  • \n
\n\n
Returns
\n\n
    \n
  • X, y (array_like):\nDataset securized.
  • \n
\n", "signature": "(X, y):", "funcdef": "def"}, "sslearn.datasets.save_keel": {"fullname": "sslearn.datasets.save_keel", "modulename": "sslearn.datasets", "qualname": "save_keel", "kind": "function", "doc": "

Save a dataset in the KEEL format

\n\n
Parameters
\n\n
    \n
  • X (array-like):\nDataset features
  • \n
  • y (array-like):\nDataset targets
  • \n
  • route (str):\nPath to save the dataset
  • \n
  • name (str, optional):\nDataset name, if None the route basename will be selected, by default None
  • \n
  • attribute_name (list, optional):\nList of attribute names, if None the default names will be used, by default None
  • \n
  • target_name (str, optional):\nTarget name, by default \"Class\"
  • \n
  • classification (bool, optional):\nIf the dataset is classification or regression, by default True
  • \n
  • unlabeled (bool, optional):\nIf the dataset has unlabeled instances, by default True
  • \n
  • force_targets (collection, optional):\nForce the targets to be a specific value, by default None
  • \n
\n", "signature": "(\tX,\ty,\troute,\tname=None,\tattribute_name=None,\ttarget_name='Class',\tclassification=True,\tunlabeled=True,\tforce_targets=None):", "funcdef": "def"}, "sslearn.model_selection": {"fullname": "sslearn.model_selection", "modulename": "sslearn.model_selection", "kind": "module", "doc": "

Summary of module sslearn.model_selection:

\n\n

This module contains functions to split datasets into training and testing sets.

\n\n

Functions

\n\n

artificial_ssl_dataset:

\n\n
\n

Generate an artificial semi-supervised learning dataset.

\n
\n\n

Classes

\n\n

StratifiedKFoldSS:

\n\n
\n

Stratified K-Folds cross-validator for semi-supervised learning.

\n
\n"}, "sslearn.model_selection.artificial_ssl_dataset": {"fullname": "sslearn.model_selection.artificial_ssl_dataset", "modulename": "sslearn.model_selection", "qualname": "artificial_ssl_dataset", "kind": "function", "doc": "

Create an artificial Semi-supervised dataset from a supervised dataset.

\n\n
Parameters
\n\n
    \n
  • X (array-like of shape (n_samples, n_features)):\nTraining data, where n_samples is the number of samples\nand n_features is the number of features.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target variable for supervised learning problems.
  • \n
  • label_rate (float, optional):\nProportion between labeled instances and unlabel instances, by default 0.1
  • \n
  • random_state (int or RandomState, optional):\nControls the shuffling applied to the data before applying the split. Pass an int for reproducible output across multiple function calls, by default None
  • \n
  • force_minimum (int, optional):\nForce a minimum of instances of each class, by default None
  • \n
  • indexes (bool, optional):\nIf True, return the indexes of the labeled and unlabeled instances, by default False
  • \n
  • shuffle (bool, default=True):\nWhether or not to shuffle the data before splitting. If shuffle=False then stratify must be None.
  • \n
  • stratify (array-like, default=None):\nIf not None, data is split in a stratified fashion, using this as the class labels.
  • \n
\n\n
Returns
\n\n
    \n
  • X (ndarray):\nThe feature set.
  • \n
  • y (ndarray):\nThe label set, -1 for unlabel instance.
  • \n
  • X_unlabel (ndarray):\nThe feature set for each y mark as unlabel
  • \n
  • y_unlabel (ndarray):\nThe true label for each y in the same order.
  • \n
  • label (ndarray (optional)):\nThe training set indexes for split mark as labeled.
  • \n
  • unlabel (ndarray (optional)):\nThe training set indexes for split mark as unlabeled.
  • \n
\n", "signature": "(\tX,\ty,\tlabel_rate=0.1,\trandom_state=None,\tforce_minimum=None,\tindexes=False,\t**kwards):", "funcdef": "def"}, "sslearn.model_selection.StratifiedKFoldSS": {"fullname": "sslearn.model_selection.StratifiedKFoldSS", "modulename": "sslearn.model_selection", "qualname": "StratifiedKFoldSS", "kind": "class", "doc": "

Stratified K-Folds cross-validator for semi-supervised learning.

\n\n

Provides label and unlabel indices for each split. Using the StratifiedKFold method from sklearn.\nThe test set is the labeled set and the train set is the unlabeled set.

\n"}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"fullname": "sslearn.model_selection.StratifiedKFoldSS.__init__", "modulename": "sslearn.model_selection", "qualname": "StratifiedKFoldSS.__init__", "kind": "function", "doc": "
Parameters
\n\n
    \n
  • n_splits (int, default=5):\nNumber of folds. Must be at least 2.
  • \n
  • shuffle (bool, default=False):\nWhether to shuffle each class's samples before splitting into batches.
  • \n
  • random_state (int or RandomState instance, default=None):\nWhen shuffle is True, random_state affects the ordering of the indices.
  • \n
\n", "signature": "(n_splits=5, shuffle=False, random_state=None)"}, "sslearn.model_selection.StratifiedKFoldSS.split": {"fullname": "sslearn.model_selection.StratifiedKFoldSS.split", "modulename": "sslearn.model_selection", "qualname": "StratifiedKFoldSS.split", "kind": "function", "doc": "

Generate a artificial dataset based on StratifiedKFold method

\n\n
Parameters
\n\n
    \n
  • X (array-like of shape (n_samples, n_features)):\nTraining data, where n_samples is the number of samples\nand n_features is the number of features.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target variable for supervised learning problems.
  • \n
\n\n
Yields
\n\n
    \n
  • X (ndarray):\nThe feature set.
  • \n
  • y (ndarray):\nThe label set, -1 for unlabel instance.
  • \n
  • label (ndarray):\nThe training set indices for split mark as labeled.
  • \n
  • unlabel (ndarray):\nThe training set indices for split mark as unlabeled.
  • \n
\n", "signature": "(self, X, y):", "funcdef": "def"}, "sslearn.restricted": {"fullname": "sslearn.restricted", "modulename": "sslearn.restricted", "kind": "module", "doc": "

Summary of module sslearn.restricted:

\n\n

This module contains classes to train a classifier using the restricted set classification approach.

\n\n

Classes

\n\n

WhoIsWhoClassifier:

\n\n
\n

Who is Who Classifier

\n
\n\n

Functions

\n\n

conflict_rate:

\n\n
\n

Compute the conflict rate of a prediction, given a set of restrictions.\n combine_predictions: \n Combine the predictions of a group of instances to keep the restrictions.

\n
\n"}, "sslearn.restricted.conflict_rate": {"fullname": "sslearn.restricted.conflict_rate", "modulename": "sslearn.restricted", "qualname": "conflict_rate", "kind": "function", "doc": "

Computes the conflict rate of a prediction, given a set of restrictions.

\n\n
Parameters
\n\n
    \n
  • y_pred (array-like of shape (n_samples,)):\nPredicted target values.
  • \n
  • restrictions (array-like of shape (n_samples,)):\nRestrictions for each sample. If two samples have the same restriction, they cannot have the same y.
  • \n
  • weighted (bool, default=True):\nWhether to weighted the confusion rate by the number of instances with the same group.
  • \n
\n\n
Returns
\n\n
    \n
  • conflict rate (float):\nThe conflict rate.
  • \n
\n", "signature": "(y_pred, restrictions, weighted=True):", "funcdef": "def"}, "sslearn.restricted.WhoIsWhoClassifier": {"fullname": "sslearn.restricted.WhoIsWhoClassifier", "modulename": "sslearn.restricted", "qualname": "WhoIsWhoClassifier", "kind": "class", "doc": "

Base class for all estimators in scikit-learn.

\n\n
Notes
\n\n

All estimators should specify all the parameters that can be set\nat the class level in their __init__ as explicit keyword\narguments (no *args or **kwargs).

\n", "bases": "sklearn.base.BaseEstimator, sklearn.base.ClassifierMixin, sklearn.base.MetaEstimatorMixin"}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"fullname": "sslearn.restricted.WhoIsWhoClassifier.__init__", "modulename": "sslearn.restricted", "qualname": "WhoIsWhoClassifier.__init__", "kind": "function", "doc": "

Who is Who Classifier\nKuncheva, L. I., Rodriguez, J. J., & Jackson, A. S. (2017).\nRestricted set classification: Who is there?. Pattern Recognition, 63, 158-170.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin):\nThe base estimator to be used for training.
  • \n
  • method (str, optional):\nThe method to use to assing class, it can be greedy to first-look or hungarian to use the Hungarian algorithm, by default \"hungarian\"
  • \n
  • conflict_weighted (bool, default=True):\nWhether to weighted the confusion rate by the number of instances with the same group.
  • \n
\n", "signature": "(base_estimator, method='hungarian', conflict_weighted=True)"}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"fullname": "sslearn.restricted.WhoIsWhoClassifier.fit", "modulename": "sslearn.restricted", "qualname": "WhoIsWhoClassifier.fit", "kind": "function", "doc": "

Fit the model according to the given training data.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values.
  • \n
  • instance_group (array-like of shape (n_samples)):\nThe group. Two instances with the same label are not allowed to be in the same group. If None, group restriction will not be used in training.
  • \n
\n\n
Returns
\n\n
    \n
  • self (object):\nReturns self.
  • \n
\n", "signature": "(self, X, y, instance_group=None, **kwards):", "funcdef": "def"}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"fullname": "sslearn.restricted.WhoIsWhoClassifier.conflict_rate", "modulename": "sslearn.restricted", "qualname": "WhoIsWhoClassifier.conflict_rate", "kind": "function", "doc": "

Calculate the conflict rate of the model.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
  • instance_group (array-like of shape (n_samples)):\nThe group. Two instances with the same label are not allowed to be in the same group.
  • \n
\n\n
Returns
\n\n
    \n
  • float: The conflict rate.
  • \n
\n", "signature": "(self, X, instance_group):", "funcdef": "def"}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"fullname": "sslearn.restricted.WhoIsWhoClassifier.predict", "modulename": "sslearn.restricted", "qualname": "WhoIsWhoClassifier.predict", "kind": "function", "doc": "

Predict class for X.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
  • **kwards (array-like of shape (n_samples)):\nThe group. Two instances with the same label are not allowed to be in the same group.
  • \n
\n\n
Returns
\n\n
    \n
  • array-like of shape (n_samples, n_classes): The class probabilities of the input samples.
  • \n
\n", "signature": "(self, X, instance_group):", "funcdef": "def"}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"fullname": "sslearn.restricted.WhoIsWhoClassifier.predict_proba", "modulename": "sslearn.restricted", "qualname": "WhoIsWhoClassifier.predict_proba", "kind": "function", "doc": "

Predict class probabilities for X.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • array-like of shape (n_samples, n_classes): The class probabilities of the input samples.
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.subview": {"fullname": "sslearn.subview", "modulename": "sslearn.subview", "kind": "module", "doc": "

Summary of module sslearn.subview:

\n\n

This module contains classes to train a classifier or a regressor selecting a sub-view of the data.

\n\n

Classes

\n\n

SubViewClassifier:

\n\n
\n

Train a sub-view classifier.\n SubViewRegressor:\n Train a sub-view regressor.

\n
\n"}, "sslearn.subview.SubViewClassifier": {"fullname": "sslearn.subview.SubViewClassifier", "modulename": "sslearn.subview", "qualname": "SubViewClassifier", "kind": "class", "doc": "

A classifier that uses a subview of the data.

\n\n
Example
\n\n
\n
from sklearn.model_selection import train_test_split\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sslearn.subview import SubViewClassifier\n\n# Mode 'include' will include all columns that contain `string`\nclf = SubViewClassifier(DecisionTreeClassifier(), "sepal", mode="include")\nclf.fit(X, y)\n\n# Mode 'regex' will include all columns that match the regex\nclf = SubViewClassifier(DecisionTreeClassifier(), "sepal.*", mode="regex")\nclf.fit(X, y)\n\n# Mode 'index' will include the columns at the index, useful for numpy arrays\nclf = SubViewClassifier(DecisionTreeClassifier(), [0, 1], mode="index")\nclf.fit(X, y)\n
\n
\n", "bases": "sslearn.subview._subview.SubView, sklearn.base.ClassifierMixin"}, "sslearn.subview.SubViewClassifier.predict_proba": {"fullname": "sslearn.subview.SubViewClassifier.predict_proba", "modulename": "sslearn.subview", "qualname": "SubViewClassifier.predict_proba", "kind": "function", "doc": "

Predict class probabilities using the base estimator.

\n\n
Parameters
\n\n
    \n
  • X (array-like of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • p (array-like of shape (n_samples, n_classes)):\nThe class probabilities of the input samples.
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.subview.SubViewRegressor": {"fullname": "sslearn.subview.SubViewRegressor", "modulename": "sslearn.subview", "qualname": "SubViewRegressor", "kind": "class", "doc": "

A classifier that uses a subview of the data.

\n\n
Example
\n\n
\n
from sklearn.model_selection import train_test_split\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sslearn.subview import SubViewClassifier\n\n# Mode 'include' will include all columns that contain `string`\nclf = SubViewClassifier(DecisionTreeClassifier(), "sepal", mode="include")\nclf.fit(X, y)\n\n# Mode 'regex' will include all columns that match the regex\nclf = SubViewClassifier(DecisionTreeClassifier(), "sepal.*", mode="regex")\nclf.fit(X, y)\n\n# Mode 'index' will include the columns at the index, useful for numpy arrays\nclf = SubViewClassifier(DecisionTreeClassifier(), [0, 1], mode="index")\nclf.fit(X, y)\n
\n
\n", "bases": "sslearn.subview._subview.SubView, sklearn.base.RegressorMixin"}, "sslearn.subview.SubViewRegressor.predict": {"fullname": "sslearn.subview.SubViewRegressor.predict", "modulename": "sslearn.subview", "qualname": "SubViewRegressor.predict", "kind": "function", "doc": "

Predict using the base estimator.

\n\n
Parameters
\n\n
    \n
  • X (array-like of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • y (array-like of shape (n_samples,)):\nThe predicted values.
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.utils": {"fullname": "sslearn.utils", "modulename": "sslearn.utils", "kind": "module", "doc": "

Some utility functions

\n\n

This module contains utility functions that are used in different parts of the library.

\n\n

Functions

\n\n

safe_division:

\n\n
\n

Safely divide two numbers preventing division by zero.\n confidence_interval:\n Calculate the confidence interval of the predictions.\n choice_with_proportion: \n Choice the best predictions according to the proportion of each class.\n calculate_prior_probability:\n Calculate the priori probability of each label.\n mode:\n Calculate the mode of a list of values.\n check_n_jobs:\n Check n_jobs parameter according to the scikit-learn convention.\n check_classifier:\n Check if the classifier is a ClassifierMixin or a list of ClassifierMixin.

\n
\n"}, "sslearn.utils.safe_division": {"fullname": "sslearn.utils.safe_division", "modulename": "sslearn.utils", "qualname": "safe_division", "kind": "function", "doc": "

Safely divide two numbers preventing division by zero

\n\n
Parameters
\n\n
    \n
  • dividend (numeric):\nDividend value
  • \n
  • divisor (numeric):\nDivisor value
  • \n
  • epsilon (numeric):\nClose to zero value to be used in case of division by zero
  • \n
\n\n
Returns
\n\n
    \n
  • result (numeric):\nResult of the division
  • \n
\n", "signature": "(dividend, divisor, epsilon):", "funcdef": "def"}, "sslearn.utils.confidence_interval": {"fullname": "sslearn.utils.confidence_interval", "modulename": "sslearn.utils", "qualname": "confidence_interval", "kind": "function", "doc": "

Calculate the confidence interval of the predictions

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
  • hyp (classifier):\nThe classifier to be used for prediction
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values
  • \n
  • alpha (float, optional):\nconfidence (1 - significance), by default .95
  • \n
\n\n
Returns
\n\n
    \n
  • li, hi (float):\nlower and upper bound of the confidence interval
  • \n
\n", "signature": "(X, hyp, y, alpha=0.95):", "funcdef": "def"}, "sslearn.utils.choice_with_proportion": {"fullname": "sslearn.utils.choice_with_proportion", "modulename": "sslearn.utils", "qualname": "choice_with_proportion", "kind": "function", "doc": "

Choice the best predictions according to the proportion of each class.

\n\n
Parameters
\n\n
    \n
  • predictions (array-like of shape (n_samples,)):\narray of predictions
  • \n
  • class_predicted (array-like of shape (n_samples,)):\narray of predicted classes
  • \n
  • proportion (dict):\ndictionary with the proportion of each class
  • \n
  • extra (int, optional):\nnumber of extra instances to be added, by default 0
  • \n
\n\n
Returns
\n\n
    \n
  • indices (array-like of shape (n_samples,)):\narray of indices of the best predictions
  • \n
\n", "signature": "(predictions, class_predicted, proportion, extra=0):", "funcdef": "def"}, "sslearn.utils.calculate_prior_probability": {"fullname": "sslearn.utils.calculate_prior_probability", "modulename": "sslearn.utils", "qualname": "calculate_prior_probability", "kind": "function", "doc": "

Calculate the priori probability of each label

\n\n
Parameters
\n\n
    \n
  • y (array-like of shape (n_samples,)):\narray of labels
  • \n
\n\n
Returns
\n\n
    \n
  • class_probability (dict):\ndictionary with priori probability (value) of each label (key)
  • \n
\n", "signature": "(y):", "funcdef": "def"}, "sslearn.utils.mode": {"fullname": "sslearn.utils.mode", "modulename": "sslearn.utils", "qualname": "mode", "kind": "function", "doc": "

Calculate the mode of a list of values

\n\n
Parameters
\n\n
    \n
  • y (array-like of shape (n_samples, n_estimators)):\narray of values
  • \n
\n\n
Returns
\n\n
    \n
  • mode (array-like of shape (n_samples,)):\narray of mode of each label
  • \n
  • count (array-like of shape (n_samples,)):\narray of count of the mode of each label
  • \n
\n", "signature": "(y):", "funcdef": "def"}, "sslearn.utils.check_n_jobs": {"fullname": "sslearn.utils.check_n_jobs", "modulename": "sslearn.utils", "qualname": "check_n_jobs", "kind": "function", "doc": "

Check n_jobs parameter according to the scikit-learn convention.\nFrom sktime: BSD 3-Clause

\n\n
Parameters
\n\n
    \n
  • n_jobs (int, positive or -1):\nThe number of jobs for parallelization.
  • \n
\n\n
Returns
\n\n
    \n
  • n_jobs (int):\nChecked number of jobs.
  • \n
\n", "signature": "(n_jobs):", "funcdef": "def"}, "sslearn.wrapper": {"fullname": "sslearn.wrapper", "modulename": "sslearn.wrapper", "kind": "module", "doc": "

Summary of module sslearn.wrapper:

\n\n

This module contains classes to train semi-supervised learning algorithms using a wrapper approach.

\n\n

Self-Training Algorithms

\n\n
    \n
  • SelfTraining: \nSelf-training algorithm.
  • \n
  • Setred:\nSelf-training with redundancy reduction.
  • \n
\n\n

Co-Training Algorithms

\n\n\n"}, "sslearn.wrapper.SelfTraining": {"fullname": "sslearn.wrapper.SelfTraining", "modulename": "sslearn.wrapper", "qualname": "SelfTraining", "kind": "class", "doc": "

Self Training Classifier with data loader compatible.

\n\n

Is the same SelfTrainingClassifier from sklearn but with sslearn data loader compatible.\nFor more information, see the sklearn documentation.

\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sslearn.model_selection import artificial_ssl_dataset\nfrom sslearn.wrapper import SelfTraining\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\n\nclf = SelfTraining()\nclf.fit(X, y)\nclf.score(X_unlabel, y_unlabel)\n
\n
\n\n

References

\n\n

David Yarowsky. (1995).
\nUnsupervised word sense disambiguation rivaling supervised methods.
\nIn Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL '95).
\nAssociation for Computational Linguistics,
\nStroudsburg, PA, USA, 189-196.
\n10.3115/981658.981684

\n", "bases": "sklearn.semi_supervised._self_training.SelfTrainingClassifier"}, "sslearn.wrapper.SelfTraining.__init__": {"fullname": "sslearn.wrapper.SelfTraining.__init__", "modulename": "sslearn.wrapper", "qualname": "SelfTraining.__init__", "kind": "function", "doc": "

Self-training. Adaptation of SelfTrainingClassifier from sklearn with data loader compatible.

\n\n

This class allows a given supervised classifier to function as a\nsemi-supervised classifier, allowing it to learn from unlabeled data. It\ndoes this by iteratively predicting pseudo-labels for the unlabeled data\nand adding them to the training set.

\n\n

The classifier will continue iterating until either max_iter is reached, or\nno pseudo-labels were added to the training set in the previous iteration.

\n\n
Parameters
\n\n
    \n
  • base_estimator (estimator object):\nAn estimator object implementing fit and predict_proba.\nInvoking the fit method will fit a clone of the passed estimator,\nwhich will be stored in the base_estimator_ attribute.
  • \n
  • threshold (float, default=0.75):\nThe decision threshold for use with criterion='threshold'.\nShould be in [0, 1). When using the 'threshold' criterion, a\n:ref:well calibrated classifier <calibration> should be used.
  • \n
  • criterion ({'threshold', 'k_best'}, default='threshold'):\nThe selection criterion used to select which labels to add to the\ntraining set. If 'threshold', pseudo-labels with prediction\nprobabilities above threshold are added to the dataset. If 'k_best',\nthe k_best pseudo-labels with highest prediction probabilities are\nadded to the dataset. When using the 'threshold' criterion, a\n:ref:well calibrated classifier <calibration> should be used.
  • \n
  • k_best (int, default=10):\nThe amount of samples to add in each iteration. Only used when\ncriterion is k_best'.
  • \n
  • max_iter (int or None, default=10):\nMaximum number of iterations allowed. Should be greater than or equal\nto 0. If it is None, the classifier will continue to predict labels\nuntil no new pseudo-labels are added, or all unlabeled samples have\nbeen labeled.
  • \n
  • verbose (bool, default=False):\nEnable verbose output.
  • \n
\n", "signature": "(\tbase_estimator,\tthreshold=0.75,\tcriterion='threshold',\tk_best=10,\tmax_iter=10,\tverbose=False)"}, "sslearn.wrapper.SelfTraining.fit": {"fullname": "sslearn.wrapper.SelfTraining.fit", "modulename": "sslearn.wrapper", "qualname": "SelfTraining.fit", "kind": "function", "doc": "

Fits this SelfTrainingClassifier to a dataset.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nArray representing the data.
  • \n
  • y ({array-like, sparse matrix} of shape (n_samples,)):\nArray representing the labels. Unlabeled samples should have the\nlabel -1.
  • \n
\n\n
Returns
\n\n
    \n
  • self (SelfTrainingClassifier):\nReturns an instance of self.
  • \n
\n", "signature": "(self, X, y):", "funcdef": "def"}, "sslearn.wrapper.Setred": {"fullname": "sslearn.wrapper.Setred", "modulename": "sslearn.wrapper", "qualname": "Setred", "kind": "class", "doc": "

Self-training with Editing.

\n\n

Create a SETRED classifier. It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set.\nThe main process are:

\n\n
    \n
  1. Train a classifier with the labeled data.
  2. \n
  3. Create a pool of unlabeled data and select the most confident predictions.
  4. \n
  5. Repeat until the maximum number of iterations is reached:\na. Select the most confident predictions from the unlabeled data.\nb. Calculate the neighborhood graph of the labeled data and the selected instances from the unlabeled data.\nc. Calculate the significance level of the selected instances.\nd. Reject the instances that are not significant according their position in the neighborhood graph.\ne. Add the selected instances to the labeled data and retrains the classifier.\nf. Add new instances to the pool of unlabeled data.
  6. \n
  7. Return the classifier trained with the labeled data.
  8. \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sslearn.model_selection import artificial_ssl_dataset\nfrom sslearn.wrapper import Setred\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\n\nclf = Setred()\nclf.fit(X, y)\nclf.score(X_unlabel, y_unlabel)\n
\n
\n\n

References

\n\n

Li, Ming, and Zhi-Hua Zhou. (2005)
\nSETRED: Self-training with editing,
\nin Advances in Knowledge Discovery and Data Mining.
\nPacific-Asia Conference on Knowledge Discovery and Data Mining
\nLNAI 3518, Springer, Berlin, Heidelberg,
\n10.1007/11430919_71

\n", "bases": "sklearn.base.ClassifierMixin, sklearn.base.BaseEstimator"}, "sslearn.wrapper.Setred.__init__": {"fullname": "sslearn.wrapper.Setred.__init__", "modulename": "sslearn.wrapper", "qualname": "Setred.__init__", "kind": "function", "doc": "

Create a SETRED classifier.\nIt is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nAn estimator object implementing fit and predict_proba,, by default DecisionTreeClassifier(), by default KNeighborsClassifier(n_neighbors=3)
  • \n
  • max_iterations (int, optional):\nMaximum number of iterations allowed. Should be greater than or equal to 0., by default 40
  • \n
  • distance (str, optional):\nThe distance metric to use for the graph.\nThe default metric is euclidean, and with p=2 is equivalent to the standard Euclidean metric.\nFor a list of available metrics, see the documentation of DistanceMetric and the metrics listed in sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS.\nNote that the cosine metric uses cosine_distances., by default euclidean
  • \n
  • poolsize (float, optional):\nMax number of unlabel instances candidates to pseudolabel, by default 0.25
  • \n
  • rejection_threshold (float, optional):\nsignificance level, by default 0.1
  • \n
  • graph_neighbors (int, optional):\nNumber of neighbors for each sample., by default 1
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
  • n_jobs (int, optional):\nThe number of parallel jobs to run for neighbors search. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors, by default None
  • \n
\n", "signature": "(\tbase_estimator=KNeighborsClassifier(n_neighbors=3),\tmax_iterations=40,\tdistance='euclidean',\tpoolsize=0.25,\trejection_threshold=0.05,\tgraph_neighbors=1,\trandom_state=None,\tn_jobs=None)"}, "sslearn.wrapper.Setred.fit": {"fullname": "sslearn.wrapper.Setred.fit", "modulename": "sslearn.wrapper", "qualname": "Setred.fit", "kind": "function", "doc": "

Build a Setred classifier from the training set (X, y).

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabeled.
  • \n
\n\n
Returns
\n\n
    \n
  • self (Setred):\nFitted estimator.
  • \n
\n", "signature": "(self, X, y, **kwars):", "funcdef": "def"}, "sslearn.wrapper.Setred.predict": {"fullname": "sslearn.wrapper.Setred.predict", "modulename": "sslearn.wrapper", "qualname": "Setred.predict", "kind": "function", "doc": "

Predict class value for X.\nFor a classification model, the predicted class for each sample in X is returned.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • y (array-like of shape (n_samples,)):\nThe predicted classes
  • \n
\n", "signature": "(self, X, **kwards):", "funcdef": "def"}, "sslearn.wrapper.Setred.predict_proba": {"fullname": "sslearn.wrapper.Setred.predict_proba", "modulename": "sslearn.wrapper", "qualname": "Setred.predict_proba", "kind": "function", "doc": "

Predict class probabilities of the input samples X.\nThe predicted class probability depends on the ensemble estimator.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • y (ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1):\nThe predicted classes
  • \n
\n", "signature": "(self, X, **kwards):", "funcdef": "def"}, "sslearn.wrapper.CoTraining": {"fullname": "sslearn.wrapper.CoTraining", "modulename": "sslearn.wrapper", "qualname": "CoTraining", "kind": "class", "doc": "

CoTraining classifier. Multi-view learning algorithm that uses two classifiers to label instances.

\n\n

The main process is:

\n\n
    \n
  1. Train each classifier with the labeled instances and their respective view.
  2. \n
  3. While max iterations is not reached or any instance is unlabeled:\n
      \n
    1. Predict the instances from the unlabeled set.
    2. \n
    3. Select the instances that have the same prediction and the predictions are above the threshold.
    4. \n
    5. Label the instances with the highest probability, keeping the balance of the classes.
    6. \n
    7. Retrain the classifier with the new instances.
    8. \n
  4. \n
  5. Combine the probabilities of each classifier.
  6. \n
\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sslearn.wrapper import CoTraining\nfrom sslearn.model_selection import artificial_ssl_dataset\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\ncotraining = CoTraining(DecisionTreeClassifier())\nX1 = X[:, [0, 1]]\nX2 = X[:, [2, 3]]\ncotraining.fit(X1, y, X2) \n# or\ncotraining.fit(X, y, features=[[0, 1], [2, 3]])\n# or\ncotraining = CoTraining(DecisionTreeClassifier(), force_second_view=False)\ncotraining.fit(X, y)\n
\n
\n\n

References

\n\n

Avrim Blum and Tom Mitchell. (1998).
\nCombining labeled and unlabeled data with co-training
\nin Proceedings of the eleventh annual conference on Computational learning theory (COLT' 98).
\nAssociation for Computing Machinery, New York, NY, USA, 92-100.
\n10.1145/279943.279962

\n\n

Han, Xian-Hua, Yen-wei Chen, and Xiang Ruan. (2011).
\nMulti-Class Co-Training Learning for Object and Scene Recognition,
\npp. 67-70 in. Nara, Japan.
\nhttp://www.mva-org.jp/Proceedings/2011CD/papers/04-08.pdf

\n", "bases": "sslearn.wrapper._co.BaseCoTraining"}, "sslearn.wrapper.CoTraining.__init__": {"fullname": "sslearn.wrapper.CoTraining.__init__", "modulename": "sslearn.wrapper", "qualname": "CoTraining.__init__", "kind": "function", "doc": "

Create a CoTraining classifier. \nMulti-view learning algorithm that uses two classifiers to label instances.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nThe classifier that will be used in the cotraining algorithm on the feature set, by default DecisionTreeClassifier()
  • \n
  • second_base_estimator (ClassifierMixin, optional):\nThe classifier that will be used in the cotraining algorithm on another feature set, if none are a clone of base_estimator, by default None
  • \n
  • max_iterations (int, optional):\nThe number of iterations, by default 30
  • \n
  • poolsize (int, optional):\nThe size of the pool of unlabeled samples from which the classifier can choose, by default 75
  • \n
  • threshold (float, optional):\nThe threshold for label instances, by default 0.5
  • \n
  • force_second_view (bool, optional):\nThe second classifier needs a different view of the data. If False then a second view will be same as the first, by default True
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
\n", "signature": "(\tbase_estimator=DecisionTreeClassifier(),\tsecond_base_estimator=None,\tmax_iterations=30,\tpoolsize=75,\tthreshold=0.5,\tforce_second_view=True,\trandom_state=None)"}, "sslearn.wrapper.CoTraining.fit": {"fullname": "sslearn.wrapper.CoTraining.fit", "modulename": "sslearn.wrapper", "qualname": "CoTraining.fit", "kind": "function", "doc": "

Build a CoTraining classifier from the training set.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nArray representing the data.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabeled.
  • \n
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional):\nArray representing the data from another view, not compatible with features, by default None
  • \n
  • features ({list, tuple}, optional):\nlist or tuple of two arrays with feature index for each subspace view, not compatible with X2, by default None
  • \n
  • number_per_class ({dict}, optional):\ndict of class name:integer with the max ammount of instances to label in this class in each iteration, by default None
  • \n
\n\n
Returns
\n\n
    \n
  • self (CoTraining):\nFitted estimator.
  • \n
\n", "signature": "(\tself,\tX,\ty,\tX2=None,\tfeatures: list = None,\tnumber_per_class: dict = None,\t**kwards):", "funcdef": "def"}, "sslearn.wrapper.CoTraining.predict_proba": {"fullname": "sslearn.wrapper.CoTraining.predict_proba", "modulename": "sslearn.wrapper", "qualname": "CoTraining.predict_proba", "kind": "function", "doc": "

Predict probability for each possible outcome.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nArray representing the data.
  • \n
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional):\nArray representing the data from another view, by default None
  • \n
\n\n
Returns
\n\n
    \n
  • class probabilities (ndarray of shape (n_samples, n_classes)):\nArray with prediction probabilities.
  • \n
\n", "signature": "(self, X, X2=None, **kwards):", "funcdef": "def"}, "sslearn.wrapper.CoTraining.predict": {"fullname": "sslearn.wrapper.CoTraining.predict", "modulename": "sslearn.wrapper", "qualname": "CoTraining.predict", "kind": "function", "doc": "

Predict the classes of X.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nArray representing the data.
  • \n
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional):\nArray representing the data from another view, by default None
  • \n
\n\n
Returns
\n\n
    \n
  • y (ndarray of shape (n_samples,)):\nArray with predicted labels.
  • \n
\n", "signature": "(self, X, X2=None, **kwards):", "funcdef": "def"}, "sslearn.wrapper.CoTraining.score": {"fullname": "sslearn.wrapper.CoTraining.score", "modulename": "sslearn.wrapper", "qualname": "CoTraining.score", "kind": "function", "doc": "

Return the mean accuracy on the given test data and labels.\nIn multi-label classification, this is the subset accuracy\nwhich is a harsh metric since you require for each sample that\neach label set be correctly predicted.

\n\n
Parameters
\n\n
    \n
  • X (array-like of shape (n_samples, n_features)):\nTest samples.
  • \n
  • y (array-like of shape (n_samples,) or (n_samples, n_outputs)):\nTrue labels for X.
  • \n
  • sample_weight (array-like of shape (n_samples,), default=None):\nSample weights.
  • \n
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional):\nArray representing the data from another view, by default None
  • \n
\n\n
Returns
\n\n
    \n
  • score (float):\nMean accuracy of self.predict(X) wrt. y.
  • \n
\n", "signature": "(self, X, y, sample_weight=None, **kwards):", "funcdef": "def"}, "sslearn.wrapper.CoTrainingByCommittee": {"fullname": "sslearn.wrapper.CoTrainingByCommittee", "modulename": "sslearn.wrapper", "qualname": "CoTrainingByCommittee", "kind": "class", "doc": "

Co-Training by Committee classifier.

\n\n

Create a committee trained by co-training based on the diversity of the classifiers

\n\n

The main process is:

\n\n
    \n
  1. Train a committee of classifiers.
  2. \n
  3. Create a pool of unlabeled instances.
  4. \n
  5. While max iterations is not reached or any instance is unlabeled:\n
      \n
    1. Predict the instances from the unlabeled set.
    2. \n
    3. Select the instances with the highest probability.
    4. \n
    5. Label the instances with the highest probability, keeping the balance of the classes but ensuring that at least n instances of each class are added.
    6. \n
    7. Retrain the classifier with the new instances.
    8. \n
  6. \n
  7. Combine the probabilities of each classifier.
  8. \n
\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sslearn.wrapper import CoTrainingByCommittee\nfrom sslearn.model_selection import artificial_ssl_dataset\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\ncotraining = CoTrainingByCommittee()\ncotraining.fit(X, y)\ncotraining.score(X_unlabel, y_unlabel)\n
\n
\n\n

References

\n\n

M. F. A. Hady and F. Schwenker,
\nCo-training by Committee: A New Semi-supervised Learning Framework,
\nin 2008 IEEE International Conference on Data Mining Workshops,
\nPisa, 2008, pp. 563-572, 10.1109/ICDMW.2008.27

\n", "bases": "sslearn.wrapper._co.BaseCoTraining"}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"fullname": "sslearn.wrapper.CoTrainingByCommittee.__init__", "modulename": "sslearn.wrapper", "qualname": "CoTrainingByCommittee.__init__", "kind": "function", "doc": "

Create a committee trained by cotraining based on\nthe diversity of classifiers.

\n\n
Parameters
\n\n
    \n
  • ensemble_estimator (ClassifierMixin, optional):\nensemble method, works without a ensemble as\nself training with pool, by default BaggingClassifier().
  • \n
  • max_iterations (int, optional):\nnumber of iterations of training, -1 if no max iterations, by default 100
  • \n
  • poolsize (int, optional):\nmax number of unlabeled instances candidates to pseudolabel, by default 100
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
\n", "signature": "(\tensemble_estimator=BaggingClassifier(),\tmax_iterations=100,\tpoolsize=100,\tmin_instances_for_class=3,\trandom_state=None)"}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"fullname": "sslearn.wrapper.CoTrainingByCommittee.fit", "modulename": "sslearn.wrapper", "qualname": "CoTrainingByCommittee.fit", "kind": "function", "doc": "

Build a CoTrainingByCommittee classifier from the training set (X, y).

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabel.
  • \n
\n\n
Returns
\n\n
    \n
  • self (CoTrainingByCommittee):\nFitted estimator.
  • \n
\n", "signature": "(self, X, y, **kwards):", "funcdef": "def"}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"fullname": "sslearn.wrapper.CoTrainingByCommittee.predict", "modulename": "sslearn.wrapper", "qualname": "CoTrainingByCommittee.predict", "kind": "function", "doc": "

Predict class value for X.\nFor a classification model, the predicted class for each sample in X is returned.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • y (array-like of shape (n_samples,)):\nThe predicted classes
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"fullname": "sslearn.wrapper.CoTrainingByCommittee.predict_proba", "modulename": "sslearn.wrapper", "qualname": "CoTrainingByCommittee.predict_proba", "kind": "function", "doc": "

Predict class probabilities of the input samples X.\nThe predicted class probability depends on the ensemble estimator.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe input samples.
  • \n
\n\n
Returns
\n\n
    \n
  • y (ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1):\nThe predicted classes
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.wrapper.CoTrainingByCommittee.score": {"fullname": "sslearn.wrapper.CoTrainingByCommittee.score", "modulename": "sslearn.wrapper", "qualname": "CoTrainingByCommittee.score", "kind": "function", "doc": "

Return the mean accuracy on the given test data and labels.\nIn multi-label classification, this is the subset accuracy which is a harsh metric since you require for each sample that each label set be correctly predicted.

\n\n
Parameters
\n\n
    \n
  • X (array-like of shape (n_samples, n_features)):\nTest samples.
  • \n
  • y (array-like of shape (n_samples,) or (n_samples, n_outputs)):\nTrue labels for X.
  • \n
  • sample_weight (array-like of shape (n_samples,), optional):\nSample weights., by default None
  • \n
\n\n
Returns
\n\n
    \n
  • score (float):\nMean accuracy of self.predict(X) wrt. y.
  • \n
\n", "signature": "(self, X, y, sample_weight=None):", "funcdef": "def"}, "sslearn.wrapper.DemocraticCoLearning": {"fullname": "sslearn.wrapper.DemocraticCoLearning", "modulename": "sslearn.wrapper", "qualname": "DemocraticCoLearning", "kind": "class", "doc": "

Democratic Co-learning. Ensemble of classifiers of different types.

\n\n

A iterative algorithm that uses a ensemble of classifiers to label instances.\nThe main process is:

\n\n
    \n
  1. Train each classifier with the labeled instances.
  2. \n
  3. While any classifier is retrained:\n
      \n
    1. Predict the instances from the unlabeled set.
    2. \n
    3. Calculate the confidence interval for each classifier for define weights.
    4. \n
    5. Calculate the weighted vote for each instance.
    6. \n
    7. Calculate the majority vote for each instance.
    8. \n
    9. Select the instances to label if majority vote is the same as weighted vote.
    10. \n
    11. Select the instances to retrain the classifier, if only_mislabeled is False then select all instances, else select only mislabeled instances for each classifier.
    12. \n
    13. Retrain the classifier with the new instances if the error rate is lower than the previous iteration.
    14. \n
  4. \n
  5. Ignore the classifiers with confidence interval lower than 0.5.
  6. \n
  7. Combine the probabilities of each classifier.
  8. \n
\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.naive_bayes import GaussianNB\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sslearn.wrapper import DemocraticCoLearning\nfrom sslearn.model_selection import artificial_ssl_dataset\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\ndcl = DemocraticCoLearning(base_estimator=[DecisionTreeClassifier(), GaussianNB(), KNeighborsClassifier(n_neighbors=3)])\ndcl.fit(X, y)\ndcl.score(X_unlabel, y_unlabel)\n
\n
\n\n

References

\n\n

Y. Zhou and S. Goldman, (2004)
\nDemocratic co-learning,
\nin 16th IEEE International Conference on Tools with Artificial Intelligence,
\npp. 594-602, 10.1109/ICTAI.2004.48.

\n", "bases": "sslearn.wrapper._co.BaseCoTraining"}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"fullname": "sslearn.wrapper.DemocraticCoLearning.__init__", "modulename": "sslearn.wrapper", "qualname": "DemocraticCoLearning.__init__", "kind": "function", "doc": "

Democratic Co-learning. Ensemble of classifiers of different types.

\n\n
Parameters
\n\n
    \n
  • base_estimator ({ClassifierMixin, list}, optional):\nAn estimator object implementing fit and predict_proba or a list of ClassifierMixin, by default DecisionTreeClassifier()
  • \n
  • n_estimators (int, optional):\nnumber of base_estimators to use. None if base_estimator is a list, by default None
  • \n
  • expand_only_mislabeled (bool, optional):\nexpand only mislabeled instances by itself, by default True
  • \n
  • alpha (float, optional):\nconfidence level, by default 0.95
  • \n
  • q_exp (int, optional):\nexponent for the estimation for error rate, by default 2
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
\n\n
Raises
\n\n
    \n
  • AttributeError: If n_estimators is None and base_estimator is not a list
  • \n
\n", "signature": "(\tbase_estimator=[DecisionTreeClassifier(), GaussianNB(), KNeighborsClassifier(n_neighbors=3)],\tn_estimators=None,\texpand_only_mislabeled=True,\talpha=0.95,\tq_exp=2,\trandom_state=None)"}, "sslearn.wrapper.DemocraticCoLearning.fit": {"fullname": "sslearn.wrapper.DemocraticCoLearning.fit", "modulename": "sslearn.wrapper", "qualname": "DemocraticCoLearning.fit", "kind": "function", "doc": "

Fit Democratic-Co classifier

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabel.
  • \n
  • estimator_kwards ({list, dict}, optional):\nlist of kwards for each estimator or kwards for all estimators, by default None
  • \n
\n\n
Returns
\n\n
    \n
  • self (DemocraticCoLearning):\nfitted classifier
  • \n
\n", "signature": "(self, X, y, estimator_kwards=None):", "funcdef": "def"}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"fullname": "sslearn.wrapper.DemocraticCoLearning.predict_proba", "modulename": "sslearn.wrapper", "qualname": "DemocraticCoLearning.predict_proba", "kind": "function", "doc": "

Predict probability for each possible outcome.

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nArray representing the data.
  • \n
\n\n
Returns
\n\n
    \n
  • class probabilities (ndarray of shape (n_samples, n_classes)):\nArray with prediction probabilities.
  • \n
\n", "signature": "(self, X):", "funcdef": "def"}, "sslearn.wrapper.Rasco": {"fullname": "sslearn.wrapper.Rasco", "modulename": "sslearn.wrapper", "qualname": "Rasco", "kind": "class", "doc": "

Co-Training based on random subspaces

\n\n

Generate a set of random subspaces and train a classifier for each subspace.

\n\n

The main process is:

\n\n
    \n
  1. Generate a set of random subspaces.
  2. \n
  3. Train a classifier for each subspace.
  4. \n
  5. While max iterations is not reached or any instance is unlabeled:\n
      \n
    1. Predict the instances from the unlabeled set for each classifier.
    2. \n
    3. Calculate the average of the predictions.
    4. \n
    5. Select the instances with the highest probability.
    6. \n
    7. Label the instances with the highest probability, keeping the balance of the classes.
    8. \n
    9. Retrain the classifier with the new instances.
    10. \n
  6. \n
  7. Combine the probabilities of each classifier.
  8. \n
\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sslearn.wrapper import Rasco\nfrom sslearn.model_selection import artificial_ssl_dataset\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\nrasco = Rasco()\nrasco.fit(X, y)\nrasco.score(X_unlabel, y_unlabel) \n
\n
\n\n

References

\n\n

Wang, J., Luo, S. W., & Zeng, X. H. (2008).
\nA random subspace method for co-training,
\nin 2008 IEEE International Joint Conference on Neural Networks
\nIEEE World Congress on Computational Intelligence
\n(pp. 195-200). IEEE. 10.1109/IJCNN.2008.4633789

\n", "bases": "sslearn.wrapper._co.BaseCoTraining"}, "sslearn.wrapper.Rasco.__init__": {"fullname": "sslearn.wrapper.Rasco.__init__", "modulename": "sslearn.wrapper", "qualname": "Rasco.__init__", "kind": "function", "doc": "

Co-Training based on random subspaces

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nAn estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • \n
  • max_iterations (int, optional):\nMaximum number of iterations allowed. Should be greater than or equal to 0.\nIf is -1 then will be infinite iterations until U be empty, by default 10
  • \n
  • n_estimators (int, optional):\nThe number of base estimators in the ensemble., by default 30
  • \n
  • subspace_size (int, optional):\nThe number of features for each subspace. If it is None will be the half of the features size., by default None
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
\n", "signature": "(\tbase_estimator=DecisionTreeClassifier(),\tmax_iterations=10,\tn_estimators=30,\tsubspace_size=None,\trandom_state=None,\tn_jobs=None)"}, "sslearn.wrapper.Rasco.fit": {"fullname": "sslearn.wrapper.Rasco.fit", "modulename": "sslearn.wrapper", "qualname": "Rasco.fit", "kind": "function", "doc": "

Build a Rasco classifier from the training set (X, y).

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabel.
  • \n
\n\n
Returns
\n\n
    \n
  • self (Rasco):\nFitted estimator.
  • \n
\n", "signature": "(self, X, y, **kwards):", "funcdef": "def"}, "sslearn.wrapper.RelRasco": {"fullname": "sslearn.wrapper.RelRasco", "modulename": "sslearn.wrapper", "qualname": "RelRasco", "kind": "class", "doc": "

Co-Training based on relevant random subspaces

\n\n

Is a variation of sslearn.wrapper.Rasco that uses the mutual information of each feature to select the random subspaces.\nThe process of training is the same as Rasco.

\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sslearn.wrapper import RelRasco\nfrom sslearn.model_selection import artificial_ssl_dataset\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\nrelrasco = RelRasco()\nrelrasco.fit(X, y)\nrelrasco.score(X_unlabel, y_unlabel)\n
\n
\n\n

References

\n\n

Yaslan, Y., & Cataltepe, Z. (2010).
\nCo-training with relevant random subspaces.
\nNeurocomputing, 73(10-12), 1652-1661.
\n10.1016/j.neucom.2010.01.018

\n", "bases": "sslearn.wrapper._co.Rasco"}, "sslearn.wrapper.RelRasco.__init__": {"fullname": "sslearn.wrapper.RelRasco.__init__", "modulename": "sslearn.wrapper", "qualname": "RelRasco.__init__", "kind": "function", "doc": "

Co-Training with relevant random subspaces

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nAn estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • \n
  • max_iterations (int, optional):\nMaximum number of iterations allowed. Should be greater than or equal to 0.\nIf is -1 then will be infinite iterations until U be empty, by default 10
  • \n
  • n_estimators (int, optional):\nThe number of base estimators in the ensemble., by default 30
  • \n
  • subspace_size (int, optional):\nThe number of features for each subspace. If it is None will be the half of the features size., by default None
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
  • n_jobs (int, optional):\nThe number of jobs to run in parallel. -1 means using all processors., by default None
  • \n
\n", "signature": "(\tbase_estimator=DecisionTreeClassifier(),\tmax_iterations=10,\tn_estimators=30,\tsubspace_size=None,\trandom_state=None,\tn_jobs=None)"}, "sslearn.wrapper.CoForest": {"fullname": "sslearn.wrapper.CoForest", "modulename": "sslearn.wrapper", "qualname": "CoForest", "kind": "class", "doc": "

CoForest classifier. Random Forest co-training

\n\n

Ensemble method for CoTraining based on Random Forest.

\n\n

The main process is:

\n\n
    \n
  1. Train a committee of classifiers using bootstrap.
  2. \n
  3. While any base classifier is retrained:\n
      \n
    1. Predict the instances from the unlabeled set.
    2. \n
    3. Select the instances with the highest probability.
    4. \n
    5. Label the instances with the highest probability
    6. \n
    7. Add the instances to the labeled set only if the error is not bigger than the previous error.
    8. \n
    9. Retrain the classifier with the new instances.
    10. \n
  4. \n
  5. Combine the probabilities of each classifier.
  6. \n
\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

Example

\n\n
\n
from sklearn.datasets import load_iris\nfrom sslearn.wrapper import CoForest\nfrom sslearn.model_selection import artificial_ssl_dataset\n\nX, y = load_iris(return_X_y=True)\nX, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)\ncoforest = CoForest()\ncoforest.fit(X, y)\ncoforest.score(X_unlabel, y_unlabel)\n
\n
\n\n

References

\n\n

Li, M., & Zhou, Z.-H. (2007).
\nImprove Computer-Aided Diagnosis With Machine Learning Techniques Using Undiagnosed Samples.
\nIEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans,
\n37(6), 1088-1098. 10.1109/tsmca.2007.904745

\n", "bases": "sslearn.wrapper._co.BaseCoTraining"}, "sslearn.wrapper.CoForest.__init__": {"fullname": "sslearn.wrapper.CoForest.__init__", "modulename": "sslearn.wrapper", "qualname": "CoForest.__init__", "kind": "function", "doc": "

Generate a CoForest classifier.\nA SSL Random Forest adaption for CoTraining.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nAn estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • \n
  • n_estimators (int, optional):\nThe number of base estimators in the ensemble., by default 7
  • \n
  • threshold (float, optional):\nThe decision threshold. Should be in [0, 1)., by default 0.5
  • \n
  • n_jobs (int, optional):\nThe number of jobs to run in parallel for both fit and predict., by default None
  • \n
  • bootstrap (bool, optional):\nWhether bootstrap samples are used when building estimators., by default True
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
  • **kwards (dict, optional):\nAdditional parameters to be passed to base_estimator, by default None.
  • \n
\n", "signature": "(\tbase_estimator=DecisionTreeClassifier(),\tn_estimators=7,\tthreshold=0.75,\tbootstrap=True,\tn_jobs=None,\trandom_state=None,\tversion='1.0.3')"}, "sslearn.wrapper.CoForest.fit": {"fullname": "sslearn.wrapper.CoForest.fit", "modulename": "sslearn.wrapper", "qualname": "CoForest.fit", "kind": "function", "doc": "

Build a CoForest classifier from the training set (X, y).

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabel.
  • \n
\n\n
Returns
\n\n
    \n
  • self (CoForest):\nFitted estimator.
  • \n
\n", "signature": "(self, X, y, **kwards):", "funcdef": "def"}, "sslearn.wrapper.TriTraining": {"fullname": "sslearn.wrapper.TriTraining", "modulename": "sslearn.wrapper", "qualname": "TriTraining", "kind": "class", "doc": "

TriTraining. Trio of classifiers with bootstrapping.

\n\n

The main process is:

\n\n
    \n
  1. Generate three classifiers using bootstrapping.
  2. \n
  3. Iterate until convergence:\n
      \n
    1. Calculate the error between two hypotheses.
    2. \n
    3. If the error is less than the previous error, generate a dataset with the instances where both hypotheses agree.
    4. \n
    5. Retrain the classifiers with the new dataset and the original labeled dataset.
    6. \n
  4. \n
  5. Combine the predictions of the three classifiers.
  6. \n
\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

References

\n\n

Zhi-Hua Zhou and Ming Li,
\nTri-training: exploiting unlabeled data using three classifiers,
\nin IEEE Transactions on Knowledge and Data Engineering,
\nvol. 17, no. 11, pp. 1529-1541, Nov. 2005,
\n10.1109/TKDE.2005.186

\n", "bases": "sslearn.wrapper._co.BaseCoTraining"}, "sslearn.wrapper.TriTraining.__init__": {"fullname": "sslearn.wrapper.TriTraining.__init__", "modulename": "sslearn.wrapper", "qualname": "TriTraining.__init__", "kind": "function", "doc": "

TriTraining. Trio of classifiers with bootstrapping.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nAn estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • \n
  • n_samples (int, optional):\nNumber of samples to generate.\nIf left to None this is automatically set to the first dimension of the arrays., by default None
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
  • n_jobs (int, optional):\nThe number of jobs to run in parallel for both fit and predict.\nNone means 1 unless in a joblib.parallel_backend context.\n-1 means using all processors., by default None
  • \n
\n", "signature": "(\tbase_estimator=DecisionTreeClassifier(),\tn_samples=None,\trandom_state=None,\tn_jobs=None)"}, "sslearn.wrapper.TriTraining.fit": {"fullname": "sslearn.wrapper.TriTraining.fit", "modulename": "sslearn.wrapper", "qualname": "TriTraining.fit", "kind": "function", "doc": "

Build a TriTraining classifier from the training set (X, y).

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabeled.
  • \n
\n\n
Returns
\n\n
    \n
  • self (TriTraining):\nFitted estimator.
  • \n
\n", "signature": "(self, X, y, **kwards):", "funcdef": "def"}, "sslearn.wrapper.DeTriTraining": {"fullname": "sslearn.wrapper.DeTriTraining", "modulename": "sslearn.wrapper", "qualname": "DeTriTraining", "kind": "class", "doc": "

TriTraining with Data Editing.

\n\n

It is a variation of the TriTraining, the main difference is that the instances are depurated in each iteration.\nIt means that the instances with their neighbors that have the same class are kept, the rest are removed.\nAt the end of the iterations, the instances are clustered and the class is assigned to the cluster centroid.

\n\n

Methods

\n\n
    \n
  • fit: Fit the model with the labeled instances.
  • \n
  • predict : Predict the class for each instance.
  • \n
  • predict_proba: Predict the probability for each class.
  • \n
  • score: Return the mean accuracy on the given test data and labels.
  • \n
\n\n

References

\n\n

Deng C., Guo M.Z. (2006)
\nTri-training and Data Editing Based Semi-supervised Clustering Algorithm,
\nin Gelbukh A., Reyes-Garcia C.A. (eds) MICAI 2006: Advances in Artificial Intelligence. MICAI 2006.
\nLecture Notes in Computer Science, vol 4293. Springer, Berlin, Heidelberg.
\n10.1007/11925231_61

\n", "bases": "sslearn.wrapper._tritraining.TriTraining"}, "sslearn.wrapper.DeTriTraining.__init__": {"fullname": "sslearn.wrapper.DeTriTraining.__init__", "modulename": "sslearn.wrapper", "qualname": "DeTriTraining.__init__", "kind": "function", "doc": "

DeTriTraining - TriTraining with Depurated and Clustering.\nAvoid the noise generated by the TriTraining algorithm by depurating the enlarged dataset and clustering the instances.

\n\n
Parameters
\n\n
    \n
  • base_estimator (ClassifierMixin, optional):\nAn estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • \n
  • n_samples (int, optional):\nNumber of samples to generate. \nIf left to None this is automatically set to the first dimension of the arrays., by default None
  • \n
  • k_neighbors (int, optional):\nNumber of neighbors for depurate classification. \nIf at least k_neighbors/2+1 have a class other than the one predicted, the class is ignored., by default 3
  • \n
  • mode (string, optional):\nHow to calculate the cluster each instance belongs to.\nIf seeded each instance belong to nearest cluster.\nIf constrained each instance belong to nearest cluster unless the instance is in to enlarged dataset, \nthen the instance belongs to the cluster of its class., by default seeded
  • \n
  • max_iterations (int, optional):\nMaximum number of iterations, by default 100
  • \n
  • n_jobs (int, optional):\nThe number of parallel jobs to run for neighbors search. \nNone means 1 unless in a joblib.parallel_backend context. -1 means using all processors. \nDoesn't affect fit method., by default None
  • \n
  • random_state (int, RandomState instance, optional):\ncontrols the randomness of the estimator, by default None
  • \n
\n", "signature": "(\tbase_estimator=DecisionTreeClassifier(),\tk_neighbors=3,\tn_samples=None,\tmode='seeded',\tmax_iterations=100,\tn_jobs=None,\trandom_state=None)"}, "sslearn.wrapper.DeTriTraining.fit": {"fullname": "sslearn.wrapper.DeTriTraining.fit", "modulename": "sslearn.wrapper", "qualname": "DeTriTraining.fit", "kind": "function", "doc": "

Build a DeTriTraining classifier from the training set (X, y).

\n\n
Parameters
\n\n
    \n
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):\nThe training input samples.
  • \n
  • y (array-like of shape (n_samples,)):\nThe target values (class labels), -1 if unlabel.
  • \n
\n\n
Returns
\n\n
    \n
  • self (DeTriTraining):\nFitted estimator.
  • \n
\n", "signature": "(self, X, y, **kwards):", "funcdef": "def"}}, "docInfo": {"sslearn": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 550}, "sslearn.base": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 73}, "sslearn.base.get_dataset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 117}, "sslearn.base.FakedProbaClassifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 155}, "sslearn.base.FakedProbaClassifier.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 10, "bases": 0, "doc": 40}, "sslearn.base.FakedProbaClassifier.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 68}, "sslearn.base.FakedProbaClassifier.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 59}, "sslearn.base.FakedProbaClassifier.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 78}, "sslearn.base.OneVsRestSSLClassifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 37}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 63}, "sslearn.base.OneVsRestSSLClassifier.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 80}, "sslearn.base.OneVsRestSSLClassifier.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 66}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 162}, "sslearn.datasets": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 85}, "sslearn.datasets.read_csv": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 134}, "sslearn.datasets.read_keel": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 158}, "sslearn.datasets.secure_dataset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 70}, "sslearn.datasets.save_keel": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 97, "bases": 0, "doc": 163}, "sslearn.model_selection": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 73}, "sslearn.model_selection.artificial_ssl_dataset": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 329}, "sslearn.model_selection.StratifiedKFoldSS": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 52}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 73}, "sslearn.model_selection.StratifiedKFoldSS.split": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 137}, "sslearn.restricted": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 89}, "sslearn.restricted.conflict_rate": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 113}, "sslearn.restricted.WhoIsWhoClassifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 9, "doc": 51}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 118}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 113}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 84}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 92}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 63}, "sslearn.subview": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 58}, "sslearn.subview.SubViewClassifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 315}, "sslearn.subview.SubViewClassifier.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 64}, "sslearn.subview.SubViewRegressor": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 7, "doc": 315}, "sslearn.subview.SubViewRegressor.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 56}, "sslearn.utils": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 129}, "sslearn.utils.safe_division": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 73}, "sslearn.utils.confidence_interval": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 102}, "sslearn.utils.choice_with_proportion": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 111}, "sslearn.utils.calculate_prior_probability": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 56}, "sslearn.utils.mode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 80}, "sslearn.utils.check_n_jobs": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 12, "bases": 0, "doc": 64}, "sslearn.wrapper": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 130}, "sslearn.wrapper.SelfTraining": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 332}, "sslearn.wrapper.SelfTraining.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 361}, "sslearn.wrapper.SelfTraining.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 85}, "sslearn.wrapper.Setred": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 459}, "sslearn.wrapper.Setred.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 118, "bases": 0, "doc": 265}, "sslearn.wrapper.Setred.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 79}, "sslearn.wrapper.Setred.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 71}, "sslearn.wrapper.Setred.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 82}, "sslearn.wrapper.CoTraining": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 692}, "sslearn.wrapper.CoTraining.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 200}, "sslearn.wrapper.CoTraining.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 81, "bases": 0, "doc": 174}, "sslearn.wrapper.CoTraining.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 90}, "sslearn.wrapper.CoTraining.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 86}, "sslearn.wrapper.CoTraining.score": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 162}, "sslearn.wrapper.CoTrainingByCommittee": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 489}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 68, "bases": 0, "doc": 107}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 79}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 71}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 82}, "sslearn.wrapper.CoTrainingByCommittee.score": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 129}, "sslearn.wrapper.DemocraticCoLearning": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 609}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 105, "bases": 0, "doc": 167}, "sslearn.wrapper.DemocraticCoLearning.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 95}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 63}, "sslearn.wrapper.Rasco": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 495}, "sslearn.wrapper.Rasco.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 79, "bases": 0, "doc": 144}, "sslearn.wrapper.Rasco.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 79}, "sslearn.wrapper.RelRasco": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 386}, "sslearn.wrapper.RelRasco.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 79, "bases": 0, "doc": 169}, "sslearn.wrapper.CoForest": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 477}, "sslearn.wrapper.CoForest.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 95, "bases": 0, "doc": 166}, "sslearn.wrapper.CoForest.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 79}, "sslearn.wrapper.TriTraining": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 213}, "sslearn.wrapper.TriTraining.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 140}, "sslearn.wrapper.TriTraining.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 79}, "sslearn.wrapper.DeTriTraining": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 198}, "sslearn.wrapper.DeTriTraining.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 94, "bases": 0, "doc": 259}, "sslearn.wrapper.DeTriTraining.fit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 79}}, "length": 82, "save": true}, "index": {"qualname": {"root": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.get_dataset": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.get_dataset": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 12}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 15}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 8, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}}, "df": 3}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}}, "df": 3}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}}, "df": 5}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.mode": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "fullname": {"root": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}, "sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 82}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 5}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}}, "df": 3}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}}, "df": 5}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 12}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.get_dataset": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.get_dataset": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 3, "s": {"docs": {"sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 5}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 12}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 15}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 8, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 5}}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}}, "df": 8}}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}}, "df": 3}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1}}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.mode": {"tf": 1}}, "df": 1, "l": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 5}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 39}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 7}}}}}, "n": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "annotation": {"root": {"docs": {}, "df": 0}}, "default_value": {"root": {"docs": {}, "df": 0}}, "signature": {"root": {"0": {"5": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}, "docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}}, "df": 8}, "1": {"0": {"0": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}, "docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 3}, "docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 4}, "2": {"5": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}, "docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}, "3": {"0": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 3}, "9": {"docs": {"sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 2}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 8}, "docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 5}, "4": {"0": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "5": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 2}, "7": {"5": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 3}, "docs": {"sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 1}, "8": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1}, "9": {"5": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"sslearn.base.get_dataset": {"tf": 3.7416573867739413}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 2.8284271247461903}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 4.242640687119285}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 3.7416573867739413}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 3.7416573867739413}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 4.58257569495584}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 4.898979485566356}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 4.47213595499958}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 4.47213595499958}, "sslearn.datasets.read_csv": {"tf": 6.48074069840786}, "sslearn.datasets.read_keel": {"tf": 7.615773105863909}, "sslearn.datasets.secure_dataset": {"tf": 3.7416573867739413}, "sslearn.datasets.save_keel": {"tf": 8.774964387392123}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 7.681145747868608}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 5.291502622129181}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 4.242640687119285}, "sslearn.restricted.conflict_rate": {"tf": 4.69041575982343}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 5.0990195135927845}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 5.656854249492381}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 4.242640687119285}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 4.242640687119285}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 3.7416573867739413}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 3.7416573867739413}, "sslearn.subview.SubViewRegressor.predict": {"tf": 3.7416573867739413}, "sslearn.utils.safe_division": {"tf": 4.242640687119285}, "sslearn.utils.confidence_interval": {"tf": 5.0990195135927845}, "sslearn.utils.choice_with_proportion": {"tf": 5.0990195135927845}, "sslearn.utils.calculate_prior_probability": {"tf": 3.1622776601683795}, "sslearn.utils.mode": {"tf": 3.1622776601683795}, "sslearn.utils.check_n_jobs": {"tf": 3.1622776601683795}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 7.483314773547883}, "sslearn.wrapper.SelfTraining.fit": {"tf": 4.242640687119285}, "sslearn.wrapper.Setred.__init__": {"tf": 9.433981132056603}, "sslearn.wrapper.Setred.fit": {"tf": 4.898979485566356}, "sslearn.wrapper.Setred.predict": {"tf": 4.47213595499958}, "sslearn.wrapper.Setred.predict_proba": {"tf": 4.47213595499958}, "sslearn.wrapper.CoTraining.__init__": {"tf": 8.366600265340756}, "sslearn.wrapper.CoTraining.fit": {"tf": 8.18535277187245}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 5.291502622129181}, "sslearn.wrapper.CoTraining.predict": {"tf": 5.291502622129181}, "sslearn.wrapper.CoTraining.score": {"tf": 5.656854249492381}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 7.211102550927978}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 4.898979485566356}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 3.7416573867739413}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 3.7416573867739413}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 5.0990195135927845}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 9}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 5.0990195135927845}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 3.7416573867739413}, "sslearn.wrapper.Rasco.__init__": {"tf": 7.810249675906654}, "sslearn.wrapper.Rasco.fit": {"tf": 4.898979485566356}, "sslearn.wrapper.RelRasco.__init__": {"tf": 7.810249675906654}, "sslearn.wrapper.CoForest.__init__": {"tf": 8.48528137423857}, "sslearn.wrapper.CoForest.fit": {"tf": 4.898979485566356}, "sslearn.wrapper.TriTraining.__init__": {"tf": 6.557438524302}, "sslearn.wrapper.TriTraining.fit": {"tf": 4.898979485566356}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 8.48528137423857}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 4.898979485566356}}, "df": 58, "x": {"2": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}}, "df": 3}, "docs": {"sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 36}, "y": {"docs": {"sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 23}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 11}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14, "s": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 4}}}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}, "p": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 31}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 11}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2, "s": {"docs": {"sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 10, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.7320508075688772}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}}, "df": 21}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1.7320508075688772}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 8}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 5}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}, "k": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 18}}, "s": {"docs": {"sslearn.wrapper.Setred.fit": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 3, "s": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 6}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 4}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 11}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}}, "df": 1}}}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 7}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}}, "df": 3, "s": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 6}}}}}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 7}}}}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}, "bases": {"root": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}}, "df": 7}}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 10}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}}, "df": 5, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}}, "df": 3}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 6}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}}, "df": 1}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}, "o": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 7}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.subview.SubViewRegressor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 8}}}}}}}}}, "doc": {"root": {"0": {"1": {"8": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}, "docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}, "8": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {"sslearn": {"tf": 2.6457513110645907}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}}, "df": 20}, "1": {"0": {"0": {"7": {"docs": {}, "df": 0, "/": {"1": {"1": {"4": {"3": {"0": {"9": {"1": {"9": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"2": {"5": {"2": {"3": {"1": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}, "1": {"6": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "j": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}, "docs": {}, "df": 0}, "6": {"2": {"3": {"8": {"8": {"9": {"docs": {"sslearn": {"tf": 1.7320508075688772}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"8": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"8": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 14}, "1": {"0": {"9": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}}, "j": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}}, "docs": {}, "df": 0}, "4": {"5": {"docs": {}, "df": 0, "/": {"2": {"7": {"9": {"9": {"4": {"3": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}, "2": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}, "3": {"docs": {"sslearn": {"tf": 1}}, "df": 1}, "5": {"2": {"9": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "4": {"1": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"5": {"2": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"1": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}, "7": {"0": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}, "docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}, "8": {"6": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}, "9": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"5": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}, "6": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}, "9": {"5": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}, "8": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sslearn": {"tf": 2.8284271247461903}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 2}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 39}, "2": {"0": {"0": {"4": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 1}, "5": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}}, "df": 2}, "6": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}}, "df": 1}, "7": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 1}, "8": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}}, "df": 2}, "docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}, "1": {"0": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}}, "df": 1}, "1": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "7": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"4": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"docs": {"sslearn": {"tf": 1}}, "df": 1}, "5": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}, "7": {"9": {"9": {"6": {"2": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}, "docs": {"sslearn": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 5}, "3": {"0": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 3}, "1": {"1": {"5": {"docs": {}, "df": 0, "/": {"9": {"8": {"1": {"6": {"5": {"8": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}, "5": {"1": {"8": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}, "9": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 2.449489742783178}, "sslearn.subview.SubViewRegressor": {"tf": 2.449489742783178}}, "df": 2}, "docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 6}, "4": {"0": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}, "2": {"9": {"3": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"3": {"3": {"7": {"8": {"9": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}, "docs": {"sslearn": {"tf": 1.7320508075688772}}, "df": 1}, "5": {"2": {"8": {"1": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"3": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"2": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"4": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 4}, "6": {"0": {"2": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "1": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}, "3": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}, "7": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}, "7": {"0": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "1": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}, "3": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}, "5": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 2}, "docs": {"sslearn": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 2}, "8": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1}, "9": {"0": {"4": {"7": {"4": {"5": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}, "2": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "5": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 3}, "8": {"1": {"6": {"8": {"4": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sslearn": {"tf": 19.519221295943137}, "sslearn.base": {"tf": 5.744562646538029}, "sslearn.base.get_dataset": {"tf": 6.708203932499369}, "sslearn.base.FakedProbaClassifier": {"tf": 9.16515138991168}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 3.872983346207417}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 5.744562646538029}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 5.196152422706632}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 5.0990195135927845}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 3.1622776601683795}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 4.358898943540674}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 5.744562646538029}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 5.196152422706632}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 6.244997998398398}, "sslearn.datasets": {"tf": 5.385164807134504}, "sslearn.datasets.read_csv": {"tf": 6.928203230275509}, "sslearn.datasets.read_keel": {"tf": 7.54983443527075}, "sslearn.datasets.secure_dataset": {"tf": 5.830951894845301}, "sslearn.datasets.save_keel": {"tf": 7.3484692283495345}, "sslearn.model_selection": {"tf": 5.744562646538029}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 9.695359714832659}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 3.7416573867739413}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 4.898979485566356}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 7.0710678118654755}, "sslearn.restricted": {"tf": 5.916079783099616}, "sslearn.restricted.conflict_rate": {"tf": 6.244997998398398}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 4}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 5.744562646538029}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 6.244997998398398}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 5.656854249492381}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 5.744562646538029}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 5.196152422706632}, "sslearn.subview": {"tf": 4.69041575982343}, "sslearn.subview.SubViewClassifier": {"tf": 14.422205101855956}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 5.196152422706632}, "sslearn.subview.SubViewRegressor": {"tf": 14.422205101855956}, "sslearn.subview.SubViewRegressor.predict": {"tf": 5.196152422706632}, "sslearn.utils": {"tf": 5.656854249492381}, "sslearn.utils.safe_division": {"tf": 5.830951894845301}, "sslearn.utils.confidence_interval": {"tf": 6.324555320336759}, "sslearn.utils.choice_with_proportion": {"tf": 6.324555320336759}, "sslearn.utils.calculate_prior_probability": {"tf": 5}, "sslearn.utils.mode": {"tf": 5.385164807134504}, "sslearn.utils.check_n_jobs": {"tf": 5.291502622129181}, "sslearn.wrapper": {"tf": 7.810249675906654}, "sslearn.wrapper.SelfTraining": {"tf": 14.52583904633395}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 8.774964387392123}, "sslearn.wrapper.SelfTraining.fit": {"tf": 5.916079783099616}, "sslearn.wrapper.Setred": {"tf": 14.866068747318506}, "sslearn.wrapper.Setred.__init__": {"tf": 7.3484692283495345}, "sslearn.wrapper.Setred.fit": {"tf": 5.744562646538029}, "sslearn.wrapper.Setred.predict": {"tf": 5.0990195135927845}, "sslearn.wrapper.Setred.predict_proba": {"tf": 5.0990195135927845}, "sslearn.wrapper.CoTraining": {"tf": 20.174241001832016}, "sslearn.wrapper.CoTraining.__init__": {"tf": 6.708203932499369}, "sslearn.wrapper.CoTraining.fit": {"tf": 7.3484692283495345}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 5.656854249492381}, "sslearn.wrapper.CoTraining.predict": {"tf": 5.656854249492381}, "sslearn.wrapper.CoTraining.score": {"tf": 7.14142842854285}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 16.186414056238647}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 5.477225575051661}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 5.744562646538029}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 5.0990195135927845}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 5.0990195135927845}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 6.164414002968976}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 18.027756377319946}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 7.0710678118654755}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 6}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 5.196152422706632}, "sslearn.wrapper.Rasco": {"tf": 16.278820596099706}, "sslearn.wrapper.Rasco.__init__": {"tf": 5.830951894845301}, "sslearn.wrapper.Rasco.fit": {"tf": 5.744562646538029}, "sslearn.wrapper.RelRasco": {"tf": 15.198684153570664}, "sslearn.wrapper.RelRasco.__init__": {"tf": 6.244997998398398}, "sslearn.wrapper.CoForest": {"tf": 16.15549442140351}, "sslearn.wrapper.CoForest.__init__": {"tf": 6.782329983125268}, "sslearn.wrapper.CoForest.fit": {"tf": 5.744562646538029}, "sslearn.wrapper.TriTraining": {"tf": 8.888194417315589}, "sslearn.wrapper.TriTraining.__init__": {"tf": 6.4031242374328485}, "sslearn.wrapper.TriTraining.fit": {"tf": 5.744562646538029}, "sslearn.wrapper.DeTriTraining": {"tf": 7.416198487095663}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 7.14142842854285}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 5.744562646538029}}, "df": 82, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 11}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 13}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.subview": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "f": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 21, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}}, "df": 2, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.get_dataset": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets": {"tf": 1.7320508075688772}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2}}, "df": 2}}}}, "t": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.23606797749979}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2}, "sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 27, "s": {"docs": {"sslearn.model_selection": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor": {"tf": 1.4142135623730951}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 13}}}}}}}}, "m": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.wrapper": {"tf": 1}}, "df": 6}}}}}, "b": {"docs": {"sslearn.subview": {"tf": 1.7320508075688772}}, "df": 1, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor": {"tf": 1.4142135623730951}}, "df": 3, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 2}, "sslearn.subview.SubViewRegressor": {"tf": 2}}, "df": 3}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}}, "df": 5, "s": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 14, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 2.23606797749979}, "sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 18}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 4}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 13}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 19}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"sslearn.datasets.read_csv": {"tf": 1.7320508075688772}, "sslearn.datasets.read_keel": {"tf": 2}, "sslearn.datasets.save_keel": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 3}}}}}, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 15}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.get_dataset": {"tf": 2.23606797749979}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1.7320508075688772}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.score": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 38}}}, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 7}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 2}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}}, "df": 7, "s": {"docs": {"sslearn.base.get_dataset": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2}, "sslearn.restricted.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 2}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 2.23606797749979}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 2}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 2}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.7320508075688772}, "sslearn.utils.confidence_interval": {"tf": 1.7320508075688772}, "sslearn.utils.choice_with_proportion": {"tf": 1.7320508075688772}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict_proba": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.score": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 2.23606797749979}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.7320508075688772}}, "df": 47}}}}, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 12}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets": {"tf": 1.7320508075688772}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}}, "df": 2}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}}, "df": 2}}}}}, "v": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}}, "df": 1}, "c": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 2.449489742783178}}, "df": 1}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 28}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}, "y": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}}, "df": 6, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 3}}, "t": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}}}}}}}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}}, "df": 3}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "l": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 12}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 4}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 4, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1.7320508075688772}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1.7320508075688772}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 41}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.mode": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}}, "df": 10, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.datasets": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 10, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2}, "r": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "k": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn": {"tf": 1.7320508075688772}, "sslearn.base.get_dataset": {"tf": 2}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1.4142135623730951}, "sslearn.utils.mode": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 25, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 15}}, "s": {"docs": {"sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 25}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}, "t": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2, "h": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 3.3166247903554}, "sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 2}, "sslearn.datasets.read_keel": {"tf": 2}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 2.6457513110645907}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 4.123105625617661}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 2.23606797749979}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2.6457513110645907}, "sslearn.restricted": {"tf": 2}, "sslearn.restricted.conflict_rate": {"tf": 2.6457513110645907}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 2.449489742783178}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 2.6457513110645907}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 2.6457513110645907}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 2.449489742783178}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 2}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 2}, "sslearn.subview.SubViewRegressor": {"tf": 2}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.7320508075688772}, "sslearn.utils": {"tf": 3}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 2.449489742783178}, "sslearn.utils.choice_with_proportion": {"tf": 2}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1.4142135623730951}, "sslearn.utils.check_n_jobs": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 4.242640687119285}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 4.58257569495584}, "sslearn.wrapper.Setred.__init__": {"tf": 3.3166247903554}, "sslearn.wrapper.Setred.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict_proba": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining": {"tf": 4.69041575982343}, "sslearn.wrapper.CoTraining.__init__": {"tf": 3.872983346207417}, "sslearn.wrapper.CoTraining.fit": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.score": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 4.47213595499958}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 4.795831523312719}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 4.47213595499958}, "sslearn.wrapper.Rasco.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.Rasco.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco": {"tf": 3.1622776601683795}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2.8284271247461903}, "sslearn.wrapper.CoForest": {"tf": 4.47213595499958}, "sslearn.wrapper.CoForest.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.CoForest.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining": {"tf": 4}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining": {"tf": 4.123105625617661}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 3.872983346207417}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.7320508075688772}}, "df": 75, "y": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}}, "df": 2}, "n": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 6}, "i": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 4}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}, "m": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}}, "df": 21}, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 8}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 15}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 3}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}}, "df": 5}}}}}, "e": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1.7320508075688772}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 13, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn": {"tf": 1}, "sslearn.model_selection": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 7}}}}}}}}, "o": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1.7320508075688772}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 19}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.subview": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 12, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper": {"tf": 3.1622776601683795}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 28}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 2}}}}}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.get_dataset": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 19, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1.7320508075688772}}, "df": 3}}}}}}, "o": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 2.449489742783178}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.safe_division": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1.4142135623730951}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 3.4641016151377544}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 3.1622776601683795}}, "df": 42, "m": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 11}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.23606797749979}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}}, "df": 32}, "t": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.7320508075688772}, "sslearn.datasets.read_keel": {"tf": 1.7320508075688772}, "sslearn.datasets.secure_dataset": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}}, "df": 17, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 4, "s": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 12}}}}, "e": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 2.23606797749979}, "sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.Setred": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 36, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sslearn": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2.449489742783178}}, "df": 24, "s": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.restricted": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 3}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 2.449489742783178}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 24}}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 20}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}}, "df": 1}}}}}}}, "x": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 5, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1.4142135623730951}}, "df": 4}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.__init__": {"tf": 2}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2.23606797749979}}, "df": 17, "o": {"docs": {"sslearn.datasets": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 3}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 3}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 3}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 2.23606797749979}, "sslearn.subview.SubViewRegressor": {"tf": 2.23606797749979}}, "df": 2}}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sslearn": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.449489742783178}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}}, "df": 12}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 9}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 9}}}, "f": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 2}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 32}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1, "d": {"docs": {"sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 5}}}}, "a": {"docs": {"sslearn": {"tf": 1}, "sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.datasets": {"tf": 2.449489742783178}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted": {"tf": 2}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.subview": {"tf": 2.23606797749979}, "sslearn.subview.SubViewClassifier": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1.7320508075688772}, "sslearn.utils.mode": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2.449489742783178}, "sslearn.wrapper.Setred.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 51, "n": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14, "d": {"docs": {"sslearn.base": {"tf": 1.4142135623730951}, "sslearn.base.get_dataset": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 2.449489742783178}, "sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 2}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}}, "df": 29}, "y": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 13}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 2}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 2.449489742783178}, "sslearn.utils.calculate_prior_probability": {"tf": 1.4142135623730951}, "sslearn.utils.mode": {"tf": 2.449489742783178}, "sslearn.wrapper.SelfTraining.fit": {"tf": 2}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.predict": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.score": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 41, "s": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 7}}}}, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 2}}, "df": 12}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}}, "df": 3}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 13, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewClassifier": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewRegressor": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 12, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 7}}, "s": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 9, "s": {"docs": {"sslearn.wrapper": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.restricted": {"tf": 1}, "sslearn.wrapper": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 3}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}}, "df": 5}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 10}}}}}}, "l": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 4}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 2, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}, "a": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sslearn": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 2, "s": {"docs": {"sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 59}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 6, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1, "s": {"docs": {"sslearn.utils": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 3}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}, "s": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 2.23606797749979}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.23606797749979}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 2}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 2.23606797749979}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 2}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 36, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 7, "s": {"docs": {"sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 2}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 8}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 4}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 2.23606797749979}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 21, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 15}}}, "y": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 2}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.calculate_prior_probability": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 15}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 8, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 5}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1.7320508075688772}}, "df": 3}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils": {"tf": 1}}, "df": 1, "i": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 3}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}}, "df": 1, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "p": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 5}, "d": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}, "f": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}}, "df": 2, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.6457513110645907}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 2}, "sslearn.wrapper.Setred.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.6457513110645907}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.449489742783178}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 46, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 4, "s": {"docs": {"sslearn.datasets": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sslearn": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 2}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.6457513110645907}, "sslearn.wrapper.Rasco": {"tf": 2}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest": {"tf": 2}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 29}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 28, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 9}}}, "s": {"docs": {"sslearn.wrapper.SelfTraining.fit": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1.7320508075688772}, "sslearn.datasets.read_keel": {"tf": 2}}, "df": 3}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "b": {"docs": {"sslearn": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 5, "s": {"docs": {"sslearn.base.get_dataset": {"tf": 2.449489742783178}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 2}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 38}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.restricted": {"tf": 1}, "sslearn.utils": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 6}}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}}}}}}}}, "s": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 8}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 11}}}}}, "m": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sslearn.base.get_dataset": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 29}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}}, "df": 2}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 3}}, "x": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 11, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 6}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 8}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "n": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 2.449489742783178}, "sslearn.subview.SubViewRegressor": {"tf": 2.449489742783178}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.mode": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 5, "l": {"docs": {"sslearn": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 19}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.subview": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper": {"tf": 1.4142135623730951}}, "df": 7}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 2}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 12, "s": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 10}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 3, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 10, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 6, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 2}}}, "g": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}}, "df": 1}}, "f": {"docs": {"sslearn": {"tf": 1}, "sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 2.23606797749979}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 2.6457513110645907}, "sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.6457513110645907}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2}, "sslearn.restricted": {"tf": 2.23606797749979}, "sslearn.restricted.conflict_rate": {"tf": 2.23606797749979}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 2}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.subview": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 2.6457513110645907}, "sslearn.utils.safe_division": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 2}, "sslearn.utils.choice_with_proportion": {"tf": 3.1622776601683795}, "sslearn.utils.calculate_prior_probability": {"tf": 2}, "sslearn.utils.mode": {"tf": 3.3166247903554}, "sslearn.utils.check_n_jobs": {"tf": 1.4142135623730951}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 2}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTraining.fit": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict": {"tf": 2}, "sslearn.wrapper.CoTraining.score": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 2}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 76}, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 2}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 19, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 5}}, "e": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3, "v": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}, "r": {"docs": {"sslearn.base.get_dataset": {"tf": 2}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 28, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1, "/": {"1": {"0": {"docs": {"sslearn": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 14}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.7320508075688772}, "sslearn.datasets.read_keel": {"tf": 2}, "sslearn.datasets.save_keel": {"tf": 2.449489742783178}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.449489742783178}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 2.8284271247461903}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.CoForest.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2.6457513110645907}}, "df": 23}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1, "a": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 3.1622776601683795}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}}, "df": 35, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base": {"tf": 1.4142135623730951}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.datasets": {"tf": 2.23606797749979}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.secure_dataset": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 2.6457513110645907}, "sslearn.model_selection": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 23, "s": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.model_selection": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 14}}}}, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.get_dataset": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1, "d": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 2}, "sslearn.datasets.read_keel": {"tf": 2.23606797749979}, "sslearn.datasets.save_keel": {"tf": 2.6457513110645907}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.449489742783178}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.7320508075688772}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.__init__": {"tf": 3.1622776601683795}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.CoForest.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2.6457513110645907}}, "df": 26}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 2}, "sslearn.subview.SubViewRegressor": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 12}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}, "o": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}}, "df": 1, "i": {"docs": {"sslearn": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 5, "n": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}}, "df": 4, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.safe_division": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.safe_division": {"tf": 1.7320508075688772}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils.safe_division": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.datasets": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 5}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}}, "df": 1, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}}, "df": 1}}}, "e": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.utils.choice_with_proportion": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 12, "s": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}}, "df": 2}}}, "p": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 9}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "s": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 2}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 29, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.4142135623730951}, "sslearn.utils.mode": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}}, "df": 9}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1.4142135623730951}, "sslearn.utils.calculate_prior_probability": {"tf": 1.4142135623730951}, "sslearn.utils.mode": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.8284271247461903}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.449489742783178}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}}, "df": 31}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "s": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.7320508075688772}}, "df": 4}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}}}, "j": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {"sslearn": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 4}}}, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1.7320508075688772}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.check_n_jobs": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 8}}, "s": {"docs": {"sslearn": {"tf": 1}}, "df": 1, "e": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"2": {"0": {"1": {"1": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"0": {"4": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"sslearn": {"tf": 2.449489742783178}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}}, "df": 4}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sslearn": {"tf": 1.4142135623730951}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "b": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 7, "d": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.restricted": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 15}}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 3}}}}}}}}, "o": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.restricted": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 2}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.4142135623730951}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {"sslearn.base.get_dataset": {"tf": 2.8284271247461903}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 2}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 2.23606797749979}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 2.23606797749979}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 2}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.23606797749979}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2.23606797749979}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 2}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 2.23606797749979}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 2}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 2}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1.7320508075688772}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.7320508075688772}, "sslearn.utils.choice_with_proportion": {"tf": 1.7320508075688772}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 2}, "sslearn.utils.check_n_jobs": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict_proba": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTraining.fit": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTraining.predict": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.score": {"tf": 2.8284271247461903}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 2.449489742783178}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 2.449489742783178}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 2}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.7320508075688772}}, "df": 51, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sslearn": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}}, "df": 5}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2}}, "df": 21, "s": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sslearn.utils.safe_division": {"tf": 2}}, "df": 1}}}}}}, "o": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 4, "t": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 18, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.7320508075688772}, "sslearn.datasets.read_keel": {"tf": 1.7320508075688772}, "sslearn.datasets.save_keel": {"tf": 2.23606797749979}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.23606797749979}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2.23606797749979}}, "df": 23}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}}, "df": 2}, "e": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}, "v": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.base.get_dataset": {"tf": 2.23606797749979}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.449489742783178}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 2}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 10}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 2.23606797749979}}, "df": 3, "s": {"docs": {"sslearn.datasets.save_keel": {"tf": 1.4142135623730951}}, "df": 1}, ":": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTraining.fit": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 8}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 2}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}}, "df": 4, "/": {"2": {"docs": {}, "df": 0, "+": {"1": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "y": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "c": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.4142135623730951}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 7, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.utils": {"tf": 2}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 10}}}}}}, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.utils.safe_division": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {"sslearn.wrapper": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 11, "d": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}}, "df": 4, "s": {"docs": {"sslearn.datasets": {"tf": 1}, "sslearn.model_selection": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.subview": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.wrapper": {"tf": 1}}, "df": 6}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 10}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.datasets": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.7320508075688772}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.4142135623730951}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 4}}, "t": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 5}}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted": {"tf": 1}}, "df": 1, "s": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}}, "df": 1}, "r": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 4}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.utils.mode": {"tf": 1.4142135623730951}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 3}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 8, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}}}}}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 2.449489742783178}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}}, "df": 4}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.utils": {"tf": 2}, "sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.choice_with_proportion": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.4142135623730951}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1.7320508075688772}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.fit": {"tf": 2}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 43, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 2.23606797749979}, "sslearn.model_selection": {"tf": 1}, "sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 24}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1.4142135623730951}, "sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.subview": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.6457513110645907}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 2}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 29, "s": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 2.23606797749979}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}}, "df": 10}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.utils": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 13}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.restricted": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 9}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 2.449489742783178}, "sslearn.subview.SubViewRegressor": {"tf": 2.449489742783178}, "sslearn.wrapper.SelfTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred": {"tf": 1.7320508075688772}}, "df": 4}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.utils.safe_division": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 2}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 8}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 2.449489742783178}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}}, "df": 2}}, "y": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1, "e": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.7320508075688772}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 2}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}}, "df": 23, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 4}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}}, "df": 3}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.__init__": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 19, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 8}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 3}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1.7320508075688772}, "sslearn.datasets.read_keel": {"tf": 2}, "sslearn.datasets.save_keel": {"tf": 2.449489742783178}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1.4142135623730951}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 3}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.RelRasco.__init__": {"tf": 2.449489742783178}, "sslearn.wrapper.CoForest.__init__": {"tf": 2.6457513110645907}, "sslearn.wrapper.TriTraining.__init__": {"tf": 2}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 3}}, "df": 31}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}}, "df": 4}}, "o": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 11}, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}}, "df": 2, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.utils.check_n_jobs": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {"sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.restricted": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 17}}}, "e": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 8, "d": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 9}, "s": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 8}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn": {"tf": 1.4142135623730951}, "sslearn.base.get_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.449489742783178}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 2}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 2}, "sslearn.wrapper.CoForest": {"tf": 2}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 19, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.4142135623730951}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}}, "df": 21}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 5}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.utils": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1}, "sslearn.wrapper": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 10}}}}}, "t": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 4}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 4}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 5}}}}}, "o": {"docs": {"sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.7320508075688772}}, "df": 2, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.restricted": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 4}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 5}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1.7320508075688772}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}}, "df": 12}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2}, "sslearn.wrapper.Setred": {"tf": 2}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2.23606797749979}, "sslearn.wrapper.CoTraining.fit": {"tf": 2}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.23606797749979}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 2.23606797749979}, "sslearn.wrapper.TriTraining": {"tf": 2}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 31, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 3}}, "s": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}, "k": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}}}, "x": {"1": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}}, "df": 1}, "2": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}}, "df": 5}, "docs": {"sslearn": {"tf": 2.6457513110645907}, "sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1.7320508075688772}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 2.6457513110645907}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2.6457513110645907}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 3}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.7320508075688772}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.6457513110645907}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.8284271247461903}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoForest": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 51, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"sslearn": {"tf": 2.23606797749979}, "sslearn.base": {"tf": 1}, "sslearn.base.get_dataset": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 2.23606797749979}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 2.6457513110645907}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 2.6457513110645907}, "sslearn.wrapper.Setred.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 2.8284271247461903}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 2.8284271247461903}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.6457513110645907}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 2.8284271247461903}, "sslearn.wrapper.CoForest": {"tf": 2.6457513110645907}, "sslearn.wrapper.CoForest.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1.4142135623730951}}, "df": 47, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}, "u": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 14, "s": {"docs": {"sslearn.base.get_dataset": {"tf": 1}, "sslearn.base.FakedProbaClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.fit": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.7320508075688772}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewClassifier.predict_proba": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.choice_with_proportion": {"tf": 1}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.utils.mode": {"tf": 1}, "sslearn.utils.check_n_jobs": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.Setred.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 42}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 6, "s": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.base.FakedProbaClassifier.predict": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.predict_proba": {"tf": 1}}, "df": 7}}}}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets": {"tf": 1.4142135623730951}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}}, "df": 3}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 5}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.datasets.save_keel": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.subview": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 1.7320508075688772}, "sslearn.subview.SubViewRegressor": {"tf": 1.7320508075688772}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}}, "df": 2, "s": {"docs": {"sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.7320508075688772}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.utils.safe_division": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 2.23606797749979}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 3}}}}}}, "f": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 10}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn": {"tf": 1}, "sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.restricted": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 2}, "sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 15}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining": {"tf": 1}, "sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 2}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 20, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 11}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}, "sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 9}}}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.wrapper": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 2.23606797749979}, "sslearn.wrapper.Rasco.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.RelRasco": {"tf": 1.4142135623730951}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier.__init__": {"tf": 1}, "sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}, "sslearn.wrapper.TriTraining.__init__": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 6}, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.save_keel": {"tf": 1.4142135623730951}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.SelfTraining": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"1": {"docs": {"sslearn": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.base.get_dataset": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1.7320508075688772}, "sslearn.utils.calculate_prior_probability": {"tf": 1}, "sslearn.wrapper.Setred.predict": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.predict": {"tf": 1}}, "df": 7, "s": {"docs": {"sslearn.base.FakedProbaClassifier.fit": {"tf": 1}, "sslearn.restricted.conflict_rate": {"tf": 1}, "sslearn.restricted.WhoIsWhoClassifier.fit": {"tf": 1}, "sslearn.subview.SubViewRegressor.predict": {"tf": 1}, "sslearn.utils": {"tf": 1}, "sslearn.utils.confidence_interval": {"tf": 1}, "sslearn.utils.mode": {"tf": 1.4142135623730951}, "sslearn.wrapper.Setred.fit": {"tf": 1}, "sslearn.wrapper.CoTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.fit": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1}, "sslearn.wrapper.Rasco.fit": {"tf": 1}, "sslearn.wrapper.CoForest.fit": {"tf": 1}, "sslearn.wrapper.TriTraining.fit": {"tf": 1}, "sslearn.wrapper.DeTriTraining.fit": {"tf": 1}}, "df": 15}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.model_selection.artificial_ssl_dataset": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS.split": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.subview": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoTraining.__init__": {"tf": 2}, "sslearn.wrapper.CoTraining.fit": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoTraining.predict_proba": {"tf": 1}, "sslearn.wrapper.CoTraining.predict": {"tf": 1}, "sslearn.wrapper.CoTraining.score": {"tf": 1}}, "df": 7}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.DemocraticCoLearning": {"tf": 2}}, "df": 1}}, "l": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}, "z": {"docs": {"sslearn.wrapper.RelRasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}, "g": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {"sslearn.utils": {"tf": 1}, "sslearn.utils.safe_division": {"tf": 1.7320508075688772}}, "df": 2}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 2}, "o": {"docs": {}, "df": 0, "u": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 4}}}}, "h": {"docs": {"sslearn.wrapper.Rasco": {"tf": 1}, "sslearn.wrapper.CoForest": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {"sslearn": {"tf": 1}}, "df": 1}}}}}}}, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "w": {"docs": {"sslearn.datasets.read_keel": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.7320508075688772}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}, "sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1.4142135623730951}, "sslearn.restricted.conflict_rate": {"tf": 1.4142135623730951}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.SelfTraining.fit": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 9}}, "s": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}, "sslearn.datasets.read_csv": {"tf": 1}, "sslearn.datasets.read_keel": {"tf": 1}, "sslearn.datasets.secure_dataset": {"tf": 1}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 5}, "n": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sslearn.wrapper.CoTraining.score": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee.score": {"tf": 1}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "y": {"docs": {"sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "f": {"docs": {"sslearn.wrapper.Rasco.__init__": {"tf": 1}, "sslearn.wrapper.RelRasco.__init__": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.base.FakedProbaClassifier": {"tf": 1.4142135623730951}, "sslearn.base.FakedProbaClassifier.predict_proba": {"tf": 1}}, "df": 2}, "w": {"docs": {"sslearn.wrapper.DeTriTraining.__init__": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "a": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 3}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.CoForest": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.wrapper.TriTraining": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "i": {"docs": {"sslearn.utils.confidence_interval": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.SelfTraining.__init__": {"tf": 1}, "sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1.4142135623730951}, "sslearn.wrapper.Rasco": {"tf": 1.4142135623730951}, "sslearn.wrapper.CoForest": {"tf": 1.4142135623730951}}, "df": 5}}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.Setred": {"tf": 1}, "sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 2}}}}}}}}}}, "q": {"docs": {"sslearn.wrapper.DemocraticCoLearning.__init__": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sslearn.base.OneVsRestSSLClassifier.predict_proba": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.subview.SubViewClassifier": {"tf": 3.1622776601683795}, "sslearn.subview.SubViewRegressor": {"tf": 3.1622776601683795}}, "df": 2}}}}, "k": {"docs": {"sslearn.model_selection": {"tf": 1}, "sslearn.model_selection.StratifiedKFoldSS": {"tf": 1}, "sslearn.wrapper.SelfTraining.__init__": {"tf": 2.23606797749979}, "sslearn.wrapper.DeTriTraining.__init__": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sslearn.datasets": {"tf": 2}, "sslearn.datasets.read_keel": {"tf": 1.4142135623730951}, "sslearn.datasets.save_keel": {"tf": 1}}, "df": 3}, "p": {"docs": {"sslearn.restricted": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sslearn.wrapper.CoTraining": {"tf": 1}, "sslearn.wrapper.CoTrainingByCommittee": {"tf": 1}, "sslearn.wrapper.Rasco": {"tf": 1}}, "df": 3}}}}}, "y": {"docs": {"sslearn.utils.calculate_prior_probability": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"sslearn.wrapper.DeTriTraining": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.restricted.WhoIsWhoClassifier": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "s": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.predict": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning.fit": {"tf": 1.7320508075688772}, "sslearn.wrapper.CoForest.__init__": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {"sslearn.restricted.WhoIsWhoClassifier.__init__": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sslearn.wrapper.Setred": {"tf": 1.4142135623730951}, "sslearn.wrapper.TriTraining": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sslearn.wrapper.Setred.__init__": {"tf": 1}, "sslearn.wrapper.DemocraticCoLearning": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + + // mirrored in build-search-index.js (part 1) + // Also split on html tags. this is a cheap heuristic, but good enough. + elasticlunr.tokenizer.setSeperator(/[\s\-.;&_'"=,()]+|<[^>]*>/); + + let searchIndex; + if (docs._isPrebuiltIndex) { + console.info("using precompiled search index"); + searchIndex = elasticlunr.Index.load(docs); + } else { + console.time("building search index"); + // mirrored in build-search-index.js (part 2) + searchIndex = elasticlunr(function () { + this.pipeline.remove(elasticlunr.stemmer); + this.pipeline.remove(elasticlunr.stopWordFilter); + this.addField("qualname"); + this.addField("fullname"); + this.addField("annotation"); + this.addField("default_value"); + this.addField("signature"); + this.addField("bases"); + this.addField("doc"); + this.setRef("fullname"); + }); + for (let doc of docs) { + searchIndex.addDoc(doc); + } + console.timeEnd("building search index"); + } + + return (term) => searchIndex.search(term, { + fields: { + qualname: {boost: 4}, + fullname: {boost: 2}, + annotation: {boost: 2}, + default_value: {boost: 2}, + signature: {boost: 2}, + bases: {boost: 2}, + doc: {boost: 1}, + }, + expand: true + }); +})(); \ No newline at end of file diff --git a/docs/sslearn.html b/docs/sslearn.html new file mode 100644 index 0000000..d1629d2 --- /dev/null +++ b/docs/sslearn.html @@ -0,0 +1,358 @@ + + + + + + + sslearn API documentation + + + + + + + + + + + + + + +
+
+

+sslearn

+ +

Semi-Supervised Learning Library (sslearn)

+ +

+

+ +

Code Climate maintainability Code Climate coverage GitHub Workflow Status PyPI - Version Static Badge

+ +

The sslearn library is a Python package for machine learning over Semi-supervised datasets. It is an extension of scikit-learn.

+ +

Installation

+ +

Dependencies

+ +
    +
  • joblib >= 1.2.0
  • +
  • numpy >= 1.23.3
  • +
  • pandas >= 1.4.3
  • +
  • scikit_learn >= 1.2.0
  • +
  • scipy >= 1.10.1
  • +
  • statsmodels >= 0.13.2
  • +
  • pytest = 7.2.0 (only for testing)
  • +
+ +

pip installation

+ +

It can be installed using Pypi:

+ +
pip install sslearn
+
+ +

Code example

+ +
+
from sslearn.wrapper import TriTraining
+from sslearn.model_selection import artificial_ssl_dataset
+from sklearn.datasets import load_iris
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, true_label = artificial_ssl_dataset(X, y, label_rate=0.1)
+
+model = TriTraining().fit(X, y)
+model.score(X_unlabel, true_label)
+
+
+ +

Citing

+ +
+
@software{jose_luis_garrido_labrador_2024_10623889,
+  author       = {José Luis Garrido-Labrador},
+  title        = {jlgarridol/sslearn: v1.0.4},
+  month        = feb,
+  year         = 2024,
+  publisher    = {Zenodo},
+  version      = {1.0.4},
+  doi          = {10.5281/zenodo.10623889},
+  url          = {https://doi.org/10.5281/zenodo.10623889}
+}
+
+
+
+ + + + + +
 1# Open README.md and added to __doc__ for 
+ 2import os
+ 3if os.path.exists("../README.md"):
+ 4    with open("../README.md", "r") as f:
+ 5        __doc__ = f.read()
+ 6elif os.path.exists("README.md"):
+ 7    with open("README.md", "r") as f:
+ 8        __doc__ = f.read()
+ 9else:
+10    __doc__ = "Semi-Supervised Learning (SSL) is a Python package that provides tools to train and evaluate semi-supervised learning models."
+11
+12
+13__version__='1.0.4.1'
+14__AUTHOR__="José Luis Garrido-Labrador"  # Author of the package
+15__AUTHOR_EMAIL__="jlgarrido@ubu.es"  # Author's email
+16__URL__="https://pypi.org/project/sslearn/"
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/sslearn.svg b/docs/sslearn.svg new file mode 100644 index 0000000..52a09d5 --- /dev/null +++ b/docs/sslearn.svg @@ -0,0 +1,355 @@ + + + + + + + + + sslearn + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + * + * + * + + + + diff --git a/docs/sslearn.webp b/docs/sslearn.webp new file mode 100644 index 0000000..d08a36d Binary files /dev/null and b/docs/sslearn.webp differ diff --git a/docs/sslearn/base.html b/docs/sslearn/base.html new file mode 100644 index 0000000..d6e74ac --- /dev/null +++ b/docs/sslearn/base.html @@ -0,0 +1,1427 @@ + + + + + + + sslearn.base API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.base

+ +

Summary of module sslearn.base:

+ +

Functions

+ +

get_dataset(X, y): + Check and divide dataset between labeled and unlabeled data.

+ +

Classes

+ +

FakedProbaClassifier:

+ +
+

Create a classifier that fakes predict_proba method if it does not exist.

+
+ +

OneVsRestSSLClassifier:

+ +
+

Adapted OneVsRestClassifier for SSL datasets

+
+
+ + + + + +
  1"""
+  2Summary of module `sslearn.base`:
+  3
+  4## Functions
+  5
+  6
+  7get_dataset(X, y):
+  8    Check and divide dataset between labeled and unlabeled data.
+  9
+ 10## Classes
+ 11
+ 12
+ 13[FakedProbaClassifier](#FakedProbaClassifier):
+ 14>  Create a classifier that fakes predict_proba method if it does not exist.
+ 15
+ 16[OneVsRestSSLClassifier](#OneVsRestSSLClassifier):
+ 17> Adapted OneVsRestClassifier for SSL datasets
+ 18
+ 19"""
+ 20
+ 21import array
+ 22import warnings
+ 23from abc import ABC, abstractmethod
+ 24
+ 25import numpy as np
+ 26import pandas as pd
+ 27import scipy.sparse as sp
+ 28from joblib import Parallel, delayed
+ 29from sklearn.base import BaseEstimator, ClassifierMixin, MetaEstimatorMixin
+ 30from sklearn.base import clone as skclone
+ 31from sklearn.base import is_classifier
+ 32from sklearn.multiclass import (LabelBinarizer, OneVsRestClassifier,
+ 33                                _ConstantPredictor, _num_samples,
+ 34                                _predict_binary)
+ 35from sklearn.preprocessing import OneHotEncoder
+ 36from sklearn.utils import check_X_y, check_array
+ 37from sklearn.utils.validation import check_is_fitted
+ 38from sklearn.utils.metaestimators import available_if
+ 39from sklearn.ensemble._base import _set_random_states
+ 40from sklearn.utils import check_random_state
+ 41
+ 42__all__ = ["get_dataset", "FakedProbaClassifier", "OneVsRestSSLClassifier"]
+ 43
+ 44
+ 45
+ 46def get_dataset(X, y):
+ 47    """Check and divide dataset between labeled and unlabeled data.
+ 48
+ 49    Parameters
+ 50    ----------
+ 51    X : ndarray or DataFrame of shape (n_samples, n_features)
+ 52        Features matrix.
+ 53    y : ndarray of shape (n_samples,)
+ 54        Target vector.
+ 55
+ 56    Returns
+ 57    -------
+ 58    X_label : ndarray or DataFrame of shape (n_label, n_features)
+ 59        Labeled features matrix.
+ 60    y_label : ndarray or Serie of shape (n_label,)
+ 61        Labeled target vector.
+ 62    X_unlabel : ndarray or Serie DataFrame of shape (n_unlabel, n_features)
+ 63        Unlabeled features matrix.
+ 64    """
+ 65
+ 66    is_df = False
+ 67    if isinstance(X, pd.DataFrame):
+ 68        is_df = True
+ 69        columns = X.columns
+ 70
+ 71    X = check_array(X)
+ 72    y = check_array(y, ensure_2d=False, dtype=y.dtype.type)
+ 73    
+ 74    X_label = X[y != y.dtype.type(-1)]
+ 75    y_label = y[y != y.dtype.type(-1)]
+ 76    X_unlabel = X[y == y.dtype.type(-1)]
+ 77
+ 78    X_label, y_label = check_X_y(X_label, y_label)
+ 79
+ 80    if is_df:
+ 81        X_label = pd.DataFrame(X_label, columns=columns)
+ 82        X_unlabel = pd.DataFrame(X_unlabel, columns=columns)
+ 83
+ 84    return X_label, y_label, X_unlabel
+ 85
+ 86
+ 87class BaseEnsemble(ABC, MetaEstimatorMixin, BaseEstimator):
+ 88
+ 89    @abstractmethod
+ 90    def predict_proba(self, X):
+ 91        pass
+ 92
+ 93    def predict(self, X):
+ 94        """Predict the classes of X.
+ 95        Parameters
+ 96        ----------
+ 97        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 98            Array representing the data.
+ 99        Returns
+100        -------
+101        y : ndarray of shape (n_samples,)
+102            Array with predicted labels.
+103        """
+104        predicted_probabilitiy = self.predict_proba(X)
+105        classes = self.classes_.take((np.argmax(predicted_probabilitiy, axis=1)),
+106                                  axis=0)
+107
+108        # If exists label_encoder_ attribute, use it to transform classes
+109        if hasattr(self, "label_encoder_"):
+110            classes = self.label_encoder_.inverse_transform(classes)
+111            
+112        return classes
+113
+114
+115class FakedProbaClassifier(MetaEstimatorMixin, ClassifierMixin, BaseEstimator):
+116    """
+117    Fake predict_proba method for classifiers that do not have it. 
+118    When predict_proba is called, it will use one hot encoding to fake the probabilities if base_estimator does not have predict_proba method.
+119
+120    Examples
+121    --------
+122    ```python
+123    from sklearn.svm import SVC
+124    # SVC does not have predict_proba method
+125
+126    from sslearn.base import FakedProbaClassifier
+127    faked_svc = FakedProbaClassifier(SVC())
+128    faked_svc.fit(X, y)
+129    faked_svc.predict_proba(X) # One hot encoding probabilities
+130    ```
+131    """
+132
+133    def __init__(self, base_estimator):
+134        """Create a classifier that fakes predict_proba method if it does not exist.
+135
+136        Parameters
+137        ----------
+138        base_estimator : ClassifierMixin
+139            A classifier that implements fit and predict methods.
+140        """
+141        self.base_estimator = base_estimator
+142
+143    def fit(self, X, y):
+144        """Fit a FakedProbaClassifier.
+145
+146        Parameters
+147        ----------
+148        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+149            The input samples.
+150        y : {array-like, sparse matrix} of shape (n_samples,)
+151            The target values.
+152
+153        Returns
+154        -------
+155        self : FakedProbaClassifier
+156            Returns self.
+157        """
+158        self.classes_ = np.unique(y)
+159        self.one_hot = OneHotEncoder().fit(y.reshape(-1, 1))
+160        self.base_estimator.fit(X, y)
+161        return self
+162
+163    def predict(self, X):
+164        """Predict the classes of X.
+165
+166        Parameters
+167        ----------
+168        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+169            Array representing the data.
+170
+171        Returns
+172        -------
+173        y : ndarray of shape (n_samples,)
+174            Array with predicted labels.
+175        """
+176        return self.base_estimator.predict(X)
+177
+178    def predict_proba(self, X):
+179        """Predict the probabilities of each class for X. 
+180        If the base estimator does not have a predict_proba method, it will be faked using one hot encoding.
+181
+182        Parameters
+183        ----------
+184        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+185
+186        Returns
+187        -------
+188        y : ndarray of shape (n_samples, n_classes)
+189            Array with predicted probabilities.
+190        """
+191        if "predict_proba" in dir(self.base_estimator):
+192            return self.base_estimator.predict_proba(X)
+193        else:
+194            return self.one_hot.transform(self.base_estimator.predict(X).reshape(-1, 1)).toarray()
+195
+196
+197def _fit_binary_ssl(estimator, X, y_label, size, classes=None, **fit_params):
+198    # unique_y = np.unique(y_label)
+199    # X = np.concatenate((X_label, X_unlabel), axis=0)
+200    y = np.concatenate((y_label, np.array([y_label.dtype.type(-1)] * size)))
+201    unique_y = np.unique(y_label)
+202    if len(unique_y) == 1:
+203        if classes is not None:
+204            if y_label[0] == -1:
+205                c = 0
+206            else:
+207                c = y_label[0]
+208            warnings.warn(
+209                "Label %s is present in all training examples." % str(classes[c])
+210            )
+211        estimator = _ConstantPredictor().fit(None, unique_y)
+212    else:
+213        estimator = skclone(estimator)
+214        estimator.fit(X, y, **fit_params)
+215    return estimator
+216
+217def _predict_binary_ssl(estimator, X, **predict_params):
+218    """Make predictions using a single binary estimator."""
+219    try:
+220        score = np.ravel(estimator.decision_function(X, **predict_params))
+221    except (AttributeError, NotImplementedError):
+222        # probabilities of the positive class
+223        score = estimator.predict_proba(X, **predict_params)[:, 1]
+224    return score
+225
+226
+227class OneVsRestSSLClassifier(OneVsRestClassifier):
+228    """Adapted OneVsRestClassifier for SSL datasets
+229
+230    Prevent use unlabeled data as a independent class in the classifier.
+231
+232    For more information of OvR classifier, see the documentation of [OneVsRestClassifier](https://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html).
+233    """
+234
+235    def __init__(self, estimator, *, n_jobs=None):
+236        """Adapted OneVsRestClassifier for SSL datasets
+237
+238        Parameters
+239        ----------
+240        estimator : {ClassifierMixin, list},
+241            An estimator object implementing fit and predict_proba or a list of ClassifierMixin
+242        n_jobs : n_jobs : int, optional
+243            The number of jobs to run in parallel. -1 means using all processors., by default None
+244        """
+245        super().__init__(estimator, n_jobs=n_jobs)
+246
+247    def fit(self, X, y, **fit_params):
+248        #
+249        y_label = y[y != y.dtype.type(-1)]
+250        size = len(y) - len(y_label)
+251
+252        self.label_binarizer_ = LabelBinarizer(sparse_output=True)
+253        Y = self.label_binarizer_.fit_transform(y_label)
+254        Y = Y.tocsc()
+255        self.classes_ = self.label_binarizer_.classes_
+256        columns = (col.toarray().ravel() for col in Y.T)
+257
+258        estimators = [skclone(self.estimator) for _ in range(len(self.classes_))]
+259        rs = check_random_state(estimators[0].get_params(deep=False).get("random_state", None))
+260        for e in estimators:
+261            _set_random_states(e, rs)
+262
+263        self.estimators_ = Parallel(n_jobs=self.n_jobs)(
+264            delayed(_fit_binary_ssl)(
+265                estimators[i],
+266                X,
+267                column,
+268                size,
+269                classes=[
+270                    "not %s" % self.label_binarizer_.classes_[i],
+271                    self.label_binarizer_.classes_[i],
+272                ],
+273                **fit_params
+274            )
+275            for i, column in enumerate(columns)
+276        )
+277
+278        if hasattr(self.estimators_[0], "n_features_in_"):
+279            self.n_features_in_ = self.estimators_[0].n_features_in_
+280        if hasattr(self.estimators_[0], "feature_names_in_"):
+281            self.feature_names_in_ = self.estimators_[0].feature_names_in_
+282
+283        return self
+284
+285    def predict(self, X, **kwards):
+286        check_is_fitted(self)
+287
+288        n_samples = _num_samples(X)
+289        if self.label_binarizer_.y_type_ == "multiclass":
+290            maxima = np.empty(n_samples, dtype=float)
+291            maxima.fill(-np.inf)
+292            argmaxima = np.zeros(n_samples, dtype=int)
+293            for i, e in enumerate(self.estimators_):
+294                pred = _predict_binary_ssl(e, X, **kwards)
+295                np.maximum(maxima, pred, out=maxima)
+296                argmaxima[maxima == pred] = i
+297            return self.classes_[argmaxima]
+298        else:
+299            if (hasattr(self.estimators_[0], "decision_function") and
+300                    is_classifier(self.estimators_[0])):
+301                thresh = 0
+302            else:
+303                thresh = .5
+304            indices = array.array('i')
+305            indptr = array.array('i', [0])
+306            for e in self.estimators_:
+307                indices.extend(np.where(_predict_binary_ssl(e, X, **kwards) > thresh)[0])
+308                indptr.append(len(indices))
+309            data = np.ones(len(indices), dtype=int)
+310            indicator = sp.csc_matrix((data, indices, indptr),
+311                                      shape=(n_samples, len(self.estimators_)))
+312            return self.label_binarizer_.inverse_transform(indicator)
+313
+314    def predict_proba(self, X, **kwards):
+315        check_is_fitted(self)
+316        # Y[i, j] gives the probability that sample i has the label j.
+317        # In the multi-label case, these are not disjoint.
+318        Y = np.array([e.predict_proba(X, **kwards)[:, 1] for e in self.estimators_]).T
+319
+320        if len(self.estimators_) == 1:
+321            # Only one estimator, but we still want to return probabilities
+322            # for two classes.
+323            Y = np.concatenate(((1 - Y), Y), axis=1)
+324
+325        if not self.multilabel_:
+326            # Then, probabilities should be normalized to 1.
+327            Y /= np.sum(Y, axis=1)[:, np.newaxis]
+328        return Y
+
+ + +
+
+ +
+ + def + get_dataset(X, y): + + + +
+ +
47def get_dataset(X, y):
+48    """Check and divide dataset between labeled and unlabeled data.
+49
+50    Parameters
+51    ----------
+52    X : ndarray or DataFrame of shape (n_samples, n_features)
+53        Features matrix.
+54    y : ndarray of shape (n_samples,)
+55        Target vector.
+56
+57    Returns
+58    -------
+59    X_label : ndarray or DataFrame of shape (n_label, n_features)
+60        Labeled features matrix.
+61    y_label : ndarray or Serie of shape (n_label,)
+62        Labeled target vector.
+63    X_unlabel : ndarray or Serie DataFrame of shape (n_unlabel, n_features)
+64        Unlabeled features matrix.
+65    """
+66
+67    is_df = False
+68    if isinstance(X, pd.DataFrame):
+69        is_df = True
+70        columns = X.columns
+71
+72    X = check_array(X)
+73    y = check_array(y, ensure_2d=False, dtype=y.dtype.type)
+74    
+75    X_label = X[y != y.dtype.type(-1)]
+76    y_label = y[y != y.dtype.type(-1)]
+77    X_unlabel = X[y == y.dtype.type(-1)]
+78
+79    X_label, y_label = check_X_y(X_label, y_label)
+80
+81    if is_df:
+82        X_label = pd.DataFrame(X_label, columns=columns)
+83        X_unlabel = pd.DataFrame(X_unlabel, columns=columns)
+84
+85    return X_label, y_label, X_unlabel
+
+ + +

Check and divide dataset between labeled and unlabeled data.

+ +
Parameters
+ +
    +
  • X (ndarray or DataFrame of shape (n_samples, n_features)): +Features matrix.
  • +
  • y (ndarray of shape (n_samples,)): +Target vector.
  • +
+ +
Returns
+ +
    +
  • X_label (ndarray or DataFrame of shape (n_label, n_features)): +Labeled features matrix.
  • +
  • y_label (ndarray or Serie of shape (n_label,)): +Labeled target vector.
  • +
  • X_unlabel (ndarray or Serie DataFrame of shape (n_unlabel, n_features)): +Unlabeled features matrix.
  • +
+
+ + +
+
+ +
+ + class + FakedProbaClassifier(sklearn.base.MetaEstimatorMixin, sklearn.base.ClassifierMixin, sklearn.base.BaseEstimator): + + + +
+ +
116class FakedProbaClassifier(MetaEstimatorMixin, ClassifierMixin, BaseEstimator):
+117    """
+118    Fake predict_proba method for classifiers that do not have it. 
+119    When predict_proba is called, it will use one hot encoding to fake the probabilities if base_estimator does not have predict_proba method.
+120
+121    Examples
+122    --------
+123    ```python
+124    from sklearn.svm import SVC
+125    # SVC does not have predict_proba method
+126
+127    from sslearn.base import FakedProbaClassifier
+128    faked_svc = FakedProbaClassifier(SVC())
+129    faked_svc.fit(X, y)
+130    faked_svc.predict_proba(X) # One hot encoding probabilities
+131    ```
+132    """
+133
+134    def __init__(self, base_estimator):
+135        """Create a classifier that fakes predict_proba method if it does not exist.
+136
+137        Parameters
+138        ----------
+139        base_estimator : ClassifierMixin
+140            A classifier that implements fit and predict methods.
+141        """
+142        self.base_estimator = base_estimator
+143
+144    def fit(self, X, y):
+145        """Fit a FakedProbaClassifier.
+146
+147        Parameters
+148        ----------
+149        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+150            The input samples.
+151        y : {array-like, sparse matrix} of shape (n_samples,)
+152            The target values.
+153
+154        Returns
+155        -------
+156        self : FakedProbaClassifier
+157            Returns self.
+158        """
+159        self.classes_ = np.unique(y)
+160        self.one_hot = OneHotEncoder().fit(y.reshape(-1, 1))
+161        self.base_estimator.fit(X, y)
+162        return self
+163
+164    def predict(self, X):
+165        """Predict the classes of X.
+166
+167        Parameters
+168        ----------
+169        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+170            Array representing the data.
+171
+172        Returns
+173        -------
+174        y : ndarray of shape (n_samples,)
+175            Array with predicted labels.
+176        """
+177        return self.base_estimator.predict(X)
+178
+179    def predict_proba(self, X):
+180        """Predict the probabilities of each class for X. 
+181        If the base estimator does not have a predict_proba method, it will be faked using one hot encoding.
+182
+183        Parameters
+184        ----------
+185        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+186
+187        Returns
+188        -------
+189        y : ndarray of shape (n_samples, n_classes)
+190            Array with predicted probabilities.
+191        """
+192        if "predict_proba" in dir(self.base_estimator):
+193            return self.base_estimator.predict_proba(X)
+194        else:
+195            return self.one_hot.transform(self.base_estimator.predict(X).reshape(-1, 1)).toarray()
+
+ + +

Fake predict_proba method for classifiers that do not have it. +When predict_proba is called, it will use one hot encoding to fake the probabilities if base_estimator does not have predict_proba method.

+ +
Examples
+ +
+
from sklearn.svm import SVC
+# SVC does not have predict_proba method
+
+from sslearn.base import FakedProbaClassifier
+faked_svc = FakedProbaClassifier(SVC())
+faked_svc.fit(X, y)
+faked_svc.predict_proba(X) # One hot encoding probabilities
+
+
+
+ + +
+ +
+ + FakedProbaClassifier(base_estimator) + + + +
+ +
134    def __init__(self, base_estimator):
+135        """Create a classifier that fakes predict_proba method if it does not exist.
+136
+137        Parameters
+138        ----------
+139        base_estimator : ClassifierMixin
+140            A classifier that implements fit and predict methods.
+141        """
+142        self.base_estimator = base_estimator
+
+ + +

Create a classifier that fakes predict_proba method if it does not exist.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin): +A classifier that implements fit and predict methods.
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y): + + + +
+ +
144    def fit(self, X, y):
+145        """Fit a FakedProbaClassifier.
+146
+147        Parameters
+148        ----------
+149        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+150            The input samples.
+151        y : {array-like, sparse matrix} of shape (n_samples,)
+152            The target values.
+153
+154        Returns
+155        -------
+156        self : FakedProbaClassifier
+157            Returns self.
+158        """
+159        self.classes_ = np.unique(y)
+160        self.one_hot = OneHotEncoder().fit(y.reshape(-1, 1))
+161        self.base_estimator.fit(X, y)
+162        return self
+
+ + +

Fit a FakedProbaClassifier.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
  • y ({array-like, sparse matrix} of shape (n_samples,)): +The target values.
  • +
+ +
Returns
+ +
    +
  • self (FakedProbaClassifier): +Returns self.
  • +
+
+ + +
+
+ +
+ + def + predict(self, X): + + + +
+ +
164    def predict(self, X):
+165        """Predict the classes of X.
+166
+167        Parameters
+168        ----------
+169        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+170            Array representing the data.
+171
+172        Returns
+173        -------
+174        y : ndarray of shape (n_samples,)
+175            Array with predicted labels.
+176        """
+177        return self.base_estimator.predict(X)
+
+ + +

Predict the classes of X.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Array representing the data.
  • +
+ +
Returns
+ +
    +
  • y (ndarray of shape (n_samples,)): +Array with predicted labels.
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X): + + + +
+ +
179    def predict_proba(self, X):
+180        """Predict the probabilities of each class for X. 
+181        If the base estimator does not have a predict_proba method, it will be faked using one hot encoding.
+182
+183        Parameters
+184        ----------
+185        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+186
+187        Returns
+188        -------
+189        y : ndarray of shape (n_samples, n_classes)
+190            Array with predicted probabilities.
+191        """
+192        if "predict_proba" in dir(self.base_estimator):
+193            return self.base_estimator.predict_proba(X)
+194        else:
+195            return self.one_hot.transform(self.base_estimator.predict(X).reshape(-1, 1)).toarray()
+
+ + +

Predict the probabilities of each class for X. +If the base estimator does not have a predict_proba method, it will be faked using one hot encoding.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)):
  • +
+ +
Returns
+ +
    +
  • y (ndarray of shape (n_samples, n_classes)): +Array with predicted probabilities.
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.base.ClassifierMixin
+
score
+ +
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + OneVsRestSSLClassifier(sklearn.multiclass.OneVsRestClassifier): + + + +
+ +
228class OneVsRestSSLClassifier(OneVsRestClassifier):
+229    """Adapted OneVsRestClassifier for SSL datasets
+230
+231    Prevent use unlabeled data as a independent class in the classifier.
+232
+233    For more information of OvR classifier, see the documentation of [OneVsRestClassifier](https://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html).
+234    """
+235
+236    def __init__(self, estimator, *, n_jobs=None):
+237        """Adapted OneVsRestClassifier for SSL datasets
+238
+239        Parameters
+240        ----------
+241        estimator : {ClassifierMixin, list},
+242            An estimator object implementing fit and predict_proba or a list of ClassifierMixin
+243        n_jobs : n_jobs : int, optional
+244            The number of jobs to run in parallel. -1 means using all processors., by default None
+245        """
+246        super().__init__(estimator, n_jobs=n_jobs)
+247
+248    def fit(self, X, y, **fit_params):
+249        #
+250        y_label = y[y != y.dtype.type(-1)]
+251        size = len(y) - len(y_label)
+252
+253        self.label_binarizer_ = LabelBinarizer(sparse_output=True)
+254        Y = self.label_binarizer_.fit_transform(y_label)
+255        Y = Y.tocsc()
+256        self.classes_ = self.label_binarizer_.classes_
+257        columns = (col.toarray().ravel() for col in Y.T)
+258
+259        estimators = [skclone(self.estimator) for _ in range(len(self.classes_))]
+260        rs = check_random_state(estimators[0].get_params(deep=False).get("random_state", None))
+261        for e in estimators:
+262            _set_random_states(e, rs)
+263
+264        self.estimators_ = Parallel(n_jobs=self.n_jobs)(
+265            delayed(_fit_binary_ssl)(
+266                estimators[i],
+267                X,
+268                column,
+269                size,
+270                classes=[
+271                    "not %s" % self.label_binarizer_.classes_[i],
+272                    self.label_binarizer_.classes_[i],
+273                ],
+274                **fit_params
+275            )
+276            for i, column in enumerate(columns)
+277        )
+278
+279        if hasattr(self.estimators_[0], "n_features_in_"):
+280            self.n_features_in_ = self.estimators_[0].n_features_in_
+281        if hasattr(self.estimators_[0], "feature_names_in_"):
+282            self.feature_names_in_ = self.estimators_[0].feature_names_in_
+283
+284        return self
+285
+286    def predict(self, X, **kwards):
+287        check_is_fitted(self)
+288
+289        n_samples = _num_samples(X)
+290        if self.label_binarizer_.y_type_ == "multiclass":
+291            maxima = np.empty(n_samples, dtype=float)
+292            maxima.fill(-np.inf)
+293            argmaxima = np.zeros(n_samples, dtype=int)
+294            for i, e in enumerate(self.estimators_):
+295                pred = _predict_binary_ssl(e, X, **kwards)
+296                np.maximum(maxima, pred, out=maxima)
+297                argmaxima[maxima == pred] = i
+298            return self.classes_[argmaxima]
+299        else:
+300            if (hasattr(self.estimators_[0], "decision_function") and
+301                    is_classifier(self.estimators_[0])):
+302                thresh = 0
+303            else:
+304                thresh = .5
+305            indices = array.array('i')
+306            indptr = array.array('i', [0])
+307            for e in self.estimators_:
+308                indices.extend(np.where(_predict_binary_ssl(e, X, **kwards) > thresh)[0])
+309                indptr.append(len(indices))
+310            data = np.ones(len(indices), dtype=int)
+311            indicator = sp.csc_matrix((data, indices, indptr),
+312                                      shape=(n_samples, len(self.estimators_)))
+313            return self.label_binarizer_.inverse_transform(indicator)
+314
+315    def predict_proba(self, X, **kwards):
+316        check_is_fitted(self)
+317        # Y[i, j] gives the probability that sample i has the label j.
+318        # In the multi-label case, these are not disjoint.
+319        Y = np.array([e.predict_proba(X, **kwards)[:, 1] for e in self.estimators_]).T
+320
+321        if len(self.estimators_) == 1:
+322            # Only one estimator, but we still want to return probabilities
+323            # for two classes.
+324            Y = np.concatenate(((1 - Y), Y), axis=1)
+325
+326        if not self.multilabel_:
+327            # Then, probabilities should be normalized to 1.
+328            Y /= np.sum(Y, axis=1)[:, np.newaxis]
+329        return Y
+
+ + +

Adapted OneVsRestClassifier for SSL datasets

+ +

Prevent use unlabeled data as a independent class in the classifier.

+ +

For more information of OvR classifier, see the documentation of OneVsRestClassifier.

+
+ + +
+ +
+ + OneVsRestSSLClassifier(estimator, *, n_jobs=None) + + + +
+ +
236    def __init__(self, estimator, *, n_jobs=None):
+237        """Adapted OneVsRestClassifier for SSL datasets
+238
+239        Parameters
+240        ----------
+241        estimator : {ClassifierMixin, list},
+242            An estimator object implementing fit and predict_proba or a list of ClassifierMixin
+243        n_jobs : n_jobs : int, optional
+244            The number of jobs to run in parallel. -1 means using all processors., by default None
+245        """
+246        super().__init__(estimator, n_jobs=n_jobs)
+
+ + +

Adapted OneVsRestClassifier for SSL datasets

+ +
Parameters
+ +
    +
  • estimator ({ClassifierMixin, list},): +An estimator object implementing fit and predict_proba or a list of ClassifierMixin
  • +
  • n_jobs : n_jobs (int, optional): +The number of jobs to run in parallel. -1 means using all processors., by default None
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **fit_params): + + + +
+ +
248    def fit(self, X, y, **fit_params):
+249        #
+250        y_label = y[y != y.dtype.type(-1)]
+251        size = len(y) - len(y_label)
+252
+253        self.label_binarizer_ = LabelBinarizer(sparse_output=True)
+254        Y = self.label_binarizer_.fit_transform(y_label)
+255        Y = Y.tocsc()
+256        self.classes_ = self.label_binarizer_.classes_
+257        columns = (col.toarray().ravel() for col in Y.T)
+258
+259        estimators = [skclone(self.estimator) for _ in range(len(self.classes_))]
+260        rs = check_random_state(estimators[0].get_params(deep=False).get("random_state", None))
+261        for e in estimators:
+262            _set_random_states(e, rs)
+263
+264        self.estimators_ = Parallel(n_jobs=self.n_jobs)(
+265            delayed(_fit_binary_ssl)(
+266                estimators[i],
+267                X,
+268                column,
+269                size,
+270                classes=[
+271                    "not %s" % self.label_binarizer_.classes_[i],
+272                    self.label_binarizer_.classes_[i],
+273                ],
+274                **fit_params
+275            )
+276            for i, column in enumerate(columns)
+277        )
+278
+279        if hasattr(self.estimators_[0], "n_features_in_"):
+280            self.n_features_in_ = self.estimators_[0].n_features_in_
+281        if hasattr(self.estimators_[0], "feature_names_in_"):
+282            self.feature_names_in_ = self.estimators_[0].feature_names_in_
+283
+284        return self
+
+ + +

Fit underlying estimators.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Data.
  • +
  • y ({array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)): +Multi-class targets. An indicator matrix turns on multilabel +classification.
  • +
+ +
Returns
+ +
    +
  • self (object): +Instance of fitted estimator.
  • +
+
+ + +
+
+ +
+ + def + predict(self, X, **kwards): + + + +
+ +
286    def predict(self, X, **kwards):
+287        check_is_fitted(self)
+288
+289        n_samples = _num_samples(X)
+290        if self.label_binarizer_.y_type_ == "multiclass":
+291            maxima = np.empty(n_samples, dtype=float)
+292            maxima.fill(-np.inf)
+293            argmaxima = np.zeros(n_samples, dtype=int)
+294            for i, e in enumerate(self.estimators_):
+295                pred = _predict_binary_ssl(e, X, **kwards)
+296                np.maximum(maxima, pred, out=maxima)
+297                argmaxima[maxima == pred] = i
+298            return self.classes_[argmaxima]
+299        else:
+300            if (hasattr(self.estimators_[0], "decision_function") and
+301                    is_classifier(self.estimators_[0])):
+302                thresh = 0
+303            else:
+304                thresh = .5
+305            indices = array.array('i')
+306            indptr = array.array('i', [0])
+307            for e in self.estimators_:
+308                indices.extend(np.where(_predict_binary_ssl(e, X, **kwards) > thresh)[0])
+309                indptr.append(len(indices))
+310            data = np.ones(len(indices), dtype=int)
+311            indicator = sp.csc_matrix((data, indices, indptr),
+312                                      shape=(n_samples, len(self.estimators_)))
+313            return self.label_binarizer_.inverse_transform(indicator)
+
+ + +

Predict multi-class targets using underlying estimators.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Data.
  • +
+ +
Returns
+ +
    +
  • y ({array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)): +Predicted multi-class targets.
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X, **kwards): + + + +
+ +
315    def predict_proba(self, X, **kwards):
+316        check_is_fitted(self)
+317        # Y[i, j] gives the probability that sample i has the label j.
+318        # In the multi-label case, these are not disjoint.
+319        Y = np.array([e.predict_proba(X, **kwards)[:, 1] for e in self.estimators_]).T
+320
+321        if len(self.estimators_) == 1:
+322            # Only one estimator, but we still want to return probabilities
+323            # for two classes.
+324            Y = np.concatenate(((1 - Y), Y), axis=1)
+325
+326        if not self.multilabel_:
+327            # Then, probabilities should be normalized to 1.
+328            Y /= np.sum(Y, axis=1)[:, np.newaxis]
+329        return Y
+
+ + +

Probability estimates.

+ +

The returned estimates for all classes are ordered by label of classes.

+ +

Note that in the multilabel case, each sample can have any number of +labels. This returns the marginal probability that the given sample has +the label in question. For example, it is entirely consistent that two +labels both have a 90% probability of applying to a given sample.

+ +

In the single label multiclass case, the rows of the returned matrix +sum to 1.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Input data.
  • +
+ +
Returns
+ +
    +
  • T (array-like of shape (n_samples, n_classes)): +Returns the probability of the sample for each class in the model, +where classes are ordered as they are in self.classes_.
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.multiclass.OneVsRestClassifier
+
partial_fit
+
decision_function
+
multilabel_
+
n_classes_
+ +
+
sklearn.base.ClassifierMixin
+
score
+ +
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/sslearn/datasets.html b/docs/sslearn/datasets.html new file mode 100644 index 0000000..ee56f59 --- /dev/null +++ b/docs/sslearn/datasets.html @@ -0,0 +1,695 @@ + + + + + + + sslearn.datasets API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.datasets

+ +

Summary of module sslearn.datasets:

+ +

This module contains functions to load and save datasets in different formats.

+ +

Functions

+ +
    +
  1. read_csv : Load a dataset from a CSV file.
  2. +
  3. read_keel : Load a dataset from a KEEL file.
  4. +
  5. secure_dataset : Secure the dataset by converting it into a secure format.
  6. +
  7. save_keel : Save a dataset in KEEL format.
  8. +
+
+ + + + + +
 1"""
+ 2Summary of module `sslearn.datasets`:
+ 3
+ 4This module contains functions to load and save datasets in different formats.
+ 5
+ 6## Functions
+ 7
+ 81. read_csv : Load a dataset from a CSV file.
+ 92. read_keel : Load a dataset from a KEEL file.
+103. secure_dataset : Secure the dataset by converting it into a secure format.
+114. save_keel : Save a dataset in KEEL format.
+12
+13
+14"""
+15
+16from ._loader import read_csv, read_keel
+17from ._writer import save_keel
+18from ._preprocess import secure_dataset
+19
+20__all__ = ["read_csv", "read_keel", "secure_dataset", "save_keel"]
+
+ + +
+
+ +
+ + def + read_csv(path, format='pandas', secure=False, target_col=-1, **kwards): + + + +
+ +
 94def read_csv(path, format="pandas", secure=False, target_col=-1, **kwards):
+ 95    """Read a .csv file
+ 96
+ 97    Parameters
+ 98    ----------
+ 99    path : str
+100        File path
+101    format : str, optional
+102        Object that will contain the data, it can be `numpy` or `pandas`, by default "pandas"
+103    secure : bool, optional
+104        It guarantees that the dataset has not  `-1` as valid class, in order to make it semi-supervised after, by default False
+105    target_col : {str, int, None}, optional
+106        Column name or index to select class column, if None use the default value stored in the file, by default None
+107
+108    Returns
+109    -------
+110    X, y: array_like
+111        Dataset loaded.
+112    """
+113    if format not in ["pandas", "numpy"]:
+114        raise AttributeError("Formats allowed are `pandas` or `numpy`")
+115    data = pd.read_csv(path, **kwards)
+116
+117    if target_col is None:
+118        raise AttributeError("`read_csv` do not allow a `None` value for `target_col`, use `integer` or `string` instead.")
+119    elif isinstance(target_col, str):
+120        target_col = data.columns.index(target_col)
+121
+122    X = data.iloc[:, data.columns != data.columns[target_col]]
+123    y = data.iloc[:, target_col]
+124
+125    if secure:
+126        X, y = secure_dataset(X, y)
+127    if format == "numpy":
+128        X = X.to_numpy()
+129        y = y.to_numpy()
+130    return X, y
+
+ + +

Read a .csv file

+ +
Parameters
+ +
    +
  • path (str): +File path
  • +
  • format (str, optional): +Object that will contain the data, it can be numpy or pandas, by default "pandas"
  • +
  • secure (bool, optional): +It guarantees that the dataset has not -1 as valid class, in order to make it semi-supervised after, by default False
  • +
  • target_col ({str, int, None}, optional): +Column name or index to select class column, if None use the default value stored in the file, by default None
  • +
+ +
Returns
+ +
    +
  • X, y (array_like): +Dataset loaded.
  • +
+
+ + +
+
+ +
+ + def + read_keel( path, format='pandas', secure=False, target_col=None, encoding='utf-8', **kwards): + + + +
+ +
14def read_keel(path, format="pandas", secure=False, target_col=None, encoding="utf-8", **kwards):
+15    """Read a .dat file from KEEL (http://www.keel.es/)
+16
+17    Parameters
+18    ----------
+19    path : str
+20        File path
+21    format : str, optional
+22        Object that will contain the data, it can be `numpy` or `pandas`, by default "pandas"
+23    secure : bool, optional
+24        It guarantees that the dataset has not  `-1` as valid class, in order to make it semi-supervised after, by default False
+25    target_col : {str, int, None}, optional
+26        Column name or index to select class column, if None use the default value stored in the file, by default None
+27    encoding: str, optional
+28        Encoding of file, by default "utf-8"
+29
+30    Returns
+31    -------
+32    X, y: array_like
+33        Dataset loaded.
+34    """
+35    if format not in ["pandas", "numpy"]:
+36        raise AttributeError("Formats allowed are `pandas` or `numpy`")
+37
+38    attributes = []
+39    types = []
+40    target = None
+41    with open(path, "r") as file:
+42        lines = file.readlines()
+43        counter = 1
+44        for line in lines:
+45            counter += 1
+46            if "@attribute" in line:
+47                parts = line.split(" ")
+48                name_ = parts[1]
+49                type_ = parts[2]
+50                if type_[0] == "{":
+51                    type_ = "string"
+52                attributes.append(name_)
+53                types.append(keel_type_cheat[type_])
+54            elif "@outputs" in line:
+55                target = line.split(" ")[1].strip('\n')
+56            elif "@data" in line:
+57                break
+58    if target is None:
+59        target = attributes[-1]
+60    data = pd.read_csv(path, skiprows=counter-1, header=None, **kwards)
+61    if len(data.columns) != len(attributes):
+62        warnings.warn(f"The dataset's have {len(data.columns)} columns but file declares {len(attributes)}.", RuntimeWarning)
+63        X = data
+64        y = None
+65    else:
+66        data.columns = attributes
+67        data = data.astype(dict(zip(attributes, types)))
+68        for att, tp in zip(attributes, types):
+69            if tp == "string":
+70                data[att] = data[att].str.strip()
+71        if target_col is None:
+72            target_col = target
+73        elif isinstance(target_col, int):
+74            target_col = data.columns[target_col]
+75
+76        att_columns = attributes.copy()
+77        att_columns.remove(target_col)
+78
+79        X = data[att_columns]
+80        y = data[target_col]
+81
+82        y[y == "unlabeled"] = y.dtype.type(-1)
+83        if secure:
+84            X, y = secure_dataset(X, y)
+85
+86    if format == "numpy":
+87        X = X.to_numpy().astype(float)
+88        y = y.to_numpy()
+89        if y.dtype == object:
+90            y = y.astype("str")
+91    return X, y
+
+ + +

Read a .dat file from KEEL (http://www.keel.es/)

+ +
Parameters
+ +
    +
  • path (str): +File path
  • +
  • format (str, optional): +Object that will contain the data, it can be numpy or pandas, by default "pandas"
  • +
  • secure (bool, optional): +It guarantees that the dataset has not -1 as valid class, in order to make it semi-supervised after, by default False
  • +
  • target_col ({str, int, None}, optional): +Column name or index to select class column, if None use the default value stored in the file, by default None
  • +
  • encoding (str, optional): +Encoding of file, by default "utf-8"
  • +
+ +
Returns
+ +
    +
  • X, y (array_like): +Dataset loaded.
  • +
+
+ + +
+
+ +
+ + def + secure_dataset(X, y): + + + +
+ +
 2def secure_dataset(X, y):
+ 3    """It guarantees that the dataset has not  `-1` as valid class, in order to make it semi-supervised after
+ 4
+ 5    Parameters
+ 6    ----------
+ 7    X : Array-like
+ 8        Ignored
+ 9    y : Array-like
+10        Target array.
+11
+12    Returns
+13    -------
+14    X, y: array_like
+15        Dataset securized.
+16    """
+17    if y.dtype.type(-1) in y.tolist():
+18        raise ValueError("The dataset contains -1 as valid class. Please, change it to another value.")
+19    return X, y
+20    # if np.issubdtype(y.dtype, np.number):
+21    #     y = y + 2
+22
+23    # return X, y
+
+ + +

It guarantees that the dataset has not -1 as valid class, in order to make it semi-supervised after

+ +
Parameters
+ +
    +
  • X (Array-like): +Ignored
  • +
  • y (Array-like): +Target array.
  • +
+ +
Returns
+ +
    +
  • X, y (array_like): +Dataset securized.
  • +
+
+ + +
+
+ +
+ + def + save_keel( X, y, route, name=None, attribute_name=None, target_name='Class', classification=True, unlabeled=True, force_targets=None): + + + +
+ +
 8def save_keel(X, y, route, name=None, attribute_name=None, target_name="Class",  classification=True, unlabeled=True, force_targets=None):
+ 9    """Save a dataset in the KEEL format
+10
+11    Parameters
+12    ----------
+13    X : array-like
+14        Dataset features
+15    y : array-like
+16        Dataset targets
+17    route : str
+18        Path to save the dataset
+19    name : str, optional
+20        Dataset name, if None the route basename will be selected, by default None
+21    attribute_name : list, optional
+22        List of attribute names, if None the default names will be used, by default None
+23    target_name : str, optional
+24        Target name, by default "Class"
+25    classification : bool, optional
+26        If the dataset is classification or regression, by default True
+27    unlabeled : bool, optional
+28        If the dataset has unlabeled instances, by default True
+29    force_targets : collection, optional
+30        Force the targets to be a specific value, by default None
+31    """    
+32    columns = []
+33    types = []
+34    min_max = []
+35    if name is None:
+36        name = os.path.basename(route).split(".")[0]
+37
+38    unlabel_target = y == y.dtype.type(-1)
+39    if classification:
+40        y = y.astype("str")
+41
+42        if unlabeled:            
+43            y = y.astype("str")
+44            if y.dtype.itemsize < np.array("unlabeled").dtype.itemsize:
+45                y = y.astype(f"<U{len('unlabeled')}")
+46            y[unlabel_target] = "unlabeled"
+47            if force_targets is not None:
+48                force_targets = force_targets.copy()
+49                force_targets.append("unlabeled")
+50
+51    # Generate attributes:
+52    if attribute_name is None:
+53        if isinstance(X, pd.DataFrame):
+54            attribute_name = X.columns
+55        elif isinstance(X, np.ndarray):
+56            attribute_name = [f"a{i}" for i in range(X.shape[-1])]
+57    if not isinstance(X, pd.DataFrame):
+58        X = pd.DataFrame(X)
+59    data = pd.concat([X, pd.Series(y).rename(target_name)], axis=1)
+60    for i, col in enumerate(data):
+61        if i < len(attribute_name) and attribute_name[i] != col:
+62            columns.append(attribute_name[i])
+63        else:
+64            columns.append(col)
+65        numeric = False
+66        if data[col].dtype.kind in "ui":
+67            numeric = True
+68            types.append(" integer")
+69        elif data[col].dtype.kind == "f":
+70            numeric = True
+71            types.append(" real")
+72        elif data[col].dtype.kind in "bSOU":
+73            types.append("")
+74        if numeric:
+75            min_max.append(f" [{data[col].min()},{data[col].max()}]")
+76        else:
+77            if col == target_name and force_targets is not None:
+78                min_max.append(" {" + ",".join(force_targets) + "}")
+79            else:
+80                min_max.append(" {" + ",".join(data[col].unique()) + "}")
+81
+82    # Generate header
+83    value = f"@relation {name}"
+84    for c, t, mm in zip(columns, types, min_max):
+85        value += f"\n@attribute {c}{t}{mm}"
+86    
+87    value += "\n@inputs " + ",".join(attribute_name)
+88    value += f"\n@outputs {target_name}"
+89    value += "\n@data\n"
+90    with open(route, "w") as f:
+91        f.write(value)
+92        data.to_csv(f, index=False, header=False)
+
+ + +

Save a dataset in the KEEL format

+ +
Parameters
+ +
    +
  • X (array-like): +Dataset features
  • +
  • y (array-like): +Dataset targets
  • +
  • route (str): +Path to save the dataset
  • +
  • name (str, optional): +Dataset name, if None the route basename will be selected, by default None
  • +
  • attribute_name (list, optional): +List of attribute names, if None the default names will be used, by default None
  • +
  • target_name (str, optional): +Target name, by default "Class"
  • +
  • classification (bool, optional): +If the dataset is classification or regression, by default True
  • +
  • unlabeled (bool, optional): +If the dataset has unlabeled instances, by default True
  • +
  • force_targets (collection, optional): +Force the targets to be a specific value, by default None
  • +
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/sslearn/model_selection.html b/docs/sslearn/model_selection.html new file mode 100644 index 0000000..4d7d2fb --- /dev/null +++ b/docs/sslearn/model_selection.html @@ -0,0 +1,693 @@ + + + + + + + sslearn.model_selection API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.model_selection

+ +

Summary of module sslearn.model_selection:

+ +

This module contains functions to split datasets into training and testing sets.

+ +

Functions

+ +

artificial_ssl_dataset:

+ +
+

Generate an artificial semi-supervised learning dataset.

+
+ +

Classes

+ +

StratifiedKFoldSS:

+ +
+

Stratified K-Folds cross-validator for semi-supervised learning.

+
+
+ + + + + +
 1"""
+ 2Summary of module `sslearn.model_selection`:
+ 3
+ 4This module contains functions to split datasets into training and testing sets.
+ 5
+ 6## Functions
+ 7
+ 8[artificial_ssl_dataset](#artificial_ssl_dataset):
+ 9> Generate an artificial semi-supervised learning dataset.
+10
+11## Classes
+12
+13[StratifiedKFoldSS](#StratifiedKFoldSS):
+14> Stratified K-Folds cross-validator for semi-supervised learning.
+15
+16
+17"""
+18
+19from ._split import artificial_ssl_dataset, StratifiedKFoldSS
+20
+21__all__ = ['artificial_ssl_dataset', 'StratifiedKFoldSS']
+
+ + +
+
+ +
+ + def + artificial_ssl_dataset( X, y, label_rate=0.1, random_state=None, force_minimum=None, indexes=False, **kwards): + + + +
+ +
 70def artificial_ssl_dataset(X, y, label_rate=0.1, random_state=None, force_minimum=None, indexes=False, **kwards):
+ 71    """Create an artificial Semi-supervised dataset from a supervised dataset.
+ 72
+ 73    Parameters
+ 74    ----------
+ 75    X : array-like of shape (n_samples, n_features)
+ 76        Training data, where n_samples is the number of samples
+ 77        and n_features is the number of features.
+ 78    y : array-like of shape (n_samples,)
+ 79        The target variable for supervised learning problems.
+ 80    label_rate : float, optional
+ 81        Proportion between labeled instances and unlabel instances, by default 0.1
+ 82    random_state : int or RandomState, optional
+ 83        Controls the shuffling applied to the data before applying the split. Pass an int for reproducible output across multiple function calls, by default None
+ 84    force_minimum: int, optional
+ 85        Force a minimum of instances of each class, by default None
+ 86    indexes: bool, optional
+ 87        If True, return the indexes of the labeled and unlabeled instances, by default False
+ 88    shuffle: bool, default=True
+ 89        Whether or not to shuffle the data before splitting. If shuffle=False then stratify must be None.
+ 90    stratify: array-like, default=None
+ 91        If not None, data is split in a stratified fashion, using this as the class labels.
+ 92
+ 93    Returns
+ 94    -------
+ 95    X : ndarray
+ 96        The feature set.
+ 97    y : ndarray
+ 98        The label set, -1 for unlabel instance.
+ 99    X_unlabel: ndarray
+100        The feature set for each y mark as unlabel
+101    y_unlabel: ndarray
+102        The true label for each y in the same order.
+103    label: ndarray (optional)
+104        The training set indexes for split mark as labeled.
+105    unlabel: ndarray (optional)
+106        The training set indexes for split mark as unlabeled.
+107    """
+108    assert (label_rate > 0) and (label_rate < 1),\
+109        "Label rate must be in (0, 1)."
+110    assert "test_size" not in kwards and "train_size" not in kwards,\
+111        "Test size and train size are illegal parameters in this method."
+112
+113    indices = np.arange(len(y))
+114
+115    if force_minimum is not None:
+116        try:
+117            selected = __random_select_n_instances(y, force_minimum, random_state)
+118        except ValueError:
+119            raise ValueError("The number of instances of each class is less than force_minimum.")
+120
+121        # Remove selected instances from indices
+122        indices = np.delete(indices, selected, axis=0)    
+123
+124    # Train test split with indexes
+125    label, unlabel = ms.train_test_split(indices, train_size=label_rate,
+126                                         random_state=random_state, **kwards)
+127
+128    if force_minimum is not None:
+129        label = np.concatenate((selected, label))
+130    
+131    # Create the label and unlabel sets
+132    X_label, y_label, X_unlabel, y_unlabel = X[label], y[label],\
+133        X[unlabel], np.array([-1] * len(unlabel))
+134
+135    # Create the artificial dataset
+136    X = np.concatenate((X_label, X_unlabel), axis=0)
+137    y = np.concatenate((y_label, y_unlabel), axis=0)
+138
+139    if indexes:
+140        return X, y, X_unlabel, y_unlabel, label, unlabel
+141
+142    return X, y, X_unlabel, y_unlabel
+143
+144
+145    """    
+146    if force_minimum is not None:
+147        try:
+148            selected = __random_select_n_instances(y, force_minimum, random_state)
+149        except ValueError:
+150            raise ValueError("The number of instances of each class is less than force_minimum.")
+151        X_selected = X[selected]
+152        y_selected = y[selected]
+153
+154        # Remove selected instances from X and y
+155        X = np.delete(X, selected, axis=0)
+156        y = np.delete(y, selected, axis=0)
+157    
+158    X_label, X_unlabel, y_label, true_label = \
+159        ms.train_test_split(X, y,
+160                            train_size=label_rate,
+161                            random_state=random_state, **kwards)
+162    X = np.concatenate((X_label, X_unlabel), axis=0)
+163    y = np.concatenate((y_label, np.array([-1] * len(true_label))), axis=0)
+164
+165    if force_minimum is not None:
+166        X = np.concatenate((X, X_selected), axis=0)
+167        y = np.concatenate((y, y_selected), axis=0)
+168    
+169    if indexes:
+170        return X, y, X_unlabel, true_label, X_label, X_unlabel
+171
+172    return X, y, X_unlabel, true_label
+173    """
+
+ + +

Create an artificial Semi-supervised dataset from a supervised dataset.

+ +
Parameters
+ +
    +
  • X (array-like of shape (n_samples, n_features)): +Training data, where n_samples is the number of samples +and n_features is the number of features.
  • +
  • y (array-like of shape (n_samples,)): +The target variable for supervised learning problems.
  • +
  • label_rate (float, optional): +Proportion between labeled instances and unlabel instances, by default 0.1
  • +
  • random_state (int or RandomState, optional): +Controls the shuffling applied to the data before applying the split. Pass an int for reproducible output across multiple function calls, by default None
  • +
  • force_minimum (int, optional): +Force a minimum of instances of each class, by default None
  • +
  • indexes (bool, optional): +If True, return the indexes of the labeled and unlabeled instances, by default False
  • +
  • shuffle (bool, default=True): +Whether or not to shuffle the data before splitting. If shuffle=False then stratify must be None.
  • +
  • stratify (array-like, default=None): +If not None, data is split in a stratified fashion, using this as the class labels.
  • +
+ +
Returns
+ +
    +
  • X (ndarray): +The feature set.
  • +
  • y (ndarray): +The label set, -1 for unlabel instance.
  • +
  • X_unlabel (ndarray): +The feature set for each y mark as unlabel
  • +
  • y_unlabel (ndarray): +The true label for each y in the same order.
  • +
  • label (ndarray (optional)): +The training set indexes for split mark as labeled.
  • +
  • unlabel (ndarray (optional)): +The training set indexes for split mark as unlabeled.
  • +
+
+ + +
+
+ +
+ + class + StratifiedKFoldSS: + + + +
+ +
 7class StratifiedKFoldSS():
+ 8    """
+ 9    Stratified K-Folds cross-validator for semi-supervised learning.
+10    
+11    Provides label and unlabel indices for each split. Using the `StratifiedKFold` method from `sklearn`.
+12    The `test` set is the labeled set and the `train` set is the unlabeled set.
+13    """
+14
+15
+16    def __init__(self, n_splits=5, shuffle=False, random_state=None):
+17        """
+18        Parameters
+19        ----------
+20        n_splits : int, default=5
+21            Number of folds. Must be at least 2.
+22        shuffle : bool, default=False
+23            Whether to shuffle each class's samples before splitting into batches.
+24        random_state : int or RandomState instance, default=None
+25            When shuffle is True, random_state affects the ordering of the indices.
+26            
+27        """
+28
+29        self.K = ms.StratifiedKFold(n_splits=n_splits, shuffle=shuffle,
+30                                    random_state=random_state)
+31        self.n_splits = n_splits
+32        self.shuffle = shuffle
+33        self.random_state = random_state
+34
+35    def split(self, X, y):
+36        """Generate a artificial dataset based on StratifiedKFold method
+37
+38        Parameters
+39        ----------
+40        X : array-like of shape (n_samples, n_features)
+41            Training data, where n_samples is the number of samples
+42            and n_features is the number of features.
+43        y : array-like of shape (n_samples,)
+44            The target variable for supervised learning problems.
+45
+46        Yields
+47        -------
+48        X : ndarray
+49            The feature set.
+50        y : ndarray
+51            The label set, -1 for unlabel instance.
+52        label : ndarray
+53            The training set indices for split mark as labeled.
+54        unlabel : ndarray
+55            The training set indices for split mark as unlabeled.
+56        """
+57        for train, test in self.K.split(X, y):
+58            # Inverse train and test because train is big dataset
+59            label = test
+60            unlabel = train
+61
+62            X_label, y_label, X_unlabel, y_unlabel = X[label], y[label],\
+63                X[unlabel], np.array([-1] * len(unlabel))
+64            X_ = np.concatenate((X_label, X_unlabel), axis=0)
+65            y_ = np.concatenate((y_label, y_unlabel), axis=0)
+66
+67            yield X_, y_, label, unlabel
+
+ + +

Stratified K-Folds cross-validator for semi-supervised learning.

+ +

Provides label and unlabel indices for each split. Using the StratifiedKFold method from sklearn. +The test set is the labeled set and the train set is the unlabeled set.

+
+ + +
+ +
+ + StratifiedKFoldSS(n_splits=5, shuffle=False, random_state=None) + + + +
+ +
16    def __init__(self, n_splits=5, shuffle=False, random_state=None):
+17        """
+18        Parameters
+19        ----------
+20        n_splits : int, default=5
+21            Number of folds. Must be at least 2.
+22        shuffle : bool, default=False
+23            Whether to shuffle each class's samples before splitting into batches.
+24        random_state : int or RandomState instance, default=None
+25            When shuffle is True, random_state affects the ordering of the indices.
+26            
+27        """
+28
+29        self.K = ms.StratifiedKFold(n_splits=n_splits, shuffle=shuffle,
+30                                    random_state=random_state)
+31        self.n_splits = n_splits
+32        self.shuffle = shuffle
+33        self.random_state = random_state
+
+ + +
Parameters
+ +
    +
  • n_splits (int, default=5): +Number of folds. Must be at least 2.
  • +
  • shuffle (bool, default=False): +Whether to shuffle each class's samples before splitting into batches.
  • +
  • random_state (int or RandomState instance, default=None): +When shuffle is True, random_state affects the ordering of the indices.
  • +
+
+ + +
+
+ +
+ + def + split(self, X, y): + + + +
+ +
35    def split(self, X, y):
+36        """Generate a artificial dataset based on StratifiedKFold method
+37
+38        Parameters
+39        ----------
+40        X : array-like of shape (n_samples, n_features)
+41            Training data, where n_samples is the number of samples
+42            and n_features is the number of features.
+43        y : array-like of shape (n_samples,)
+44            The target variable for supervised learning problems.
+45
+46        Yields
+47        -------
+48        X : ndarray
+49            The feature set.
+50        y : ndarray
+51            The label set, -1 for unlabel instance.
+52        label : ndarray
+53            The training set indices for split mark as labeled.
+54        unlabel : ndarray
+55            The training set indices for split mark as unlabeled.
+56        """
+57        for train, test in self.K.split(X, y):
+58            # Inverse train and test because train is big dataset
+59            label = test
+60            unlabel = train
+61
+62            X_label, y_label, X_unlabel, y_unlabel = X[label], y[label],\
+63                X[unlabel], np.array([-1] * len(unlabel))
+64            X_ = np.concatenate((X_label, X_unlabel), axis=0)
+65            y_ = np.concatenate((y_label, y_unlabel), axis=0)
+66
+67            yield X_, y_, label, unlabel
+
+ + +

Generate a artificial dataset based on StratifiedKFold method

+ +
Parameters
+ +
    +
  • X (array-like of shape (n_samples, n_features)): +Training data, where n_samples is the number of samples +and n_features is the number of features.
  • +
  • y (array-like of shape (n_samples,)): +The target variable for supervised learning problems.
  • +
+ +
Yields
+ +
    +
  • X (ndarray): +The feature set.
  • +
  • y (ndarray): +The label set, -1 for unlabel instance.
  • +
  • label (ndarray): +The training set indices for split mark as labeled.
  • +
  • unlabel (ndarray): +The training set indices for split mark as unlabeled.
  • +
+
+ + +
+
+
+ + \ No newline at end of file diff --git a/docs/sslearn/restricted.html b/docs/sslearn/restricted.html new file mode 100644 index 0000000..e39f346 --- /dev/null +++ b/docs/sslearn/restricted.html @@ -0,0 +1,985 @@ + + + + + + + sslearn.restricted API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.restricted

+ +

Summary of module sslearn.restricted:

+ +

This module contains classes to train a classifier using the restricted set classification approach.

+ +

Classes

+ +

WhoIsWhoClassifier:

+ +
+

Who is Who Classifier

+
+ +

Functions

+ +

conflict_rate:

+ +
+

Compute the conflict rate of a prediction, given a set of restrictions. + combine_predictions: + Combine the predictions of a group of instances to keep the restrictions.

+
+
+ + + + + +
  1"""Summary of module `sslearn.restricted`:
+  2
+  3This module contains classes to train a classifier using the restricted set classification approach.
+  4
+  5## Classes
+  6
+  7[WhoIsWhoClassifier](#WhoIsWhoClassifier):
+  8> Who is Who Classifier
+  9
+ 10## Functions
+ 11
+ 12[conflict_rate](#conflict_rate): 
+ 13> Compute the conflict rate of a prediction, given a set of restrictions.
+ 14[combine_predictions](#combine_predictions): 
+ 15> Combine the predictions of a group of instances to keep the restrictions.
+ 16
+ 17
+ 18"""
+ 19
+ 20import numpy as np
+ 21from sklearn.base import ClassifierMixin, MetaEstimatorMixin, BaseEstimator
+ 22from scipy.optimize import linear_sum_assignment
+ 23import warnings
+ 24import pandas as pd
+ 25
+ 26__all__ = ["conflict_rate", "combine_predictions", "WhoIsWhoClassifier"]
+ 27
+ 28class WhoIsWhoClassifier(BaseEstimator, ClassifierMixin, MetaEstimatorMixin):
+ 29
+ 30    def __init__(self, base_estimator, method="hungarian", conflict_weighted=True):
+ 31        """
+ 32        Who is Who Classifier
+ 33        Kuncheva, L. I., Rodriguez, J. J., & Jackson, A. S. (2017).
+ 34        Restricted set classification: Who is there?. <i>Pattern Recognition</i>, 63, 158-170.
+ 35
+ 36        Parameters
+ 37        ----------
+ 38        base_estimator : ClassifierMixin
+ 39            The base estimator to be used for training.
+ 40        method : str, optional
+ 41            The method to use to assing class, it can be `greedy` to first-look or `hungarian` to use the Hungarian algorithm, by default "hungarian"
+ 42        conflict_weighted : bool, default=True
+ 43            Whether to weighted the confusion rate by the number of instances with the same group.
+ 44        """        
+ 45        allowed_methods = ["greedy", "hungarian"]
+ 46        self.base_estimator = base_estimator
+ 47        self.method = method
+ 48        if method not in allowed_methods:
+ 49            raise ValueError(f"method {self.method} not supported, use one of {allowed_methods}")
+ 50        self.conflict_weighted = conflict_weighted
+ 51
+ 52
+ 53    def fit(self, X, y, instance_group=None, **kwards):
+ 54        """Fit the model according to the given training data.
+ 55        Parameters
+ 56        ----------
+ 57        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 58            The input samples.
+ 59        y : array-like of shape (n_samples,)
+ 60            The target values.
+ 61        instance_group : array-like of shape (n_samples)
+ 62            The group. Two instances with the same label are not allowed to be in the same group. If None, group restriction will not be used in training.
+ 63        Returns
+ 64        -------
+ 65        self : object
+ 66            Returns self.
+ 67        """
+ 68        self.base_estimator = self.base_estimator.fit(X, y, **kwards)
+ 69        self.classes_ = self.base_estimator.classes_
+ 70        if instance_group is not None:
+ 71            self.conflict_in_train = conflict_rate(self.base_estimator.predict(X), instance_group, self.conflict_weighted)
+ 72        else:
+ 73            self.conflict_in_train = None
+ 74        return self
+ 75
+ 76    def conflict_rate(self, X, instance_group):
+ 77        """Calculate the conflict rate of the model.
+ 78        Parameters
+ 79        ----------
+ 80        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 81            The input samples.
+ 82        instance_group : array-like of shape (n_samples)
+ 83            The group. Two instances with the same label are not allowed to be in the same group.
+ 84        Returns
+ 85        -------
+ 86        float
+ 87            The conflict rate.
+ 88        """
+ 89        y_pred = self.base_estimator.predict(X)
+ 90        return conflict_rate(y_pred, instance_group, self.conflict_weighted)
+ 91
+ 92    def predict(self, X, instance_group):
+ 93        """Predict class for X.
+ 94        Parameters
+ 95        ----------
+ 96        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 97            The input samples.
+ 98        **kwards : array-like of shape (n_samples)
+ 99            The group. Two instances with the same label are not allowed to be in the same group.
+100        Returns
+101        -------
+102        array-like of shape (n_samples, n_classes)
+103            The class probabilities of the input samples.
+104        """
+105        
+106        y_prob = self.predict_proba(X)
+107        
+108        y_predicted = combine_predictions(y_prob, instance_group, len(self.classes_), self.method)
+109
+110        return self.classes_.take(y_predicted)
+111
+112
+113    def predict_proba(self, X):
+114        """Predict class probabilities for X.
+115        Parameters
+116        ----------
+117        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+118            The input samples.
+119        Returns
+120        -------
+121        array-like of shape (n_samples, n_classes)
+122            The class probabilities of the input samples.
+123        """
+124        return self.base_estimator.predict_proba(X)
+125
+126
+127def conflict_rate(y_pred, restrictions, weighted=True):
+128    """
+129    Computes the conflict rate of a prediction, given a set of restrictions.
+130    Parameters
+131    ----------
+132    y_pred : array-like of shape (n_samples,)
+133        Predicted target values.
+134    restrictions : array-like of shape (n_samples,)
+135        Restrictions for each sample. If two samples have the same restriction, they cannot have the same y.
+136    weighted : bool, default=True
+137        Whether to weighted the confusion rate by the number of instances with the same group.
+138    Returns
+139    -------
+140    conflict rate : float
+141        The conflict rate.
+142    """
+143    
+144    # Check that y_pred and restrictions have the same length
+145    if len(y_pred) != len(restrictions):
+146        raise ValueError("y_pred and restrictions must have the same length.")
+147    
+148    restricted_df = pd.DataFrame({'y_pred': y_pred, 'restrictions': restrictions})
+149
+150    conflicted = restricted_df.groupby('restrictions').agg({'y_pred': lambda x: np.unique(x, return_counts=True)[1][np.unique(x, return_counts=True)[1]>1].sum()})
+151    if weighted:
+152        return conflicted.sum().y_pred / len(y_pred)
+153    else:
+154        rcount = restricted_df.groupby('restrictions').count()
+155        return (conflicted.y_pred / rcount.y_pred).sum()
+156
+157def combine_predictions(y_probas, instance_group, class_number, method="hungarian"):
+158    y_predicted = []
+159    for group in np.unique(instance_group):
+160           
+161        mask = instance_group == group
+162        probas_matrix = y_probas[mask]
+163        
+164
+165        preds = list(np.argmax(probas_matrix, axis=1))
+166
+167        if len(preds) == len(set(preds)) or probas_matrix.shape[0] > class_number:
+168            y_predicted.extend(preds)
+169            if probas_matrix.shape[0] > class_number:
+170                warnings.warn("That the number of instances in the group is greater than the number of classes.", UserWarning)
+171            continue
+172
+173        if method == "greedy":
+174            y = _greedy(probas_matrix)
+175        elif method == "hungarian":
+176            y = _hungarian(probas_matrix)
+177        
+178        y_predicted.extend(y)
+179    return y_predicted
+180
+181def _greedy(probas_matrix):        
+182
+183    probas = probas_matrix.reshape(probas_matrix.size,)
+184    order = probas.argsort()[::-1]
+185
+186    y_pred_group = [None for i in range(probas_matrix.shape[0])]
+187
+188    instance_to_predict = {i for i in range(probas_matrix.shape[0])}
+189    class_predicted = set()
+190    for item in order:
+191        class_ = item % probas_matrix.shape[0]
+192        instance = item // probas_matrix.shape[0]
+193        if instance in instance_to_predict and class_ not in class_predicted:
+194            y_pred_group[instance] = class_
+195            instance_to_predict.remove(instance)
+196            class_predicted.add(class_)
+197            
+198    return y_pred_group
+199        
+200
+201def _hungarian(probas_matrix):
+202    
+203    costs = np.log(probas_matrix)
+204    costs[costs == -np.inf] = 0  # if proba is 0, then the cost is 0
+205    _, col_ind = linear_sum_assignment(costs, maximize=True)
+206    col_ind = list(col_ind)
+207        
+208    return col_ind
+
+ + +
+
+ +
+ + def + conflict_rate(y_pred, restrictions, weighted=True): + + + +
+ +
128def conflict_rate(y_pred, restrictions, weighted=True):
+129    """
+130    Computes the conflict rate of a prediction, given a set of restrictions.
+131    Parameters
+132    ----------
+133    y_pred : array-like of shape (n_samples,)
+134        Predicted target values.
+135    restrictions : array-like of shape (n_samples,)
+136        Restrictions for each sample. If two samples have the same restriction, they cannot have the same y.
+137    weighted : bool, default=True
+138        Whether to weighted the confusion rate by the number of instances with the same group.
+139    Returns
+140    -------
+141    conflict rate : float
+142        The conflict rate.
+143    """
+144    
+145    # Check that y_pred and restrictions have the same length
+146    if len(y_pred) != len(restrictions):
+147        raise ValueError("y_pred and restrictions must have the same length.")
+148    
+149    restricted_df = pd.DataFrame({'y_pred': y_pred, 'restrictions': restrictions})
+150
+151    conflicted = restricted_df.groupby('restrictions').agg({'y_pred': lambda x: np.unique(x, return_counts=True)[1][np.unique(x, return_counts=True)[1]>1].sum()})
+152    if weighted:
+153        return conflicted.sum().y_pred / len(y_pred)
+154    else:
+155        rcount = restricted_df.groupby('restrictions').count()
+156        return (conflicted.y_pred / rcount.y_pred).sum()
+
+ + +

Computes the conflict rate of a prediction, given a set of restrictions.

+ +
Parameters
+ +
    +
  • y_pred (array-like of shape (n_samples,)): +Predicted target values.
  • +
  • restrictions (array-like of shape (n_samples,)): +Restrictions for each sample. If two samples have the same restriction, they cannot have the same y.
  • +
  • weighted (bool, default=True): +Whether to weighted the confusion rate by the number of instances with the same group.
  • +
+ +
Returns
+ +
    +
  • conflict rate (float): +The conflict rate.
  • +
+
+ + +
+
+ +
+ + class + WhoIsWhoClassifier(sklearn.base.BaseEstimator, sklearn.base.ClassifierMixin, sklearn.base.MetaEstimatorMixin): + + + +
+ +
 29class WhoIsWhoClassifier(BaseEstimator, ClassifierMixin, MetaEstimatorMixin):
+ 30
+ 31    def __init__(self, base_estimator, method="hungarian", conflict_weighted=True):
+ 32        """
+ 33        Who is Who Classifier
+ 34        Kuncheva, L. I., Rodriguez, J. J., & Jackson, A. S. (2017).
+ 35        Restricted set classification: Who is there?. <i>Pattern Recognition</i>, 63, 158-170.
+ 36
+ 37        Parameters
+ 38        ----------
+ 39        base_estimator : ClassifierMixin
+ 40            The base estimator to be used for training.
+ 41        method : str, optional
+ 42            The method to use to assing class, it can be `greedy` to first-look or `hungarian` to use the Hungarian algorithm, by default "hungarian"
+ 43        conflict_weighted : bool, default=True
+ 44            Whether to weighted the confusion rate by the number of instances with the same group.
+ 45        """        
+ 46        allowed_methods = ["greedy", "hungarian"]
+ 47        self.base_estimator = base_estimator
+ 48        self.method = method
+ 49        if method not in allowed_methods:
+ 50            raise ValueError(f"method {self.method} not supported, use one of {allowed_methods}")
+ 51        self.conflict_weighted = conflict_weighted
+ 52
+ 53
+ 54    def fit(self, X, y, instance_group=None, **kwards):
+ 55        """Fit the model according to the given training data.
+ 56        Parameters
+ 57        ----------
+ 58        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 59            The input samples.
+ 60        y : array-like of shape (n_samples,)
+ 61            The target values.
+ 62        instance_group : array-like of shape (n_samples)
+ 63            The group. Two instances with the same label are not allowed to be in the same group. If None, group restriction will not be used in training.
+ 64        Returns
+ 65        -------
+ 66        self : object
+ 67            Returns self.
+ 68        """
+ 69        self.base_estimator = self.base_estimator.fit(X, y, **kwards)
+ 70        self.classes_ = self.base_estimator.classes_
+ 71        if instance_group is not None:
+ 72            self.conflict_in_train = conflict_rate(self.base_estimator.predict(X), instance_group, self.conflict_weighted)
+ 73        else:
+ 74            self.conflict_in_train = None
+ 75        return self
+ 76
+ 77    def conflict_rate(self, X, instance_group):
+ 78        """Calculate the conflict rate of the model.
+ 79        Parameters
+ 80        ----------
+ 81        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 82            The input samples.
+ 83        instance_group : array-like of shape (n_samples)
+ 84            The group. Two instances with the same label are not allowed to be in the same group.
+ 85        Returns
+ 86        -------
+ 87        float
+ 88            The conflict rate.
+ 89        """
+ 90        y_pred = self.base_estimator.predict(X)
+ 91        return conflict_rate(y_pred, instance_group, self.conflict_weighted)
+ 92
+ 93    def predict(self, X, instance_group):
+ 94        """Predict class for X.
+ 95        Parameters
+ 96        ----------
+ 97        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 98            The input samples.
+ 99        **kwards : array-like of shape (n_samples)
+100            The group. Two instances with the same label are not allowed to be in the same group.
+101        Returns
+102        -------
+103        array-like of shape (n_samples, n_classes)
+104            The class probabilities of the input samples.
+105        """
+106        
+107        y_prob = self.predict_proba(X)
+108        
+109        y_predicted = combine_predictions(y_prob, instance_group, len(self.classes_), self.method)
+110
+111        return self.classes_.take(y_predicted)
+112
+113
+114    def predict_proba(self, X):
+115        """Predict class probabilities for X.
+116        Parameters
+117        ----------
+118        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+119            The input samples.
+120        Returns
+121        -------
+122        array-like of shape (n_samples, n_classes)
+123            The class probabilities of the input samples.
+124        """
+125        return self.base_estimator.predict_proba(X)
+
+ + +

Base class for all estimators in scikit-learn.

+ +
Notes
+ +

All estimators should specify all the parameters that can be set +at the class level in their __init__ as explicit keyword +arguments (no *args or **kwargs).

+
+ + +
+ +
+ + WhoIsWhoClassifier(base_estimator, method='hungarian', conflict_weighted=True) + + + +
+ +
31    def __init__(self, base_estimator, method="hungarian", conflict_weighted=True):
+32        """
+33        Who is Who Classifier
+34        Kuncheva, L. I., Rodriguez, J. J., & Jackson, A. S. (2017).
+35        Restricted set classification: Who is there?. <i>Pattern Recognition</i>, 63, 158-170.
+36
+37        Parameters
+38        ----------
+39        base_estimator : ClassifierMixin
+40            The base estimator to be used for training.
+41        method : str, optional
+42            The method to use to assing class, it can be `greedy` to first-look or `hungarian` to use the Hungarian algorithm, by default "hungarian"
+43        conflict_weighted : bool, default=True
+44            Whether to weighted the confusion rate by the number of instances with the same group.
+45        """        
+46        allowed_methods = ["greedy", "hungarian"]
+47        self.base_estimator = base_estimator
+48        self.method = method
+49        if method not in allowed_methods:
+50            raise ValueError(f"method {self.method} not supported, use one of {allowed_methods}")
+51        self.conflict_weighted = conflict_weighted
+
+ + +

Who is Who Classifier +Kuncheva, L. I., Rodriguez, J. J., & Jackson, A. S. (2017). +Restricted set classification: Who is there?. Pattern Recognition, 63, 158-170.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin): +The base estimator to be used for training.
  • +
  • method (str, optional): +The method to use to assing class, it can be greedy to first-look or hungarian to use the Hungarian algorithm, by default "hungarian"
  • +
  • conflict_weighted (bool, default=True): +Whether to weighted the confusion rate by the number of instances with the same group.
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, instance_group=None, **kwards): + + + +
+ +
54    def fit(self, X, y, instance_group=None, **kwards):
+55        """Fit the model according to the given training data.
+56        Parameters
+57        ----------
+58        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+59            The input samples.
+60        y : array-like of shape (n_samples,)
+61            The target values.
+62        instance_group : array-like of shape (n_samples)
+63            The group. Two instances with the same label are not allowed to be in the same group. If None, group restriction will not be used in training.
+64        Returns
+65        -------
+66        self : object
+67            Returns self.
+68        """
+69        self.base_estimator = self.base_estimator.fit(X, y, **kwards)
+70        self.classes_ = self.base_estimator.classes_
+71        if instance_group is not None:
+72            self.conflict_in_train = conflict_rate(self.base_estimator.predict(X), instance_group, self.conflict_weighted)
+73        else:
+74            self.conflict_in_train = None
+75        return self
+
+ + +

Fit the model according to the given training data.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values.
  • +
  • instance_group (array-like of shape (n_samples)): +The group. Two instances with the same label are not allowed to be in the same group. If None, group restriction will not be used in training.
  • +
+ +
Returns
+ +
    +
  • self (object): +Returns self.
  • +
+
+ + +
+
+ +
+ + def + conflict_rate(self, X, instance_group): + + + +
+ +
77    def conflict_rate(self, X, instance_group):
+78        """Calculate the conflict rate of the model.
+79        Parameters
+80        ----------
+81        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+82            The input samples.
+83        instance_group : array-like of shape (n_samples)
+84            The group. Two instances with the same label are not allowed to be in the same group.
+85        Returns
+86        -------
+87        float
+88            The conflict rate.
+89        """
+90        y_pred = self.base_estimator.predict(X)
+91        return conflict_rate(y_pred, instance_group, self.conflict_weighted)
+
+ + +

Calculate the conflict rate of the model.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
  • instance_group (array-like of shape (n_samples)): +The group. Two instances with the same label are not allowed to be in the same group.
  • +
+ +
Returns
+ +
    +
  • float: The conflict rate.
  • +
+
+ + +
+
+ +
+ + def + predict(self, X, instance_group): + + + +
+ +
 93    def predict(self, X, instance_group):
+ 94        """Predict class for X.
+ 95        Parameters
+ 96        ----------
+ 97        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 98            The input samples.
+ 99        **kwards : array-like of shape (n_samples)
+100            The group. Two instances with the same label are not allowed to be in the same group.
+101        Returns
+102        -------
+103        array-like of shape (n_samples, n_classes)
+104            The class probabilities of the input samples.
+105        """
+106        
+107        y_prob = self.predict_proba(X)
+108        
+109        y_predicted = combine_predictions(y_prob, instance_group, len(self.classes_), self.method)
+110
+111        return self.classes_.take(y_predicted)
+
+ + +

Predict class for X.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
  • **kwards (array-like of shape (n_samples)): +The group. Two instances with the same label are not allowed to be in the same group.
  • +
+ +
Returns
+ +
    +
  • array-like of shape (n_samples, n_classes): The class probabilities of the input samples.
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X): + + + +
+ +
114    def predict_proba(self, X):
+115        """Predict class probabilities for X.
+116        Parameters
+117        ----------
+118        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+119            The input samples.
+120        Returns
+121        -------
+122        array-like of shape (n_samples, n_classes)
+123            The class probabilities of the input samples.
+124        """
+125        return self.base_estimator.predict_proba(X)
+
+ + +

Predict class probabilities for X.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • array-like of shape (n_samples, n_classes): The class probabilities of the input samples.
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
sklearn.base.ClassifierMixin
+
score
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/sslearn/subview.html b/docs/sslearn/subview.html new file mode 100644 index 0000000..2a3bd19 --- /dev/null +++ b/docs/sslearn/subview.html @@ -0,0 +1,580 @@ + + + + + + + sslearn.subview API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.subview

+ +

Summary of module sslearn.subview:

+ +

This module contains classes to train a classifier or a regressor selecting a sub-view of the data.

+ +

Classes

+ +

SubViewClassifier:

+ +
+

Train a sub-view classifier. + SubViewRegressor: + Train a sub-view regressor.

+
+
+ + + + + +
 1"""
+ 2Summary of module `sslearn.subview`:
+ 3
+ 4This module contains classes to train a classifier or a regressor selecting a sub-view of the data.
+ 5
+ 6## Classes
+ 7
+ 8[SubViewClassifier](#SubViewClassifier):
+ 9> Train a sub-view classifier.
+10[SubViewRegressor](#SubViewRegressor):
+11> Train a sub-view regressor.
+12
+13
+14"""
+15
+16from ._subview import SubViewClassifier, SubViewRegressor
+17
+18__all__ = ["SubViewClassifier", "SubViewRegressor"]
+
+ + +
+
+ +
+ + class + SubViewClassifier(sslearn.subview._subview.SubView, sklearn.base.ClassifierMixin): + + + +
+ +
154class SubViewClassifier(SubView, ClassifierMixin):
+155
+156    def predict_proba(self, X):
+157        """Predict class probabilities using the base estimator.
+158
+159        Parameters
+160        ----------
+161        X : array-like of shape (n_samples, n_features)
+162            The input samples.
+163
+164        Returns
+165        -------
+166        p : array-like of shape (n_samples, n_classes)
+167            The class probabilities of the input samples.
+168        """        
+169        if self.mode == "regex":
+170            X = self._regex_subview(X)
+171        elif self.mode == "index":
+172            X = self._index_subview(X)
+173        elif self.mode == "include":
+174            X = self._include_subview(X)
+175
+176        return self.base_estimator_.predict_proba(X)
+
+ + +

A classifier that uses a subview of the data.

+ +
Example
+ +
+
from sklearn.model_selection import train_test_split
+from sklearn.tree import DecisionTreeClassifier
+from sslearn.subview import SubViewClassifier
+
+# Mode 'include' will include all columns that contain `string`
+clf = SubViewClassifier(DecisionTreeClassifier(), "sepal", mode="include")
+clf.fit(X, y)
+
+# Mode 'regex' will include all columns that match the regex
+clf = SubViewClassifier(DecisionTreeClassifier(), "sepal.*", mode="regex")
+clf.fit(X, y)
+
+# Mode 'index' will include the columns at the index, useful for numpy arrays
+clf = SubViewClassifier(DecisionTreeClassifier(), [0, 1], mode="index")
+clf.fit(X, y)
+
+
+
+ + +
+ +
+ + def + predict_proba(self, X): + + + +
+ +
156    def predict_proba(self, X):
+157        """Predict class probabilities using the base estimator.
+158
+159        Parameters
+160        ----------
+161        X : array-like of shape (n_samples, n_features)
+162            The input samples.
+163
+164        Returns
+165        -------
+166        p : array-like of shape (n_samples, n_classes)
+167            The class probabilities of the input samples.
+168        """        
+169        if self.mode == "regex":
+170            X = self._regex_subview(X)
+171        elif self.mode == "index":
+172            X = self._index_subview(X)
+173        elif self.mode == "include":
+174            X = self._include_subview(X)
+175
+176        return self.base_estimator_.predict_proba(X)
+
+ + +

Predict class probabilities using the base estimator.

+ +
Parameters
+ +
    +
  • X (array-like of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • p (array-like of shape (n_samples, n_classes)): +The class probabilities of the input samples.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.subview._subview.SubView
+
SubView
+
fit
+
predict
+ +
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
sklearn.base.ClassifierMixin
+
score
+ +
+
+
+
+
+ +
+ + class + SubViewRegressor(sslearn.subview._subview.SubView, sklearn.base.RegressorMixin): + + + +
+ +
178class SubViewRegressor(SubView, RegressorMixin):
+179
+180    def predict(self, X):
+181        """Predict using the base estimator.
+182
+183        Parameters
+184        ----------
+185        X : array-like of shape (n_samples, n_features)
+186            The input samples.
+187
+188        Returns
+189        -------
+190        y : array-like of shape (n_samples,)
+191            The predicted values.
+192        """        
+193        return super().predict(X)
+
+ + +

A classifier that uses a subview of the data.

+ +
Example
+ +
+
from sklearn.model_selection import train_test_split
+from sklearn.tree import DecisionTreeClassifier
+from sslearn.subview import SubViewClassifier
+
+# Mode 'include' will include all columns that contain `string`
+clf = SubViewClassifier(DecisionTreeClassifier(), "sepal", mode="include")
+clf.fit(X, y)
+
+# Mode 'regex' will include all columns that match the regex
+clf = SubViewClassifier(DecisionTreeClassifier(), "sepal.*", mode="regex")
+clf.fit(X, y)
+
+# Mode 'index' will include the columns at the index, useful for numpy arrays
+clf = SubViewClassifier(DecisionTreeClassifier(), [0, 1], mode="index")
+clf.fit(X, y)
+
+
+
+ + +
+ +
+ + def + predict(self, X): + + + +
+ +
180    def predict(self, X):
+181        """Predict using the base estimator.
+182
+183        Parameters
+184        ----------
+185        X : array-like of shape (n_samples, n_features)
+186            The input samples.
+187
+188        Returns
+189        -------
+190        y : array-like of shape (n_samples,)
+191            The predicted values.
+192        """        
+193        return super().predict(X)
+
+ + +

Predict using the base estimator.

+ +
Parameters
+ +
    +
  • X (array-like of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • y (array-like of shape (n_samples,)): +The predicted values.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.subview._subview.SubView
+
SubView
+
fit
+ +
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
sklearn.base.RegressorMixin
+
score
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/sslearn/utils.html b/docs/sslearn/utils.html new file mode 100644 index 0000000..f641167 --- /dev/null +++ b/docs/sslearn/utils.html @@ -0,0 +1,881 @@ + + + + + + + sslearn.utils API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.utils

+ +

Some utility functions

+ +

This module contains utility functions that are used in different parts of the library.

+ +

Functions

+ +

safe_division:

+ +
+

Safely divide two numbers preventing division by zero. + confidence_interval: + Calculate the confidence interval of the predictions. + choice_with_proportion: + Choice the best predictions according to the proportion of each class. + calculate_prior_probability: + Calculate the priori probability of each label. + mode: + Calculate the mode of a list of values. + check_n_jobs: + Check n_jobs parameter according to the scikit-learn convention. + check_classifier: + Check if the classifier is a ClassifierMixin or a list of ClassifierMixin.

+
+
+ + + + + +
  1"""
+  2Some utility functions
+  3
+  4This module contains utility functions that are used in different parts of the library.
+  5
+  6## Functions
+  7
+  8[safe_division](#safe_division):
+  9> Safely divide two numbers preventing division by zero.
+ 10[confidence_interval](#confidence_interval):
+ 11> Calculate the confidence interval of the predictions.
+ 12[choice_with_proportion](#choice_with_proportion): 
+ 13> Choice the best predictions according to the proportion of each class.
+ 14[calculate_prior_probability](#calculate_prior_probability):
+ 15> Calculate the priori probability of each label.
+ 16[mode](#mode):
+ 17> Calculate the mode of a list of values.
+ 18[check_n_jobs](#check_n_jobs):
+ 19> Check `n_jobs` parameter according to the scikit-learn convention.
+ 20[check_classifier](#check_classifier):
+ 21> Check if the classifier is a ClassifierMixin or a list of ClassifierMixin.
+ 22
+ 23"""
+ 24
+ 25import numpy as np
+ 26import os
+ 27import math
+ 28
+ 29import pandas as pd
+ 30
+ 31from statsmodels.stats.proportion import proportion_confint
+ 32from sklearn.tree import DecisionTreeClassifier
+ 33from sklearn.base import ClassifierMixin
+ 34
+ 35__all__ = ["safe_division", "confidence_interval", "choice_with_proportion", "calculate_prior_probability",
+ 36           "mode", "check_n_jobs", "check_classifier"]
+ 37
+ 38
+ 39def safe_division(dividend, divisor, epsilon):
+ 40    """Safely divide two numbers preventing division by zero
+ 41
+ 42    Parameters
+ 43    ----------
+ 44    dividend : numeric
+ 45        Dividend value
+ 46    divisor : numeric
+ 47        Divisor value
+ 48    epsilon : numeric
+ 49        Close to zero value to be used in case of division by zero
+ 50
+ 51    Returns
+ 52    -------
+ 53    result : numeric
+ 54        Result of the division
+ 55    """
+ 56    if divisor == 0:
+ 57        return dividend / epsilon
+ 58    return dividend / divisor
+ 59
+ 60
+ 61def confidence_interval(X, hyp, y, alpha=.95):
+ 62    """Calculate the confidence interval of the predictions
+ 63
+ 64    Parameters
+ 65    ----------
+ 66    X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 67        The input samples.
+ 68    hyp : classifier
+ 69        The classifier to be used for prediction
+ 70    y : array-like of shape (n_samples,)
+ 71        The target values
+ 72    alpha : float, optional
+ 73        confidence (1 - significance), by default .95
+ 74
+ 75    Returns
+ 76    -------
+ 77    li, hi: float
+ 78        lower and upper bound of the confidence interval
+ 79    """
+ 80    data = hyp.predict(X)
+ 81
+ 82    successes = np.count_nonzero(data == y)
+ 83    trials = X.shape[0]
+ 84    li, hi = proportion_confint(successes, trials, alpha=1 - alpha, method="wilson")
+ 85    return li, hi
+ 86
+ 87
+ 88def choice_with_proportion(predictions, class_predicted, proportion, extra=0):
+ 89    """Choice the best predictions according to the proportion of each class.
+ 90
+ 91    Parameters
+ 92    ----------
+ 93    predictions : array-like of shape (n_samples,)
+ 94        array of predictions
+ 95    class_predicted : array-like of shape (n_samples,)
+ 96        array of predicted classes
+ 97    proportion : dict
+ 98        dictionary with the proportion of each class
+ 99    extra : int, optional
+100        number of extra instances to be added, by default 0
+101
+102    Returns
+103    -------
+104    indices: array-like of shape (n_samples,)
+105        array of indices of the best predictions
+106    """
+107    n = len(predictions)
+108    for_each_class = {c: int(n * j) for c, j in proportion.items()}
+109    indices = np.zeros(0)
+110    for c in proportion:
+111        instances = class_predicted == c
+112        to_add = np.argsort(predictions, kind="mergesort")[instances][::-1][0:for_each_class[c] + extra]
+113        indices = np.concatenate((indices, to_add))
+114
+115    return indices.astype(int)
+116
+117
+118def calculate_prior_probability(y):
+119    """Calculate the priori probability of each label
+120
+121    Parameters
+122    ----------
+123    y : array-like of shape (n_samples,)
+124        array of labels
+125
+126    Returns
+127    -------
+128    class_probability: dict
+129        dictionary with priori probability (value) of each label (key)
+130    """
+131    unique, counts = np.unique(y, return_counts=True)
+132    u_c = dict(zip(unique, counts))
+133    instances = len(y)
+134    for u in u_c:
+135        u_c[u] = float(u_c[u] / instances)
+136    return u_c
+137
+138
+139def is_int(x):
+140    """Check if x is of integer type, but not boolean"""
+141    # From sktime: BSD 3-Clause
+142    # boolean are subclasses of integers in Python, so explicitly exclude them
+143    return isinstance(x, (int, np.integer)) and not isinstance(x, bool)
+144
+145
+146def mode(y):
+147    """Calculate the mode of a list of values
+148
+149    Parameters
+150    ----------
+151    y : array-like of shape (n_samples, n_estimators)
+152        array of values
+153
+154    Returns
+155    -------
+156    mode: array-like of shape (n_samples,)
+157        array of mode of each label
+158    count: array-like of shape (n_samples,)
+159        array of count of the mode of each label
+160    """
+161    array = pd.DataFrame(np.array(y))
+162    mode = array.mode(axis=0).loc[0, :]
+163    count = array.apply(lambda x: x.value_counts().max())
+164    return mode.values, count.values
+165
+166
+167def check_n_jobs(n_jobs):
+168    """Check `n_jobs` parameter according to the scikit-learn convention.
+169    From sktime: BSD 3-Clause
+170    Parameters
+171    ----------
+172    n_jobs : int, positive or -1
+173        The number of jobs for parallelization.
+174
+175    Returns
+176    -------
+177    n_jobs : int
+178        Checked number of jobs.
+179    """
+180    # scikit-learn convention
+181    # https://scikit-learn.org/stable/glossary.html#term-n-jobs
+182    if n_jobs is None:
+183        return 1
+184    elif not is_int(n_jobs):
+185        raise ValueError(f"`n_jobs` must be None or an integer, but found: {n_jobs}")
+186    elif n_jobs < 0:
+187        return os.cpu_count()
+188    else:
+189        return n_jobs
+190
+191
+192def calc_number_per_class(y_label):
+193    classes = np.unique(y_label)
+194    proportion = calculate_prior_probability(y_label)
+195    factor = 1/min(proportion.values())
+196    number_per_class = dict()
+197    for c in classes:
+198        number_per_class[c] = math.ceil(proportion[c] * factor)
+199
+200    return number_per_class
+201
+202
+203def check_classifier(base_classifier, can_be_list=True, collection_size=None):
+204
+205    if base_classifier is None:
+206        return DecisionTreeClassifier()
+207    elif can_be_list and (type(base_classifier) == list or type(base_classifier) == tuple):
+208        if collection_size is not None:
+209            if len(base_classifier) != collection_size:
+210                raise AttributeError(f"base_classifier is a list of classifiers, but its length ({len(base_classifier)}) is different from expected ({collection_size})")
+211        for i, bc in enumerate(base_classifier):
+212            base_classifier[i] = check_classifier(bc, False)
+213        return list(base_classifier)  # Transform to list
+214    else:
+215        if not isinstance(base_classifier, ClassifierMixin):
+216            raise AttributeError(f"base_classifier must be a ClassifierMixin, but found {type(base_classifier)}")
+217        return base_classifier
+
+ + +
+
+ +
+ + def + safe_division(dividend, divisor, epsilon): + + + +
+ +
40def safe_division(dividend, divisor, epsilon):
+41    """Safely divide two numbers preventing division by zero
+42
+43    Parameters
+44    ----------
+45    dividend : numeric
+46        Dividend value
+47    divisor : numeric
+48        Divisor value
+49    epsilon : numeric
+50        Close to zero value to be used in case of division by zero
+51
+52    Returns
+53    -------
+54    result : numeric
+55        Result of the division
+56    """
+57    if divisor == 0:
+58        return dividend / epsilon
+59    return dividend / divisor
+
+ + +

Safely divide two numbers preventing division by zero

+ +
Parameters
+ +
    +
  • dividend (numeric): +Dividend value
  • +
  • divisor (numeric): +Divisor value
  • +
  • epsilon (numeric): +Close to zero value to be used in case of division by zero
  • +
+ +
Returns
+ +
    +
  • result (numeric): +Result of the division
  • +
+
+ + +
+
+ +
+ + def + confidence_interval(X, hyp, y, alpha=0.95): + + + +
+ +
62def confidence_interval(X, hyp, y, alpha=.95):
+63    """Calculate the confidence interval of the predictions
+64
+65    Parameters
+66    ----------
+67    X : {array-like, sparse matrix} of shape (n_samples, n_features)
+68        The input samples.
+69    hyp : classifier
+70        The classifier to be used for prediction
+71    y : array-like of shape (n_samples,)
+72        The target values
+73    alpha : float, optional
+74        confidence (1 - significance), by default .95
+75
+76    Returns
+77    -------
+78    li, hi: float
+79        lower and upper bound of the confidence interval
+80    """
+81    data = hyp.predict(X)
+82
+83    successes = np.count_nonzero(data == y)
+84    trials = X.shape[0]
+85    li, hi = proportion_confint(successes, trials, alpha=1 - alpha, method="wilson")
+86    return li, hi
+
+ + +

Calculate the confidence interval of the predictions

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
  • hyp (classifier): +The classifier to be used for prediction
  • +
  • y (array-like of shape (n_samples,)): +The target values
  • +
  • alpha (float, optional): +confidence (1 - significance), by default .95
  • +
+ +
Returns
+ +
    +
  • li, hi (float): +lower and upper bound of the confidence interval
  • +
+
+ + +
+
+ +
+ + def + choice_with_proportion(predictions, class_predicted, proportion, extra=0): + + + +
+ +
 89def choice_with_proportion(predictions, class_predicted, proportion, extra=0):
+ 90    """Choice the best predictions according to the proportion of each class.
+ 91
+ 92    Parameters
+ 93    ----------
+ 94    predictions : array-like of shape (n_samples,)
+ 95        array of predictions
+ 96    class_predicted : array-like of shape (n_samples,)
+ 97        array of predicted classes
+ 98    proportion : dict
+ 99        dictionary with the proportion of each class
+100    extra : int, optional
+101        number of extra instances to be added, by default 0
+102
+103    Returns
+104    -------
+105    indices: array-like of shape (n_samples,)
+106        array of indices of the best predictions
+107    """
+108    n = len(predictions)
+109    for_each_class = {c: int(n * j) for c, j in proportion.items()}
+110    indices = np.zeros(0)
+111    for c in proportion:
+112        instances = class_predicted == c
+113        to_add = np.argsort(predictions, kind="mergesort")[instances][::-1][0:for_each_class[c] + extra]
+114        indices = np.concatenate((indices, to_add))
+115
+116    return indices.astype(int)
+
+ + +

Choice the best predictions according to the proportion of each class.

+ +
Parameters
+ +
    +
  • predictions (array-like of shape (n_samples,)): +array of predictions
  • +
  • class_predicted (array-like of shape (n_samples,)): +array of predicted classes
  • +
  • proportion (dict): +dictionary with the proportion of each class
  • +
  • extra (int, optional): +number of extra instances to be added, by default 0
  • +
+ +
Returns
+ +
    +
  • indices (array-like of shape (n_samples,)): +array of indices of the best predictions
  • +
+
+ + +
+
+ +
+ + def + calculate_prior_probability(y): + + + +
+ +
119def calculate_prior_probability(y):
+120    """Calculate the priori probability of each label
+121
+122    Parameters
+123    ----------
+124    y : array-like of shape (n_samples,)
+125        array of labels
+126
+127    Returns
+128    -------
+129    class_probability: dict
+130        dictionary with priori probability (value) of each label (key)
+131    """
+132    unique, counts = np.unique(y, return_counts=True)
+133    u_c = dict(zip(unique, counts))
+134    instances = len(y)
+135    for u in u_c:
+136        u_c[u] = float(u_c[u] / instances)
+137    return u_c
+
+ + +

Calculate the priori probability of each label

+ +
Parameters
+ +
    +
  • y (array-like of shape (n_samples,)): +array of labels
  • +
+ +
Returns
+ +
    +
  • class_probability (dict): +dictionary with priori probability (value) of each label (key)
  • +
+
+ + +
+
+ +
+ + def + mode(y): + + + +
+ +
147def mode(y):
+148    """Calculate the mode of a list of values
+149
+150    Parameters
+151    ----------
+152    y : array-like of shape (n_samples, n_estimators)
+153        array of values
+154
+155    Returns
+156    -------
+157    mode: array-like of shape (n_samples,)
+158        array of mode of each label
+159    count: array-like of shape (n_samples,)
+160        array of count of the mode of each label
+161    """
+162    array = pd.DataFrame(np.array(y))
+163    mode = array.mode(axis=0).loc[0, :]
+164    count = array.apply(lambda x: x.value_counts().max())
+165    return mode.values, count.values
+
+ + +

Calculate the mode of a list of values

+ +
Parameters
+ +
    +
  • y (array-like of shape (n_samples, n_estimators)): +array of values
  • +
+ +
Returns
+ +
    +
  • mode (array-like of shape (n_samples,)): +array of mode of each label
  • +
  • count (array-like of shape (n_samples,)): +array of count of the mode of each label
  • +
+
+ + +
+
+ +
+ + def + check_n_jobs(n_jobs): + + + +
+ +
168def check_n_jobs(n_jobs):
+169    """Check `n_jobs` parameter according to the scikit-learn convention.
+170    From sktime: BSD 3-Clause
+171    Parameters
+172    ----------
+173    n_jobs : int, positive or -1
+174        The number of jobs for parallelization.
+175
+176    Returns
+177    -------
+178    n_jobs : int
+179        Checked number of jobs.
+180    """
+181    # scikit-learn convention
+182    # https://scikit-learn.org/stable/glossary.html#term-n-jobs
+183    if n_jobs is None:
+184        return 1
+185    elif not is_int(n_jobs):
+186        raise ValueError(f"`n_jobs` must be None or an integer, but found: {n_jobs}")
+187    elif n_jobs < 0:
+188        return os.cpu_count()
+189    else:
+190        return n_jobs
+
+ + +

Check n_jobs parameter according to the scikit-learn convention. +From sktime: BSD 3-Clause

+ +
Parameters
+ +
    +
  • n_jobs (int, positive or -1): +The number of jobs for parallelization.
  • +
+ +
Returns
+ +
    +
  • n_jobs (int): +Checked number of jobs.
  • +
+
+ + +
+
+ + \ No newline at end of file diff --git a/docs/sslearn/wrapper.html b/docs/sslearn/wrapper.html new file mode 100644 index 0000000..bb2c4cf --- /dev/null +++ b/docs/sslearn/wrapper.html @@ -0,0 +1,6054 @@ + + + + + + + sslearn.wrapper API documentation + + + + + + + + + + + + + + +
+
+

+sslearn.wrapper

+ +

Summary of module sslearn.wrapper:

+ +

This module contains classes to train semi-supervised learning algorithms using a wrapper approach.

+ +

Self-Training Algorithms

+ +
    +
  • SelfTraining: +Self-training algorithm.
  • +
  • Setred: +Self-training with redundancy reduction.
  • +
+ +

Co-Training Algorithms

+ + +
+ + + + + +
 1"""
+ 2Summary of module `sslearn.wrapper`:
+ 3
+ 4This module contains classes to train semi-supervised learning algorithms using a wrapper approach.
+ 5
+ 6## Self-Training Algorithms
+ 7
+ 8* [SelfTraining](#SelfTraining): 
+ 9Self-training algorithm.
+10* [Setred](#Setred):
+11Self-training with redundancy reduction.
+12
+13## Co-Training Algorithms
+14
+15* [CoTraining](#CoTraining):
+16Co-training
+17* [CoTrainingByCommittee](#CoTrainingByCommittee):
+18Co-training by committee
+19* [DemocraticCoLearning](#DemocraticCoLearning):
+20Democratic co-learning
+21* [Rasco](#Rasco):
+22Random subspace co-training
+23* [RelRasco](#RelRasco):
+24Relevant random subspace co-training
+25* [CoForest](#CoForest):
+26Co-Forest
+27* [TriTraining](#TriTraining):
+28Tri-training
+29* [DeTriTraining](#DeTriTraining):
+30Data Editing Tri-training
+31
+32"""
+33
+34from ._co import (CoForest, CoTraining, CoTrainingByCommittee,
+35                  DemocraticCoLearning, Rasco, RelRasco)
+36from ._self import SelfTraining, Setred
+37from ._tritraining import DeTriTraining, TriTraining
+38
+39__all__ = ["SelfTraining", "Setred", "CoTraining", "CoTrainingByCommittee",
+40           "DemocraticCoLearning", "Rasco", "RelRasco", "CoForest",
+41           "TriTraining", "DeTriTraining"]
+
+ + +
+
+ +
+ + class + SelfTraining(sklearn.semi_supervised._self_training.SelfTrainingClassifier): + + + +
+ +
 16class SelfTraining(SelfTrainingClassifier):
+ 17    """
+ 18    **Self Training Classifier with data loader compatible.**
+ 19    ----------------------------
+ 20
+ 21    Is the same `SelfTrainingClassifier` from sklearn but with `sslearn` data loader compatible.
+ 22    For more information, see the [sklearn documentation](https://scikit-learn.org/stable/modules/generated/sklearn.semi_supervised.SelfTrainingClassifier.html).
+ 23
+ 24    **Example**
+ 25    -----------
+ 26    ```python
+ 27    from sklearn.datasets import load_iris
+ 28    from sslearn.model_selection import artificial_ssl_dataset
+ 29    from sslearn.wrapper import SelfTraining
+ 30
+ 31    X, y = load_iris(return_X_y=True)
+ 32    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+ 33
+ 34    clf = SelfTraining()
+ 35    clf.fit(X, y)
+ 36    clf.score(X_unlabel, y_unlabel)
+ 37    ```
+ 38
+ 39    **References**
+ 40    --------------
+ 41    David Yarowsky. (1995). <br>
+ 42    Unsupervised word sense disambiguation rivaling supervised methods.<br>
+ 43    In <i>Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL '95).</i><br>
+ 44    Association for Computational Linguistics,<br>
+ 45    Stroudsburg, PA, USA, 189-196. <br>
+ 46    [10.3115/981658.981684](https://doi.org/10.3115/981658.981684)
+ 47    """
+ 48
+ 49    _estimator_type = "classifier"
+ 50
+ 51    def __init__(self,
+ 52                 base_estimator,
+ 53                 threshold=0.75,
+ 54                 criterion='threshold',
+ 55                 k_best=10,
+ 56                 max_iter=10,
+ 57                 verbose=False):
+ 58        """Self-training. Adaptation of SelfTrainingClassifier from sklearn with data loader compatible.
+ 59
+ 60        This class allows a given supervised classifier to function as a
+ 61        semi-supervised classifier, allowing it to learn from unlabeled data. It
+ 62        does this by iteratively predicting pseudo-labels for the unlabeled data
+ 63        and adding them to the training set.
+ 64
+ 65        The classifier will continue iterating until either max_iter is reached, or
+ 66        no pseudo-labels were added to the training set in the previous iteration.
+ 67
+ 68        Parameters
+ 69        ----------
+ 70        base_estimator : estimator object
+ 71            An estimator object implementing ``fit`` and ``predict_proba``.
+ 72            Invoking the ``fit`` method will fit a clone of the passed estimator,
+ 73            which will be stored in the ``base_estimator_`` attribute.
+ 74
+ 75        threshold : float, default=0.75
+ 76            The decision threshold for use with `criterion='threshold'`.
+ 77            Should be in [0, 1). When using the 'threshold' criterion, a
+ 78            :ref:`well calibrated classifier <calibration>` should be used.
+ 79
+ 80        criterion : {'threshold', 'k_best'}, default='threshold'
+ 81            The selection criterion used to select which labels to add to the
+ 82            training set. If 'threshold', pseudo-labels with prediction
+ 83            probabilities above `threshold` are added to the dataset. If 'k_best',
+ 84            the `k_best` pseudo-labels with highest prediction probabilities are
+ 85            added to the dataset. When using the 'threshold' criterion, a
+ 86            :ref:`well calibrated classifier <calibration>` should be used.
+ 87
+ 88        k_best : int, default=10
+ 89            The amount of samples to add in each iteration. Only used when
+ 90            `criterion` is k_best'.
+ 91
+ 92        max_iter : int or None, default=10
+ 93            Maximum number of iterations allowed. Should be greater than or equal
+ 94            to 0. If it is ``None``, the classifier will continue to predict labels
+ 95            until no new pseudo-labels are added, or all unlabeled samples have
+ 96            been labeled.
+ 97
+ 98        verbose : bool, default=False
+ 99            Enable verbose output.
+100        """
+101        super().__init__(base_estimator, threshold, criterion, k_best, max_iter, verbose)
+102
+103    def fit(self, X, y):
+104        """
+105        Fits this ``SelfTrainingClassifier`` to a dataset.
+106
+107        Parameters
+108        ----------
+109        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+110            Array representing the data.
+111
+112        y : {array-like, sparse matrix} of shape (n_samples,)
+113            Array representing the labels. Unlabeled samples should have the
+114            label -1.
+115
+116        Returns
+117        -------
+118        self : SelfTrainingClassifier
+119            Returns an instance of self.
+120        """
+121        y_adapted = y.copy()
+122        if y_adapted.dtype.type is str or y_adapted.dtype.type is np.str_:
+123            y_adapted = y_adapted.astype(object)
+124            y_adapted[y_adapted == '-1'] = -1
+125        return super().fit(X, y_adapted)
+
+ + +

Self Training Classifier with data loader compatible.

+ +

Is the same SelfTrainingClassifier from sklearn but with sslearn data loader compatible. +For more information, see the sklearn documentation.

+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sslearn.model_selection import artificial_ssl_dataset
+from sslearn.wrapper import SelfTraining
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+
+clf = SelfTraining()
+clf.fit(X, y)
+clf.score(X_unlabel, y_unlabel)
+
+
+ +

References

+ +

David Yarowsky. (1995).
+Unsupervised word sense disambiguation rivaling supervised methods.
+In Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL '95).
+Association for Computational Linguistics,
+Stroudsburg, PA, USA, 189-196.
+10.3115/981658.981684

+
+ + +
+ +
+ + SelfTraining( base_estimator, threshold=0.75, criterion='threshold', k_best=10, max_iter=10, verbose=False) + + + +
+ +
 51    def __init__(self,
+ 52                 base_estimator,
+ 53                 threshold=0.75,
+ 54                 criterion='threshold',
+ 55                 k_best=10,
+ 56                 max_iter=10,
+ 57                 verbose=False):
+ 58        """Self-training. Adaptation of SelfTrainingClassifier from sklearn with data loader compatible.
+ 59
+ 60        This class allows a given supervised classifier to function as a
+ 61        semi-supervised classifier, allowing it to learn from unlabeled data. It
+ 62        does this by iteratively predicting pseudo-labels for the unlabeled data
+ 63        and adding them to the training set.
+ 64
+ 65        The classifier will continue iterating until either max_iter is reached, or
+ 66        no pseudo-labels were added to the training set in the previous iteration.
+ 67
+ 68        Parameters
+ 69        ----------
+ 70        base_estimator : estimator object
+ 71            An estimator object implementing ``fit`` and ``predict_proba``.
+ 72            Invoking the ``fit`` method will fit a clone of the passed estimator,
+ 73            which will be stored in the ``base_estimator_`` attribute.
+ 74
+ 75        threshold : float, default=0.75
+ 76            The decision threshold for use with `criterion='threshold'`.
+ 77            Should be in [0, 1). When using the 'threshold' criterion, a
+ 78            :ref:`well calibrated classifier <calibration>` should be used.
+ 79
+ 80        criterion : {'threshold', 'k_best'}, default='threshold'
+ 81            The selection criterion used to select which labels to add to the
+ 82            training set. If 'threshold', pseudo-labels with prediction
+ 83            probabilities above `threshold` are added to the dataset. If 'k_best',
+ 84            the `k_best` pseudo-labels with highest prediction probabilities are
+ 85            added to the dataset. When using the 'threshold' criterion, a
+ 86            :ref:`well calibrated classifier <calibration>` should be used.
+ 87
+ 88        k_best : int, default=10
+ 89            The amount of samples to add in each iteration. Only used when
+ 90            `criterion` is k_best'.
+ 91
+ 92        max_iter : int or None, default=10
+ 93            Maximum number of iterations allowed. Should be greater than or equal
+ 94            to 0. If it is ``None``, the classifier will continue to predict labels
+ 95            until no new pseudo-labels are added, or all unlabeled samples have
+ 96            been labeled.
+ 97
+ 98        verbose : bool, default=False
+ 99            Enable verbose output.
+100        """
+101        super().__init__(base_estimator, threshold, criterion, k_best, max_iter, verbose)
+
+ + +

Self-training. Adaptation of SelfTrainingClassifier from sklearn with data loader compatible.

+ +

This class allows a given supervised classifier to function as a +semi-supervised classifier, allowing it to learn from unlabeled data. It +does this by iteratively predicting pseudo-labels for the unlabeled data +and adding them to the training set.

+ +

The classifier will continue iterating until either max_iter is reached, or +no pseudo-labels were added to the training set in the previous iteration.

+ +
Parameters
+ +
    +
  • base_estimator (estimator object): +An estimator object implementing fit and predict_proba. +Invoking the fit method will fit a clone of the passed estimator, +which will be stored in the base_estimator_ attribute.
  • +
  • threshold (float, default=0.75): +The decision threshold for use with criterion='threshold'. +Should be in [0, 1). When using the 'threshold' criterion, a +:ref:well calibrated classifier <calibration> should be used.
  • +
  • criterion ({'threshold', 'k_best'}, default='threshold'): +The selection criterion used to select which labels to add to the +training set. If 'threshold', pseudo-labels with prediction +probabilities above threshold are added to the dataset. If 'k_best', +the k_best pseudo-labels with highest prediction probabilities are +added to the dataset. When using the 'threshold' criterion, a +:ref:well calibrated classifier <calibration> should be used.
  • +
  • k_best (int, default=10): +The amount of samples to add in each iteration. Only used when +criterion is k_best'.
  • +
  • max_iter (int or None, default=10): +Maximum number of iterations allowed. Should be greater than or equal +to 0. If it is None, the classifier will continue to predict labels +until no new pseudo-labels are added, or all unlabeled samples have +been labeled.
  • +
  • verbose (bool, default=False): +Enable verbose output.
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y): + + + +
+ +
103    def fit(self, X, y):
+104        """
+105        Fits this ``SelfTrainingClassifier`` to a dataset.
+106
+107        Parameters
+108        ----------
+109        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+110            Array representing the data.
+111
+112        y : {array-like, sparse matrix} of shape (n_samples,)
+113            Array representing the labels. Unlabeled samples should have the
+114            label -1.
+115
+116        Returns
+117        -------
+118        self : SelfTrainingClassifier
+119            Returns an instance of self.
+120        """
+121        y_adapted = y.copy()
+122        if y_adapted.dtype.type is str or y_adapted.dtype.type is np.str_:
+123            y_adapted = y_adapted.astype(object)
+124            y_adapted[y_adapted == '-1'] = -1
+125        return super().fit(X, y_adapted)
+
+ + +

Fits this SelfTrainingClassifier to a dataset.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Array representing the data.
  • +
  • y ({array-like, sparse matrix} of shape (n_samples,)): +Array representing the labels. Unlabeled samples should have the +label -1.
  • +
+ +
Returns
+ +
    +
  • self (SelfTrainingClassifier): +Returns an instance of self.
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.semi_supervised._self_training.SelfTrainingClassifier
+
predict
+
predict_proba
+
decision_function
+
predict_log_proba
+
score
+ +
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + Setred(sklearn.base.ClassifierMixin, sklearn.base.BaseEstimator): + + + +
+ +
128class Setred(ClassifierMixin, BaseEstimator):
+129    """
+130    **Self-training with Editing.**
+131    ----------------------------
+132
+133    Create a SETRED classifier. It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set.
+134    The main process are:
+135    1. Train a classifier with the labeled data.
+136    2. Create a pool of unlabeled data and select the most confident predictions.
+137    3. Repeat until the maximum number of iterations is reached:
+138        a. Select the most confident predictions from the unlabeled data.
+139        b. Calculate the neighborhood graph of the labeled data and the selected instances from the unlabeled data.
+140        c. Calculate the significance level of the selected instances.
+141        d. Reject the instances that are not significant according their position in the neighborhood graph.
+142        e. Add the selected instances to the labeled data and retrains the classifier.
+143        f. Add new instances to the pool of unlabeled data.
+144    4. Return the classifier trained with the labeled data.
+145
+146    **Example**
+147    -----------
+148    ```python
+149    from sklearn.datasets import load_iris
+150    from sslearn.model_selection import artificial_ssl_dataset
+151    from sslearn.wrapper import Setred
+152
+153    X, y = load_iris(return_X_y=True)
+154    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+155
+156    clf = Setred()
+157    clf.fit(X, y)
+158    clf.score(X_unlabel, y_unlabel)
+159    ```
+160
+161    **References**
+162    ----------
+163    Li, Ming, and Zhi-Hua Zhou. (2005)<br>
+164    SETRED: Self-training with editing,<br>
+165    in <i>Advances in Knowledge Discovery and Data Mining.</i> <br>
+166    Pacific-Asia Conference on Knowledge Discovery and Data Mining <br>
+167    LNAI 3518, Springer, Berlin, Heidelberg, <br>
+168    [10.1007/11430919_71](https://doi.org/10.1007/11430919_71)
+169
+170    """
+171
+172    def __init__(
+173        self,
+174        base_estimator=KNeighborsClassifier(n_neighbors=3),
+175        max_iterations=40,
+176        distance="euclidean",
+177        poolsize=0.25,
+178        rejection_threshold=0.05,
+179        graph_neighbors=1,
+180        random_state=None,
+181        n_jobs=None,
+182    ):
+183        """
+184        Create a SETRED classifier.
+185        It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set.
+186        
+187        Parameters
+188        ----------
+189        base_estimator : ClassifierMixin, optional
+190            An estimator object implementing fit and predict_proba,, by default DecisionTreeClassifier(), by default KNeighborsClassifier(n_neighbors=3)
+191        max_iterations : int, optional
+192            Maximum number of iterations allowed. Should be greater than or equal to 0., by default 40
+193        distance : str, optional
+194            The distance metric to use for the graph.
+195            The default metric is euclidean, and with p=2 is equivalent to the standard Euclidean metric.
+196            For a list of available metrics, see the documentation of DistanceMetric and the metrics listed in sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS.
+197            Note that the `cosine` metric uses cosine_distances., by default `euclidean`
+198        poolsize : float, optional
+199            Max number of unlabel instances candidates to pseudolabel, by default 0.25
+200        rejection_threshold : float, optional
+201            significance level, by default 0.1
+202        graph_neighbors : int, optional
+203            Number of neighbors for each sample., by default 1
+204        random_state : int, RandomState instance, optional
+205            controls the randomness of the estimator, by default None
+206        n_jobs : int, optional
+207            The number of parallel jobs to run for neighbors search. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors, by default None
+208        """
+209        self.base_estimator = check_classifier(base_estimator, can_be_list=False)
+210        self.max_iterations = max_iterations
+211        self.poolsize = poolsize
+212        self.distance = distance
+213        self.rejection_threshold = rejection_threshold
+214        self.graph_neighbors = graph_neighbors
+215        self.random_state = random_state
+216        self.n_jobs = n_jobs
+217
+218    def __create_neighborhood(self, X):
+219        # kneighbors_graph(X, 1, metric=self.distance, n_jobs=self.n_jobs).toarray()
+220        return kneighbors_graph(
+221            X, self.graph_neighbors, metric=self.distance, n_jobs=self.n_jobs, mode="distance"
+222        ).toarray()
+223
+224    def fit(self, X, y, **kwars):
+225        """Build a Setred classifier from the training set (X, y).
+226
+227        Parameters
+228        ----------
+229        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+230            The training input samples.
+231        y : array-like of shape (n_samples,)
+232            The target values (class labels), -1 if unlabeled.
+233
+234        Returns
+235        -------
+236        self: Setred
+237            Fitted estimator.
+238        """        
+239        random_state = check_random_state(self.random_state)
+240
+241        X_label, y_label, X_unlabel = get_dataset(X, y)
+242
+243        is_df = isinstance(X_label, pd.DataFrame)
+244
+245        self.classes_ = np.unique(y_label)
+246
+247        each_iteration_candidates = X_label.shape[0]
+248
+249        pool = int(len(X_unlabel) * self.poolsize)
+250        self._base_estimator = skclone(self.base_estimator)
+251
+252        self._base_estimator.fit(X_label, y_label, **kwars)
+253
+254        y_probabilities = calculate_prior_probability(
+255            y_label
+256        )  # Should probabilities change every iteration or may it keep with the first L?
+257
+258        sort_idx = np.argsort(list(y_probabilities.keys()))
+259
+260        if X_unlabel.shape[0] == 0:
+261            return self
+262
+263        for _ in range(self.max_iterations):
+264            U_ = resample(
+265                X_unlabel, replace=False, n_samples=pool, random_state=random_state
+266            )
+267
+268            if is_df:
+269                U_ = pd.DataFrame(U_, columns=X_label.columns)
+270
+271            raw_predictions = self._base_estimator.predict_proba(U_)
+272            predictions = np.max(raw_predictions, axis=1)
+273            class_predicted = np.argmax(raw_predictions, axis=1)
+274            # Unless a better understanding is given, only the size of L will be used as maximal size of the candidate set.
+275            indexes = predictions.argsort()[-each_iteration_candidates:]
+276
+277            if is_df:
+278                L_ = U_.iloc[indexes]
+279            else:
+280                L_ = U_[indexes]
+281            y_ = np.array(
+282                list(
+283                    map(
+284                        lambda x: self._base_estimator.classes_[x],
+285                        class_predicted[indexes],
+286                    )
+287                )
+288            )
+289
+290            if is_df:
+291                pre_L = pd.concat([X_label, L_])
+292            else:
+293                pre_L = np.concatenate((X_label, L_), axis=0)
+294
+295            weights = self.__create_neighborhood(pre_L)
+296            #  Keep only weights for L_
+297            weights = weights[-L_.shape[0]:, :]
+298
+299            idx = np.searchsorted(np.array(list(y_probabilities.keys())), y_, sorter=sort_idx)
+300            p_wrong = 1 - np.asarray(np.array(list(y_probabilities.values())))[sort_idx][idx]
+301            #  Must weights be the inverse of distance?
+302            weights = np.divide(1, weights, out=np.zeros_like(weights), where=weights != 0)
+303
+304            weights_sum = weights.sum(axis=1)
+305            weights_square_sum = (weights ** 2).sum(axis=1)
+306
+307            iid_random = random_state.binomial(
+308                1, np.repeat(p_wrong, weights.shape[1]).reshape(weights.shape)
+309            )
+310            ji = (iid_random * weights).sum(axis=1)
+311
+312            mu_h0 = p_wrong * weights_sum
+313            sigma_h0 = np.sqrt((1 - p_wrong) * p_wrong * weights_square_sum)
+314            
+315            z_score = np.divide((ji - mu_h0), sigma_h0, out=np.zeros_like(sigma_h0), where=sigma_h0 != 0)
+316            # z_score = (ji - mu_h0) / sigma_h0
+317            
+318            oi = norm.sf(abs(z_score), mu_h0, sigma_h0)
+319            to_add = (oi < self.rejection_threshold) & (z_score < mu_h0)
+320
+321            if is_df:
+322                L_filtered = L_.iloc[to_add, :]
+323            else:
+324                L_filtered = L_[to_add, :]
+325            y_filtered = y_[to_add]
+326            
+327            if is_df:
+328                X_label = pd.concat([X_label, L_filtered])
+329            else:
+330                X_label = np.concatenate((X_label, L_filtered), axis=0)
+331            y_label = np.concatenate((y_label, y_filtered), axis=0)
+332
+333            #  Remove the instances from the unlabeled set.
+334            to_delete = indexes[to_add]
+335            if is_df:
+336                X_unlabel = X_unlabel.drop(index=X_unlabel.index[to_delete])
+337            else:
+338                X_unlabel = np.delete(X_unlabel, to_delete, axis=0)
+339
+340        return self
+341
+342    def predict(self, X, **kwards):
+343        """Predict class value for X.
+344        For a classification model, the predicted class for each sample in X is returned.
+345        Parameters
+346        ----------
+347        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+348            The input samples.
+349        Returns
+350        -------
+351        y : array-like of shape (n_samples,)
+352            The predicted classes
+353        """
+354        return self._base_estimator.predict(X, **kwards)
+355
+356    def predict_proba(self, X, **kwards):
+357        """Predict class probabilities of the input samples X.
+358        The predicted class probability depends on the ensemble estimator.
+359        Parameters
+360        ----------
+361        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+362            The input samples.
+363        Returns
+364        -------
+365        y : ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1
+366            The predicted classes
+367        """
+368        return self._base_estimator.predict_proba(X, **kwards)
+
+ + +

Self-training with Editing.

+ +

Create a SETRED classifier. It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set. +The main process are:

+ +
    +
  1. Train a classifier with the labeled data.
  2. +
  3. Create a pool of unlabeled data and select the most confident predictions.
  4. +
  5. Repeat until the maximum number of iterations is reached: +a. Select the most confident predictions from the unlabeled data. +b. Calculate the neighborhood graph of the labeled data and the selected instances from the unlabeled data. +c. Calculate the significance level of the selected instances. +d. Reject the instances that are not significant according their position in the neighborhood graph. +e. Add the selected instances to the labeled data and retrains the classifier. +f. Add new instances to the pool of unlabeled data.
  6. +
  7. Return the classifier trained with the labeled data.
  8. +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sslearn.model_selection import artificial_ssl_dataset
+from sslearn.wrapper import Setred
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+
+clf = Setred()
+clf.fit(X, y)
+clf.score(X_unlabel, y_unlabel)
+
+
+ +

References

+ +

Li, Ming, and Zhi-Hua Zhou. (2005)
+SETRED: Self-training with editing,
+in Advances in Knowledge Discovery and Data Mining.
+Pacific-Asia Conference on Knowledge Discovery and Data Mining
+LNAI 3518, Springer, Berlin, Heidelberg,
+10.1007/11430919_71

+
+ + +
+ +
+ + Setred( base_estimator=KNeighborsClassifier(n_neighbors=3), max_iterations=40, distance='euclidean', poolsize=0.25, rejection_threshold=0.05, graph_neighbors=1, random_state=None, n_jobs=None) + + + +
+ +
172    def __init__(
+173        self,
+174        base_estimator=KNeighborsClassifier(n_neighbors=3),
+175        max_iterations=40,
+176        distance="euclidean",
+177        poolsize=0.25,
+178        rejection_threshold=0.05,
+179        graph_neighbors=1,
+180        random_state=None,
+181        n_jobs=None,
+182    ):
+183        """
+184        Create a SETRED classifier.
+185        It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set.
+186        
+187        Parameters
+188        ----------
+189        base_estimator : ClassifierMixin, optional
+190            An estimator object implementing fit and predict_proba,, by default DecisionTreeClassifier(), by default KNeighborsClassifier(n_neighbors=3)
+191        max_iterations : int, optional
+192            Maximum number of iterations allowed. Should be greater than or equal to 0., by default 40
+193        distance : str, optional
+194            The distance metric to use for the graph.
+195            The default metric is euclidean, and with p=2 is equivalent to the standard Euclidean metric.
+196            For a list of available metrics, see the documentation of DistanceMetric and the metrics listed in sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS.
+197            Note that the `cosine` metric uses cosine_distances., by default `euclidean`
+198        poolsize : float, optional
+199            Max number of unlabel instances candidates to pseudolabel, by default 0.25
+200        rejection_threshold : float, optional
+201            significance level, by default 0.1
+202        graph_neighbors : int, optional
+203            Number of neighbors for each sample., by default 1
+204        random_state : int, RandomState instance, optional
+205            controls the randomness of the estimator, by default None
+206        n_jobs : int, optional
+207            The number of parallel jobs to run for neighbors search. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors, by default None
+208        """
+209        self.base_estimator = check_classifier(base_estimator, can_be_list=False)
+210        self.max_iterations = max_iterations
+211        self.poolsize = poolsize
+212        self.distance = distance
+213        self.rejection_threshold = rejection_threshold
+214        self.graph_neighbors = graph_neighbors
+215        self.random_state = random_state
+216        self.n_jobs = n_jobs
+
+ + +

Create a SETRED classifier. +It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +An estimator object implementing fit and predict_proba,, by default DecisionTreeClassifier(), by default KNeighborsClassifier(n_neighbors=3)
  • +
  • max_iterations (int, optional): +Maximum number of iterations allowed. Should be greater than or equal to 0., by default 40
  • +
  • distance (str, optional): +The distance metric to use for the graph. +The default metric is euclidean, and with p=2 is equivalent to the standard Euclidean metric. +For a list of available metrics, see the documentation of DistanceMetric and the metrics listed in sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS. +Note that the cosine metric uses cosine_distances., by default euclidean
  • +
  • poolsize (float, optional): +Max number of unlabel instances candidates to pseudolabel, by default 0.25
  • +
  • rejection_threshold (float, optional): +significance level, by default 0.1
  • +
  • graph_neighbors (int, optional): +Number of neighbors for each sample., by default 1
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
  • n_jobs (int, optional): +The number of parallel jobs to run for neighbors search. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors, by default None
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **kwars): + + + +
+ +
224    def fit(self, X, y, **kwars):
+225        """Build a Setred classifier from the training set (X, y).
+226
+227        Parameters
+228        ----------
+229        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+230            The training input samples.
+231        y : array-like of shape (n_samples,)
+232            The target values (class labels), -1 if unlabeled.
+233
+234        Returns
+235        -------
+236        self: Setred
+237            Fitted estimator.
+238        """        
+239        random_state = check_random_state(self.random_state)
+240
+241        X_label, y_label, X_unlabel = get_dataset(X, y)
+242
+243        is_df = isinstance(X_label, pd.DataFrame)
+244
+245        self.classes_ = np.unique(y_label)
+246
+247        each_iteration_candidates = X_label.shape[0]
+248
+249        pool = int(len(X_unlabel) * self.poolsize)
+250        self._base_estimator = skclone(self.base_estimator)
+251
+252        self._base_estimator.fit(X_label, y_label, **kwars)
+253
+254        y_probabilities = calculate_prior_probability(
+255            y_label
+256        )  # Should probabilities change every iteration or may it keep with the first L?
+257
+258        sort_idx = np.argsort(list(y_probabilities.keys()))
+259
+260        if X_unlabel.shape[0] == 0:
+261            return self
+262
+263        for _ in range(self.max_iterations):
+264            U_ = resample(
+265                X_unlabel, replace=False, n_samples=pool, random_state=random_state
+266            )
+267
+268            if is_df:
+269                U_ = pd.DataFrame(U_, columns=X_label.columns)
+270
+271            raw_predictions = self._base_estimator.predict_proba(U_)
+272            predictions = np.max(raw_predictions, axis=1)
+273            class_predicted = np.argmax(raw_predictions, axis=1)
+274            # Unless a better understanding is given, only the size of L will be used as maximal size of the candidate set.
+275            indexes = predictions.argsort()[-each_iteration_candidates:]
+276
+277            if is_df:
+278                L_ = U_.iloc[indexes]
+279            else:
+280                L_ = U_[indexes]
+281            y_ = np.array(
+282                list(
+283                    map(
+284                        lambda x: self._base_estimator.classes_[x],
+285                        class_predicted[indexes],
+286                    )
+287                )
+288            )
+289
+290            if is_df:
+291                pre_L = pd.concat([X_label, L_])
+292            else:
+293                pre_L = np.concatenate((X_label, L_), axis=0)
+294
+295            weights = self.__create_neighborhood(pre_L)
+296            #  Keep only weights for L_
+297            weights = weights[-L_.shape[0]:, :]
+298
+299            idx = np.searchsorted(np.array(list(y_probabilities.keys())), y_, sorter=sort_idx)
+300            p_wrong = 1 - np.asarray(np.array(list(y_probabilities.values())))[sort_idx][idx]
+301            #  Must weights be the inverse of distance?
+302            weights = np.divide(1, weights, out=np.zeros_like(weights), where=weights != 0)
+303
+304            weights_sum = weights.sum(axis=1)
+305            weights_square_sum = (weights ** 2).sum(axis=1)
+306
+307            iid_random = random_state.binomial(
+308                1, np.repeat(p_wrong, weights.shape[1]).reshape(weights.shape)
+309            )
+310            ji = (iid_random * weights).sum(axis=1)
+311
+312            mu_h0 = p_wrong * weights_sum
+313            sigma_h0 = np.sqrt((1 - p_wrong) * p_wrong * weights_square_sum)
+314            
+315            z_score = np.divide((ji - mu_h0), sigma_h0, out=np.zeros_like(sigma_h0), where=sigma_h0 != 0)
+316            # z_score = (ji - mu_h0) / sigma_h0
+317            
+318            oi = norm.sf(abs(z_score), mu_h0, sigma_h0)
+319            to_add = (oi < self.rejection_threshold) & (z_score < mu_h0)
+320
+321            if is_df:
+322                L_filtered = L_.iloc[to_add, :]
+323            else:
+324                L_filtered = L_[to_add, :]
+325            y_filtered = y_[to_add]
+326            
+327            if is_df:
+328                X_label = pd.concat([X_label, L_filtered])
+329            else:
+330                X_label = np.concatenate((X_label, L_filtered), axis=0)
+331            y_label = np.concatenate((y_label, y_filtered), axis=0)
+332
+333            #  Remove the instances from the unlabeled set.
+334            to_delete = indexes[to_add]
+335            if is_df:
+336                X_unlabel = X_unlabel.drop(index=X_unlabel.index[to_delete])
+337            else:
+338                X_unlabel = np.delete(X_unlabel, to_delete, axis=0)
+339
+340        return self
+
+ + +

Build a Setred classifier from the training set (X, y).

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabeled.
  • +
+ +
Returns
+ +
    +
  • self (Setred): +Fitted estimator.
  • +
+
+ + +
+
+ +
+ + def + predict(self, X, **kwards): + + + +
+ +
342    def predict(self, X, **kwards):
+343        """Predict class value for X.
+344        For a classification model, the predicted class for each sample in X is returned.
+345        Parameters
+346        ----------
+347        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+348            The input samples.
+349        Returns
+350        -------
+351        y : array-like of shape (n_samples,)
+352            The predicted classes
+353        """
+354        return self._base_estimator.predict(X, **kwards)
+
+ + +

Predict class value for X. +For a classification model, the predicted class for each sample in X is returned.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • y (array-like of shape (n_samples,)): +The predicted classes
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X, **kwards): + + + +
+ +
356    def predict_proba(self, X, **kwards):
+357        """Predict class probabilities of the input samples X.
+358        The predicted class probability depends on the ensemble estimator.
+359        Parameters
+360        ----------
+361        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+362            The input samples.
+363        Returns
+364        -------
+365        y : ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1
+366            The predicted classes
+367        """
+368        return self._base_estimator.predict_proba(X, **kwards)
+
+ + +

Predict class probabilities of the input samples X. +The predicted class probability depends on the ensemble estimator.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • y (ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1): +The predicted classes
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.base.ClassifierMixin
+
score
+ +
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + CoTraining(sslearn.wrapper._co.BaseCoTraining): + + + +
+ +
453class CoTraining(BaseCoTraining):
+454    """
+455    **CoTraining classifier. Multi-view learning algorithm that uses two classifiers to label instances.**
+456    --------------------------------------------
+457
+458    The main process is:
+459    1. Train each classifier with the labeled instances and their respective view.
+460    2. While max iterations is not reached or any instance is unlabeled:
+461        1. Predict the instances from the unlabeled set.
+462        2. Select the instances that have the same prediction and the predictions are above the threshold.
+463        3. Label the instances with the highest probability, keeping the balance of the classes.
+464        4. Retrain the classifier with the new instances.
+465    3. Combine the probabilities of each classifier.
+466
+467    **Methods**
+468    -------
+469    - `fit`: Fit the model with the labeled instances.
+470    - `predict` : Predict the class for each instance.
+471    - `predict_proba`: Predict the probability for each class.
+472    - `score`: Return the mean accuracy on the given test data and labels.
+473
+474    **Example**
+475    -------
+476    ```python
+477    from sklearn.datasets import load_iris
+478    from sklearn.tree import DecisionTreeClassifier
+479    from sslearn.wrapper import CoTraining
+480    from sslearn.model_selection import artificial_ssl_dataset
+481
+482    X, y = load_iris(return_X_y=True)
+483    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+484    cotraining = CoTraining(DecisionTreeClassifier())
+485    X1 = X[:, [0, 1]]
+486    X2 = X[:, [2, 3]]
+487    cotraining.fit(X1, y, X2) 
+488    # or
+489    cotraining.fit(X, y, features=[[0, 1], [2, 3]])
+490    # or
+491    cotraining = CoTraining(DecisionTreeClassifier(), force_second_view=False)
+492    cotraining.fit(X, y)
+493    ``` 
+494
+495    **References**
+496    ----------
+497    Avrim Blum and Tom Mitchell. (1998).<br>
+498    Combining labeled and unlabeled data with co-training<br>
+499    in <i>Proceedings of the eleventh annual conference on Computational learning theory (COLT' 98)</i>.<br>
+500    Association for Computing Machinery, New York, NY, USA, 92-100.<br>
+501    [10.1145/279943.279962](https://doi.org/10.1145/279943.279962)
+502
+503    Han, Xian-Hua, Yen-wei Chen, and Xiang Ruan. (2011). <br>
+504    Multi-Class Co-Training Learning for Object and Scene Recognition,<br>
+505    pp. 67-70 in. Nara, Japan. <br>
+506    [http://www.mva-org.jp/Proceedings/2011CD/papers/04-08.pdf](http://www.mva-org.jp/Proceedings/2011CD/papers/04-08.pdf)<br>
+507    """
+508
+509    def __init__(
+510        self,
+511        base_estimator=DecisionTreeClassifier(),
+512        second_base_estimator=None,
+513        max_iterations=30,
+514        poolsize=75,
+515        threshold=0.5,
+516        force_second_view=True,
+517        random_state=None
+518    ):
+519        """
+520        Create a CoTraining classifier. 
+521        Multi-view learning algorithm that uses two classifiers to label instances.
+522
+523        Parameters
+524        ----------
+525        base_estimator : ClassifierMixin, optional
+526            The classifier that will be used in the cotraining algorithm on the feature set, by default DecisionTreeClassifier()
+527        second_base_estimator : ClassifierMixin, optional
+528            The classifier that will be used in the cotraining algorithm on another feature set, if none are a clone of base_estimator, by default None
+529        max_iterations : int, optional
+530            The number of iterations, by default 30
+531        poolsize : int, optional
+532            The size of the pool of unlabeled samples from which the classifier can choose, by default 75
+533        threshold : float, optional
+534            The threshold for label instances, by default 0.5
+535        force_second_view : bool, optional
+536            The second classifier needs a different view of the data. If False then a second view will be same as the first, by default True
+537        random_state : int, RandomState instance, optional
+538            controls the randomness of the estimator, by default None
+539
+540        """
+541        self.base_estimator = check_classifier(base_estimator, False)
+542        if second_base_estimator is not None:
+543            second_base_estimator = check_classifier(second_base_estimator, False)
+544        self.second_base_estimator = second_base_estimator
+545        self.max_iterations = max_iterations
+546        self.poolsize = poolsize
+547        self.threshold = threshold
+548        self.force_second_view = force_second_view
+549        self.random_state = random_state
+550
+551    def fit(self, X, y, X2=None, features: list = None, number_per_class: dict = None, **kwards):
+552        """
+553        Build a CoTraining classifier from the training set.
+554
+555        Parameters
+556        ----------
+557        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+558            Array representing the data.
+559        y : array-like of shape (n_samples,)
+560            The target values (class labels), -1 if unlabeled.
+561        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+562            Array representing the data from another view, not compatible with `features`, by default None
+563        features : {list, tuple}, optional
+564            list or tuple of two arrays with `feature` index for each subspace view, not compatible with `X2`, by default None
+565        number_per_class : {dict}, optional
+566            dict of class name:integer with the max ammount of instances to label in this class in each iteration, by default None
+567
+568        Returns
+569        -------
+570        self: CoTraining
+571            Fitted estimator.
+572        """
+573        rs = check_random_state(self.random_state)
+574
+575        X_label, y_label, X_unlabel = get_dataset(X, y)
+576
+577        is_df = isinstance(X_label, pd.DataFrame)
+578
+579        if X2 is not None:
+580            X2_label, _, X2_unlabel = get_dataset(X2, y)
+581        elif features is not None:
+582            if is_df:
+583                X2_label = X_label.iloc[:, features[1]]
+584                X2_unlabel = X_unlabel.iloc[:, features[1]]
+585                X_label = X_label.iloc[:, features[0]]
+586                X_unlabel = X_unlabel.iloc[:, features[0]]
+587            else:
+588                X2_label = X_label[:, features[1]]
+589                X2_unlabel = X_unlabel[:, features[1]]
+590                X_label = X_label[:, features[0]]
+591                X_unlabel = X_unlabel[:, features[0]]
+592            self.columns_ = features
+593        elif self.force_second_view:
+594            raise AttributeError("Either X2 or features must be defined. CoTraining need another view to train the second classifier")
+595        else:
+596            self.columns_ = [list(range(X.shape[1]))] * 2
+597            X2_label = X_label.copy()
+598            X2_unlabel = X_unlabel.copy()
+599
+600        if is_df and X2_label is not None and not isinstance(X2_label, pd.DataFrame):
+601            raise AttributeError("X and X2 must be both pandas DataFrame or numpy arrays")
+602
+603        self.h = [
+604            skclone(self.base_estimator),
+605            skclone(self.base_estimator) if self.second_base_estimator is None else skclone(self.second_base_estimator)
+606        ]
+607        assert (
+608            X2 is None or features is None
+609        ), "The list of features and X2 cannot be defined at the same time"
+610
+611        self.classes_ = np.unique(y_label)
+612        if number_per_class is None:
+613            number_per_class = calc_number_per_class(y_label)
+614
+615        if X_unlabel.shape[0] < self.poolsize:
+616            warnings.warn(f"Poolsize ({self.poolsize}) is bigger than U ({X_unlabel.shape[0]})")
+617
+618        permutation = rs.permutation(len(X_unlabel))
+619
+620        self.h[0].fit(X_label, y_label)
+621        self.h[1].fit(X2_label, y_label)
+622
+623        it = 0
+624        while it < self.max_iterations and any(permutation):
+625            it += 1
+626
+627            get_index = permutation[:self.poolsize]
+628            y1_prob = self.h[0].predict_proba(X_unlabel[get_index] if not is_df else X_unlabel.iloc[get_index, :])
+629            y2_prob = self.h[1].predict_proba(X2_unlabel[get_index] if not is_df else X2_unlabel.iloc[get_index, :])
+630
+631            predictions1 = np.max(y1_prob, axis=1)
+632            class_predicted1 = np.argmax(y1_prob, axis=1)
+633
+634            predictions2 = np.max(y2_prob, axis=1)
+635            class_predicted2 = np.argmax(y2_prob, axis=1)
+636
+637            # If two classifier select same instance and bring different predictions then the instance is not labeled
+638            candidates1 = predictions1 > self.threshold
+639            candidates2 = predictions2 > self.threshold
+640            aggreement = class_predicted1 == class_predicted2
+641
+642            full_candidates = candidates1 ^ candidates2
+643            medium_candidates = candidates1 & candidates2 & aggreement
+644            true_candidates1 = full_candidates & candidates1
+645            true_candidates2 = full_candidates & candidates2
+646
+647            # Fill probas and candidate classes.
+648            y_probas = np.zeros(predictions1.shape, dtype=predictions1.dtype)
+649            y_class = class_predicted1.copy()
+650
+651            temp_probas1 = predictions1[true_candidates1]
+652            temp_probas2 = predictions2[true_candidates2]
+653            temp_probasB = (predictions1[medium_candidates]+predictions2[medium_candidates])/2
+654
+655            temp_classes2 = class_predicted2[true_candidates2]
+656
+657            y_probas[true_candidates1] = temp_probas1
+658            y_probas[true_candidates2] = temp_probas2
+659            y_probas[medium_candidates] = temp_probasB
+660            y_class[true_candidates2] = temp_classes2
+661
+662            # Select the best candidates
+663            final_instances = list()
+664            best_candidates = np.argsort(y_probas, kind="mergesort")[::-1]
+665            for c in self.classes_:
+666                final_instances += list(best_candidates[y_class[best_candidates] == c])[:number_per_class[c]]
+667
+668            # Fill the new labeled instances
+669            pseudoy = y_class[final_instances]
+670            y_label = np.append(y_label, pseudoy)
+671
+672            index = permutation[0: self.poolsize][final_instances]
+673            if is_df:
+674                X_label = pd.concat([X_label, X_unlabel.iloc[index, :]])
+675                X2_label = pd.concat([X2_label, X2_unlabel.iloc[index, :]])
+676            else:
+677                X_label = np.append(X_label, X_unlabel[index], axis=0)
+678                X2_label = np.append(X2_label, X2_unlabel[index], axis=0)
+679
+680            permutation = permutation[list(map(lambda x: x not in index, permutation))]
+681
+682            # Poolsize increments in order double of max instances candidates:
+683            self.poolsize += sum(number_per_class.values()) * 2
+684
+685            self.h[0].fit(X_label, y_label)
+686            self.h[1].fit(X2_label, y_label)
+687
+688        self.h_ = self.h
+689
+690        return self
+691
+692    def predict_proba(self, X, X2=None, **kwards):
+693        """Predict probability for each possible outcome.
+694
+695        Parameters
+696        ----------
+697        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+698            Array representing the data.
+699        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+700            Array representing the data from another view, by default None
+701        Returns
+702        -------
+703        class probabilities: ndarray of shape (n_samples, n_classes)
+704            Array with prediction probabilities.
+705        """
+706        if "columns_" in dir(self):
+707            return super().predict_proba(X, **kwards)
+708        elif "h_" in dir(self):
+709            ys = []
+710            ys.append(self.h_[0].predict_proba(X, **kwards))
+711            ys.append(self.h_[1].predict_proba(X2, **kwards))
+712            y = sum(ys) / len(ys)
+713            return y
+714        else:
+715            raise NotFittedError("Classifier not fitted")
+716
+717    def predict(self, X, X2=None, **kwards):
+718        """Predict the classes of X.
+719        Parameters
+720        ----------
+721        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+722            Array representing the data.
+723        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+724            Array representing the data from another view, by default None
+725
+726        Returns
+727        -------
+728        y : ndarray of shape (n_samples,)
+729            Array with predicted labels.
+730        """
+731        if "columns_" in dir(self):
+732            result = super().predict(X, **kwards)
+733        else:
+734            predicted_probabilitiy = self.predict_proba(X, X2, **kwards)
+735            result = self.classes_.take(
+736                (np.argmax(predicted_probabilitiy, axis=1)), axis=0
+737            )
+738        return result
+739
+740    def score(self, X, y, sample_weight=None, **kwards):
+741        """
+742        Return the mean accuracy on the given test data and labels.
+743        In multi-label classification, this is the subset accuracy
+744        which is a harsh metric since you require for each sample that
+745        each label set be correctly predicted.
+746        Parameters
+747        ----------
+748        X : array-like of shape (n_samples, n_features)
+749            Test samples.
+750        y : array-like of shape (n_samples,) or (n_samples, n_outputs)
+751            True labels for `X`.
+752        sample_weight : array-like of shape (n_samples,), default=None
+753            Sample weights.
+754        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+755            Array representing the data from another view, by default None
+756        Returns
+757        -------
+758        score : float
+759            Mean accuracy of ``self.predict(X)`` wrt. `y`.
+760        """
+761        if "X2" in kwards:
+762            return accuracy_score(y, self.predict(X, kwards["X2"]), sample_weight=sample_weight)
+763        else:
+764            return super().score(X, y, sample_weight=sample_weight)
+
+ + +

CoTraining classifier. Multi-view learning algorithm that uses two classifiers to label instances.

+ +

The main process is:

+ +
    +
  1. Train each classifier with the labeled instances and their respective view.
  2. +
  3. While max iterations is not reached or any instance is unlabeled: +
      +
    1. Predict the instances from the unlabeled set.
    2. +
    3. Select the instances that have the same prediction and the predictions are above the threshold.
    4. +
    5. Label the instances with the highest probability, keeping the balance of the classes.
    6. +
    7. Retrain the classifier with the new instances.
    8. +
  4. +
  5. Combine the probabilities of each classifier.
  6. +
+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sklearn.tree import DecisionTreeClassifier
+from sslearn.wrapper import CoTraining
+from sslearn.model_selection import artificial_ssl_dataset
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+cotraining = CoTraining(DecisionTreeClassifier())
+X1 = X[:, [0, 1]]
+X2 = X[:, [2, 3]]
+cotraining.fit(X1, y, X2) 
+# or
+cotraining.fit(X, y, features=[[0, 1], [2, 3]])
+# or
+cotraining = CoTraining(DecisionTreeClassifier(), force_second_view=False)
+cotraining.fit(X, y)
+
+
+ +

References

+ +

Avrim Blum and Tom Mitchell. (1998).
+Combining labeled and unlabeled data with co-training
+in Proceedings of the eleventh annual conference on Computational learning theory (COLT' 98).
+Association for Computing Machinery, New York, NY, USA, 92-100.
+10.1145/279943.279962

+ +

Han, Xian-Hua, Yen-wei Chen, and Xiang Ruan. (2011).
+Multi-Class Co-Training Learning for Object and Scene Recognition,
+pp. 67-70 in. Nara, Japan.
+http://www.mva-org.jp/Proceedings/2011CD/papers/04-08.pdf

+
+ + +
+ +
+ + CoTraining( base_estimator=DecisionTreeClassifier(), second_base_estimator=None, max_iterations=30, poolsize=75, threshold=0.5, force_second_view=True, random_state=None) + + + +
+ +
509    def __init__(
+510        self,
+511        base_estimator=DecisionTreeClassifier(),
+512        second_base_estimator=None,
+513        max_iterations=30,
+514        poolsize=75,
+515        threshold=0.5,
+516        force_second_view=True,
+517        random_state=None
+518    ):
+519        """
+520        Create a CoTraining classifier. 
+521        Multi-view learning algorithm that uses two classifiers to label instances.
+522
+523        Parameters
+524        ----------
+525        base_estimator : ClassifierMixin, optional
+526            The classifier that will be used in the cotraining algorithm on the feature set, by default DecisionTreeClassifier()
+527        second_base_estimator : ClassifierMixin, optional
+528            The classifier that will be used in the cotraining algorithm on another feature set, if none are a clone of base_estimator, by default None
+529        max_iterations : int, optional
+530            The number of iterations, by default 30
+531        poolsize : int, optional
+532            The size of the pool of unlabeled samples from which the classifier can choose, by default 75
+533        threshold : float, optional
+534            The threshold for label instances, by default 0.5
+535        force_second_view : bool, optional
+536            The second classifier needs a different view of the data. If False then a second view will be same as the first, by default True
+537        random_state : int, RandomState instance, optional
+538            controls the randomness of the estimator, by default None
+539
+540        """
+541        self.base_estimator = check_classifier(base_estimator, False)
+542        if second_base_estimator is not None:
+543            second_base_estimator = check_classifier(second_base_estimator, False)
+544        self.second_base_estimator = second_base_estimator
+545        self.max_iterations = max_iterations
+546        self.poolsize = poolsize
+547        self.threshold = threshold
+548        self.force_second_view = force_second_view
+549        self.random_state = random_state
+
+ + +

Create a CoTraining classifier. +Multi-view learning algorithm that uses two classifiers to label instances.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +The classifier that will be used in the cotraining algorithm on the feature set, by default DecisionTreeClassifier()
  • +
  • second_base_estimator (ClassifierMixin, optional): +The classifier that will be used in the cotraining algorithm on another feature set, if none are a clone of base_estimator, by default None
  • +
  • max_iterations (int, optional): +The number of iterations, by default 30
  • +
  • poolsize (int, optional): +The size of the pool of unlabeled samples from which the classifier can choose, by default 75
  • +
  • threshold (float, optional): +The threshold for label instances, by default 0.5
  • +
  • force_second_view (bool, optional): +The second classifier needs a different view of the data. If False then a second view will be same as the first, by default True
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
+
+ + +
+
+ +
+ + def + fit( self, X, y, X2=None, features: list = None, number_per_class: dict = None, **kwards): + + + +
+ +
551    def fit(self, X, y, X2=None, features: list = None, number_per_class: dict = None, **kwards):
+552        """
+553        Build a CoTraining classifier from the training set.
+554
+555        Parameters
+556        ----------
+557        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+558            Array representing the data.
+559        y : array-like of shape (n_samples,)
+560            The target values (class labels), -1 if unlabeled.
+561        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+562            Array representing the data from another view, not compatible with `features`, by default None
+563        features : {list, tuple}, optional
+564            list or tuple of two arrays with `feature` index for each subspace view, not compatible with `X2`, by default None
+565        number_per_class : {dict}, optional
+566            dict of class name:integer with the max ammount of instances to label in this class in each iteration, by default None
+567
+568        Returns
+569        -------
+570        self: CoTraining
+571            Fitted estimator.
+572        """
+573        rs = check_random_state(self.random_state)
+574
+575        X_label, y_label, X_unlabel = get_dataset(X, y)
+576
+577        is_df = isinstance(X_label, pd.DataFrame)
+578
+579        if X2 is not None:
+580            X2_label, _, X2_unlabel = get_dataset(X2, y)
+581        elif features is not None:
+582            if is_df:
+583                X2_label = X_label.iloc[:, features[1]]
+584                X2_unlabel = X_unlabel.iloc[:, features[1]]
+585                X_label = X_label.iloc[:, features[0]]
+586                X_unlabel = X_unlabel.iloc[:, features[0]]
+587            else:
+588                X2_label = X_label[:, features[1]]
+589                X2_unlabel = X_unlabel[:, features[1]]
+590                X_label = X_label[:, features[0]]
+591                X_unlabel = X_unlabel[:, features[0]]
+592            self.columns_ = features
+593        elif self.force_second_view:
+594            raise AttributeError("Either X2 or features must be defined. CoTraining need another view to train the second classifier")
+595        else:
+596            self.columns_ = [list(range(X.shape[1]))] * 2
+597            X2_label = X_label.copy()
+598            X2_unlabel = X_unlabel.copy()
+599
+600        if is_df and X2_label is not None and not isinstance(X2_label, pd.DataFrame):
+601            raise AttributeError("X and X2 must be both pandas DataFrame or numpy arrays")
+602
+603        self.h = [
+604            skclone(self.base_estimator),
+605            skclone(self.base_estimator) if self.second_base_estimator is None else skclone(self.second_base_estimator)
+606        ]
+607        assert (
+608            X2 is None or features is None
+609        ), "The list of features and X2 cannot be defined at the same time"
+610
+611        self.classes_ = np.unique(y_label)
+612        if number_per_class is None:
+613            number_per_class = calc_number_per_class(y_label)
+614
+615        if X_unlabel.shape[0] < self.poolsize:
+616            warnings.warn(f"Poolsize ({self.poolsize}) is bigger than U ({X_unlabel.shape[0]})")
+617
+618        permutation = rs.permutation(len(X_unlabel))
+619
+620        self.h[0].fit(X_label, y_label)
+621        self.h[1].fit(X2_label, y_label)
+622
+623        it = 0
+624        while it < self.max_iterations and any(permutation):
+625            it += 1
+626
+627            get_index = permutation[:self.poolsize]
+628            y1_prob = self.h[0].predict_proba(X_unlabel[get_index] if not is_df else X_unlabel.iloc[get_index, :])
+629            y2_prob = self.h[1].predict_proba(X2_unlabel[get_index] if not is_df else X2_unlabel.iloc[get_index, :])
+630
+631            predictions1 = np.max(y1_prob, axis=1)
+632            class_predicted1 = np.argmax(y1_prob, axis=1)
+633
+634            predictions2 = np.max(y2_prob, axis=1)
+635            class_predicted2 = np.argmax(y2_prob, axis=1)
+636
+637            # If two classifier select same instance and bring different predictions then the instance is not labeled
+638            candidates1 = predictions1 > self.threshold
+639            candidates2 = predictions2 > self.threshold
+640            aggreement = class_predicted1 == class_predicted2
+641
+642            full_candidates = candidates1 ^ candidates2
+643            medium_candidates = candidates1 & candidates2 & aggreement
+644            true_candidates1 = full_candidates & candidates1
+645            true_candidates2 = full_candidates & candidates2
+646
+647            # Fill probas and candidate classes.
+648            y_probas = np.zeros(predictions1.shape, dtype=predictions1.dtype)
+649            y_class = class_predicted1.copy()
+650
+651            temp_probas1 = predictions1[true_candidates1]
+652            temp_probas2 = predictions2[true_candidates2]
+653            temp_probasB = (predictions1[medium_candidates]+predictions2[medium_candidates])/2
+654
+655            temp_classes2 = class_predicted2[true_candidates2]
+656
+657            y_probas[true_candidates1] = temp_probas1
+658            y_probas[true_candidates2] = temp_probas2
+659            y_probas[medium_candidates] = temp_probasB
+660            y_class[true_candidates2] = temp_classes2
+661
+662            # Select the best candidates
+663            final_instances = list()
+664            best_candidates = np.argsort(y_probas, kind="mergesort")[::-1]
+665            for c in self.classes_:
+666                final_instances += list(best_candidates[y_class[best_candidates] == c])[:number_per_class[c]]
+667
+668            # Fill the new labeled instances
+669            pseudoy = y_class[final_instances]
+670            y_label = np.append(y_label, pseudoy)
+671
+672            index = permutation[0: self.poolsize][final_instances]
+673            if is_df:
+674                X_label = pd.concat([X_label, X_unlabel.iloc[index, :]])
+675                X2_label = pd.concat([X2_label, X2_unlabel.iloc[index, :]])
+676            else:
+677                X_label = np.append(X_label, X_unlabel[index], axis=0)
+678                X2_label = np.append(X2_label, X2_unlabel[index], axis=0)
+679
+680            permutation = permutation[list(map(lambda x: x not in index, permutation))]
+681
+682            # Poolsize increments in order double of max instances candidates:
+683            self.poolsize += sum(number_per_class.values()) * 2
+684
+685            self.h[0].fit(X_label, y_label)
+686            self.h[1].fit(X2_label, y_label)
+687
+688        self.h_ = self.h
+689
+690        return self
+
+ + +

Build a CoTraining classifier from the training set.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Array representing the data.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabeled.
  • +
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional): +Array representing the data from another view, not compatible with features, by default None
  • +
  • features ({list, tuple}, optional): +list or tuple of two arrays with feature index for each subspace view, not compatible with X2, by default None
  • +
  • number_per_class ({dict}, optional): +dict of class name:integer with the max ammount of instances to label in this class in each iteration, by default None
  • +
+ +
Returns
+ +
    +
  • self (CoTraining): +Fitted estimator.
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X, X2=None, **kwards): + + + +
+ +
692    def predict_proba(self, X, X2=None, **kwards):
+693        """Predict probability for each possible outcome.
+694
+695        Parameters
+696        ----------
+697        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+698            Array representing the data.
+699        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+700            Array representing the data from another view, by default None
+701        Returns
+702        -------
+703        class probabilities: ndarray of shape (n_samples, n_classes)
+704            Array with prediction probabilities.
+705        """
+706        if "columns_" in dir(self):
+707            return super().predict_proba(X, **kwards)
+708        elif "h_" in dir(self):
+709            ys = []
+710            ys.append(self.h_[0].predict_proba(X, **kwards))
+711            ys.append(self.h_[1].predict_proba(X2, **kwards))
+712            y = sum(ys) / len(ys)
+713            return y
+714        else:
+715            raise NotFittedError("Classifier not fitted")
+
+ + +

Predict probability for each possible outcome.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Array representing the data.
  • +
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional): +Array representing the data from another view, by default None
  • +
+ +
Returns
+ +
    +
  • class probabilities (ndarray of shape (n_samples, n_classes)): +Array with prediction probabilities.
  • +
+
+ + +
+
+ +
+ + def + predict(self, X, X2=None, **kwards): + + + +
+ +
717    def predict(self, X, X2=None, **kwards):
+718        """Predict the classes of X.
+719        Parameters
+720        ----------
+721        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+722            Array representing the data.
+723        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+724            Array representing the data from another view, by default None
+725
+726        Returns
+727        -------
+728        y : ndarray of shape (n_samples,)
+729            Array with predicted labels.
+730        """
+731        if "columns_" in dir(self):
+732            result = super().predict(X, **kwards)
+733        else:
+734            predicted_probabilitiy = self.predict_proba(X, X2, **kwards)
+735            result = self.classes_.take(
+736                (np.argmax(predicted_probabilitiy, axis=1)), axis=0
+737            )
+738        return result
+
+ + +

Predict the classes of X.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Array representing the data.
  • +
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional): +Array representing the data from another view, by default None
  • +
+ +
Returns
+ +
    +
  • y (ndarray of shape (n_samples,)): +Array with predicted labels.
  • +
+
+ + +
+
+ +
+ + def + score(self, X, y, sample_weight=None, **kwards): + + + +
+ +
740    def score(self, X, y, sample_weight=None, **kwards):
+741        """
+742        Return the mean accuracy on the given test data and labels.
+743        In multi-label classification, this is the subset accuracy
+744        which is a harsh metric since you require for each sample that
+745        each label set be correctly predicted.
+746        Parameters
+747        ----------
+748        X : array-like of shape (n_samples, n_features)
+749            Test samples.
+750        y : array-like of shape (n_samples,) or (n_samples, n_outputs)
+751            True labels for `X`.
+752        sample_weight : array-like of shape (n_samples,), default=None
+753            Sample weights.
+754        X2 : {array-like, sparse matrix} of shape (n_samples, n_features), optional
+755            Array representing the data from another view, by default None
+756        Returns
+757        -------
+758        score : float
+759            Mean accuracy of ``self.predict(X)`` wrt. `y`.
+760        """
+761        if "X2" in kwards:
+762            return accuracy_score(y, self.predict(X, kwards["X2"]), sample_weight=sample_weight)
+763        else:
+764            return super().score(X, y, sample_weight=sample_weight)
+
+ + +

Return the mean accuracy on the given test data and labels. +In multi-label classification, this is the subset accuracy +which is a harsh metric since you require for each sample that +each label set be correctly predicted.

+ +
Parameters
+ +
    +
  • X (array-like of shape (n_samples, n_features)): +Test samples.
  • +
  • y (array-like of shape (n_samples,) or (n_samples, n_outputs)): +True labels for X.
  • +
  • sample_weight (array-like of shape (n_samples,), default=None): +Sample weights.
  • +
  • X2 ({array-like, sparse matrix} of shape (n_samples, n_features), optional): +Array representing the data from another view, by default None
  • +
+ +
Returns
+ +
    +
  • score (float): +Mean accuracy of self.predict(X) wrt. y.
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + CoTrainingByCommittee(sslearn.wrapper._co.BaseCoTraining): + + + +
+ +
1060class CoTrainingByCommittee(BaseCoTraining):
+1061    """
+1062    **Co-Training by Committee classifier.**
+1063    --------------------------------------------
+1064
+1065    Create a committee trained by co-training based on the diversity of the classifiers
+1066
+1067    The main process is:
+1068    1. Train a committee of classifiers.
+1069    2. Create a pool of unlabeled instances.
+1070    3. While max iterations is not reached or any instance is unlabeled:
+1071        1. Predict the instances from the unlabeled set.
+1072        2. Select the instances with the highest probability.
+1073        3. Label the instances with the highest probability, keeping the balance of the classes but ensuring that at least n instances of each class are added.
+1074        4. Retrain the classifier with the new instances.
+1075    4. Combine the probabilities of each classifier.
+1076
+1077    **Methods**
+1078    -------
+1079    - `fit`: Fit the model with the labeled instances.
+1080    - `predict` : Predict the class for each instance.
+1081    - `predict_proba`: Predict the probability for each class.
+1082    - `score`: Return the mean accuracy on the given test data and labels.
+1083
+1084    **Example**
+1085    -------
+1086    ```python
+1087    from sklearn.datasets import load_iris
+1088    from sslearn.wrapper import CoTrainingByCommittee
+1089    from sslearn.model_selection import artificial_ssl_dataset
+1090
+1091    X, y = load_iris(return_X_y=True)
+1092    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+1093    cotraining = CoTrainingByCommittee()
+1094    cotraining.fit(X, y)
+1095    cotraining.score(X_unlabel, y_unlabel)
+1096    ```
+1097
+1098    **References**
+1099    ----------
+1100    M. F. A. Hady and F. Schwenker,<br>
+1101    Co-training by Committee: A New Semi-supervised Learning Framework,<br>
+1102    in <i>2008 IEEE International Conference on Data Mining Workshops</i>,<br>
+1103    Pisa, 2008, pp. 563-572,  [10.1109/ICDMW.2008.27](https://doi.org/10.1109/ICDMW.2008.27)
+1104    """
+1105
+1106
+1107    def __init__(
+1108        self,
+1109        ensemble_estimator=BaggingClassifier(),
+1110        max_iterations=100,
+1111        poolsize=100,
+1112        min_instances_for_class=3,
+1113        random_state=None,
+1114    ):
+1115        """
+1116        Create a committee trained by cotraining based on
+1117        the diversity of classifiers.
+1118
+1119        Parameters
+1120        ----------
+1121        ensemble_estimator : ClassifierMixin, optional
+1122            ensemble method, works without a ensemble as
+1123            self training with pool, by default BaggingClassifier().
+1124        max_iterations : int, optional
+1125            number of iterations of training, -1 if no max iterations, by default 100
+1126        poolsize : int, optional
+1127            max number of unlabeled instances candidates to pseudolabel, by default 100
+1128        random_state : int, RandomState instance, optional
+1129            controls the randomness of the estimator, by default None
+1130
+1131
+1132        """
+1133        self.ensemble_estimator = check_classifier(ensemble_estimator, False)
+1134        self.max_iterations = max_iterations
+1135        self.poolsize = poolsize
+1136        self.random_state = random_state
+1137        self.min_instances_for_class = min_instances_for_class
+1138
+1139    def fit(self, X, y, **kwards):
+1140        """Build a CoTrainingByCommittee classifier from the training set (X, y).
+1141        Parameters
+1142        ----------
+1143        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1144            The training input samples.
+1145        y : array-like of shape (n_samples,)
+1146            The target values (class labels), -1 if unlabel.
+1147        Returns
+1148        -------
+1149        self : CoTrainingByCommittee
+1150            Fitted estimator.
+1151        """
+1152        self.ensemble_estimator = skclone(self.ensemble_estimator)
+1153        random_state = check_random_state(self.random_state)
+1154
+1155        X_label, y_prev, X_unlabel = get_dataset(X, y)
+1156
+1157        is_df = isinstance(X_label, pd.DataFrame)
+1158
+1159        self.label_encoder_ = LabelEncoder()
+1160        y_label = self.label_encoder_.fit_transform(y_prev)
+1161
+1162        self.classes_ = self.label_encoder_.classes_
+1163
+1164        prior = calculate_prior_probability(y_label)
+1165        permutation = random_state.permutation(len(X_unlabel))
+1166
+1167        self.ensemble_estimator.fit(X_label, y_label, **kwards)
+1168
+1169        if X_unlabel.shape[0] == 0:
+1170            return self
+1171
+1172        for _ in range(self.max_iterations):
+1173            if len(permutation) == 0:
+1174                break
+1175            raw_predictions = self.ensemble_estimator.predict_proba(
+1176                X_unlabel[permutation[0: self.poolsize]] if not is_df else X_unlabel.iloc[permutation[0: self.poolsize]]
+1177            )
+1178
+1179            predictions = np.max(raw_predictions, axis=1)
+1180            class_predicted = np.argmax(raw_predictions, axis=1)
+1181
+1182            added = np.zeros(predictions.shape, dtype=bool)
+1183            # First the n (or less) most confidence instances will be selected
+1184            for c in self.ensemble_estimator.classes_:
+1185                condition = class_predicted == c
+1186
+1187                candidates = predictions[condition]
+1188                candidates_bool = np.zeros(predictions.shape, dtype=bool)
+1189                candidates_sub_set = candidates_bool[condition]
+1190
+1191                instances_index_selected = candidates.argsort(kind="mergesort")[
+1192                    -self.min_instances_for_class:
+1193                ]
+1194
+1195                candidates_sub_set[instances_index_selected] = True
+1196                candidates_bool[condition] += candidates_sub_set
+1197
+1198                added[candidates_bool] = True
+1199
+1200            # Bajo esta interpretación se garantiza que al menos existen n elemento de cada clase por iteración
+1201            # Pero si se añaden ya en el proceso de proporción no se duplica.
+1202
+1203            # Con esta otra interpretación ignora las n primeras instancias de cada clase
+1204            to_label = choice_with_proportion(
+1205                predictions, class_predicted, prior, extra=self.min_instances_for_class
+1206            )
+1207            added[to_label] = True
+1208
+1209            index = permutation[0: self.poolsize][added]
+1210            X_label = np.append(X_label, X_unlabel[index], axis=0) if not is_df else pd.concat(
+1211                [X_label, X_unlabel.iloc[index, :]]
+1212            )
+1213            pseudoy = class_predicted[added]
+1214
+1215            y_label = np.append(y_label, pseudoy)
+1216            permutation = permutation[list(map(lambda x: x not in index, permutation))]
+1217
+1218            self.ensemble_estimator.fit(X_label, y_label, **kwards)
+1219
+1220        return self
+1221
+1222    def predict(self, X):
+1223        """Predict class value for X.
+1224        For a classification model, the predicted class for each sample in X is returned.
+1225        Parameters
+1226        ----------
+1227        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1228            The input samples.
+1229        Returns
+1230        -------
+1231        y : array-like of shape (n_samples,)
+1232            The predicted classes
+1233        """
+1234        check_is_fitted(self.ensemble_estimator)
+1235        return self.label_encoder_.inverse_transform(self.ensemble_estimator.predict(X))
+1236
+1237    def predict_proba(self, X):
+1238        """Predict class probabilities of the input samples X.
+1239        The predicted class probability depends on the ensemble estimator.
+1240        Parameters
+1241        ----------
+1242        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1243            The input samples.
+1244        Returns
+1245        -------
+1246        y : ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1
+1247            The predicted classes
+1248        """
+1249        check_is_fitted(self.ensemble_estimator)
+1250        return self.ensemble_estimator.predict_proba(X)
+1251
+1252    def score(self, X, y, sample_weight=None):
+1253        """Return the mean accuracy on the given test data and labels.
+1254        In multi-label classification, this is the subset accuracy which is a harsh metric since you require for each sample that each label set be correctly predicted.
+1255        Parameters
+1256        ----------
+1257        X : array-like of shape (n_samples, n_features)
+1258            Test samples.
+1259        y : array-like of shape (n_samples,) or (n_samples, n_outputs)
+1260            True labels for X.
+1261        sample_weight : array-like of shape (n_samples,), optional
+1262            Sample weights., by default None
+1263        Returns
+1264        -------
+1265        score: float
+1266            Mean accuracy of self.predict(X) wrt. y.
+1267        """
+1268        try:
+1269            y = self.label_encoder_.transform(y)
+1270        except ValueError:
+1271            if "le_dict_" not in dir(self):
+1272                self.le_dict_ = dict(
+1273                    zip(
+1274                        self.label_encoder_.classes_,
+1275                        self.label_encoder_.transform(self.label_encoder_.classes_),
+1276                    )
+1277                )
+1278            y = np.array(list(map(lambda x: self.le_dict_.get(x, -1), y)), dtype=y.dtype)
+1279
+1280        return self.ensemble_estimator.score(X, y, sample_weight)
+
+ + +

Co-Training by Committee classifier.

+ +

Create a committee trained by co-training based on the diversity of the classifiers

+ +

The main process is:

+ +
    +
  1. Train a committee of classifiers.
  2. +
  3. Create a pool of unlabeled instances.
  4. +
  5. While max iterations is not reached or any instance is unlabeled: +
      +
    1. Predict the instances from the unlabeled set.
    2. +
    3. Select the instances with the highest probability.
    4. +
    5. Label the instances with the highest probability, keeping the balance of the classes but ensuring that at least n instances of each class are added.
    6. +
    7. Retrain the classifier with the new instances.
    8. +
  6. +
  7. Combine the probabilities of each classifier.
  8. +
+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sslearn.wrapper import CoTrainingByCommittee
+from sslearn.model_selection import artificial_ssl_dataset
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+cotraining = CoTrainingByCommittee()
+cotraining.fit(X, y)
+cotraining.score(X_unlabel, y_unlabel)
+
+
+ +

References

+ +

M. F. A. Hady and F. Schwenker,
+Co-training by Committee: A New Semi-supervised Learning Framework,
+in 2008 IEEE International Conference on Data Mining Workshops,
+Pisa, 2008, pp. 563-572, 10.1109/ICDMW.2008.27

+
+ + +
+ +
+ + CoTrainingByCommittee( ensemble_estimator=BaggingClassifier(), max_iterations=100, poolsize=100, min_instances_for_class=3, random_state=None) + + + +
+ +
1107    def __init__(
+1108        self,
+1109        ensemble_estimator=BaggingClassifier(),
+1110        max_iterations=100,
+1111        poolsize=100,
+1112        min_instances_for_class=3,
+1113        random_state=None,
+1114    ):
+1115        """
+1116        Create a committee trained by cotraining based on
+1117        the diversity of classifiers.
+1118
+1119        Parameters
+1120        ----------
+1121        ensemble_estimator : ClassifierMixin, optional
+1122            ensemble method, works without a ensemble as
+1123            self training with pool, by default BaggingClassifier().
+1124        max_iterations : int, optional
+1125            number of iterations of training, -1 if no max iterations, by default 100
+1126        poolsize : int, optional
+1127            max number of unlabeled instances candidates to pseudolabel, by default 100
+1128        random_state : int, RandomState instance, optional
+1129            controls the randomness of the estimator, by default None
+1130
+1131
+1132        """
+1133        self.ensemble_estimator = check_classifier(ensemble_estimator, False)
+1134        self.max_iterations = max_iterations
+1135        self.poolsize = poolsize
+1136        self.random_state = random_state
+1137        self.min_instances_for_class = min_instances_for_class
+
+ + +

Create a committee trained by cotraining based on +the diversity of classifiers.

+ +
Parameters
+ +
    +
  • ensemble_estimator (ClassifierMixin, optional): +ensemble method, works without a ensemble as +self training with pool, by default BaggingClassifier().
  • +
  • max_iterations (int, optional): +number of iterations of training, -1 if no max iterations, by default 100
  • +
  • poolsize (int, optional): +max number of unlabeled instances candidates to pseudolabel, by default 100
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **kwards): + + + +
+ +
1139    def fit(self, X, y, **kwards):
+1140        """Build a CoTrainingByCommittee classifier from the training set (X, y).
+1141        Parameters
+1142        ----------
+1143        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1144            The training input samples.
+1145        y : array-like of shape (n_samples,)
+1146            The target values (class labels), -1 if unlabel.
+1147        Returns
+1148        -------
+1149        self : CoTrainingByCommittee
+1150            Fitted estimator.
+1151        """
+1152        self.ensemble_estimator = skclone(self.ensemble_estimator)
+1153        random_state = check_random_state(self.random_state)
+1154
+1155        X_label, y_prev, X_unlabel = get_dataset(X, y)
+1156
+1157        is_df = isinstance(X_label, pd.DataFrame)
+1158
+1159        self.label_encoder_ = LabelEncoder()
+1160        y_label = self.label_encoder_.fit_transform(y_prev)
+1161
+1162        self.classes_ = self.label_encoder_.classes_
+1163
+1164        prior = calculate_prior_probability(y_label)
+1165        permutation = random_state.permutation(len(X_unlabel))
+1166
+1167        self.ensemble_estimator.fit(X_label, y_label, **kwards)
+1168
+1169        if X_unlabel.shape[0] == 0:
+1170            return self
+1171
+1172        for _ in range(self.max_iterations):
+1173            if len(permutation) == 0:
+1174                break
+1175            raw_predictions = self.ensemble_estimator.predict_proba(
+1176                X_unlabel[permutation[0: self.poolsize]] if not is_df else X_unlabel.iloc[permutation[0: self.poolsize]]
+1177            )
+1178
+1179            predictions = np.max(raw_predictions, axis=1)
+1180            class_predicted = np.argmax(raw_predictions, axis=1)
+1181
+1182            added = np.zeros(predictions.shape, dtype=bool)
+1183            # First the n (or less) most confidence instances will be selected
+1184            for c in self.ensemble_estimator.classes_:
+1185                condition = class_predicted == c
+1186
+1187                candidates = predictions[condition]
+1188                candidates_bool = np.zeros(predictions.shape, dtype=bool)
+1189                candidates_sub_set = candidates_bool[condition]
+1190
+1191                instances_index_selected = candidates.argsort(kind="mergesort")[
+1192                    -self.min_instances_for_class:
+1193                ]
+1194
+1195                candidates_sub_set[instances_index_selected] = True
+1196                candidates_bool[condition] += candidates_sub_set
+1197
+1198                added[candidates_bool] = True
+1199
+1200            # Bajo esta interpretación se garantiza que al menos existen n elemento de cada clase por iteración
+1201            # Pero si se añaden ya en el proceso de proporción no se duplica.
+1202
+1203            # Con esta otra interpretación ignora las n primeras instancias de cada clase
+1204            to_label = choice_with_proportion(
+1205                predictions, class_predicted, prior, extra=self.min_instances_for_class
+1206            )
+1207            added[to_label] = True
+1208
+1209            index = permutation[0: self.poolsize][added]
+1210            X_label = np.append(X_label, X_unlabel[index], axis=0) if not is_df else pd.concat(
+1211                [X_label, X_unlabel.iloc[index, :]]
+1212            )
+1213            pseudoy = class_predicted[added]
+1214
+1215            y_label = np.append(y_label, pseudoy)
+1216            permutation = permutation[list(map(lambda x: x not in index, permutation))]
+1217
+1218            self.ensemble_estimator.fit(X_label, y_label, **kwards)
+1219
+1220        return self
+
+ + +

Build a CoTrainingByCommittee classifier from the training set (X, y).

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabel.
  • +
+ +
Returns
+ +
    +
  • self (CoTrainingByCommittee): +Fitted estimator.
  • +
+
+ + +
+
+ +
+ + def + predict(self, X): + + + +
+ +
1222    def predict(self, X):
+1223        """Predict class value for X.
+1224        For a classification model, the predicted class for each sample in X is returned.
+1225        Parameters
+1226        ----------
+1227        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1228            The input samples.
+1229        Returns
+1230        -------
+1231        y : array-like of shape (n_samples,)
+1232            The predicted classes
+1233        """
+1234        check_is_fitted(self.ensemble_estimator)
+1235        return self.label_encoder_.inverse_transform(self.ensemble_estimator.predict(X))
+
+ + +

Predict class value for X. +For a classification model, the predicted class for each sample in X is returned.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • y (array-like of shape (n_samples,)): +The predicted classes
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X): + + + +
+ +
1237    def predict_proba(self, X):
+1238        """Predict class probabilities of the input samples X.
+1239        The predicted class probability depends on the ensemble estimator.
+1240        Parameters
+1241        ----------
+1242        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1243            The input samples.
+1244        Returns
+1245        -------
+1246        y : ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1
+1247            The predicted classes
+1248        """
+1249        check_is_fitted(self.ensemble_estimator)
+1250        return self.ensemble_estimator.predict_proba(X)
+
+ + +

Predict class probabilities of the input samples X. +The predicted class probability depends on the ensemble estimator.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The input samples.
  • +
+ +
Returns
+ +
    +
  • y (ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1): +The predicted classes
  • +
+
+ + +
+
+ +
+ + def + score(self, X, y, sample_weight=None): + + + +
+ +
1252    def score(self, X, y, sample_weight=None):
+1253        """Return the mean accuracy on the given test data and labels.
+1254        In multi-label classification, this is the subset accuracy which is a harsh metric since you require for each sample that each label set be correctly predicted.
+1255        Parameters
+1256        ----------
+1257        X : array-like of shape (n_samples, n_features)
+1258            Test samples.
+1259        y : array-like of shape (n_samples,) or (n_samples, n_outputs)
+1260            True labels for X.
+1261        sample_weight : array-like of shape (n_samples,), optional
+1262            Sample weights., by default None
+1263        Returns
+1264        -------
+1265        score: float
+1266            Mean accuracy of self.predict(X) wrt. y.
+1267        """
+1268        try:
+1269            y = self.label_encoder_.transform(y)
+1270        except ValueError:
+1271            if "le_dict_" not in dir(self):
+1272                self.le_dict_ = dict(
+1273                    zip(
+1274                        self.label_encoder_.classes_,
+1275                        self.label_encoder_.transform(self.label_encoder_.classes_),
+1276                    )
+1277                )
+1278            y = np.array(list(map(lambda x: self.le_dict_.get(x, -1), y)), dtype=y.dtype)
+1279
+1280        return self.ensemble_estimator.score(X, y, sample_weight)
+
+ + +

Return the mean accuracy on the given test data and labels. +In multi-label classification, this is the subset accuracy which is a harsh metric since you require for each sample that each label set be correctly predicted.

+ +
Parameters
+ +
    +
  • X (array-like of shape (n_samples, n_features)): +Test samples.
  • +
  • y (array-like of shape (n_samples,) or (n_samples, n_outputs)): +True labels for X.
  • +
  • sample_weight (array-like of shape (n_samples,), optional): +Sample weights., by default None
  • +
+ +
Returns
+ +
    +
  • score (float): +Mean accuracy of self.predict(X) wrt. y.
  • +
+
+ + +
+
+
Inherited Members
+
+
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + DemocraticCoLearning(sslearn.wrapper._co.BaseCoTraining): + + + +
+ +
118class DemocraticCoLearning(BaseCoTraining):
+119    """
+120    **Democratic Co-learning. Ensemble of classifiers of different types.**
+121    --------------------------------------------
+122
+123    A iterative algorithm that uses a ensemble of classifiers to label instances.
+124    The main process is:
+125    1. Train each classifier with the labeled instances.
+126    2. While any classifier is retrained:
+127        1. Predict the instances from the unlabeled set.
+128        2. Calculate the confidence interval for each classifier for define weights.
+129        3. Calculate the weighted vote for each instance.
+130        4. Calculate the majority vote for each instance.
+131        5. Select the instances to label if majority vote is the same as weighted vote.
+132        6. Select the instances to retrain the classifier, if `only_mislabeled` is False then select all instances, else select only mislabeled instances for each classifier.
+133        7. Retrain the classifier with the new instances if the error rate is lower than the previous iteration.
+134    3. Ignore the classifiers with confidence interval lower than 0.5.
+135    4. Combine the probabilities of each classifier.
+136
+137    **Methods**
+138    -------
+139    - `fit`: Fit the model with the labeled instances.
+140    - `predict` : Predict the class for each instance.
+141    - `predict_proba`: Predict the probability for each class.
+142    - `score`: Return the mean accuracy on the given test data and labels.
+143    
+144    
+145    **Example**
+146    -------
+147    ```python
+148    from sklearn.datasets import load_iris
+149    from sklearn.tree import DecisionTreeClassifier
+150    from sklearn.naive_bayes import GaussianNB
+151    from sklearn.neighbors import KNeighborsClassifier
+152    from sslearn.wrapper import DemocraticCoLearning
+153    from sslearn.model_selection import artificial_ssl_dataset
+154
+155    X, y = load_iris(return_X_y=True)
+156    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+157    dcl = DemocraticCoLearning(base_estimator=[DecisionTreeClassifier(), GaussianNB(), KNeighborsClassifier(n_neighbors=3)])
+158    dcl.fit(X, y)
+159    dcl.score(X_unlabel, y_unlabel)
+160    ``` 
+161
+162    **References**
+163    ----------
+164    Y. Zhou and S. Goldman, (2004) <br>
+165    Democratic co-learning, <br>
+166    in <i>16th IEEE International Conference on Tools with Artificial Intelligence</i>,<br>
+167    pp. 594-602, [10.1109/ICTAI.2004.48](https://doi.org/10.1109/ICTAI.2004.48).
+168    """
+169
+170    def __init__(
+171        self,
+172        base_estimator=[
+173            DecisionTreeClassifier(),
+174            GaussianNB(),
+175            KNeighborsClassifier(n_neighbors=3),
+176        ],
+177        n_estimators=None,
+178        expand_only_mislabeled=True,
+179        alpha=0.95,
+180        q_exp=2,
+181        random_state=None
+182    ):
+183        """
+184        Democratic Co-learning. Ensemble of classifiers of different types.
+185
+186        Parameters
+187        ----------
+188        base_estimator : {ClassifierMixin, list}, optional
+189            An estimator object implementing fit and predict_proba or a list of ClassifierMixin, by default DecisionTreeClassifier()
+190        n_estimators : int, optional
+191            number of base_estimators to use. None if base_estimator is a list, by default None
+192        expand_only_mislabeled : bool, optional
+193            expand only mislabeled instances by itself, by default True
+194        alpha : float, optional
+195            confidence level, by default 0.95
+196        q_exp : int, optional
+197            exponent for the estimation for error rate, by default 2
+198        random_state : int, RandomState instance, optional
+199            controls the randomness of the estimator, by default None
+200        Raises
+201        ------
+202        AttributeError
+203            If n_estimators is None and base_estimator is not a list
+204        """
+205
+206        if isinstance(base_estimator, ClassifierMixin) and n_estimators is not None:
+207            estimators = list()
+208            random_available = True
+209            rand = check_random_state(random_state)
+210            if "random_state" not in dir(base_estimator):
+211                warnings.warn(
+212                    "The classifier will not be able to converge correctly, there is not enough diversity among the estimators (learners should be different).",
+213                    ConvergenceWarning,
+214                )
+215                random_available = False
+216            for i in range(n_estimators):
+217                estimators.append(skclone(base_estimator))
+218                if random_available:
+219                    estimators[i].random_state = rand.randint(0, 1e5)
+220            self.base_estimator = estimators
+221
+222        elif isinstance(base_estimator, list):
+223            self.base_estimator = base_estimator
+224        else:
+225            raise AttributeError(
+226                "If `n_estimators` is None then `base_estimator` must be a `list`."
+227            )
+228        self.base_estimator = check_classifier(self.base_estimator)
+229        self.n_estimators = len(self.base_estimator)
+230        self.one_hot = OneHotEncoder(sparse_output=False)
+231        self.expand_only_mislabeled = expand_only_mislabeled
+232
+233        self.alpha = alpha
+234        self.q_exp = q_exp
+235        self.random_state = random_state
+236
+237    def __weighted_y(self, predictions, weights):
+238        y_complete = np.sum(
+239            [
+240                self.one_hot.transform(p.reshape(-1, 1)) * wi
+241                for p, wi in zip(predictions, weights)
+242            ],
+243            0,
+244        )
+245        y_zeros = np.zeros(y_complete.shape)
+246        y_zeros[np.arange(y_complete.shape[0]), y_complete.argmax(1)] = 1
+247
+248        return self.one_hot.inverse_transform(y_zeros).flatten()
+249
+250    def __calcule_last_confidences(self, X, y):
+251        """Calculate the confidence of each learner
+252
+253        Parameters
+254        ----------
+255        X : array-like
+256            Set of instances
+257        y : array-like
+258            Set of classes for each instance
+259        """
+260        w = []
+261        w = [sum(confidence_interval(X, H, y, self.alpha)) / 2 for H in self.h_]
+262        self.confidences_ = w
+263
+264    def fit(self, X, y, estimator_kwards=None):
+265        """Fit Democratic-Co classifier
+266
+267        Parameters
+268        ----------
+269        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+270            The training input samples.
+271        y : array-like of shape (n_samples,)
+272            The target values (class labels), -1 if unlabel.
+273        estimator_kwards : {list, dict}, optional
+274            list of kwards for each estimator or kwards for all estimators, by default None
+275
+276        Returns
+277        -------
+278        self : DemocraticCoLearning
+279            fitted classifier
+280        """
+281
+282        X_label, y_label, X_unlabel = get_dataset(X, y)
+283
+284        is_df = isinstance(X_label, pd.DataFrame)
+285
+286        self.classes_ = np.unique(y_label)
+287        self.encoder = LabelEncoder().fit(y_label)
+288        y_label = self.encoder.transform(y_label)
+289
+290        self.one_hot.fit(y_label.reshape(-1, 1))
+291
+292        L = [X_label] * self.n_estimators
+293        Ly = [y_label] * self.n_estimators
+294        # This variable prevents duplicate instances.
+295        L_added = [np.zeros(X_unlabel.shape[0]).astype(bool)] * self.n_estimators
+296        e = [0] * self.n_estimators
+297
+298        if estimator_kwards is None:
+299            estimator_kwards = [{}] * self.n_estimators
+300
+301        changed = True
+302        iteration = 0
+303        while changed:
+304            changed = False
+305            iteration_dict = {}
+306            iteration += 1
+307
+308            for i in range(self.n_estimators):
+309                self.base_estimator[i].fit(L[i], Ly[i], **estimator_kwards[i])
+310            if X_unlabel.shape[0] == 0:
+311                break
+312            # Majority Vote
+313            predictions = [H.predict(X_unlabel) for H in self.base_estimator]
+314            majority_class = mode(np.array(predictions, dtype=predictions[0].dtype))[0]
+315            # majority_class = st.mode(np.array(predictions, dtype=predictions[0].dtype), axis=0, keepdims=True)[
+316            #     0
+317            # ].flatten()  # K in pseudocode
+318
+319            L_ = [[]] * self.n_estimators
+320            Ly_ = [[]] * self.n_estimators
+321
+322            # Calculate confidence interval
+323            conf_interval = [
+324                confidence_interval(
+325                    X_label,
+326                    H,
+327                    y_label,
+328                    self.alpha
+329                )
+330                for H in self.base_estimator
+331            ]
+332
+333            weights = [(li + hi) / 2 for (li, hi) in conf_interval]
+334            iteration_dict["weights"] = {
+335                "cl" + str(i): (l, h, w)
+336                for i, ((l, h), w) in enumerate(zip(conf_interval, weights))
+337            }
+338            # weighted vote
+339            weighted_class = self.__weighted_y(predictions, weights)
+340
+341            # If `weighted_class` is equal as `majority_class` then
+342            # the sum of classifier's weights of max voted class
+343            # is greater than the max of sum of classifier's weights
+344            # from another classes.
+345
+346            candidates = weighted_class == majority_class
+347            candidates_bool = list()
+348
+349            if not self.expand_only_mislabeled:
+350                all_same_list = list()
+351                for i in range(1, self.n_estimators):
+352                    all_same_list.append(predictions[i] == predictions[i - 1])
+353                all_same = np.logical_and(*all_same_list)
+354            # new_instances = []
+355            for i in range(self.n_estimators):
+356
+357                mispredictions = predictions[i] != weighted_class
+358                # An instance from U are added to Li' only if:
+359                #   It is a misprediction for i
+360                #   It is a candidate (weighted_class are same majority_class)
+361                #   It hasn't been added yet in Li
+362
+363                candidates_temp = np.logical_and(mispredictions, candidates)
+364
+365                if not self.expand_only_mislabeled:
+366                    candidates_temp = np.logical_or(candidates_temp, all_same)
+367
+368                to_add = np.logical_and(np.logical_not(L_added[i]), candidates_temp)
+369
+370                candidates_bool.append(to_add)
+371                if is_df:
+372                    L_[i] = X_unlabel.iloc[to_add, :]
+373                else:
+374                    L_[i] = X_unlabel[to_add, :]
+375                Ly_[i] = weighted_class[to_add]
+376
+377            new_conf_interval = [
+378                confidence_interval(L[i], H, Ly[i], self.alpha)
+379                for i, H in enumerate(self.base_estimator)
+380            ]
+381            e_factor = 1 - sum([l_ for l_, _ in new_conf_interval]) / self.n_estimators
+382            for i, _ in enumerate(self.base_estimator):
+383                if len(L_[i]) > 0:
+384
+385                    qi = len(L[i]) * ((1 - 2 * (e[i] / len(L[i]))) ** 2)
+386                    e_i = e_factor * len(L_[i])
+387                    # |Li|+|L'i| == |Li U L'i| because of to_add
+388                    q_i = (len(L[i]) + len(L_[i])) * (
+389                        1 - 2 * (e[i] + e_i) / (len(L[i]) + len(L_[i]))
+390                    ) ** self.q_exp
+391                    if q_i <= qi:
+392                        continue
+393                    L_added[i] = np.logical_or(L_added[i], candidates_bool[i])
+394                    if is_df:
+395                        L[i] = pd.concat([L[i], L_[i]])
+396                    else:
+397                        L[i] = np.concatenate((L[i], np.array(L_[i])))
+398                    Ly[i] = np.concatenate((Ly[i], np.array(Ly_[i])))
+399
+400                    e[i] = e[i] + e_i
+401                    changed = True
+402
+403        self.h_ = self.base_estimator
+404        self.__calcule_last_confidences(X_label, y_label)
+405
+406        # Ignore hypothesis
+407        self.h_ = [H for w, H in zip(self.confidences_, self.h_) if w > 0.5]
+408        self.confidences_ = [w for w in self.confidences_ if w > 0.5]
+409
+410        self.columns_ = [list(range(X.shape[1]))] * self.n_estimators
+411
+412        return self
+413
+414    def __combine_probabilities(self, X):
+415
+416        n_instances = X.shape[0]  # uppercase X as it will be an np.array
+417        sizes = np.zeros((n_instances, len(self.classes_)), dtype=int)
+418        C = np.zeros((n_instances, len(self.classes_)), dtype=float)
+419        Cavg = np.zeros((n_instances, len(self.classes_)), dtype=float)
+420
+421        for w, H in zip(self.confidences_, self.h_):
+422            cj = H.predict(X)
+423            factor = self.one_hot.transform(cj.reshape(-1, 1)).astype(int)
+424            C += w * factor
+425            sizes += factor
+426
+427        Cavg[sizes == 0] = 0.5  # «voting power» of 0.5 for small groups
+428        ne = (sizes != 0)  # non empty groups
+429        Cavg[ne] = (sizes[ne] + 0.5) / (sizes[ne] + 1) * C[ne] / sizes[ne]
+430
+431        return softmax(Cavg, axis=1)
+432
+433    def predict_proba(self, X):
+434        """Predict probability for each possible outcome.
+435
+436        Parameters
+437        ----------
+438        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+439            Array representing the data.
+440        Returns
+441        -------
+442        class probabilities: ndarray of shape (n_samples, n_classes)
+443            Array with prediction probabilities.
+444        """
+445        if "h_" in dir(self):
+446            if len(X) == 1:
+447                X = [X]
+448            return self.__combine_probabilities(X)
+449        else:
+450            raise NotFittedError("Classifier not fitted")
+
+ + +

Democratic Co-learning. Ensemble of classifiers of different types.

+ +

A iterative algorithm that uses a ensemble of classifiers to label instances. +The main process is:

+ +
    +
  1. Train each classifier with the labeled instances.
  2. +
  3. While any classifier is retrained: +
      +
    1. Predict the instances from the unlabeled set.
    2. +
    3. Calculate the confidence interval for each classifier for define weights.
    4. +
    5. Calculate the weighted vote for each instance.
    6. +
    7. Calculate the majority vote for each instance.
    8. +
    9. Select the instances to label if majority vote is the same as weighted vote.
    10. +
    11. Select the instances to retrain the classifier, if only_mislabeled is False then select all instances, else select only mislabeled instances for each classifier.
    12. +
    13. Retrain the classifier with the new instances if the error rate is lower than the previous iteration.
    14. +
  4. +
  5. Ignore the classifiers with confidence interval lower than 0.5.
  6. +
  7. Combine the probabilities of each classifier.
  8. +
+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sklearn.tree import DecisionTreeClassifier
+from sklearn.naive_bayes import GaussianNB
+from sklearn.neighbors import KNeighborsClassifier
+from sslearn.wrapper import DemocraticCoLearning
+from sslearn.model_selection import artificial_ssl_dataset
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+dcl = DemocraticCoLearning(base_estimator=[DecisionTreeClassifier(), GaussianNB(), KNeighborsClassifier(n_neighbors=3)])
+dcl.fit(X, y)
+dcl.score(X_unlabel, y_unlabel)
+
+
+ +

References

+ +

Y. Zhou and S. Goldman, (2004)
+Democratic co-learning,
+in 16th IEEE International Conference on Tools with Artificial Intelligence,
+pp. 594-602, 10.1109/ICTAI.2004.48.

+
+ + +
+ +
+ + DemocraticCoLearning( base_estimator=[DecisionTreeClassifier(), GaussianNB(), KNeighborsClassifier(n_neighbors=3)], n_estimators=None, expand_only_mislabeled=True, alpha=0.95, q_exp=2, random_state=None) + + + +
+ +
170    def __init__(
+171        self,
+172        base_estimator=[
+173            DecisionTreeClassifier(),
+174            GaussianNB(),
+175            KNeighborsClassifier(n_neighbors=3),
+176        ],
+177        n_estimators=None,
+178        expand_only_mislabeled=True,
+179        alpha=0.95,
+180        q_exp=2,
+181        random_state=None
+182    ):
+183        """
+184        Democratic Co-learning. Ensemble of classifiers of different types.
+185
+186        Parameters
+187        ----------
+188        base_estimator : {ClassifierMixin, list}, optional
+189            An estimator object implementing fit and predict_proba or a list of ClassifierMixin, by default DecisionTreeClassifier()
+190        n_estimators : int, optional
+191            number of base_estimators to use. None if base_estimator is a list, by default None
+192        expand_only_mislabeled : bool, optional
+193            expand only mislabeled instances by itself, by default True
+194        alpha : float, optional
+195            confidence level, by default 0.95
+196        q_exp : int, optional
+197            exponent for the estimation for error rate, by default 2
+198        random_state : int, RandomState instance, optional
+199            controls the randomness of the estimator, by default None
+200        Raises
+201        ------
+202        AttributeError
+203            If n_estimators is None and base_estimator is not a list
+204        """
+205
+206        if isinstance(base_estimator, ClassifierMixin) and n_estimators is not None:
+207            estimators = list()
+208            random_available = True
+209            rand = check_random_state(random_state)
+210            if "random_state" not in dir(base_estimator):
+211                warnings.warn(
+212                    "The classifier will not be able to converge correctly, there is not enough diversity among the estimators (learners should be different).",
+213                    ConvergenceWarning,
+214                )
+215                random_available = False
+216            for i in range(n_estimators):
+217                estimators.append(skclone(base_estimator))
+218                if random_available:
+219                    estimators[i].random_state = rand.randint(0, 1e5)
+220            self.base_estimator = estimators
+221
+222        elif isinstance(base_estimator, list):
+223            self.base_estimator = base_estimator
+224        else:
+225            raise AttributeError(
+226                "If `n_estimators` is None then `base_estimator` must be a `list`."
+227            )
+228        self.base_estimator = check_classifier(self.base_estimator)
+229        self.n_estimators = len(self.base_estimator)
+230        self.one_hot = OneHotEncoder(sparse_output=False)
+231        self.expand_only_mislabeled = expand_only_mislabeled
+232
+233        self.alpha = alpha
+234        self.q_exp = q_exp
+235        self.random_state = random_state
+
+ + +

Democratic Co-learning. Ensemble of classifiers of different types.

+ +
Parameters
+ +
    +
  • base_estimator ({ClassifierMixin, list}, optional): +An estimator object implementing fit and predict_proba or a list of ClassifierMixin, by default DecisionTreeClassifier()
  • +
  • n_estimators (int, optional): +number of base_estimators to use. None if base_estimator is a list, by default None
  • +
  • expand_only_mislabeled (bool, optional): +expand only mislabeled instances by itself, by default True
  • +
  • alpha (float, optional): +confidence level, by default 0.95
  • +
  • q_exp (int, optional): +exponent for the estimation for error rate, by default 2
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
+ +
Raises
+ +
    +
  • AttributeError: If n_estimators is None and base_estimator is not a list
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, estimator_kwards=None): + + + +
+ +
264    def fit(self, X, y, estimator_kwards=None):
+265        """Fit Democratic-Co classifier
+266
+267        Parameters
+268        ----------
+269        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+270            The training input samples.
+271        y : array-like of shape (n_samples,)
+272            The target values (class labels), -1 if unlabel.
+273        estimator_kwards : {list, dict}, optional
+274            list of kwards for each estimator or kwards for all estimators, by default None
+275
+276        Returns
+277        -------
+278        self : DemocraticCoLearning
+279            fitted classifier
+280        """
+281
+282        X_label, y_label, X_unlabel = get_dataset(X, y)
+283
+284        is_df = isinstance(X_label, pd.DataFrame)
+285
+286        self.classes_ = np.unique(y_label)
+287        self.encoder = LabelEncoder().fit(y_label)
+288        y_label = self.encoder.transform(y_label)
+289
+290        self.one_hot.fit(y_label.reshape(-1, 1))
+291
+292        L = [X_label] * self.n_estimators
+293        Ly = [y_label] * self.n_estimators
+294        # This variable prevents duplicate instances.
+295        L_added = [np.zeros(X_unlabel.shape[0]).astype(bool)] * self.n_estimators
+296        e = [0] * self.n_estimators
+297
+298        if estimator_kwards is None:
+299            estimator_kwards = [{}] * self.n_estimators
+300
+301        changed = True
+302        iteration = 0
+303        while changed:
+304            changed = False
+305            iteration_dict = {}
+306            iteration += 1
+307
+308            for i in range(self.n_estimators):
+309                self.base_estimator[i].fit(L[i], Ly[i], **estimator_kwards[i])
+310            if X_unlabel.shape[0] == 0:
+311                break
+312            # Majority Vote
+313            predictions = [H.predict(X_unlabel) for H in self.base_estimator]
+314            majority_class = mode(np.array(predictions, dtype=predictions[0].dtype))[0]
+315            # majority_class = st.mode(np.array(predictions, dtype=predictions[0].dtype), axis=0, keepdims=True)[
+316            #     0
+317            # ].flatten()  # K in pseudocode
+318
+319            L_ = [[]] * self.n_estimators
+320            Ly_ = [[]] * self.n_estimators
+321
+322            # Calculate confidence interval
+323            conf_interval = [
+324                confidence_interval(
+325                    X_label,
+326                    H,
+327                    y_label,
+328                    self.alpha
+329                )
+330                for H in self.base_estimator
+331            ]
+332
+333            weights = [(li + hi) / 2 for (li, hi) in conf_interval]
+334            iteration_dict["weights"] = {
+335                "cl" + str(i): (l, h, w)
+336                for i, ((l, h), w) in enumerate(zip(conf_interval, weights))
+337            }
+338            # weighted vote
+339            weighted_class = self.__weighted_y(predictions, weights)
+340
+341            # If `weighted_class` is equal as `majority_class` then
+342            # the sum of classifier's weights of max voted class
+343            # is greater than the max of sum of classifier's weights
+344            # from another classes.
+345
+346            candidates = weighted_class == majority_class
+347            candidates_bool = list()
+348
+349            if not self.expand_only_mislabeled:
+350                all_same_list = list()
+351                for i in range(1, self.n_estimators):
+352                    all_same_list.append(predictions[i] == predictions[i - 1])
+353                all_same = np.logical_and(*all_same_list)
+354            # new_instances = []
+355            for i in range(self.n_estimators):
+356
+357                mispredictions = predictions[i] != weighted_class
+358                # An instance from U are added to Li' only if:
+359                #   It is a misprediction for i
+360                #   It is a candidate (weighted_class are same majority_class)
+361                #   It hasn't been added yet in Li
+362
+363                candidates_temp = np.logical_and(mispredictions, candidates)
+364
+365                if not self.expand_only_mislabeled:
+366                    candidates_temp = np.logical_or(candidates_temp, all_same)
+367
+368                to_add = np.logical_and(np.logical_not(L_added[i]), candidates_temp)
+369
+370                candidates_bool.append(to_add)
+371                if is_df:
+372                    L_[i] = X_unlabel.iloc[to_add, :]
+373                else:
+374                    L_[i] = X_unlabel[to_add, :]
+375                Ly_[i] = weighted_class[to_add]
+376
+377            new_conf_interval = [
+378                confidence_interval(L[i], H, Ly[i], self.alpha)
+379                for i, H in enumerate(self.base_estimator)
+380            ]
+381            e_factor = 1 - sum([l_ for l_, _ in new_conf_interval]) / self.n_estimators
+382            for i, _ in enumerate(self.base_estimator):
+383                if len(L_[i]) > 0:
+384
+385                    qi = len(L[i]) * ((1 - 2 * (e[i] / len(L[i]))) ** 2)
+386                    e_i = e_factor * len(L_[i])
+387                    # |Li|+|L'i| == |Li U L'i| because of to_add
+388                    q_i = (len(L[i]) + len(L_[i])) * (
+389                        1 - 2 * (e[i] + e_i) / (len(L[i]) + len(L_[i]))
+390                    ) ** self.q_exp
+391                    if q_i <= qi:
+392                        continue
+393                    L_added[i] = np.logical_or(L_added[i], candidates_bool[i])
+394                    if is_df:
+395                        L[i] = pd.concat([L[i], L_[i]])
+396                    else:
+397                        L[i] = np.concatenate((L[i], np.array(L_[i])))
+398                    Ly[i] = np.concatenate((Ly[i], np.array(Ly_[i])))
+399
+400                    e[i] = e[i] + e_i
+401                    changed = True
+402
+403        self.h_ = self.base_estimator
+404        self.__calcule_last_confidences(X_label, y_label)
+405
+406        # Ignore hypothesis
+407        self.h_ = [H for w, H in zip(self.confidences_, self.h_) if w > 0.5]
+408        self.confidences_ = [w for w in self.confidences_ if w > 0.5]
+409
+410        self.columns_ = [list(range(X.shape[1]))] * self.n_estimators
+411
+412        return self
+
+ + +

Fit Democratic-Co classifier

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabel.
  • +
  • estimator_kwards ({list, dict}, optional): +list of kwards for each estimator or kwards for all estimators, by default None
  • +
+ +
Returns
+ +
    +
  • self (DemocraticCoLearning): +fitted classifier
  • +
+
+ + +
+
+ +
+ + def + predict_proba(self, X): + + + +
+ +
433    def predict_proba(self, X):
+434        """Predict probability for each possible outcome.
+435
+436        Parameters
+437        ----------
+438        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+439            Array representing the data.
+440        Returns
+441        -------
+442        class probabilities: ndarray of shape (n_samples, n_classes)
+443            Array with prediction probabilities.
+444        """
+445        if "h_" in dir(self):
+446            if len(X) == 1:
+447                X = [X]
+448            return self.__combine_probabilities(X)
+449        else:
+450            raise NotFittedError("Classifier not fitted")
+
+ + +

Predict probability for each possible outcome.

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +Array representing the data.
  • +
+ +
Returns
+ +
    +
  • class probabilities (ndarray of shape (n_samples, n_classes)): +Array with prediction probabilities.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.wrapper._co.BaseCoTraining
+
score
+ +
+ +
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + Rasco(sslearn.wrapper._co.BaseCoTraining): + + + +
+ +
767class Rasco(BaseCoTraining):
+768    """
+769    **Co-Training based on random subspaces**
+770    --------------------------------------------
+771
+772    Generate a set of random subspaces and train a classifier for each subspace.
+773
+774    The main process is:
+775    1. Generate a set of random subspaces.
+776    2. Train a classifier for each subspace.
+777    3. While max iterations is not reached or any instance is unlabeled:
+778        1. Predict the instances from the unlabeled set for each classifier.
+779        2. Calculate the average of the predictions.
+780        3. Select the instances with the highest probability.
+781        4. Label the instances with the highest probability, keeping the balance of the classes.
+782        5. Retrain the classifier with the new instances.
+783    4. Combine the probabilities of each classifier.
+784
+785    **Methods**
+786    -------
+787    - `fit`: Fit the model with the labeled instances.
+788    - `predict` : Predict the class for each instance.
+789    - `predict_proba`: Predict the probability for each class.
+790    - `score`: Return the mean accuracy on the given test data and labels.
+791
+792    **Example**
+793    -------
+794    ```python
+795    from sklearn.datasets import load_iris
+796    from sslearn.wrapper import Rasco
+797    from sslearn.model_selection import artificial_ssl_dataset
+798
+799    X, y = load_iris(return_X_y=True)
+800    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+801    rasco = Rasco()
+802    rasco.fit(X, y)
+803    rasco.score(X_unlabel, y_unlabel) 
+804    ```    
+805
+806    **References**
+807    ----------
+808    Wang, J., Luo, S. W., & Zeng, X. H. (2008).<br>
+809    A random subspace method for co-training,<br>
+810    in <i>2008 IEEE International Joint Conference on Neural Networks</i><br>
+811    IEEE World Congress on Computational Intelligence<br>
+812    (pp. 195-200). IEEE. [10.1109/IJCNN.2008.4633789](https://doi.org/10.1109/IJCNN.2008.4633789)
+813    """
+814
+815
+816    def __init__(
+817        self,
+818        base_estimator=DecisionTreeClassifier(),
+819        max_iterations=10,
+820        n_estimators=30,
+821        subspace_size=None,
+822        random_state=None,
+823        n_jobs=None,
+824    ):
+825        """
+826        Co-Training based on random subspaces
+827
+828        Parameters
+829        ----------
+830        base_estimator : ClassifierMixin, optional
+831            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+832        max_iterations : int, optional
+833            Maximum number of iterations allowed. Should be greater than or equal to 0.
+834            If is -1 then will be infinite iterations until U be empty, by default 10
+835        n_estimators : int, optional
+836            The number of base estimators in the ensemble., by default 30
+837        subspace_size : int, optional
+838            The number of features for each subspace. If it is None will be the half of the features size., by default None
+839        random_state : int, RandomState instance, optional
+840            controls the randomness of the estimator, by default None
+841        """
+842        self.base_estimator = check_classifier(base_estimator, True, n_estimators)  # C in paper
+843        self.max_iterations = max_iterations  # J in paper
+844        self.n_estimators = n_estimators  # K in paper
+845        self.subspace_size = subspace_size  # m in paper
+846        self.n_jobs = check_n_jobs(n_jobs)
+847
+848        self.random_state = random_state
+849
+850    def _generate_random_subspaces(self, X, y=None, random_state=None):
+851        """Generate the random subspaces
+852
+853        Parameters
+854        ----------
+855        X : array like
+856            Labeled dataset
+857        y : array like, optional
+858            Target for each X, not needed on Rasco, by default None
+859
+860        Returns
+861        -------
+862        subspaces : list
+863            List of index of features
+864        """
+865        random_state = check_random_state(random_state)
+866        features = list(range(X.shape[1]))
+867        idxs = []
+868        for _ in range(self.n_estimators):
+869            idxs.append(random_state.permutation(features)[: self.subspace_size])
+870        return idxs
+871
+872    def _fit_estimator(self, X, y, i, **kwards):
+873        estimator = self.base_estimator
+874        if type(self.base_estimator) == list:
+875            estimator = skclone(self.base_estimator[i])
+876        return skclone(estimator).fit(X, y, **kwards)
+877
+878    def fit(self, X, y, **kwards):
+879        """Build a Rasco classifier from the training set (X, y).
+880
+881        Parameters
+882        ----------
+883        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+884            The training input samples.
+885        y : array-like of shape (n_samples,)
+886            The target values (class labels), -1 if unlabel.
+887
+888        Returns
+889        -------
+890        self: Rasco
+891            Fitted estimator.
+892        """
+893        X_label, y_label, X_unlabel = get_dataset(X, y)
+894        self.classes_ = np.unique(y_label)
+895
+896        is_df = isinstance(X_label, pd.DataFrame)
+897
+898        random_state = check_random_state(self.random_state)
+899
+900        self.classes_ = np.unique(y_label)
+901        number_per_class = calc_number_per_class(y_label)
+902
+903        if self.subspace_size is None:
+904            self.subspace_size = int(X.shape[1] / 2)
+905        idxs = self._generate_random_subspaces(X_label, y_label, random_state)
+906
+907        cfs = Parallel(n_jobs=self.n_jobs)(
+908            delayed(self._fit_estimator)(X_label[:, idxs[i]] if not is_df else X_label.iloc[:, idxs[i]], y_label, i, **kwards)
+909            for i in range(self.n_estimators)
+910        )
+911
+912        it = 0
+913        while True:
+914            if (self.max_iterations != -1 and it >= self.max_iterations) or len(
+915                X_unlabel
+916            ) == 0:
+917                break
+918
+919            raw_predicions = []
+920            for i in range(self.n_estimators):
+921                rp = cfs[i].predict_proba(X_unlabel[:, idxs[i]] if not is_df else X_unlabel.iloc[:, idxs[i]])
+922                raw_predicions.append(rp)
+923            raw_predicions = sum(raw_predicions) / self.n_estimators
+924            predictions = np.max(raw_predicions, axis=1)
+925            class_predicted = np.argmax(raw_predicions, axis=1)
+926            pseudoy = self.classes_.take(class_predicted, axis=0)
+927
+928            final_instances = list()
+929            best_candidates = np.argsort(predictions, kind="mergesort")[::-1]
+930            for c in self.classes_:
+931                final_instances += list(best_candidates[pseudoy[best_candidates] == c])[:number_per_class[c]]
+932
+933            Lj = X_unlabel[final_instances] if not is_df else X_unlabel.iloc[final_instances]
+934            yj = pseudoy[final_instances]
+935
+936            X_label = np.append(X_label, Lj, axis=0) if not is_df else pd.concat([X_label, Lj])
+937            y_label = np.append(y_label, yj)
+938            X_unlabel = np.delete(X_unlabel, final_instances, axis=0) if not is_df else X_unlabel.drop(index=X_unlabel.index[final_instances])
+939
+940            cfs = Parallel(n_jobs=self.n_jobs)(
+941                delayed(self._fit_estimator)(X_label[:, idxs[i]] if not is_df else X_label.iloc[:, idxs[i]], y_label, i, **kwards)
+942                for i in range(self.n_estimators)
+943            )
+944
+945            it += 1
+946
+947        self.h_ = cfs
+948        self.columns_ = idxs
+949
+950        return self
+
+ + +

Co-Training based on random subspaces

+ +

Generate a set of random subspaces and train a classifier for each subspace.

+ +

The main process is:

+ +
    +
  1. Generate a set of random subspaces.
  2. +
  3. Train a classifier for each subspace.
  4. +
  5. While max iterations is not reached or any instance is unlabeled: +
      +
    1. Predict the instances from the unlabeled set for each classifier.
    2. +
    3. Calculate the average of the predictions.
    4. +
    5. Select the instances with the highest probability.
    6. +
    7. Label the instances with the highest probability, keeping the balance of the classes.
    8. +
    9. Retrain the classifier with the new instances.
    10. +
  6. +
  7. Combine the probabilities of each classifier.
  8. +
+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sslearn.wrapper import Rasco
+from sslearn.model_selection import artificial_ssl_dataset
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+rasco = Rasco()
+rasco.fit(X, y)
+rasco.score(X_unlabel, y_unlabel) 
+
+
+ +

References

+ +

Wang, J., Luo, S. W., & Zeng, X. H. (2008).
+A random subspace method for co-training,
+in 2008 IEEE International Joint Conference on Neural Networks
+IEEE World Congress on Computational Intelligence
+(pp. 195-200). IEEE. 10.1109/IJCNN.2008.4633789

+
+ + +
+ +
+ + Rasco( base_estimator=DecisionTreeClassifier(), max_iterations=10, n_estimators=30, subspace_size=None, random_state=None, n_jobs=None) + + + +
+ +
816    def __init__(
+817        self,
+818        base_estimator=DecisionTreeClassifier(),
+819        max_iterations=10,
+820        n_estimators=30,
+821        subspace_size=None,
+822        random_state=None,
+823        n_jobs=None,
+824    ):
+825        """
+826        Co-Training based on random subspaces
+827
+828        Parameters
+829        ----------
+830        base_estimator : ClassifierMixin, optional
+831            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+832        max_iterations : int, optional
+833            Maximum number of iterations allowed. Should be greater than or equal to 0.
+834            If is -1 then will be infinite iterations until U be empty, by default 10
+835        n_estimators : int, optional
+836            The number of base estimators in the ensemble., by default 30
+837        subspace_size : int, optional
+838            The number of features for each subspace. If it is None will be the half of the features size., by default None
+839        random_state : int, RandomState instance, optional
+840            controls the randomness of the estimator, by default None
+841        """
+842        self.base_estimator = check_classifier(base_estimator, True, n_estimators)  # C in paper
+843        self.max_iterations = max_iterations  # J in paper
+844        self.n_estimators = n_estimators  # K in paper
+845        self.subspace_size = subspace_size  # m in paper
+846        self.n_jobs = check_n_jobs(n_jobs)
+847
+848        self.random_state = random_state
+
+ + +

Co-Training based on random subspaces

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • +
  • max_iterations (int, optional): +Maximum number of iterations allowed. Should be greater than or equal to 0. +If is -1 then will be infinite iterations until U be empty, by default 10
  • +
  • n_estimators (int, optional): +The number of base estimators in the ensemble., by default 30
  • +
  • subspace_size (int, optional): +The number of features for each subspace. If it is None will be the half of the features size., by default None
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **kwards): + + + +
+ +
878    def fit(self, X, y, **kwards):
+879        """Build a Rasco classifier from the training set (X, y).
+880
+881        Parameters
+882        ----------
+883        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+884            The training input samples.
+885        y : array-like of shape (n_samples,)
+886            The target values (class labels), -1 if unlabel.
+887
+888        Returns
+889        -------
+890        self: Rasco
+891            Fitted estimator.
+892        """
+893        X_label, y_label, X_unlabel = get_dataset(X, y)
+894        self.classes_ = np.unique(y_label)
+895
+896        is_df = isinstance(X_label, pd.DataFrame)
+897
+898        random_state = check_random_state(self.random_state)
+899
+900        self.classes_ = np.unique(y_label)
+901        number_per_class = calc_number_per_class(y_label)
+902
+903        if self.subspace_size is None:
+904            self.subspace_size = int(X.shape[1] / 2)
+905        idxs = self._generate_random_subspaces(X_label, y_label, random_state)
+906
+907        cfs = Parallel(n_jobs=self.n_jobs)(
+908            delayed(self._fit_estimator)(X_label[:, idxs[i]] if not is_df else X_label.iloc[:, idxs[i]], y_label, i, **kwards)
+909            for i in range(self.n_estimators)
+910        )
+911
+912        it = 0
+913        while True:
+914            if (self.max_iterations != -1 and it >= self.max_iterations) or len(
+915                X_unlabel
+916            ) == 0:
+917                break
+918
+919            raw_predicions = []
+920            for i in range(self.n_estimators):
+921                rp = cfs[i].predict_proba(X_unlabel[:, idxs[i]] if not is_df else X_unlabel.iloc[:, idxs[i]])
+922                raw_predicions.append(rp)
+923            raw_predicions = sum(raw_predicions) / self.n_estimators
+924            predictions = np.max(raw_predicions, axis=1)
+925            class_predicted = np.argmax(raw_predicions, axis=1)
+926            pseudoy = self.classes_.take(class_predicted, axis=0)
+927
+928            final_instances = list()
+929            best_candidates = np.argsort(predictions, kind="mergesort")[::-1]
+930            for c in self.classes_:
+931                final_instances += list(best_candidates[pseudoy[best_candidates] == c])[:number_per_class[c]]
+932
+933            Lj = X_unlabel[final_instances] if not is_df else X_unlabel.iloc[final_instances]
+934            yj = pseudoy[final_instances]
+935
+936            X_label = np.append(X_label, Lj, axis=0) if not is_df else pd.concat([X_label, Lj])
+937            y_label = np.append(y_label, yj)
+938            X_unlabel = np.delete(X_unlabel, final_instances, axis=0) if not is_df else X_unlabel.drop(index=X_unlabel.index[final_instances])
+939
+940            cfs = Parallel(n_jobs=self.n_jobs)(
+941                delayed(self._fit_estimator)(X_label[:, idxs[i]] if not is_df else X_label.iloc[:, idxs[i]], y_label, i, **kwards)
+942                for i in range(self.n_estimators)
+943            )
+944
+945            it += 1
+946
+947        self.h_ = cfs
+948        self.columns_ = idxs
+949
+950        return self
+
+ + +

Build a Rasco classifier from the training set (X, y).

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabel.
  • +
+ +
Returns
+ +
    +
  • self (Rasco): +Fitted estimator.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.wrapper._co.BaseCoTraining
+
predict_proba
+
score
+ +
+ +
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + RelRasco(sslearn.wrapper.Rasco): + + + +
+ +
 953class RelRasco(Rasco):
+ 954    """
+ 955    **Co-Training based on relevant random subspaces**
+ 956    --------------------------------------------
+ 957
+ 958    Is a variation of `sslearn.wrapper.Rasco` that uses the mutual information of each feature to select the random subspaces.
+ 959    The process of training is the same as Rasco.
+ 960
+ 961    **Methods**
+ 962    -------
+ 963    - `fit`: Fit the model with the labeled instances.
+ 964    - `predict` : Predict the class for each instance.
+ 965    - `predict_proba`: Predict the probability for each class.
+ 966    - `score`: Return the mean accuracy on the given test data and labels.
+ 967
+ 968    **Example**
+ 969    -------
+ 970    ```python
+ 971    from sklearn.datasets import load_iris
+ 972    from sslearn.wrapper import RelRasco
+ 973    from sslearn.model_selection import artificial_ssl_dataset
+ 974
+ 975    X, y = load_iris(return_X_y=True)
+ 976    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+ 977    relrasco = RelRasco()
+ 978    relrasco.fit(X, y)
+ 979    relrasco.score(X_unlabel, y_unlabel)
+ 980    ```
+ 981
+ 982    **References**
+ 983    ----------
+ 984    Yaslan, Y., & Cataltepe, Z. (2010).<br>
+ 985    Co-training with relevant random subspaces.<br>
+ 986    <i>Neurocomputing</i>, 73(10-12), 1652-1661.<br>
+ 987    [10.1016/j.neucom.2010.01.018](https://doi.org/10.1016/j.neucom.2010.01.018)
+ 988    """
+ 989
+ 990    def __init__(
+ 991        self,
+ 992        base_estimator=DecisionTreeClassifier(),
+ 993        max_iterations=10,
+ 994        n_estimators=30,
+ 995        subspace_size=None,
+ 996        random_state=None,
+ 997        n_jobs=None,
+ 998    ):
+ 999        """
+1000        Co-Training with relevant random subspaces
+1001
+1002        Parameters
+1003        ----------
+1004        base_estimator : ClassifierMixin, optional
+1005            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+1006        max_iterations : int, optional
+1007            Maximum number of iterations allowed. Should be greater than or equal to 0.
+1008            If is -1 then will be infinite iterations until U be empty, by default 10
+1009        n_estimators : int, optional
+1010            The number of base estimators in the ensemble., by default 30
+1011        subspace_size : int, optional
+1012            The number of features for each subspace. If it is None will be the half of the features size., by default None
+1013        random_state : int, RandomState instance, optional
+1014            controls the randomness of the estimator, by default None
+1015        n_jobs : int, optional
+1016            The number of jobs to run in parallel. -1 means using all processors., by default None
+1017
+1018        """
+1019        super().__init__(
+1020            base_estimator,
+1021            max_iterations,
+1022            n_estimators,
+1023            subspace_size,
+1024            random_state,
+1025            n_jobs,
+1026        )
+1027
+1028    def _generate_random_subspaces(self, X, y, random_state=None):
+1029        """Generate the relevant random subspcaes
+1030
+1031        Parameters
+1032        ----------
+1033        X : array like
+1034            Labeled dataset
+1035        y : array like, optional
+1036            Target for each X, only needed on Rel-Rasco, by default None
+1037
+1038        Returns
+1039        -------
+1040        subspaces: list
+1041            List of index of features
+1042        """
+1043        random_state = check_random_state(random_state)
+1044        relevance = mutual_info_classif(X, y, random_state=random_state)
+1045        idxs = []
+1046        for _ in range(self.n_estimators):
+1047            subspace = []
+1048            for __ in range(self.subspace_size):
+1049                f1 = random_state.randint(0, X.shape[1])
+1050                f2 = random_state.randint(0, X.shape[1])
+1051                if relevance[f1] > relevance[f2]:
+1052                    subspace.append(f1)
+1053                else:
+1054                    subspace.append(f2)
+1055            idxs.append(subspace)
+1056        return idxs
+
+ + +

Co-Training based on relevant random subspaces

+ +

Is a variation of sslearn.wrapper.Rasco that uses the mutual information of each feature to select the random subspaces. +The process of training is the same as Rasco.

+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sslearn.wrapper import RelRasco
+from sslearn.model_selection import artificial_ssl_dataset
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+relrasco = RelRasco()
+relrasco.fit(X, y)
+relrasco.score(X_unlabel, y_unlabel)
+
+
+ +

References

+ +

Yaslan, Y., & Cataltepe, Z. (2010).
+Co-training with relevant random subspaces.
+Neurocomputing, 73(10-12), 1652-1661.
+10.1016/j.neucom.2010.01.018

+
+ + +
+ +
+ + RelRasco( base_estimator=DecisionTreeClassifier(), max_iterations=10, n_estimators=30, subspace_size=None, random_state=None, n_jobs=None) + + + +
+ +
 990    def __init__(
+ 991        self,
+ 992        base_estimator=DecisionTreeClassifier(),
+ 993        max_iterations=10,
+ 994        n_estimators=30,
+ 995        subspace_size=None,
+ 996        random_state=None,
+ 997        n_jobs=None,
+ 998    ):
+ 999        """
+1000        Co-Training with relevant random subspaces
+1001
+1002        Parameters
+1003        ----------
+1004        base_estimator : ClassifierMixin, optional
+1005            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+1006        max_iterations : int, optional
+1007            Maximum number of iterations allowed. Should be greater than or equal to 0.
+1008            If is -1 then will be infinite iterations until U be empty, by default 10
+1009        n_estimators : int, optional
+1010            The number of base estimators in the ensemble., by default 30
+1011        subspace_size : int, optional
+1012            The number of features for each subspace. If it is None will be the half of the features size., by default None
+1013        random_state : int, RandomState instance, optional
+1014            controls the randomness of the estimator, by default None
+1015        n_jobs : int, optional
+1016            The number of jobs to run in parallel. -1 means using all processors., by default None
+1017
+1018        """
+1019        super().__init__(
+1020            base_estimator,
+1021            max_iterations,
+1022            n_estimators,
+1023            subspace_size,
+1024            random_state,
+1025            n_jobs,
+1026        )
+
+ + +

Co-Training with relevant random subspaces

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • +
  • max_iterations (int, optional): +Maximum number of iterations allowed. Should be greater than or equal to 0. +If is -1 then will be infinite iterations until U be empty, by default 10
  • +
  • n_estimators (int, optional): +The number of base estimators in the ensemble., by default 30
  • +
  • subspace_size (int, optional): +The number of features for each subspace. If it is None will be the half of the features size., by default None
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
  • n_jobs (int, optional): +The number of jobs to run in parallel. -1 means using all processors., by default None
  • +
+
+ + +
+
+
Inherited Members
+
+
Rasco
+
fit
+ +
+
sslearn.wrapper._co.BaseCoTraining
+
predict_proba
+
score
+ +
+ +
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + CoForest(sslearn.wrapper._co.BaseCoTraining): + + + +
+ +
1283class CoForest(BaseCoTraining):
+1284    """
+1285    **CoForest classifier. Random Forest co-training**
+1286    ----------------------------
+1287    
+1288    Ensemble method for CoTraining based on Random Forest.
+1289
+1290    The main process is:
+1291    1. Train a committee of classifiers using bootstrap.
+1292    2. While any base classifier is retrained:
+1293        1. Predict the instances from the unlabeled set.
+1294        2. Select the instances with the highest probability.
+1295        3. Label the instances with the highest probability
+1296        4. Add the instances to the labeled set only if the error is not bigger than the previous error.
+1297        5. Retrain the classifier with the new instances.
+1298    3. Combine the probabilities of each classifier.
+1299
+1300
+1301    **Methods**
+1302    -------
+1303    - `fit`: Fit the model with the labeled instances.
+1304    - `predict` : Predict the class for each instance.
+1305    - `predict_proba`: Predict the probability for each class.
+1306    - `score`: Return the mean accuracy on the given test data and labels.
+1307
+1308    **Example**
+1309    -------
+1310    ```python
+1311    from sklearn.datasets import load_iris
+1312    from sslearn.wrapper import CoForest
+1313    from sslearn.model_selection import artificial_ssl_dataset
+1314
+1315    X, y = load_iris(return_X_y=True)
+1316    X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+1317    coforest = CoForest()
+1318    coforest.fit(X, y)
+1319    coforest.score(X_unlabel, y_unlabel)
+1320    ```
+1321
+1322    **References**
+1323    ----------
+1324    Li, M., & Zhou, Z.-H. (2007).<br>
+1325    Improve Computer-Aided Diagnosis With Machine Learning Techniques Using Undiagnosed Samples.<br>
+1326    <i>IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans</i>,<br>
+1327    37(6), 1088-1098. [10.1109/tsmca.2007.904745](https://doi.org/10.1109/tsmca.2007.904745)
+1328    """
+1329
+1330    def __init__(self, base_estimator=DecisionTreeClassifier(), n_estimators=7, threshold=0.75, bootstrap=True, n_jobs=None, random_state=None, version="1.0.3"):
+1331        """
+1332        Generate a CoForest classifier.
+1333        A SSL Random Forest adaption for CoTraining. 
+1334
+1335        Parameters
+1336        ----------
+1337        base_estimator : ClassifierMixin, optional
+1338            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+1339        n_estimators : int, optional
+1340            The number of base estimators in the ensemble., by default 7
+1341        threshold : float, optional
+1342            The decision threshold. Should be in [0, 1)., by default 0.5
+1343        n_jobs : int, optional
+1344            The number of jobs to run in parallel for both fit and predict., by default None
+1345        bootstrap : bool, optional
+1346            Whether bootstrap samples are used when building estimators., by default True
+1347        random_state : int, RandomState instance, optional
+1348            controls the randomness of the estimator, by default None
+1349        **kwards : dict, optional
+1350            Additional parameters to be passed to base_estimator, by default None.
+1351        """
+1352        self.base_estimator = check_classifier(base_estimator, collection_size=n_estimators)
+1353        self.n_estimators = n_estimators
+1354        self.threshold = threshold
+1355        self.bootstrap = bootstrap
+1356        self._epsilon = sys.float_info.epsilon
+1357        self.n_jobs = n_jobs
+1358        self.random_state = random_state
+1359        self.version = version
+1360        if self.version == "1.0.2":
+1361            warnings.warn("The version 1.0.2 is deprecated. Please use the version 1.0.3", DeprecationWarning)
+1362
+1363    def __bootstraping(self, X, y, r_state):
+1364        # It is necessary to bootstrap the data
+1365        if self.bootstrap and self.version == "1.0.3":
+1366            is_df = isinstance(X, pd.DataFrame)
+1367            columns = None
+1368            if is_df:
+1369                columns = X.columns
+1370                X = X.to_numpy()
+1371            y = y.copy()
+1372            # Get a reprentation of each class
+1373            classes = np.unique(y)
+1374            # Choose at least one sample from each class
+1375            X_label, y_label = [], []
+1376            for c in classes:
+1377                index = np.where(y == c)[0]
+1378                # Choose one sample from each class
+1379                X_label.append(X[index[0], :])
+1380                y_label.append(y[index[0]])
+1381                # Remove the sample from the original data
+1382                X = np.delete(X, index[0], axis=0)
+1383                y = np.delete(y, index[0], axis=0)
+1384            X, y = resample(X, y, random_state=r_state)
+1385            X = np.concatenate((X, np.array(X_label)), axis=0)
+1386            y = np.concatenate((y, np.array(y_label)), axis=0)
+1387            if is_df:
+1388                X = pd.DataFrame(X, columns=columns)
+1389        return X, y
+1390
+1391    def __estimate_error(self, hypothesis, X, y, index):
+1392        if self.version == "1.0.3":
+1393            concomitants = [h for i, h in enumerate(self.hypotheses) if i != index]
+1394            predicted = [h.predict(X) for h in concomitants]
+1395            predicted = np.array(predicted, dtype=y.dtype)
+1396            # Get the majority vote
+1397            predicted, _ = mode(predicted)
+1398            # predicted, _ = st.mode(predicted, axis=1)
+1399            # Get the error rate
+1400            return 1 - accuracy_score(y, predicted)
+1401        else:
+1402            probas = hypothesis.predict_proba(X)
+1403            ei_t = 0
+1404            classes = list(hypothesis.classes_)
+1405            for j in range(y.shape[0]):
+1406                true_y = y[j]
+1407                true_y_index = classes.index(true_y)
+1408                ei_t += 1 - probas[j, true_y_index]
+1409            if ei_t == 0:
+1410                ei_t = self._epsilon
+1411            return ei_t
+1412
+1413    def __confidence(self, h_index, X):
+1414        concomitants = [h for i, h in enumerate(self.hypotheses) if i != h_index]
+1415
+1416        predicted = [h.predict(X) for h in concomitants]
+1417        predicted = np.array(predicted, dtype=predicted[0].dtype)
+1418        # Get the majority vote and the number of votes
+1419        _, counts = mode(predicted)
+1420        # _, counts = st.mode(predicted, axis=1)
+1421        confidences = counts / len(concomitants)
+1422        return confidences
+1423
+1424    def _fit_estimator(self, X, y, i, beginning=False, **kwards):
+1425        estimator = self.base_estimator
+1426        if type(self.base_estimator) == list:
+1427            estimator = skclone(self.hypotheses[i])
+1428
+1429        if "random_state" in estimator.get_params():
+1430            r_state = estimator.random_state
+1431        else:
+1432            r_state = self.random_state
+1433            if r_state is None:
+1434                r_state = np.random.randint(0, 1000)
+1435            r_state += i
+1436        # Only in the beginning
+1437        if beginning:
+1438            X, y = self.__bootstraping(X, y, r_state)
+1439
+1440        return skclone(estimator).fit(X, y, **kwards)
+1441
+1442    def fit(self, X, y, **kwards):
+1443        """Build a CoForest classifier from the training set (X, y).
+1444
+1445        Parameters
+1446        ----------
+1447        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1448            The training input samples.
+1449        y : array-like of shape (n_samples,)
+1450            The target values (class labels), -1 if unlabel.
+1451
+1452        Returns
+1453        -------
+1454        self: CoForest
+1455            Fitted estimator.
+1456        """
+1457        random_state = check_random_state(self.random_state)
+1458        n_jobs = check_n_jobs(self.n_jobs)
+1459
+1460        X_label, y_label, X_unlabel = get_dataset(X, y)
+1461
+1462        is_df = isinstance(X_label, pd.DataFrame)
+1463
+1464        self.classes_ = np.unique(y_label)
+1465
+1466        self.hypotheses = []
+1467        errors = []
+1468        weights = []
+1469        for i in range(self.n_estimators):
+1470            self.hypotheses.append(skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]))
+1471            if "random_state" in dir(self.hypotheses[-1]):
+1472                self.hypotheses[-1].set_params(random_state=random_state.randint(0, 2 ** 32 - 1))
+1473            errors.append(0.5)
+1474
+1475        self.hypotheses = Parallel(n_jobs=n_jobs)(
+1476            delayed(self._fit_estimator)(X_label, y_label, i, beginning=True, **kwards)
+1477            for i in range(self.n_estimators)
+1478        )
+1479
+1480        for i in range(self.n_estimators):
+1481            # The paper stablishes that the weight of each hypothesis is 0,
+1482            # but it is not possible to do that because it will be impossible increase the training set
+1483            if self.version == "1.0.2":
+1484                weights.append(np.max(self.hypotheses[i].predict_proba(X_label), axis=1).sum())  # Version 1.0.2
+1485            else:
+1486                weights.append(self.__confidence(i, X_label).sum())
+1487
+1488        changing = True if X_unlabel.shape[0] > 0 else False
+1489        while changing:
+1490            changing = False
+1491            for i in range(self.n_estimators):
+1492                hi, ei, wi = self.hypotheses[i], errors[i], weights[i]
+1493
+1494                ei_t = self.__estimate_error(hi, X_label, y_label, i)
+1495
+1496                if ei_t < ei:
+1497                    random_index_subsample = list(range(X_unlabel.shape[0]))
+1498                    random_index_subsample = random_state.permutation(
+1499                        random_index_subsample
+1500                    )
+1501                    cond = random_index_subsample[0:int(safe_division(ei * wi, ei_t, self._epsilon))]
+1502                    if is_df:
+1503                        Ui_t = X_unlabel.iloc[cond, :]
+1504                    else:
+1505                        Ui_t = X_unlabel[cond, :]
+1506
+1507                    raw_predictions = hi.predict_proba(Ui_t)
+1508                    predictions = np.max(raw_predictions, axis=1)
+1509                    class_predicted = self.classes_.take(np.argmax(raw_predictions, axis=1), axis=0)
+1510
+1511                    to_label = predictions > self.threshold
+1512                    wi_t = predictions[to_label].sum()
+1513
+1514                    if ei_t * wi_t < ei * wi:
+1515                        changing = True
+1516                        if is_df:
+1517                            x_temp = pd.concat([X_label, Ui_t.iloc[to_label, :]])
+1518                        else:
+1519                            x_temp = np.concatenate((X_label, Ui_t[to_label]))
+1520                        y_temp = np.concatenate((y_label, class_predicted[to_label]))
+1521                        hi.fit(
+1522                            x_temp,
+1523                            y_temp,
+1524                            **kwards
+1525                        )
+1526
+1527                    errors[i] = ei_t
+1528                    weights[i] = wi_t
+1529
+1530        self.h_ = self.hypotheses
+1531        self.columns_ = [list(range(X.shape[1]))] * self.n_estimators
+1532
+1533        return self
+
+ + +

CoForest classifier. Random Forest co-training

+ +

Ensemble method for CoTraining based on Random Forest.

+ +

The main process is:

+ +
    +
  1. Train a committee of classifiers using bootstrap.
  2. +
  3. While any base classifier is retrained: +
      +
    1. Predict the instances from the unlabeled set.
    2. +
    3. Select the instances with the highest probability.
    4. +
    5. Label the instances with the highest probability
    6. +
    7. Add the instances to the labeled set only if the error is not bigger than the previous error.
    8. +
    9. Retrain the classifier with the new instances.
    10. +
  4. +
  5. Combine the probabilities of each classifier.
  6. +
+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

Example

+ +
+
from sklearn.datasets import load_iris
+from sslearn.wrapper import CoForest
+from sslearn.model_selection import artificial_ssl_dataset
+
+X, y = load_iris(return_X_y=True)
+X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0)
+coforest = CoForest()
+coforest.fit(X, y)
+coforest.score(X_unlabel, y_unlabel)
+
+
+ +

References

+ +

Li, M., & Zhou, Z.-H. (2007).
+Improve Computer-Aided Diagnosis With Machine Learning Techniques Using Undiagnosed Samples.
+IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans,
+37(6), 1088-1098. 10.1109/tsmca.2007.904745

+
+ + +
+ +
+ + CoForest( base_estimator=DecisionTreeClassifier(), n_estimators=7, threshold=0.75, bootstrap=True, n_jobs=None, random_state=None, version='1.0.3') + + + +
+ +
1330    def __init__(self, base_estimator=DecisionTreeClassifier(), n_estimators=7, threshold=0.75, bootstrap=True, n_jobs=None, random_state=None, version="1.0.3"):
+1331        """
+1332        Generate a CoForest classifier.
+1333        A SSL Random Forest adaption for CoTraining. 
+1334
+1335        Parameters
+1336        ----------
+1337        base_estimator : ClassifierMixin, optional
+1338            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+1339        n_estimators : int, optional
+1340            The number of base estimators in the ensemble., by default 7
+1341        threshold : float, optional
+1342            The decision threshold. Should be in [0, 1)., by default 0.5
+1343        n_jobs : int, optional
+1344            The number of jobs to run in parallel for both fit and predict., by default None
+1345        bootstrap : bool, optional
+1346            Whether bootstrap samples are used when building estimators., by default True
+1347        random_state : int, RandomState instance, optional
+1348            controls the randomness of the estimator, by default None
+1349        **kwards : dict, optional
+1350            Additional parameters to be passed to base_estimator, by default None.
+1351        """
+1352        self.base_estimator = check_classifier(base_estimator, collection_size=n_estimators)
+1353        self.n_estimators = n_estimators
+1354        self.threshold = threshold
+1355        self.bootstrap = bootstrap
+1356        self._epsilon = sys.float_info.epsilon
+1357        self.n_jobs = n_jobs
+1358        self.random_state = random_state
+1359        self.version = version
+1360        if self.version == "1.0.2":
+1361            warnings.warn("The version 1.0.2 is deprecated. Please use the version 1.0.3", DeprecationWarning)
+
+ + +

Generate a CoForest classifier. +A SSL Random Forest adaption for CoTraining.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • +
  • n_estimators (int, optional): +The number of base estimators in the ensemble., by default 7
  • +
  • threshold (float, optional): +The decision threshold. Should be in [0, 1)., by default 0.5
  • +
  • n_jobs (int, optional): +The number of jobs to run in parallel for both fit and predict., by default None
  • +
  • bootstrap (bool, optional): +Whether bootstrap samples are used when building estimators., by default True
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
  • **kwards (dict, optional): +Additional parameters to be passed to base_estimator, by default None.
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **kwards): + + + +
+ +
1442    def fit(self, X, y, **kwards):
+1443        """Build a CoForest classifier from the training set (X, y).
+1444
+1445        Parameters
+1446        ----------
+1447        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+1448            The training input samples.
+1449        y : array-like of shape (n_samples,)
+1450            The target values (class labels), -1 if unlabel.
+1451
+1452        Returns
+1453        -------
+1454        self: CoForest
+1455            Fitted estimator.
+1456        """
+1457        random_state = check_random_state(self.random_state)
+1458        n_jobs = check_n_jobs(self.n_jobs)
+1459
+1460        X_label, y_label, X_unlabel = get_dataset(X, y)
+1461
+1462        is_df = isinstance(X_label, pd.DataFrame)
+1463
+1464        self.classes_ = np.unique(y_label)
+1465
+1466        self.hypotheses = []
+1467        errors = []
+1468        weights = []
+1469        for i in range(self.n_estimators):
+1470            self.hypotheses.append(skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]))
+1471            if "random_state" in dir(self.hypotheses[-1]):
+1472                self.hypotheses[-1].set_params(random_state=random_state.randint(0, 2 ** 32 - 1))
+1473            errors.append(0.5)
+1474
+1475        self.hypotheses = Parallel(n_jobs=n_jobs)(
+1476            delayed(self._fit_estimator)(X_label, y_label, i, beginning=True, **kwards)
+1477            for i in range(self.n_estimators)
+1478        )
+1479
+1480        for i in range(self.n_estimators):
+1481            # The paper stablishes that the weight of each hypothesis is 0,
+1482            # but it is not possible to do that because it will be impossible increase the training set
+1483            if self.version == "1.0.2":
+1484                weights.append(np.max(self.hypotheses[i].predict_proba(X_label), axis=1).sum())  # Version 1.0.2
+1485            else:
+1486                weights.append(self.__confidence(i, X_label).sum())
+1487
+1488        changing = True if X_unlabel.shape[0] > 0 else False
+1489        while changing:
+1490            changing = False
+1491            for i in range(self.n_estimators):
+1492                hi, ei, wi = self.hypotheses[i], errors[i], weights[i]
+1493
+1494                ei_t = self.__estimate_error(hi, X_label, y_label, i)
+1495
+1496                if ei_t < ei:
+1497                    random_index_subsample = list(range(X_unlabel.shape[0]))
+1498                    random_index_subsample = random_state.permutation(
+1499                        random_index_subsample
+1500                    )
+1501                    cond = random_index_subsample[0:int(safe_division(ei * wi, ei_t, self._epsilon))]
+1502                    if is_df:
+1503                        Ui_t = X_unlabel.iloc[cond, :]
+1504                    else:
+1505                        Ui_t = X_unlabel[cond, :]
+1506
+1507                    raw_predictions = hi.predict_proba(Ui_t)
+1508                    predictions = np.max(raw_predictions, axis=1)
+1509                    class_predicted = self.classes_.take(np.argmax(raw_predictions, axis=1), axis=0)
+1510
+1511                    to_label = predictions > self.threshold
+1512                    wi_t = predictions[to_label].sum()
+1513
+1514                    if ei_t * wi_t < ei * wi:
+1515                        changing = True
+1516                        if is_df:
+1517                            x_temp = pd.concat([X_label, Ui_t.iloc[to_label, :]])
+1518                        else:
+1519                            x_temp = np.concatenate((X_label, Ui_t[to_label]))
+1520                        y_temp = np.concatenate((y_label, class_predicted[to_label]))
+1521                        hi.fit(
+1522                            x_temp,
+1523                            y_temp,
+1524                            **kwards
+1525                        )
+1526
+1527                    errors[i] = ei_t
+1528                    weights[i] = wi_t
+1529
+1530        self.h_ = self.hypotheses
+1531        self.columns_ = [list(range(X.shape[1]))] * self.n_estimators
+1532
+1533        return self
+
+ + +

Build a CoForest classifier from the training set (X, y).

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabel.
  • +
+ +
Returns
+ +
    +
  • self (CoForest): +Fitted estimator.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.wrapper._co.BaseCoTraining
+
predict_proba
+
score
+ +
+ +
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + TriTraining(sslearn.wrapper._co.BaseCoTraining): + + + +
+ +
 25class TriTraining(BaseCoTraining):
+ 26    """
+ 27    **TriTraining. Trio of classifiers with bootstrapping.**
+ 28
+ 29    The main process is:
+ 30    1. Generate three classifiers using bootstrapping.
+ 31    2. Iterate until convergence:
+ 32        1. Calculate the error between two hypotheses.
+ 33        2. If the error is less than the previous error, generate a dataset with the instances where both hypotheses agree.
+ 34        3. Retrain the classifiers with the new dataset and the original labeled dataset.
+ 35    3. Combine the predictions of the three classifiers.
+ 36
+ 37    **Methods**
+ 38    -------
+ 39    - `fit`: Fit the model with the labeled instances.
+ 40    - `predict` : Predict the class for each instance.
+ 41    - `predict_proba`: Predict the probability for each class.
+ 42    - `score`: Return the mean accuracy on the given test data and labels.
+ 43
+ 44    **References**
+ 45    ----------
+ 46    Zhi-Hua Zhou and Ming Li,<br>
+ 47    Tri-training: exploiting unlabeled data using three classifiers,<br>
+ 48    in <i>IEEE Transactions on Knowledge and Data Engineering</i>,<br>
+ 49    vol. 17, no. 11, pp. 1529-1541, Nov. 2005,<br>
+ 50    [10.1109/TKDE.2005.186](https://doi.org/10.1109/TKDE.2005.186)
+ 51
+ 52    """
+ 53
+ 54    def __init__(
+ 55        self,
+ 56        base_estimator=DecisionTreeClassifier(),
+ 57        n_samples=None,
+ 58        random_state=None,
+ 59        n_jobs=None,
+ 60    ):
+ 61        """TriTraining. Trio of classifiers with bootstrapping.
+ 62
+ 63        Parameters
+ 64        ----------
+ 65        base_estimator : ClassifierMixin, optional
+ 66            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+ 67        n_samples : int, optional
+ 68            Number of samples to generate.
+ 69            If left to None this is automatically set to the first dimension of the arrays., by default None
+ 70        random_state : int, RandomState instance, optional
+ 71            controls the randomness of the estimator, by default None
+ 72        n_jobs : int, optional
+ 73            The number of jobs to run in parallel for both `fit` and `predict`.
+ 74            `None` means 1 unless in a :obj:`joblib.parallel_backend` context.
+ 75            `-1` means using all processors., by default None
+ 76       
+ 77        """
+ 78        self._N_LEARNER = 3
+ 79        self.base_estimator = check_classifier(base_estimator, collection_size=self._N_LEARNER)
+ 80        self.n_samples = n_samples
+ 81        self._epsilon = sys.float_info.epsilon
+ 82        self.random_state = random_state
+ 83        self.n_jobs = n_jobs
+ 84
+ 85    def fit(self, X, y, **kwards):
+ 86        """Build a TriTraining classifier from the training set (X, y).
+ 87        Parameters
+ 88        ----------
+ 89        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 90            The training input samples.
+ 91        y : array-like of shape (n_samples,)
+ 92            The target values (class labels), -1 if unlabeled.
+ 93        Returns
+ 94        -------
+ 95        self : TriTraining
+ 96            Fitted estimator.
+ 97        """
+ 98        random_state = check_random_state(self.random_state)
+ 99        self.n_jobs = min(check_n_jobs(self.n_jobs), self._N_LEARNER)
+100
+101        X_label, y_label, X_unlabel = get_dataset(X, y)
+102
+103        is_df = isinstance(X_label, pd.DataFrame)
+104
+105        hypotheses = []
+106        e_ = [0.5] * self._N_LEARNER
+107        l_ = [0] * self._N_LEARNER
+108
+109        # Get a random instance for each class to keep class index
+110        self.classes_ = np.unique(y_label)
+111        classes = set(self.classes_)
+112        instances = list()
+113        labels = list()
+114        iteration = zip(X_label, y_label)
+115        if is_df:
+116            iteration = zip(X_label.values, y_label)
+117        for x_, y_ in iteration:
+118            if y_ in classes:
+119                classes.remove(y_)
+120                instances.append(x_)
+121                labels.append(y_)
+122            if len(classes) == 0:
+123                break
+124
+125        for i in range(self._N_LEARNER):
+126            X_sampled, y_sampled = resample(
+127                X_label,
+128                y_label,
+129                replace=True,
+130                n_samples=self.n_samples,
+131                random_state=random_state,
+132            )
+133
+134            if is_df:
+135                X_sampled = pd.DataFrame(X_sampled, columns=X_label.columns)
+136                X_sampled = pd.concat([pd.DataFrame(instances, columns=X_label.columns), X_sampled])
+137            else:
+138                X_sampled = np.concatenate((np.array(instances), X_sampled), axis=0)
+139            y_sampled = np.concatenate((np.array(labels), y_sampled), axis=0)
+140
+141            hypotheses.append(
+142                skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]).fit(X_sampled, y_sampled, **kwards)
+143            )
+144
+145        something_has_changed = True if X_unlabel.size > 0 else False
+146        while something_has_changed:
+147            something_has_changed = False
+148            L = [[]] * self._N_LEARNER
+149            Ly = [[]] * self._N_LEARNER
+150            e = []
+151            updates = [False] * 3
+152
+153            for i in range(self._N_LEARNER):
+154                hj, hk = TriTraining._another_hs(hypotheses, i)
+155                e.append(
+156                    self._measure_error(X_label, y_label, hj, hk, self._epsilon)
+157                )
+158                if e_[i] <= e[i]:
+159                    continue
+160                y_p = hj.predict(X_unlabel)
+161                validx = y_p == hk.predict(X_unlabel)
+162                L[i] = X_unlabel[validx]
+163                Ly[i] = y_p[validx]
+164
+165                if l_[i] == 0:
+166                    l_[i] = math.floor(
+167                        safe_division(e[i], (e_[i] - e[i]), self._epsilon) + 1
+168                    )
+169                if l_[i] >= len(L[i]):
+170                    continue
+171                if e[i] * len(L[i]) < e_[i] * l_[i]:
+172                    updates[i] = True
+173                elif l_[i] > safe_division(e[i], e_[i] - e[i], self._epsilon):
+174                    L[i], Ly[i] = TriTraining._subsample(
+175                        (L[i], Ly[i]),
+176                        math.ceil(
+177                            safe_division(e_[i] * l_[i], e[i], self._epsilon) - 1
+178                        ),
+179                        random_state,
+180                    )
+181                    if is_df:
+182                        L[i] = pd.DataFrame(L[i], columns=X_label.columns)
+183                    updates[i] = True
+184
+185            hypotheses = Parallel(n_jobs=self.n_jobs)(
+186                delayed(self._fit_estimator)(
+187                    hypotheses[i], X_label, y_label, L[i], Ly[i], updates[i], **kwards
+188                )
+189                for i in range(self._N_LEARNER)
+190            )
+191
+192            for i in range(self._N_LEARNER):
+193                if updates[i]:
+194                    e_[i] = e[i]
+195                    l_[i] = len(L[i])
+196                    something_has_changed = True
+197
+198        self.h_ = hypotheses
+199        self.columns_ = [list(range(X.shape[1]))] * self._N_LEARNER
+200
+201        return self
+202
+203    def _fit_estimator(self, hyp, X_label, y_label, L, Ly, update, **kwards):
+204        if update:
+205            if isinstance(L, pd.DataFrame):
+206                _tempL = pd.concat([X_label, L])
+207            else:
+208                _tempL = np.concatenate((X_label, L))
+209            _tempY = np.concatenate((y_label, Ly))
+210
+211            return hyp.fit(_tempL, _tempY, **kwards)
+212        return hyp
+213
+214    @staticmethod
+215    def _another_hs(hs, index):
+216        """Get the other hypotheses
+217        Parameters
+218        ----------
+219        hs : list
+220            hypotheses collection
+221        index : int
+222            base hypothesis  index
+223        Returns
+224        -------
+225        classifiers: list
+226            Collection of other hypotheses
+227        """
+228        another_hs = []
+229        for i in range(len(hs)):
+230            if i != index:
+231                another_hs.append(hs[i])
+232        return another_hs
+233
+234    @staticmethod
+235    def _subsample(L, s, random_state=None):
+236        """Randomly removes |L| - s number of examples from L
+237        Parameters
+238        ----------
+239        L : tuple of array-like
+240            Collection pseudo-labeled candidates and its labels
+241        s : int
+242            Equation 10 in paper
+243        random_state : int, RandomState instance, optional
+244            controls the randomness of the estimator, by default None
+245        Returns
+246        -------
+247        subsamples: tuple
+248            Collection of pseudo-labeled selected for enlarged labeled examples.
+249        """
+250        to_remove = len(L[0]) - s
+251        select = len(L[0]) - to_remove
+252
+253        return resample(*L, replace=False, n_samples=select, random_state=random_state)
+254
+255    def _measure_error(
+256        self, X, y, h1: ClassifierMixin, h2: ClassifierMixin, epsilon=sys.float_info.epsilon, **kwards
+257    ):
+258        """Calculate the error between two hypotheses
+259        Parameters
+260        ----------
+261        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+262            The training labeled input samples.
+263        y : array-like of shape (n_samples,)
+264            The target values (class labels).
+265        h1 : ClassifierMixin
+266            First hypothesis
+267        h2 : ClassifierMixin
+268            Second hypothesis
+269        epsilon : float
+270            A small number to avoid division by zero
+271        Returns
+272        -------
+273        error : float
+274            Division of the number of labeled examples on which both h1 and h2 make incorrect classification,
+275            by the number of labeled examples on which the classification made by h1 is the same as that made by h2.
+276        """
+277        y1 = h1.predict(X)
+278        y2 = h2.predict(X)
+279
+280        error = np.count_nonzero(np.logical_and(y1 == y2, y2 != y))
+281        coincidence = np.count_nonzero(y1 == y2)
+282        return safe_division(error, coincidence, epsilon)
+
+ + +

TriTraining. Trio of classifiers with bootstrapping.

+ +

The main process is:

+ +
    +
  1. Generate three classifiers using bootstrapping.
  2. +
  3. Iterate until convergence: +
      +
    1. Calculate the error between two hypotheses.
    2. +
    3. If the error is less than the previous error, generate a dataset with the instances where both hypotheses agree.
    4. +
    5. Retrain the classifiers with the new dataset and the original labeled dataset.
    6. +
  4. +
  5. Combine the predictions of the three classifiers.
  6. +
+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

References

+ +

Zhi-Hua Zhou and Ming Li,
+Tri-training: exploiting unlabeled data using three classifiers,
+in IEEE Transactions on Knowledge and Data Engineering,
+vol. 17, no. 11, pp. 1529-1541, Nov. 2005,
+10.1109/TKDE.2005.186

+
+ + +
+ +
+ + TriTraining( base_estimator=DecisionTreeClassifier(), n_samples=None, random_state=None, n_jobs=None) + + + +
+ +
54    def __init__(
+55        self,
+56        base_estimator=DecisionTreeClassifier(),
+57        n_samples=None,
+58        random_state=None,
+59        n_jobs=None,
+60    ):
+61        """TriTraining. Trio of classifiers with bootstrapping.
+62
+63        Parameters
+64        ----------
+65        base_estimator : ClassifierMixin, optional
+66            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+67        n_samples : int, optional
+68            Number of samples to generate.
+69            If left to None this is automatically set to the first dimension of the arrays., by default None
+70        random_state : int, RandomState instance, optional
+71            controls the randomness of the estimator, by default None
+72        n_jobs : int, optional
+73            The number of jobs to run in parallel for both `fit` and `predict`.
+74            `None` means 1 unless in a :obj:`joblib.parallel_backend` context.
+75            `-1` means using all processors., by default None
+76       
+77        """
+78        self._N_LEARNER = 3
+79        self.base_estimator = check_classifier(base_estimator, collection_size=self._N_LEARNER)
+80        self.n_samples = n_samples
+81        self._epsilon = sys.float_info.epsilon
+82        self.random_state = random_state
+83        self.n_jobs = n_jobs
+
+ + +

TriTraining. Trio of classifiers with bootstrapping.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • +
  • n_samples (int, optional): +Number of samples to generate. +If left to None this is automatically set to the first dimension of the arrays., by default None
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
  • n_jobs (int, optional): +The number of jobs to run in parallel for both fit and predict. +None means 1 unless in a joblib.parallel_backend context. +-1 means using all processors., by default None
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **kwards): + + + +
+ +
 85    def fit(self, X, y, **kwards):
+ 86        """Build a TriTraining classifier from the training set (X, y).
+ 87        Parameters
+ 88        ----------
+ 89        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+ 90            The training input samples.
+ 91        y : array-like of shape (n_samples,)
+ 92            The target values (class labels), -1 if unlabeled.
+ 93        Returns
+ 94        -------
+ 95        self : TriTraining
+ 96            Fitted estimator.
+ 97        """
+ 98        random_state = check_random_state(self.random_state)
+ 99        self.n_jobs = min(check_n_jobs(self.n_jobs), self._N_LEARNER)
+100
+101        X_label, y_label, X_unlabel = get_dataset(X, y)
+102
+103        is_df = isinstance(X_label, pd.DataFrame)
+104
+105        hypotheses = []
+106        e_ = [0.5] * self._N_LEARNER
+107        l_ = [0] * self._N_LEARNER
+108
+109        # Get a random instance for each class to keep class index
+110        self.classes_ = np.unique(y_label)
+111        classes = set(self.classes_)
+112        instances = list()
+113        labels = list()
+114        iteration = zip(X_label, y_label)
+115        if is_df:
+116            iteration = zip(X_label.values, y_label)
+117        for x_, y_ in iteration:
+118            if y_ in classes:
+119                classes.remove(y_)
+120                instances.append(x_)
+121                labels.append(y_)
+122            if len(classes) == 0:
+123                break
+124
+125        for i in range(self._N_LEARNER):
+126            X_sampled, y_sampled = resample(
+127                X_label,
+128                y_label,
+129                replace=True,
+130                n_samples=self.n_samples,
+131                random_state=random_state,
+132            )
+133
+134            if is_df:
+135                X_sampled = pd.DataFrame(X_sampled, columns=X_label.columns)
+136                X_sampled = pd.concat([pd.DataFrame(instances, columns=X_label.columns), X_sampled])
+137            else:
+138                X_sampled = np.concatenate((np.array(instances), X_sampled), axis=0)
+139            y_sampled = np.concatenate((np.array(labels), y_sampled), axis=0)
+140
+141            hypotheses.append(
+142                skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]).fit(X_sampled, y_sampled, **kwards)
+143            )
+144
+145        something_has_changed = True if X_unlabel.size > 0 else False
+146        while something_has_changed:
+147            something_has_changed = False
+148            L = [[]] * self._N_LEARNER
+149            Ly = [[]] * self._N_LEARNER
+150            e = []
+151            updates = [False] * 3
+152
+153            for i in range(self._N_LEARNER):
+154                hj, hk = TriTraining._another_hs(hypotheses, i)
+155                e.append(
+156                    self._measure_error(X_label, y_label, hj, hk, self._epsilon)
+157                )
+158                if e_[i] <= e[i]:
+159                    continue
+160                y_p = hj.predict(X_unlabel)
+161                validx = y_p == hk.predict(X_unlabel)
+162                L[i] = X_unlabel[validx]
+163                Ly[i] = y_p[validx]
+164
+165                if l_[i] == 0:
+166                    l_[i] = math.floor(
+167                        safe_division(e[i], (e_[i] - e[i]), self._epsilon) + 1
+168                    )
+169                if l_[i] >= len(L[i]):
+170                    continue
+171                if e[i] * len(L[i]) < e_[i] * l_[i]:
+172                    updates[i] = True
+173                elif l_[i] > safe_division(e[i], e_[i] - e[i], self._epsilon):
+174                    L[i], Ly[i] = TriTraining._subsample(
+175                        (L[i], Ly[i]),
+176                        math.ceil(
+177                            safe_division(e_[i] * l_[i], e[i], self._epsilon) - 1
+178                        ),
+179                        random_state,
+180                    )
+181                    if is_df:
+182                        L[i] = pd.DataFrame(L[i], columns=X_label.columns)
+183                    updates[i] = True
+184
+185            hypotheses = Parallel(n_jobs=self.n_jobs)(
+186                delayed(self._fit_estimator)(
+187                    hypotheses[i], X_label, y_label, L[i], Ly[i], updates[i], **kwards
+188                )
+189                for i in range(self._N_LEARNER)
+190            )
+191
+192            for i in range(self._N_LEARNER):
+193                if updates[i]:
+194                    e_[i] = e[i]
+195                    l_[i] = len(L[i])
+196                    something_has_changed = True
+197
+198        self.h_ = hypotheses
+199        self.columns_ = [list(range(X.shape[1]))] * self._N_LEARNER
+200
+201        return self
+
+ + +

Build a TriTraining classifier from the training set (X, y).

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabeled.
  • +
+ +
Returns
+ +
    +
  • self (TriTraining): +Fitted estimator.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.wrapper._co.BaseCoTraining
+
predict_proba
+
score
+ +
+ +
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ +
+ + class + DeTriTraining(sslearn.wrapper.TriTraining): + + + +
+ +
557class DeTriTraining(TriTraining):
+558    """
+559    **TriTraining with Data Editing.**
+560
+561    It is a variation of the TriTraining, the main difference is that the instances are depurated in each iteration.
+562    It means that the instances with their neighbors that have the same class are kept, the rest are removed.
+563    At the end of the iterations, the instances are clustered and the class is assigned to the cluster centroid.
+564
+565    **Methods**
+566    -------
+567    - `fit`: Fit the model with the labeled instances.
+568    - `predict` : Predict the class for each instance.
+569    - `predict_proba`: Predict the probability for each class.
+570    - `score`: Return the mean accuracy on the given test data and labels.
+571
+572    **References**
+573    ----------
+574    Deng C., Guo M.Z. (2006)<br>
+575    Tri-training and Data Editing Based Semi-supervised Clustering Algorithm, <br>
+576    in <i>Gelbukh A., Reyes-Garcia C.A. (eds) MICAI 2006: Advances in Artificial Intelligence. MICAI 2006.</i><br>
+577    Lecture Notes in Computer Science, vol 4293. Springer, Berlin, Heidelberg.<br>
+578    [10.1007/11925231_61](https://doi.org/10.1007/11925231_61)
+579    """
+580
+581    def __init__(self, base_estimator=DecisionTreeClassifier(), k_neighbors=3,
+582                 n_samples=None, mode="seeded", max_iterations=100, n_jobs=None, random_state=None):
+583        """
+584        DeTriTraining - TriTraining with Depurated and Clustering.
+585        Avoid the noise generated by the TriTraining algorithm by depurating the enlarged dataset and clustering the instances.        
+586
+587        Parameters
+588        ----------
+589        base_estimator : ClassifierMixin, optional
+590            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+591        n_samples : int, optional
+592            Number of samples to generate. 
+593            If left to None this is automatically set to the first dimension of the arrays., by default None
+594        k_neighbors : int, optional
+595            Number of neighbors for depurate classification. 
+596            If at least k_neighbors/2+1 have a class other than the one predicted, the class is ignored., by default 3
+597        mode : string, optional
+598            How to calculate the cluster each instance belongs to.
+599            If `seeded` each instance belong to nearest cluster.
+600            If `constrained` each instance belong to nearest cluster unless the instance is in to enlarged dataset, 
+601            then the instance belongs to the cluster of its class., by default `seeded`
+602        max_iterations : int, optional
+603            Maximum number of iterations, by default 100
+604        n_jobs : int, optional
+605            The number of parallel jobs to run for neighbors search. 
+606            None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. 
+607            Doesn't affect fit method., by default None
+608        random_state : int, RandomState instance, optional
+609            controls the randomness of the estimator, by default None
+610        """
+611        super().__init__(base_estimator, n_samples, random_state)
+612        self.k_neighbors = k_neighbors
+613        self.mode = mode
+614        self.max_iterations = max_iterations
+615        self.n_jobs = n_jobs
+616        if mode != "seeded" and mode != "constrained":
+617            raise AttributeError("`mode` must be \"seeded\" or \"constrained\".")
+618
+619    def _depure(self, S):
+620        """Depure the S dataset
+621
+622        Parameters
+623        ----------
+624        S : tuple (X, y)
+625            Enlarged dataset
+626
+627        Returns
+628        -------
+629        tuple : (X, y)
+630            Enlarged dataset with instances where at least k_neighbors/2+1 have the same class.
+631        """
+632        init = time.time()
+633        knn = KNeighborsClassifier(n_neighbors=self.k_neighbors, n_jobs=self.n_jobs)
+634        valid = knn.fit(*S).predict(S[0]) == S[1]
+635        print(f"Depure time: {time.time() - init}")
+636        return S[0][valid], S[1][valid]
+637
+638    def _clustering(self, S, X):
+639        """Clustering phase of the fitting
+640
+641        Parameters
+642        ----------
+643        S : tuple (X, y)
+644            Enlarged dataset
+645        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+646            Complete dataset, only features
+647
+648        Returns
+649        -------
+650        y: array-like of shape (n_samples,)
+651            class predicted for each instance
+652        """
+653        centroids = dict()
+654        clusters = set(S[1])
+655
+656        # uses as numpy
+657        if isinstance(X, pd.DataFrame):
+658            X = X.to_numpy()
+659        if isinstance(S[0], pd.DataFrame):
+660            S = (S[0].to_numpy(), S[1])
+661
+662        for k in clusters:
+663            centroids[k] = np.mean(S[0][S[1] == k], axis=0)
+664
+665        def seeded(X):
+666            # For each instance, calculate the distance to each centroid
+667            distances = np.linalg.norm(X[:, None, :] - np.array(list(centroids.values())), axis=2)
+668            # Get the index of the nearest centroid
+669            return np.argmin(distances, axis=1)
+670
+671        def constrained(X):
+672            # Calculate the distances to centroids using broadcasting
+673            distances = np.linalg.norm(X[:, None, :] - np.array(list(centroids.values())), axis=2)
+674            # Get the index of the nearest centroid
+675            nearest = np.argmin(distances, axis=1)
+676            # Create a mask to find instances in X that belong to S[0]
+677            mask = (S[0] == X[:, None])
+678            # Find the row and column indices where all elements are True
+679            i, j = np.where(mask.all(axis=2))
+680            # Initialize cluster with -1
+681            cluster = np.full(X.shape[0], -1, dtype=int)
+682            # Update cluster for the instances found in S[0]
+683            cluster[i] = S[1][j]
+684            # Update cluster for instances not found in S[0]
+685            cluster[cluster == -1] = nearest[cluster == -1]
+686
+687            return cluster
+688
+689        if self.mode == "seeded":
+690            op = seeded
+691        elif self.mode == "constrained":
+692            op = constrained
+693
+694        changes = True
+695        iterations = 0
+696        while changes and iterations < self.max_iterations:
+697            changes = False
+698            iterations += 1
+699            # Need to vectorize
+700            new_clusters = op(X)
+701            new_centroids = dict()
+702            for k in clusters:
+703                if np.any(new_clusters == k):
+704                    new_centroids[k] = np.mean(X[new_clusters == k], axis=0)
+705                    if not np.array_equal(new_centroids[k], centroids[k]):
+706                        changes = True
+707            centroids = new_centroids
+708
+709        return new_clusters
+710
+711    def fit(self, X, y, **kwards):
+712        """Build a DeTriTraining classifier from the training set (X, y).
+713
+714        Parameters
+715        ----------
+716        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+717            The training input samples.
+718        y : array-like of shape (n_samples,)
+719            The target values (class labels), -1 if unlabel.
+720
+721        Returns
+722        -------
+723        self: DeTriTraining
+724            Fitted estimator.
+725        """
+726        X_label, y_label, X_unlabel = get_dataset(X, y)
+727
+728        self.label_encoder_ = LabelEncoder()
+729        self.label_encoder_.fit(y_label)
+730        y_label = self.label_encoder_.transform(y_label)
+731
+732        is_df = isinstance(X_label, pd.DataFrame)
+733
+734        self.classes_ = np.unique(y_label)
+735
+736        classes = set(self.classes_)
+737        instances = list()
+738        labels = list()
+739        iteration = zip(X_label, y_label)
+740        if is_df:
+741            iteration = zip(X_label.values, y_label)
+742        for x_, y_ in iteration:
+743            if y_ in classes:
+744                classes.remove(y_)
+745                instances.append(x_)
+746                labels.append(y_)
+747            if len(classes) == 0:
+748                break
+749
+750        S_ = []
+751        hypothesis = []
+752        for i in range(self._N_LEARNER):
+753            X_sampled, y_sampled = \
+754                resample(X_label, y_label, replace=True,
+755                         n_samples=self.n_samples,
+756                         random_state=self.random_state)
+757            if is_df:
+758                X_sampled = pd.DataFrame(X_sampled, columns=X_label.columns)
+759            hypothesis.append(
+760                skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]).fit(
+761                    X_sampled, y_sampled, **kwards)
+762            )
+763
+764            # Keep class order
+765            if not is_df:
+766                X_sampled = np.concatenate((np.array(instances), X_sampled), axis=0)
+767            else:
+768                X_sampled = pd.concat([pd.DataFrame(instances, columns=X_label.columns), X_sampled], axis=0)
+769
+770            y_sampled = np.concatenate((np.array(labels), y_sampled), axis=0)
+771
+772            S_.append((X_sampled, y_sampled))
+773
+774        changes = True
+775        last_addition = [0] * self._N_LEARNER
+776        it = 0 if X_unlabel.shape[0] > 0 else self.max_iterations
+777        while it < self.max_iterations:
+778            it += 1
+779            changes = False
+780
+781            # Enlarged
+782            L = [[]] * self._N_LEARNER
+783
+784            for i in range(self._N_LEARNER):
+785                hj, hk = TriTraining._another_hs(hypothesis, i)
+786                y_p = hj.predict(X_unlabel)
+787                validx = y_p == hk.predict(X_unlabel)
+788                L[i] = (X_unlabel[validx] if not is_df else X_unlabel.iloc[validx, :], y_p[validx])
+789
+790            for i, _ in enumerate(L):
+791
+792                if len(L[i][0]) > 0:
+793                    S_[i] = np.concatenate((X_label, L[i][0])) if not is_df else pd.concat([X_label, L[i][0]]), np.concatenate((y_label, L[i][1]))
+794                    S_[i] = self._depure(S_[i])
+795
+796            for i in range(self._N_LEARNER):
+797                if len(S_[i][0]) > len(X_label):
+798                    last_addition[i] = len(S_[i][0])
+799                    changes = True
+800                    hypothesis[i].fit(*S_[i], **kwards)
+801
+802            if not changes:
+803                break
+804        else:
+805            warn.warn("Maximum number of iterations reached before convergence. Consider increasing max_iter to improve the fit.", ConvergenceWarning)
+806
+807        S = np.concatenate([x[0] for x in S_]) if not is_df else pd.concat([x[0] for x in S_]), np.concatenate([x[1] for x in S_])
+808        S_0, index_ = np.unique(S[0], axis=0, return_index=True)
+809        S_1 = S[1][index_]
+810        S = S_0, S_1
+811        S = self._depure(S)  # Change, is S - L (only new)
+812
+813        new_y = self._clustering(S, X)
+814
+815        self.h_ = [skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]).fit(X, new_y, **kwards) for i in range(self._N_LEARNER)]
+816        self.columns_ = [list(range(X.shape[1]))]
+817
+818        return self
+
+ + +

TriTraining with Data Editing.

+ +

It is a variation of the TriTraining, the main difference is that the instances are depurated in each iteration. +It means that the instances with their neighbors that have the same class are kept, the rest are removed. +At the end of the iterations, the instances are clustered and the class is assigned to the cluster centroid.

+ +

Methods

+ +
    +
  • fit: Fit the model with the labeled instances.
  • +
  • predict : Predict the class for each instance.
  • +
  • predict_proba: Predict the probability for each class.
  • +
  • score: Return the mean accuracy on the given test data and labels.
  • +
+ +

References

+ +

Deng C., Guo M.Z. (2006)
+Tri-training and Data Editing Based Semi-supervised Clustering Algorithm,
+in Gelbukh A., Reyes-Garcia C.A. (eds) MICAI 2006: Advances in Artificial Intelligence. MICAI 2006.
+Lecture Notes in Computer Science, vol 4293. Springer, Berlin, Heidelberg.
+10.1007/11925231_61

+
+ + +
+ +
+ + DeTriTraining( base_estimator=DecisionTreeClassifier(), k_neighbors=3, n_samples=None, mode='seeded', max_iterations=100, n_jobs=None, random_state=None) + + + +
+ +
581    def __init__(self, base_estimator=DecisionTreeClassifier(), k_neighbors=3,
+582                 n_samples=None, mode="seeded", max_iterations=100, n_jobs=None, random_state=None):
+583        """
+584        DeTriTraining - TriTraining with Depurated and Clustering.
+585        Avoid the noise generated by the TriTraining algorithm by depurating the enlarged dataset and clustering the instances.        
+586
+587        Parameters
+588        ----------
+589        base_estimator : ClassifierMixin, optional
+590            An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
+591        n_samples : int, optional
+592            Number of samples to generate. 
+593            If left to None this is automatically set to the first dimension of the arrays., by default None
+594        k_neighbors : int, optional
+595            Number of neighbors for depurate classification. 
+596            If at least k_neighbors/2+1 have a class other than the one predicted, the class is ignored., by default 3
+597        mode : string, optional
+598            How to calculate the cluster each instance belongs to.
+599            If `seeded` each instance belong to nearest cluster.
+600            If `constrained` each instance belong to nearest cluster unless the instance is in to enlarged dataset, 
+601            then the instance belongs to the cluster of its class., by default `seeded`
+602        max_iterations : int, optional
+603            Maximum number of iterations, by default 100
+604        n_jobs : int, optional
+605            The number of parallel jobs to run for neighbors search. 
+606            None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. 
+607            Doesn't affect fit method., by default None
+608        random_state : int, RandomState instance, optional
+609            controls the randomness of the estimator, by default None
+610        """
+611        super().__init__(base_estimator, n_samples, random_state)
+612        self.k_neighbors = k_neighbors
+613        self.mode = mode
+614        self.max_iterations = max_iterations
+615        self.n_jobs = n_jobs
+616        if mode != "seeded" and mode != "constrained":
+617            raise AttributeError("`mode` must be \"seeded\" or \"constrained\".")
+
+ + +

DeTriTraining - TriTraining with Depurated and Clustering. +Avoid the noise generated by the TriTraining algorithm by depurating the enlarged dataset and clustering the instances.

+ +
Parameters
+ +
    +
  • base_estimator (ClassifierMixin, optional): +An estimator object implementing fit and predict_proba, by default DecisionTreeClassifier()
  • +
  • n_samples (int, optional): +Number of samples to generate. +If left to None this is automatically set to the first dimension of the arrays., by default None
  • +
  • k_neighbors (int, optional): +Number of neighbors for depurate classification. +If at least k_neighbors/2+1 have a class other than the one predicted, the class is ignored., by default 3
  • +
  • mode (string, optional): +How to calculate the cluster each instance belongs to. +If seeded each instance belong to nearest cluster. +If constrained each instance belong to nearest cluster unless the instance is in to enlarged dataset, +then the instance belongs to the cluster of its class., by default seeded
  • +
  • max_iterations (int, optional): +Maximum number of iterations, by default 100
  • +
  • n_jobs (int, optional): +The number of parallel jobs to run for neighbors search. +None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. +Doesn't affect fit method., by default None
  • +
  • random_state (int, RandomState instance, optional): +controls the randomness of the estimator, by default None
  • +
+
+ + +
+
+ +
+ + def + fit(self, X, y, **kwards): + + + +
+ +
711    def fit(self, X, y, **kwards):
+712        """Build a DeTriTraining classifier from the training set (X, y).
+713
+714        Parameters
+715        ----------
+716        X : {array-like, sparse matrix} of shape (n_samples, n_features)
+717            The training input samples.
+718        y : array-like of shape (n_samples,)
+719            The target values (class labels), -1 if unlabel.
+720
+721        Returns
+722        -------
+723        self: DeTriTraining
+724            Fitted estimator.
+725        """
+726        X_label, y_label, X_unlabel = get_dataset(X, y)
+727
+728        self.label_encoder_ = LabelEncoder()
+729        self.label_encoder_.fit(y_label)
+730        y_label = self.label_encoder_.transform(y_label)
+731
+732        is_df = isinstance(X_label, pd.DataFrame)
+733
+734        self.classes_ = np.unique(y_label)
+735
+736        classes = set(self.classes_)
+737        instances = list()
+738        labels = list()
+739        iteration = zip(X_label, y_label)
+740        if is_df:
+741            iteration = zip(X_label.values, y_label)
+742        for x_, y_ in iteration:
+743            if y_ in classes:
+744                classes.remove(y_)
+745                instances.append(x_)
+746                labels.append(y_)
+747            if len(classes) == 0:
+748                break
+749
+750        S_ = []
+751        hypothesis = []
+752        for i in range(self._N_LEARNER):
+753            X_sampled, y_sampled = \
+754                resample(X_label, y_label, replace=True,
+755                         n_samples=self.n_samples,
+756                         random_state=self.random_state)
+757            if is_df:
+758                X_sampled = pd.DataFrame(X_sampled, columns=X_label.columns)
+759            hypothesis.append(
+760                skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]).fit(
+761                    X_sampled, y_sampled, **kwards)
+762            )
+763
+764            # Keep class order
+765            if not is_df:
+766                X_sampled = np.concatenate((np.array(instances), X_sampled), axis=0)
+767            else:
+768                X_sampled = pd.concat([pd.DataFrame(instances, columns=X_label.columns), X_sampled], axis=0)
+769
+770            y_sampled = np.concatenate((np.array(labels), y_sampled), axis=0)
+771
+772            S_.append((X_sampled, y_sampled))
+773
+774        changes = True
+775        last_addition = [0] * self._N_LEARNER
+776        it = 0 if X_unlabel.shape[0] > 0 else self.max_iterations
+777        while it < self.max_iterations:
+778            it += 1
+779            changes = False
+780
+781            # Enlarged
+782            L = [[]] * self._N_LEARNER
+783
+784            for i in range(self._N_LEARNER):
+785                hj, hk = TriTraining._another_hs(hypothesis, i)
+786                y_p = hj.predict(X_unlabel)
+787                validx = y_p == hk.predict(X_unlabel)
+788                L[i] = (X_unlabel[validx] if not is_df else X_unlabel.iloc[validx, :], y_p[validx])
+789
+790            for i, _ in enumerate(L):
+791
+792                if len(L[i][0]) > 0:
+793                    S_[i] = np.concatenate((X_label, L[i][0])) if not is_df else pd.concat([X_label, L[i][0]]), np.concatenate((y_label, L[i][1]))
+794                    S_[i] = self._depure(S_[i])
+795
+796            for i in range(self._N_LEARNER):
+797                if len(S_[i][0]) > len(X_label):
+798                    last_addition[i] = len(S_[i][0])
+799                    changes = True
+800                    hypothesis[i].fit(*S_[i], **kwards)
+801
+802            if not changes:
+803                break
+804        else:
+805            warn.warn("Maximum number of iterations reached before convergence. Consider increasing max_iter to improve the fit.", ConvergenceWarning)
+806
+807        S = np.concatenate([x[0] for x in S_]) if not is_df else pd.concat([x[0] for x in S_]), np.concatenate([x[1] for x in S_])
+808        S_0, index_ = np.unique(S[0], axis=0, return_index=True)
+809        S_1 = S[1][index_]
+810        S = S_0, S_1
+811        S = self._depure(S)  # Change, is S - L (only new)
+812
+813        new_y = self._clustering(S, X)
+814
+815        self.h_ = [skclone(self.base_estimator if type(self.base_estimator) is not list else self.base_estimator[i]).fit(X, new_y, **kwards) for i in range(self._N_LEARNER)]
+816        self.columns_ = [list(range(X.shape[1]))]
+817
+818        return self
+
+ + +

Build a DeTriTraining classifier from the training set (X, y).

+ +
Parameters
+ +
    +
  • X ({array-like, sparse matrix} of shape (n_samples, n_features)): +The training input samples.
  • +
  • y (array-like of shape (n_samples,)): +The target values (class labels), -1 if unlabel.
  • +
+ +
Returns
+ +
    +
  • self (DeTriTraining): +Fitted estimator.
  • +
+
+ + +
+
+
Inherited Members
+
+
sslearn.wrapper._co.BaseCoTraining
+
predict_proba
+
score
+ +
+ +
sklearn.base.BaseEstimator
+
get_params
+
set_params
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/docs/sslearn_mini.svg b/docs/sslearn_mini.svg new file mode 100644 index 0000000..f8b0b13 --- /dev/null +++ b/docs/sslearn_mini.svg @@ -0,0 +1,101 @@ + + + + + + + + * + * + * + ssl + + + + diff --git a/docs/sslearn_mini.webp b/docs/sslearn_mini.webp new file mode 100644 index 0000000..8539af9 Binary files /dev/null and b/docs/sslearn_mini.webp differ diff --git a/setup.py b/setup.py index 6182b0b..e483cc0 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,7 @@ def get_version(): version = get_version() -url = f"https://github.com/jlgarridol/sslearn/archive/refs/tags/f{version}.tar.gz" +url = f"https://github.com/jlgarridol/sslearn/archive/refs/tags/{version}.tar.gz" setuptools.setup( name='sslearn', @@ -25,12 +25,12 @@ def get_version(): url='https://github.com/jlgarridol/sslearn', license='new BSD', download_url=url, - install_requires=["joblib==1.2.0", - "numpy==1.23.3", - "pandas==1.4.3", - "scikit_learn==1.2.0", - "scipy==1.9.3", - "statsmodels==0.13.2"], + install_requires=["joblib>=1.2.0", + "numpy>=1.23.3", + "pandas>=1.4.3", + "scikit_learn>=1.2.0", + "scipy>=1.10.1", + "statsmodels>=0.13.2"], packages=setuptools.find_packages(exclude=("tests", "experiments")), include_package_data=True, classifiers=[ @@ -42,5 +42,7 @@ def get_version(): 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', ] ) diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..6e7fb7f --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,14 @@ + + +https://pdoc.dev/docs/ +https://pdoc.dev/docs/sslearn.html +https://pdoc.dev/docs/sslearn/subview.html +https://pdoc.dev/docs/sslearn/model_selection.html +https://pdoc.dev/docs/sslearn/base.html +https://pdoc.dev/docs/sslearn/datasets.html +https://pdoc.dev/docs/sslearn/wrapper.html +https://pdoc.dev/docs/sslearn/restricted.html +https://pdoc.dev/docs/sslearn/utils.html + \ No newline at end of file diff --git a/sslearn/__init__.py b/sslearn/__init__.py index 6b0785a..f6bbaae 100644 --- a/sslearn/__init__.py +++ b/sslearn/__init__.py @@ -1,4 +1,18 @@ -__version__='1.0.4' +# Open README.md and added to __doc__ for +import os +if os.path.exists("../README.md"): + with open("../README.md", "r") as f: + __doc__ = f.read() +elif os.path.exists("README.md"): + with open("README.md", "r") as f: + __doc__ = f.read() +else: + __doc__ = "Semi-Supervised Learning (SSL) is a Python package that provides tools to train and evaluate semi-supervised learning models." + + +__version__='1.0.4.1' __AUTHOR__="José Luis Garrido-Labrador" # Author of the package __AUTHOR_EMAIL__="jlgarrido@ubu.es" # Author's email __URL__="https://pypi.org/project/sslearn/" + + diff --git a/sslearn/base.py b/sslearn/base.py index 158010d..58c4323 100644 --- a/sslearn/base.py +++ b/sslearn/base.py @@ -1,3 +1,23 @@ +""" +Summary of module `sslearn.base`: + +## Functions + + +get_dataset(X, y): + Check and divide dataset between labeled and unlabeled data. + +## Classes + + +[FakedProbaClassifier](#FakedProbaClassifier): +> Create a classifier that fakes predict_proba method if it does not exist. + +[OneVsRestSSLClassifier](#OneVsRestSSLClassifier): +> Adapted OneVsRestClassifier for SSL datasets + +""" + import array import warnings from abc import ABC, abstractmethod @@ -19,7 +39,29 @@ from sklearn.ensemble._base import _set_random_states from sklearn.utils import check_random_state +__all__ = ["get_dataset", "FakedProbaClassifier", "OneVsRestSSLClassifier"] + + + def get_dataset(X, y): + """Check and divide dataset between labeled and unlabeled data. + + Parameters + ---------- + X : ndarray or DataFrame of shape (n_samples, n_features) + Features matrix. + y : ndarray of shape (n_samples,) + Target vector. + + Returns + ------- + X_label : ndarray or DataFrame of shape (n_label, n_features) + Labeled features matrix. + y_label : ndarray or Serie of shape (n_label,) + Labeled target vector. + X_unlabel : ndarray or Serie DataFrame of shape (n_unlabel, n_features) + Unlabeled features matrix. + """ is_df = False if isinstance(X, pd.DataFrame): @@ -42,7 +84,7 @@ def get_dataset(X, y): return X_label, y_label, X_unlabel -class BaseEnsemble(ABC, MetaEstimatorMixin): +class BaseEnsemble(ABC, MetaEstimatorMixin, BaseEstimator): @abstractmethod def predict_proba(self, X): @@ -71,20 +113,81 @@ def predict(self, X): class FakedProbaClassifier(MetaEstimatorMixin, ClassifierMixin, BaseEstimator): + """ + Fake predict_proba method for classifiers that do not have it. + When predict_proba is called, it will use one hot encoding to fake the probabilities if base_estimator does not have predict_proba method. + + Examples + -------- + ```python + from sklearn.svm import SVC + # SVC does not have predict_proba method + + from sslearn.base import FakedProbaClassifier + faked_svc = FakedProbaClassifier(SVC()) + faked_svc.fit(X, y) + faked_svc.predict_proba(X) # One hot encoding probabilities + ``` + """ def __init__(self, base_estimator): + """Create a classifier that fakes predict_proba method if it does not exist. + + Parameters + ---------- + base_estimator : ClassifierMixin + A classifier that implements fit and predict methods. + """ self.base_estimator = base_estimator def fit(self, X, y): + """Fit a FakedProbaClassifier. + + Parameters + ---------- + X : {array-like, sparse matrix} of shape (n_samples, n_features) + The input samples. + y : {array-like, sparse matrix} of shape (n_samples,) + The target values. + + Returns + ------- + self : FakedProbaClassifier + Returns self. + """ self.classes_ = np.unique(y) self.one_hot = OneHotEncoder().fit(y.reshape(-1, 1)) self.base_estimator.fit(X, y) return self def predict(self, X): + """Predict the classes of X. + + Parameters + ---------- + X : {array-like, sparse matrix} of shape (n_samples, n_features) + Array representing the data. + + Returns + ------- + y : ndarray of shape (n_samples,) + Array with predicted labels. + """ return self.base_estimator.predict(X) def predict_proba(self, X): + """Predict the probabilities of each class for X. + If the base estimator does not have a predict_proba method, it will be faked using one hot encoding. + + Parameters + ---------- + X : {array-like, sparse matrix} of shape (n_samples, n_features) + + Returns + ------- + y : ndarray of shape (n_samples, n_classes) + Array with predicted probabilities. + """ if "predict_proba" in dir(self.base_estimator): return self.base_estimator.predict_proba(X) else: @@ -122,6 +225,12 @@ def _predict_binary_ssl(estimator, X, **predict_params): class OneVsRestSSLClassifier(OneVsRestClassifier): + """Adapted OneVsRestClassifier for SSL datasets + + Prevent use unlabeled data as a independent class in the classifier. + + For more information of OvR classifier, see the documentation of [OneVsRestClassifier](https://scikit-learn.org/stable/modules/generated/sklearn.multiclass.OneVsRestClassifier.html). + """ def __init__(self, estimator, *, n_jobs=None): """Adapted OneVsRestClassifier for SSL datasets diff --git a/sslearn/datasets/__init__.py b/sslearn/datasets/__init__.py index bd13379..aca2e0e 100644 --- a/sslearn/datasets/__init__.py +++ b/sslearn/datasets/__init__.py @@ -1,3 +1,18 @@ +""" +Summary of module `sslearn.datasets`: + +This module contains functions to load and save datasets in different formats. + +## Functions + +1. read_csv : Load a dataset from a CSV file. +2. read_keel : Load a dataset from a KEEL file. +3. secure_dataset : Secure the dataset by converting it into a secure format. +4. save_keel : Save a dataset in KEEL format. + + +""" + from ._loader import read_csv, read_keel from ._writer import save_keel from ._preprocess import secure_dataset diff --git a/sslearn/model_selection/__init__.py b/sslearn/model_selection/__init__.py index 5bc0185..95cde12 100644 --- a/sslearn/model_selection/__init__.py +++ b/sslearn/model_selection/__init__.py @@ -1,3 +1,21 @@ -from ._split import * +""" +Summary of module `sslearn.model_selection`: -__all__ = ['StratifiedKFoldSS', 'artificial_ssl_dataset'] \ No newline at end of file +This module contains functions to split datasets into training and testing sets. + +## Functions + +[artificial_ssl_dataset](#artificial_ssl_dataset): +> Generate an artificial semi-supervised learning dataset. + +## Classes + +[StratifiedKFoldSS](#StratifiedKFoldSS): +> Stratified K-Folds cross-validator for semi-supervised learning. + + +""" + +from ._split import artificial_ssl_dataset, StratifiedKFoldSS + +__all__ = ['artificial_ssl_dataset', 'StratifiedKFoldSS'] \ No newline at end of file diff --git a/sslearn/model_selection/_split.py b/sslearn/model_selection/_split.py index d24c773..0463435 100644 --- a/sslearn/model_selection/_split.py +++ b/sslearn/model_selection/_split.py @@ -4,7 +4,26 @@ class StratifiedKFoldSS(): + """ + Stratified K-Folds cross-validator for semi-supervised learning. + + Provides label and unlabel indices for each split. Using the `StratifiedKFold` method from `sklearn`. + The `test` set is the labeled set and the `train` set is the unlabeled set. + """ + + def __init__(self, n_splits=5, shuffle=False, random_state=None): + """ + Parameters + ---------- + n_splits : int, default=5 + Number of folds. Must be at least 2. + shuffle : bool, default=False + Whether to shuffle each class's samples before splitting into batches. + random_state : int or RandomState instance, default=None + When shuffle is True, random_state affects the ordering of the indices. + + """ self.K = ms.StratifiedKFold(n_splits=n_splits, shuffle=shuffle, random_state=random_state) @@ -29,9 +48,9 @@ def split(self, X, y): The feature set. y : ndarray The label set, -1 for unlabel instance. - label: ndarray + label : ndarray The training set indices for split mark as labeled. - unlabel: ndarray + unlabel : ndarray The training set indices for split mark as unlabeled. """ for train, test in self.K.split(X, y): diff --git a/sslearn/restricted.py b/sslearn/restricted.py index 6dd5a36..011be28 100644 --- a/sslearn/restricted.py +++ b/sslearn/restricted.py @@ -1,9 +1,30 @@ +"""Summary of module `sslearn.restricted`: + +This module contains classes to train a classifier using the restricted set classification approach. + +## Classes + +[WhoIsWhoClassifier](#WhoIsWhoClassifier): +> Who is Who Classifier + +## Functions + +[conflict_rate](#conflict_rate): +> Compute the conflict rate of a prediction, given a set of restrictions. +[combine_predictions](#combine_predictions): +> Combine the predictions of a group of instances to keep the restrictions. + + +""" + import numpy as np from sklearn.base import ClassifierMixin, MetaEstimatorMixin, BaseEstimator from scipy.optimize import linear_sum_assignment import warnings import pandas as pd +__all__ = ["conflict_rate", "combine_predictions", "WhoIsWhoClassifier"] + class WhoIsWhoClassifier(BaseEstimator, ClassifierMixin, MetaEstimatorMixin): def __init__(self, base_estimator, method="hungarian", conflict_weighted=True): diff --git a/sslearn/subview/__init__.py b/sslearn/subview/__init__.py index e112345..aaaf8ba 100644 --- a/sslearn/subview/__init__.py +++ b/sslearn/subview/__init__.py @@ -1,3 +1,18 @@ +""" +Summary of module `sslearn.subview`: + +This module contains classes to train a classifier or a regressor selecting a sub-view of the data. + +## Classes + +[SubViewClassifier](#SubViewClassifier): +> Train a sub-view classifier. +[SubViewRegressor](#SubViewRegressor): +> Train a sub-view regressor. + + +""" + from ._subview import SubViewClassifier, SubViewRegressor __all__ = ["SubViewClassifier", "SubViewRegressor"] \ No newline at end of file diff --git a/sslearn/subview/_subview.py b/sslearn/subview/_subview.py index b1119b1..eca25d8 100644 --- a/sslearn/subview/_subview.py +++ b/sslearn/subview/_subview.py @@ -10,6 +10,29 @@ class SubView(BaseEstimator): + """ + A classifier that uses a subview of the data. + + Example + ------- + ```python + from sklearn.model_selection import train_test_split + from sklearn.tree import DecisionTreeClassifier + from sslearn.subview import SubViewClassifier + + # Mode 'include' will include all columns that contain `string` + clf = SubViewClassifier(DecisionTreeClassifier(), "sepal", mode="include") + clf.fit(X, y) + + # Mode 'regex' will include all columns that match the regex + clf = SubViewClassifier(DecisionTreeClassifier(), "sepal.*", mode="regex") + clf.fit(X, y) + + # Mode 'index' will include the columns at the index, useful for numpy arrays + clf = SubViewClassifier(DecisionTreeClassifier(), [0, 1], mode="index") + clf.fit(X, y) + ``` + """ def __init__(self, base_estimator, subview, mode="regex"): """Create a classifier that uses a subview of the data. diff --git a/sslearn/utils.py b/sslearn/utils.py index 83951bb..352ca3d 100644 --- a/sslearn/utils.py +++ b/sslearn/utils.py @@ -1,3 +1,27 @@ +""" +Some utility functions + +This module contains utility functions that are used in different parts of the library. + +## Functions + +[safe_division](#safe_division): +> Safely divide two numbers preventing division by zero. +[confidence_interval](#confidence_interval): +> Calculate the confidence interval of the predictions. +[choice_with_proportion](#choice_with_proportion): +> Choice the best predictions according to the proportion of each class. +[calculate_prior_probability](#calculate_prior_probability): +> Calculate the priori probability of each label. +[mode](#mode): +> Calculate the mode of a list of values. +[check_n_jobs](#check_n_jobs): +> Check `n_jobs` parameter according to the scikit-learn convention. +[check_classifier](#check_classifier): +> Check if the classifier is a ClassifierMixin or a list of ClassifierMixin. + +""" + import numpy as np import os import math @@ -8,14 +32,51 @@ from sklearn.tree import DecisionTreeClassifier from sklearn.base import ClassifierMixin +__all__ = ["safe_division", "confidence_interval", "choice_with_proportion", "calculate_prior_probability", + "mode", "check_n_jobs", "check_classifier"] + def safe_division(dividend, divisor, epsilon): + """Safely divide two numbers preventing division by zero + + Parameters + ---------- + dividend : numeric + Dividend value + divisor : numeric + Divisor value + epsilon : numeric + Close to zero value to be used in case of division by zero + + Returns + ------- + result : numeric + Result of the division + """ if divisor == 0: return dividend / epsilon return dividend / divisor def confidence_interval(X, hyp, y, alpha=.95): + """Calculate the confidence interval of the predictions + + Parameters + ---------- + X : {array-like, sparse matrix} of shape (n_samples, n_features) + The input samples. + hyp : classifier + The classifier to be used for prediction + y : array-like of shape (n_samples,) + The target values + alpha : float, optional + confidence (1 - significance), by default .95 + + Returns + ------- + li, hi: float + lower and upper bound of the confidence interval + """ data = hyp.predict(X) successes = np.count_nonzero(data == y) @@ -25,6 +86,24 @@ def confidence_interval(X, hyp, y, alpha=.95): def choice_with_proportion(predictions, class_predicted, proportion, extra=0): + """Choice the best predictions according to the proportion of each class. + + Parameters + ---------- + predictions : array-like of shape (n_samples,) + array of predictions + class_predicted : array-like of shape (n_samples,) + array of predicted classes + proportion : dict + dictionary with the proportion of each class + extra : int, optional + number of extra instances to be added, by default 0 + + Returns + ------- + indices: array-like of shape (n_samples,) + array of indices of the best predictions + """ n = len(predictions) for_each_class = {c: int(n * j) for c, j in proportion.items()} indices = np.zeros(0) diff --git a/sslearn/wrapper/__init__.py b/sslearn/wrapper/__init__.py index f5336c9..7403aa9 100644 --- a/sslearn/wrapper/__init__.py +++ b/sslearn/wrapper/__init__.py @@ -1,7 +1,41 @@ +""" +Summary of module `sslearn.wrapper`: + +This module contains classes to train semi-supervised learning algorithms using a wrapper approach. + +## Self-Training Algorithms + +* [SelfTraining](#SelfTraining): +Self-training algorithm. +* [Setred](#Setred): +Self-training with redundancy reduction. + +## Co-Training Algorithms + +* [CoTraining](#CoTraining): +Co-training +* [CoTrainingByCommittee](#CoTrainingByCommittee): +Co-training by committee +* [DemocraticCoLearning](#DemocraticCoLearning): +Democratic co-learning +* [Rasco](#Rasco): +Random subspace co-training +* [RelRasco](#RelRasco): +Relevant random subspace co-training +* [CoForest](#CoForest): +Co-Forest +* [TriTraining](#TriTraining): +Tri-training +* [DeTriTraining](#DeTriTraining): +Data Editing Tri-training + +""" + from ._co import (CoForest, CoTraining, CoTrainingByCommittee, DemocraticCoLearning, Rasco, RelRasco) from ._self import SelfTraining, Setred -from ._tritraining import DeTriTraining, TriTraining, WiWTriTraining +from ._tritraining import DeTriTraining, TriTraining -__all__ = ['SelfTraining', 'CoTrainingByCommittee', 'Rasco', 'RelRasco', 'TriTraining', 'WiWTriTraining' - "CoTraining", "DeTriTraining", "DemocraticCoLearning", "Setred", "CoForest"] +__all__ = ["SelfTraining", "Setred", "CoTraining", "CoTrainingByCommittee", + "DemocraticCoLearning", "Rasco", "RelRasco", "CoForest", + "TriTraining", "DeTriTraining"] diff --git a/sslearn/wrapper/_co.py b/sslearn/wrapper/_co.py index 7b266f1..a01d67d 100644 --- a/sslearn/wrapper/_co.py +++ b/sslearn/wrapper/_co.py @@ -19,6 +19,7 @@ from sklearn.utils import check_array, check_random_state, resample from sklearn.utils.validation import check_is_fitted + from sslearn.utils import check_n_jobs from ..base import BaseEnsemble, get_dataset @@ -26,7 +27,19 @@ choice_with_proportion, confidence_interval, mode, safe_division) -class BaseCoTraining(BaseEstimator, ClassifierMixin, BaseEnsemble): +class BaseCoTraining(BaseEnsemble): + """ + Base class for CoTraining classifiers. + + Include + ------- + 1. `predict_proba` method that returns the probability of each class. + 2. `predict` method that returns the class of each instance by argmax of `predict_proba`. + 3. `score` method that returns the mean accuracy on the given test data and labels. + """ + + _estimator_type = "classifier" + @abstractmethod def fit(self, X, y, **kwards): pass @@ -40,7 +53,7 @@ def predict_proba(self, X): Array representing the data. Returns ------- - ndarray of shape (n_samples, n_features) + class probabilities: ndarray of shape (n_samples, n_classes) Array with prediction probabilities. """ is_df = isinstance(X, pd.DataFrame) @@ -69,9 +82,90 @@ def predict_proba(self, X): return y else: raise NotFittedError("Classifier not fitted") + + _estimator_type = "classifier" + + def score(self, X, y, sample_weight=None): + """ + Return the mean accuracy on the given test data and labels. + + In multi-label classification, this is the subset accuracy + which is a harsh metric since you require for each sample that + each label set be correctly predicted. + + Parameters + ---------- + X : array-like of shape (n_samples, n_features) + Test samples. + + y : array-like of shape (n_samples,) or (n_samples, n_outputs) + True labels for `X`. + + sample_weight : array-like of shape (n_samples,), default=None + Sample weights. + + Returns + ------- + score : float + Mean accuracy of ``self.predict(X)`` w.r.t. `y`. + """ + from .metrics import accuracy_score + + return accuracy_score(y, self.predict(X), sample_weight=sample_weight) class DemocraticCoLearning(BaseCoTraining): + """ + **Democratic Co-learning. Ensemble of classifiers of different types.** + -------------------------------------------- + + A iterative algorithm that uses a ensemble of classifiers to label instances. + The main process is: + 1. Train each classifier with the labeled instances. + 2. While any classifier is retrained: + 1. Predict the instances from the unlabeled set. + 2. Calculate the confidence interval for each classifier for define weights. + 3. Calculate the weighted vote for each instance. + 4. Calculate the majority vote for each instance. + 5. Select the instances to label if majority vote is the same as weighted vote. + 6. Select the instances to retrain the classifier, if `only_mislabeled` is False then select all instances, else select only mislabeled instances for each classifier. + 7. Retrain the classifier with the new instances if the error rate is lower than the previous iteration. + 3. Ignore the classifiers with confidence interval lower than 0.5. + 4. Combine the probabilities of each classifier. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + + **Example** + ------- + ```python + from sklearn.datasets import load_iris + from sklearn.tree import DecisionTreeClassifier + from sklearn.naive_bayes import GaussianNB + from sklearn.neighbors import KNeighborsClassifier + from sslearn.wrapper import DemocraticCoLearning + from sslearn.model_selection import artificial_ssl_dataset + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + dcl = DemocraticCoLearning(base_estimator=[DecisionTreeClassifier(), GaussianNB(), KNeighborsClassifier(n_neighbors=3)]) + dcl.fit(X, y) + dcl.score(X_unlabel, y_unlabel) + ``` + + **References** + ---------- + Y. Zhou and S. Goldman, (2004)
+ Democratic co-learning,
+ in 16th IEEE International Conference on Tools with Artificial Intelligence,
+ pp. 594-602, [10.1109/ICTAI.2004.48](https://doi.org/10.1109/ICTAI.2004.48). + """ + def __init__( self, base_estimator=[ @@ -86,9 +180,7 @@ def __init__( random_state=None ): """ - Y. Zhou and S. Goldman, "Democratic co-learning," - 16th IEEE International Conference on Tools with Artificial Intelligence, - 2004, pp. 594-602, doi: 10.1109/ICTAI.2004.48. + Democratic Co-learning. Ensemble of classifiers of different types. Parameters ---------- @@ -182,7 +274,7 @@ def fit(self, X, y, estimator_kwards=None): Returns ------- - self + self : DemocraticCoLearning fitted classifier """ @@ -346,7 +438,7 @@ def predict_proba(self, X): Array representing the data. Returns ------- - ndarray of shape (n_samples, n_features) + class probabilities: ndarray of shape (n_samples, n_classes) Array with prediction probabilities. """ if "h_" in dir(self): @@ -359,15 +451,58 @@ def predict_proba(self, X): class CoTraining(BaseCoTraining): """ - Avrim Blum and Tom Mitchell. 1998. - Combining labeled and unlabeled data with co-training. - In Proceedings of the eleventh annual conference on Computational learning theory (COLT' 98). - Association for Computing Machinery, New York, NY, USA, 92–100. - DOI:https://doi.org/10.1145/279943.279962 - - Han, Xian-Hua, Yen-wei Chen, and Xiang Ruan. 2011. - ‘Multi-Class Co-Training Learning for Object and Scene Recognition’. - Pp. 67–70 in. Nara, Japan. + **CoTraining classifier. Multi-view learning algorithm that uses two classifiers to label instances.** + -------------------------------------------- + + The main process is: + 1. Train each classifier with the labeled instances and their respective view. + 2. While max iterations is not reached or any instance is unlabeled: + 1. Predict the instances from the unlabeled set. + 2. Select the instances that have the same prediction and the predictions are above the threshold. + 3. Label the instances with the highest probability, keeping the balance of the classes. + 4. Retrain the classifier with the new instances. + 3. Combine the probabilities of each classifier. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **Example** + ------- + ```python + from sklearn.datasets import load_iris + from sklearn.tree import DecisionTreeClassifier + from sslearn.wrapper import CoTraining + from sslearn.model_selection import artificial_ssl_dataset + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + cotraining = CoTraining(DecisionTreeClassifier()) + X1 = X[:, [0, 1]] + X2 = X[:, [2, 3]] + cotraining.fit(X1, y, X2) + # or + cotraining.fit(X, y, features=[[0, 1], [2, 3]]) + # or + cotraining = CoTraining(DecisionTreeClassifier(), force_second_view=False) + cotraining.fit(X, y) + ``` + + **References** + ---------- + Avrim Blum and Tom Mitchell. (1998).
+ Combining labeled and unlabeled data with co-training
+ in Proceedings of the eleventh annual conference on Computational learning theory (COLT' 98).
+ Association for Computing Machinery, New York, NY, USA, 92-100.
+ [10.1145/279943.279962](https://doi.org/10.1145/279943.279962) + + Han, Xian-Hua, Yen-wei Chen, and Xiang Ruan. (2011).
+ Multi-Class Co-Training Learning for Object and Scene Recognition,
+ pp. 67-70 in. Nara, Japan.
+ [http://www.mva-org.jp/Proceedings/2011CD/papers/04-08.pdf](http://www.mva-org.jp/Proceedings/2011CD/papers/04-08.pdf)
""" def __init__( @@ -380,7 +515,9 @@ def __init__( force_second_view=True, random_state=None ): - """Create a CoTraining classifier + """ + Create a CoTraining classifier. + Multi-view learning algorithm that uses two classifiers to label instances. Parameters ---------- @@ -398,6 +535,7 @@ def __init__( The second classifier needs a different view of the data. If False then a second view will be same as the first, by default True random_state : int, RandomState instance, optional controls the randomness of the estimator, by default None + """ self.base_estimator = check_classifier(base_estimator, False) if second_base_estimator is not None: @@ -561,7 +699,7 @@ def predict_proba(self, X, X2=None, **kwards): Array representing the data from another view, by default None Returns ------- - ndarray of shape (n_samples, n_features) + class probabilities: ndarray of shape (n_samples, n_classes) Array with prediction probabilities. """ if "columns_" in dir(self): @@ -626,6 +764,54 @@ def score(self, X, y, sample_weight=None, **kwards): class Rasco(BaseCoTraining): + """ + **Co-Training based on random subspaces** + -------------------------------------------- + + Generate a set of random subspaces and train a classifier for each subspace. + + The main process is: + 1. Generate a set of random subspaces. + 2. Train a classifier for each subspace. + 3. While max iterations is not reached or any instance is unlabeled: + 1. Predict the instances from the unlabeled set for each classifier. + 2. Calculate the average of the predictions. + 3. Select the instances with the highest probability. + 4. Label the instances with the highest probability, keeping the balance of the classes. + 5. Retrain the classifier with the new instances. + 4. Combine the probabilities of each classifier. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **Example** + ------- + ```python + from sklearn.datasets import load_iris + from sslearn.wrapper import Rasco + from sslearn.model_selection import artificial_ssl_dataset + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + rasco = Rasco() + rasco.fit(X, y) + rasco.score(X_unlabel, y_unlabel) + ``` + + **References** + ---------- + Wang, J., Luo, S. W., & Zeng, X. H. (2008).
+ A random subspace method for co-training,
+ in 2008 IEEE International Joint Conference on Neural Networks
+ IEEE World Congress on Computational Intelligence
+ (pp. 195-200). IEEE. [10.1109/IJCNN.2008.4633789](https://doi.org/10.1109/IJCNN.2008.4633789) + """ + + def __init__( self, base_estimator=DecisionTreeClassifier(), @@ -638,12 +824,6 @@ def __init__( """ Co-Training based on random subspaces - Wang, J., Luo, S. W., & Zeng, X. H. (2008, June). - A random subspace method for co-training. - In 2008 IEEE International Joint Conference on Neural Networks - (IEEE World Congress on Computational Intelligence) - (pp. 195-200). IEEE. - Parameters ---------- base_estimator : ClassifierMixin, optional @@ -678,7 +858,7 @@ def _generate_random_subspaces(self, X, y=None, random_state=None): Returns ------- - list + subspaces : list List of index of features """ random_state = check_random_state(random_state) @@ -770,6 +950,42 @@ def fit(self, X, y, **kwards): class RelRasco(Rasco): + """ + **Co-Training based on relevant random subspaces** + -------------------------------------------- + + Is a variation of `sslearn.wrapper.Rasco` that uses the mutual information of each feature to select the random subspaces. + The process of training is the same as Rasco. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **Example** + ------- + ```python + from sklearn.datasets import load_iris + from sslearn.wrapper import RelRasco + from sslearn.model_selection import artificial_ssl_dataset + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + relrasco = RelRasco() + relrasco.fit(X, y) + relrasco.score(X_unlabel, y_unlabel) + ``` + + **References** + ---------- + Yaslan, Y., & Cataltepe, Z. (2010).
+ Co-training with relevant random subspaces.
+ Neurocomputing, 73(10-12), 1652-1661.
+ [10.1016/j.neucom.2010.01.018](https://doi.org/10.1016/j.neucom.2010.01.018) + """ + def __init__( self, base_estimator=DecisionTreeClassifier(), @@ -782,11 +998,6 @@ def __init__( """ Co-Training with relevant random subspaces - Yaslan, Y., & Cataltepe, Z. (2010). - Co-training with relevant random subspaces. - Neurocomputing, 73(10-12), 1652-1661. - - Parameters ---------- base_estimator : ClassifierMixin, optional @@ -802,6 +1013,7 @@ def __init__( controls the randomness of the estimator, by default None n_jobs : int, optional The number of jobs to run in parallel. -1 means using all processors., by default None + """ super().__init__( base_estimator, @@ -824,7 +1036,7 @@ def _generate_random_subspaces(self, X, y, random_state=None): Returns ------- - list + subspaces: list List of index of features """ random_state = check_random_state(random_state) @@ -844,7 +1056,52 @@ def _generate_random_subspaces(self, X, y, random_state=None): # Done and tested -class CoTrainingByCommittee(ClassifierMixin, BaseEnsemble, BaseEstimator): +class CoTrainingByCommittee(BaseCoTraining): + """ + **Co-Training by Committee classifier.** + -------------------------------------------- + + Create a committee trained by co-training based on the diversity of the classifiers + + The main process is: + 1. Train a committee of classifiers. + 2. Create a pool of unlabeled instances. + 3. While max iterations is not reached or any instance is unlabeled: + 1. Predict the instances from the unlabeled set. + 2. Select the instances with the highest probability. + 3. Label the instances with the highest probability, keeping the balance of the classes but ensuring that at least n instances of each class are added. + 4. Retrain the classifier with the new instances. + 4. Combine the probabilities of each classifier. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **Example** + ------- + ```python + from sklearn.datasets import load_iris + from sslearn.wrapper import CoTrainingByCommittee + from sslearn.model_selection import artificial_ssl_dataset + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + cotraining = CoTrainingByCommittee() + cotraining.fit(X, y) + cotraining.score(X_unlabel, y_unlabel) + ``` + + **References** + ---------- + M. F. A. Hady and F. Schwenker,
+ Co-training by Committee: A New Semi-supervised Learning Framework,
+ in 2008 IEEE International Conference on Data Mining Workshops,
+ Pisa, 2008, pp. 563-572, [10.1109/ICDMW.2008.27](https://doi.org/10.1109/ICDMW.2008.27) + """ + def __init__( self, ensemble_estimator=BaggingClassifier(), @@ -853,12 +1110,10 @@ def __init__( min_instances_for_class=3, random_state=None, ): - """Create a committee trained by cotraining based on + """ + Create a committee trained by cotraining based on the diversity of classifiers. - M. F. A. Hady and F. Schwenker, - "Co-training by Committee: A New Semi-supervised Learning Framework," - 2008 IEEE International Conference on Data Mining Workshops, - Pisa, 2008, pp. 563-572, doi: 10.1109/ICDMW.2008.27. + Parameters ---------- ensemble_estimator : ClassifierMixin, optional @@ -870,6 +1125,8 @@ def __init__( max number of unlabeled instances candidates to pseudolabel, by default 100 random_state : int, RandomState instance, optional controls the randomness of the estimator, by default None + + """ self.ensemble_estimator = check_classifier(ensemble_estimator, False) self.max_iterations = max_iterations @@ -887,7 +1144,7 @@ def fit(self, X, y, **kwards): The target values (class labels), -1 if unlabel. Returns ------- - self: CoTrainingByCommittee + self : CoTrainingByCommittee Fitted estimator. """ self.ensemble_estimator = skclone(self.ensemble_estimator) @@ -969,7 +1226,7 @@ def predict(self, X): The input samples. Returns ------- - y: array-like of shape (n_samples,) + y : array-like of shape (n_samples,) The predicted classes """ check_is_fitted(self.ensemble_estimator) @@ -984,7 +1241,7 @@ def predict_proba(self, X): The input samples. Returns ------- - y: ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1 + y : ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1 The predicted classes """ check_is_fitted(self.ensemble_estimator) @@ -1022,12 +1279,56 @@ def score(self, X, y, sample_weight=None): # Done and tested class CoForest(BaseCoTraining): + """ + **CoForest classifier. Random Forest co-training** + ---------------------------- + + Ensemble method for CoTraining based on Random Forest. + + The main process is: + 1. Train a committee of classifiers using bootstrap. + 2. While any base classifier is retrained: + 1. Predict the instances from the unlabeled set. + 2. Select the instances with the highest probability. + 3. Label the instances with the highest probability + 4. Add the instances to the labeled set only if the error is not bigger than the previous error. + 5. Retrain the classifier with the new instances. + 3. Combine the probabilities of each classifier. + + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **Example** + ------- + ```python + from sklearn.datasets import load_iris + from sslearn.wrapper import CoForest + from sslearn.model_selection import artificial_ssl_dataset + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + coforest = CoForest() + coforest.fit(X, y) + coforest.score(X_unlabel, y_unlabel) + ``` + + **References** + ---------- + Li, M., & Zhou, Z.-H. (2007).
+ Improve Computer-Aided Diagnosis With Machine Learning Techniques Using Undiagnosed Samples.
+ IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans,
+ 37(6), 1088-1098. [10.1109/tsmca.2007.904745](https://doi.org/10.1109/tsmca.2007.904745) + """ + def __init__(self, base_estimator=DecisionTreeClassifier(), n_estimators=7, threshold=0.75, bootstrap=True, n_jobs=None, random_state=None, version="1.0.3"): """ - Li, M., & Zhou, Z.-H. (2007). - Improve Computer-Aided Diagnosis With Machine Learning Techniques Using Undiagnosed Samples. - IEEE Transactions on Systems, Man, and Cybernetics - Part A: Systems and Humans, - 37(6), 1088–1098. doi:10.1109/tsmca.2007.904745 + Generate a CoForest classifier. + A SSL Random Forest adaption for CoTraining. Parameters ---------- diff --git a/sslearn/wrapper/_self.py b/sslearn/wrapper/_self.py index 080db55..e18799d 100644 --- a/sslearn/wrapper/_self.py +++ b/sslearn/wrapper/_self.py @@ -13,106 +13,38 @@ class SelfTraining(SelfTrainingClassifier): - - """Self-training. Adaptation of SelfTrainingClassifier from sklearn with data loader compatible. - - This class allows a given supervised classifier to function as a - semi-supervised classifier, allowing it to learn from unlabeled data. It - does this by iteratively predicting pseudo-labels for the unlabeled data - and adding them to the training set. - - The classifier will continue iterating until either max_iter is reached, or - no pseudo-labels were added to the training set in the previous iteration. - - Read more in the :ref:`User Guide `. - - Parameters - ---------- - base_estimator : estimator object - An estimator object implementing ``fit`` and ``predict_proba``. - Invoking the ``fit`` method will fit a clone of the passed estimator, - which will be stored in the ``base_estimator_`` attribute. - - threshold : float, default=0.75 - The decision threshold for use with `criterion='threshold'`. - Should be in [0, 1). When using the 'threshold' criterion, a - :ref:`well calibrated classifier ` should be used. - - criterion : {'threshold', 'k_best'}, default='threshold' - The selection criterion used to select which labels to add to the - training set. If 'threshold', pseudo-labels with prediction - probabilities above `threshold` are added to the dataset. If 'k_best', - the `k_best` pseudo-labels with highest prediction probabilities are - added to the dataset. When using the 'threshold' criterion, a - :ref:`well calibrated classifier ` should be used. - - k_best : int, default=10 - The amount of samples to add in each iteration. Only used when - `criterion` is k_best'. - - max_iter : int or None, default=10 - Maximum number of iterations allowed. Should be greater than or equal - to 0. If it is ``None``, the classifier will continue to predict labels - until no new pseudo-labels are added, or all unlabeled samples have - been labeled. - - verbose : bool, default=False - Enable verbose output. - - Attributes - ---------- - base_estimator_ : estimator object - The fitted estimator. - - classes_ : ndarray or list of ndarray of shape (n_classes,) - Class labels for each output. (Taken from the trained - ``base_estimator_``). - - transduction_ : ndarray of shape (n_samples,) - The labels used for the final fit of the classifier, including - pseudo-labels added during fit. - - labeled_iter_ : ndarray of shape (n_samples,) - The iteration in which each sample was labeled. When a sample has - iteration 0, the sample was already labeled in the original dataset. - When a sample has iteration -1, the sample was not labeled in any - iteration. - - n_iter_ : int - The number of rounds of self-training, that is the number of times the - base estimator is fitted on relabeled variants of the training set. - - termination_condition_ : {'max_iter', 'no_change', 'all_labeled'} - The reason that fitting was stopped. - - - 'max_iter': `n_iter_` reached `max_iter`. - - 'no_change': no new labels were predicted. - - 'all_labeled': all unlabeled samples were labeled before `max_iter` - was reached. - - Examples - -------- - >>> import numpy as np - >>> from sklearn import datasets - >>> from sklearn.semi_supervised import SelfTrainingClassifier - >>> from sklearn.svm import SVC - >>> rng = np.random.RandomState(42) - >>> iris = datasets.load_iris() - >>> random_unlabeled_points = rng.rand(iris.target.shape[0]) < 0.3 - >>> iris.target[random_unlabeled_points] = -1 - >>> svc = SVC(probability=True, gamma="auto") - >>> self_training_model = SelfTrainingClassifier(svc) - >>> self_training_model.fit(iris.data, iris.target) - SelfTrainingClassifier(...) - - References - ---------- - David Yarowsky. 1995. Unsupervised word sense disambiguation rivaling - supervised methods. In Proceedings of the 33rd annual meeting on - Association for Computational Linguistics (ACL '95). Association for - Computational Linguistics, Stroudsburg, PA, USA, 189-196. DOI: - https://doi.org/10.3115/981658.981684 """ + **Self Training Classifier with data loader compatible.** + ---------------------------- + + Is the same `SelfTrainingClassifier` from sklearn but with `sslearn` data loader compatible. + For more information, see the [sklearn documentation](https://scikit-learn.org/stable/modules/generated/sklearn.semi_supervised.SelfTrainingClassifier.html). + + **Example** + ----------- + ```python + from sklearn.datasets import load_iris + from sslearn.model_selection import artificial_ssl_dataset + from sslearn.wrapper import SelfTraining + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + + clf = SelfTraining() + clf.fit(X, y) + clf.score(X_unlabel, y_unlabel) + ``` + + **References** + -------------- + David Yarowsky. (1995).
+ Unsupervised word sense disambiguation rivaling supervised methods.
+ In Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL '95).
+ Association for Computational Linguistics,
+ Stroudsburg, PA, USA, 189-196.
+ [10.3115/981658.981684](https://doi.org/10.3115/981658.981684) + """ + _estimator_type = "classifier" def __init__(self, @@ -122,6 +54,49 @@ def __init__(self, k_best=10, max_iter=10, verbose=False): + """Self-training. Adaptation of SelfTrainingClassifier from sklearn with data loader compatible. + + This class allows a given supervised classifier to function as a + semi-supervised classifier, allowing it to learn from unlabeled data. It + does this by iteratively predicting pseudo-labels for the unlabeled data + and adding them to the training set. + + The classifier will continue iterating until either max_iter is reached, or + no pseudo-labels were added to the training set in the previous iteration. + + Parameters + ---------- + base_estimator : estimator object + An estimator object implementing ``fit`` and ``predict_proba``. + Invoking the ``fit`` method will fit a clone of the passed estimator, + which will be stored in the ``base_estimator_`` attribute. + + threshold : float, default=0.75 + The decision threshold for use with `criterion='threshold'`. + Should be in [0, 1). When using the 'threshold' criterion, a + :ref:`well calibrated classifier ` should be used. + + criterion : {'threshold', 'k_best'}, default='threshold' + The selection criterion used to select which labels to add to the + training set. If 'threshold', pseudo-labels with prediction + probabilities above `threshold` are added to the dataset. If 'k_best', + the `k_best` pseudo-labels with highest prediction probabilities are + added to the dataset. When using the 'threshold' criterion, a + :ref:`well calibrated classifier ` should be used. + + k_best : int, default=10 + The amount of samples to add in each iteration. Only used when + `criterion` is k_best'. + + max_iter : int or None, default=10 + Maximum number of iterations allowed. Should be greater than or equal + to 0. If it is ``None``, the classifier will continue to predict labels + until no new pseudo-labels are added, or all unlabeled samples have + been labeled. + + verbose : bool, default=False + Enable verbose output. + """ super().__init__(base_estimator, threshold, criterion, k_best, max_iter, verbose) def fit(self, X, y): @@ -150,6 +125,49 @@ def fit(self, X, y): class Setred(ClassifierMixin, BaseEstimator): + """ + **Self-training with Editing.** + ---------------------------- + + Create a SETRED classifier. It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set. + The main process are: + 1. Train a classifier with the labeled data. + 2. Create a pool of unlabeled data and select the most confident predictions. + 3. Repeat until the maximum number of iterations is reached: + a. Select the most confident predictions from the unlabeled data. + b. Calculate the neighborhood graph of the labeled data and the selected instances from the unlabeled data. + c. Calculate the significance level of the selected instances. + d. Reject the instances that are not significant according their position in the neighborhood graph. + e. Add the selected instances to the labeled data and retrains the classifier. + f. Add new instances to the pool of unlabeled data. + 4. Return the classifier trained with the labeled data. + + **Example** + ----------- + ```python + from sklearn.datasets import load_iris + from sslearn.model_selection import artificial_ssl_dataset + from sslearn.wrapper import Setred + + X, y = load_iris(return_X_y=True) + X, y, X_unlabel, y_unlabel, _, _ = artificial_ssl_dataset(X, y, label_rate=0.1, random_state=0) + + clf = Setred() + clf.fit(X, y) + clf.score(X_unlabel, y_unlabel) + ``` + + **References** + ---------- + Li, Ming, and Zhi-Hua Zhou. (2005)
+ SETRED: Self-training with editing,
+ in Advances in Knowledge Discovery and Data Mining.
+ Pacific-Asia Conference on Knowledge Discovery and Data Mining
+ LNAI 3518, Springer, Berlin, Heidelberg,
+ [10.1007/11430919_71](https://doi.org/10.1007/11430919_71) + + """ + def __init__( self, base_estimator=KNeighborsClassifier(n_neighbors=3), @@ -162,25 +180,24 @@ def __init__( n_jobs=None, ): """ - Li, Ming, and Zhi-Hua Zhou. "SETRED: Self-training with editing." - Pacific-Asia Conference on Knowledge Discovery and Data Mining. - Springer, Berlin, Heidelberg, 2005. doi: 10.1007/11430919_71. - + Create a SETRED classifier. + It is a self-training algorithm that uses a rejection mechanism to avoid adding noisy samples to the training set. + Parameters ---------- base_estimator : ClassifierMixin, optional - An estimator object implementing fit and predict_proba,, by default DecisionTreeClassifier(), by default KNeighborsClassifier(n_neighbors=3) + An estimator object implementing fit and predict_proba, by default KNeighborsClassifier(n_neighbors=3) max_iterations : int, optional Maximum number of iterations allowed. Should be greater than or equal to 0., by default 40 distance : str, optional The distance metric to use for the graph. The default metric is euclidean, and with p=2 is equivalent to the standard Euclidean metric. For a list of available metrics, see the documentation of DistanceMetric and the metrics listed in sklearn.metrics.pairwise.PAIRWISE_DISTANCE_FUNCTIONS. - Note that the “cosine” metric uses cosine_distances., by default "euclidean" + Note that the `cosine` metric uses cosine_distances., by default `euclidean` poolsize : float, optional Max number of unlabel instances candidates to pseudolabel, by default 0.25 rejection_threshold : float, optional - significance level, by default 0.1 + significance level, by default 0.05 graph_neighbors : int, optional Number of neighbors for each sample., by default 1 random_state : int, RandomState instance, optional @@ -330,7 +347,7 @@ def predict(self, X, **kwards): The input samples. Returns ------- - y: array-like of shape (n_samples,) + y : array-like of shape (n_samples,) The predicted classes """ return self._base_estimator.predict(X, **kwards) @@ -344,7 +361,7 @@ def predict_proba(self, X, **kwards): The input samples. Returns ------- - y: ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1 + y : ndarray of shape (n_samples, n_classes) or list of n_outputs such arrays if n_outputs > 1 The predicted classes """ return self._base_estimator.predict_proba(X, **kwards) diff --git a/sslearn/wrapper/_tritraining.py b/sslearn/wrapper/_tritraining.py index 4370c7d..e11754e 100644 --- a/sslearn/wrapper/_tritraining.py +++ b/sslearn/wrapper/_tritraining.py @@ -22,6 +22,33 @@ class TriTraining(BaseCoTraining): + """ + **TriTraining. Trio of classifiers with bootstrapping.** + + The main process is: + 1. Generate three classifiers using bootstrapping. + 2. Iterate until convergence: + 1. Calculate the error between two hypotheses. + 2. If the error is less than the previous error, generate a dataset with the instances where both hypotheses agree. + 3. Retrain the classifiers with the new dataset and the original labeled dataset. + 3. Combine the predictions of the three classifiers. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **References** + ---------- + Zhi-Hua Zhou and Ming Li,
+ Tri-training: exploiting unlabeled data using three classifiers,
+ in IEEE Transactions on Knowledge and Data Engineering,
+ vol. 17, no. 11, pp. 1529-1541, Nov. 2005,
+ [10.1109/TKDE.2005.186](https://doi.org/10.1109/TKDE.2005.186) + + """ def __init__( self, @@ -30,12 +57,8 @@ def __init__( random_state=None, n_jobs=None, ): - """TriTraining - Zhi-Hua Zhou and Ming Li, - "Tri-training: exploiting unlabeled data using three classifiers," - in IEEE Transactions on Knowledge and Data Engineering, - vol. 17, no. 11, pp. 1529-1541, Nov. 2005, - doi: 10.1109/TKDE.2005.186. + """TriTraining. Trio of classifiers with bootstrapping. + Parameters ---------- base_estimator : ClassifierMixin, optional @@ -49,6 +72,7 @@ def __init__( The number of jobs to run in parallel for both `fit` and `predict`. `None` means 1 unless in a :obj:`joblib.parallel_backend` context. `-1` means using all processors., by default None + """ self._N_LEARNER = 3 self.base_estimator = check_classifier(base_estimator, collection_size=self._N_LEARNER) @@ -67,7 +91,7 @@ def fit(self, X, y, **kwards): The target values (class labels), -1 if unlabeled. Returns ------- - self: TriTraining + self : TriTraining Fitted estimator. """ random_state = check_random_state(self.random_state) @@ -197,7 +221,8 @@ def _another_hs(hs, index): base hypothesis index Returns ------- - list + classifiers: list + Collection of other hypotheses """ another_hs = [] for i in range(len(hs)): @@ -218,7 +243,7 @@ def _subsample(L, s, random_state=None): controls the randomness of the estimator, by default None Returns ------- - tuple + subsamples: tuple Collection of pseudo-labeled selected for enlarged labeled examples. """ to_remove = len(L[0]) - s @@ -244,7 +269,7 @@ def _measure_error( A small number to avoid division by zero Returns ------- - float + error : float Division of the number of labeled examples on which both h1 and h2 make incorrect classification, by the number of labeled examples on which the classification made by h1 is the same as that made by h2. """ @@ -257,6 +282,32 @@ def _measure_error( class WiWTriTraining(TriTraining): + """ + **Who-Is-Who TriTraining.** + + Trio of classifiers with bootstrapping and restricted set classification. + Is the same as TriTraining but with the restricted set classification. + Maninly, the conflict rate penalizes the ***measure error*** of basic TriTraining, it can be calculated over differentes subsamples of X, can be: + * `labeled` over complete L, + * `labeled_plus` over complete L union L', + * `unlabeled`: over complete U, + * `all`: over complete X (LuU) and + * `none`: don't penalize the ***meause error***, only use the restrictions for avoid share classes in the same group. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. Receives the instance group, an array-like of shape (n_samples) with the group of each instance. Two instances with the same label are not allowed to be in the same group. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **References** + ---------- + Ludmila I. Kuncheva, Juan J. Rodríguez, Aaron S. Jackson, (2016)
+ Restricted set classification: Who is there?
+ Pattern Recognition, 63, 158-170,
+ [10.1016/j.patcog.2016.08.028](https://doi.org/10.1016/j.patcog.2016.08.028) + """ def __init__( self, @@ -315,7 +366,7 @@ def fit(self, X, y, instance_group=None, **kwards): The group. Two instances with the same label are not allowed to be in the same group. Returns ------- - self: TriTraining + self : TriTraining Fitted estimator. """ random_state = check_random_state(self.random_state) @@ -456,7 +507,7 @@ def _measure_error(self, L, y, h1: ClassifierMixin, h2: ClassifierMixin, epsilon A small number to avoid division by zero Returns ------- - float + error: float Division of the number of labeled examples on which both h1 and h2 make incorrect classification, by the number of labeled examples on which the classification made by h1 is the same as that made by h2. """ @@ -503,17 +554,34 @@ def predict(self, X, instance_group): class DeTriTraining(TriTraining): + """ + **TriTraining with Data Editing.** + + It is a variation of the TriTraining, the main difference is that the instances are depurated in each iteration. + It means that the instances with their neighbors that have the same class are kept, the rest are removed. + At the end of the iterations, the instances are clustered and the class is assigned to the cluster centroid. + + **Methods** + ------- + - `fit`: Fit the model with the labeled instances. + - `predict` : Predict the class for each instance. + - `predict_proba`: Predict the probability for each class. + - `score`: Return the mean accuracy on the given test data and labels. + + **References** + ---------- + Deng C., Guo M.Z. (2006)
+ Tri-training and Data Editing Based Semi-supervised Clustering Algorithm,
+ in Gelbukh A., Reyes-Garcia C.A. (eds) MICAI 2006: Advances in Artificial Intelligence. MICAI 2006.
+ Lecture Notes in Computer Science, vol 4293. Springer, Berlin, Heidelberg.
+ [10.1007/11925231_61](https://doi.org/10.1007/11925231_61) + """ def __init__(self, base_estimator=DecisionTreeClassifier(), k_neighbors=3, n_samples=None, mode="seeded", max_iterations=100, n_jobs=None, random_state=None): - """DeTriTraining - - Deng C., Guo M.Z. (2006) - Tri-training and Data Editing Based Semi-supervised Clustering Algorithm. - In: Gelbukh A., Reyes-Garcia C.A. (eds) MICAI 2006: Advances in Artificial Intelligence. MICAI 2006. - Lecture Notes in Computer Science, vol 4293. - Springer, Berlin, Heidelberg. - https://doi.org/10.1007/11925231_61 + """ + DeTriTraining - TriTraining with Depurated and Clustering. + Avoid the noise generated by the TriTraining algorithm by depurating the enlarged dataset and clustering the instances. Parameters ---------- @@ -535,7 +603,7 @@ def __init__(self, base_estimator=DecisionTreeClassifier(), k_neighbors=3, n_jobs : int, optional The number of parallel jobs to run for neighbors search. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors. - Doesn’t affect fit method., by default None + Doesn't affect fit method., by default None random_state : int, RandomState instance, optional controls the randomness of the estimator, by default None """ @@ -557,7 +625,7 @@ def _depure(self, S): Returns ------- - tuple (X, y) + tuple : (X, y) Enlarged dataset with instances where at least k_neighbors/2+1 have the same class. """ init = time.time() @@ -578,7 +646,7 @@ def _clustering(self, S, X): Returns ------- - array-like of shape (n_samples,) + y: array-like of shape (n_samples,) class predicted for each instance """ centroids = dict() diff --git a/test/test_wrapper.py b/test/test_wrapper.py index 85d7b11..a14092e 100644 --- a/test/test_wrapper.py +++ b/test/test_wrapper.py @@ -16,7 +16,7 @@ from sslearn.model_selection import artificial_ssl_dataset from sslearn.wrapper import ( CoTraining, CoForest, CoTrainingByCommittee, DemocraticCoLearning, Rasco, RelRasco, - SelfTraining, Setred, TriTraining, WiWTriTraining, DeTriTraining + SelfTraining, Setred, TriTraining, DeTriTraining ) X, y = read_csv(os.path.join(os.path.dirname(os.path.realpath(__file__)), "example_files", "abalone.csv"), format="pandas") @@ -238,40 +238,40 @@ def test_all_label(self): groups = np.array(groups) groups = groups[:X.shape[0]] -class TestWiWTriTraining: +# class TestWiWTriTraining: - def test_basic(self): - clf = WiWTriTraining(base_estimator=DecisionTreeClassifier()) - clf.fit(X, y, instance_group=groups) - clf.predict(X, instance_group=groups) - clf.predict_proba(X) - - clf = WiWTriTraining(DecisionTreeClassifier()) - clf.fit(X2, y2, instance_group=groups) - clf.predict(X2, instance_group=groups) - clf.predict_proba(X2) - - def test_multiple(self): - clf = WiWTriTraining(base_estimator=[DecisionTreeClassifier(max_depth=1), DecisionTreeClassifier(max_depth=2), DecisionTreeClassifier(max_depth=3)]) - clf.fit(X, y, instance_group=groups) - clf.predict(X, instance_group=groups) - clf.predict_proba(X) +# def test_basic(self): +# clf = WiWTriTraining(base_estimator=DecisionTreeClassifier()) +# clf.fit(X, y, instance_group=groups) +# clf.predict(X, instance_group=groups) +# clf.predict_proba(X) + +# clf = WiWTriTraining(DecisionTreeClassifier()) +# clf.fit(X2, y2, instance_group=groups) +# clf.predict(X2, instance_group=groups) +# clf.predict_proba(X2) + +# def test_multiple(self): +# clf = WiWTriTraining(base_estimator=[DecisionTreeClassifier(max_depth=1), DecisionTreeClassifier(max_depth=2), DecisionTreeClassifier(max_depth=3)]) +# clf.fit(X, y, instance_group=groups) +# clf.predict(X, instance_group=groups) +# clf.predict_proba(X) - def test_random_state(self): - for i in range(10): - clf = WiWTriTraining(base_estimator=KNeighborsClassifier(), random_state=i) - clf.fit(X, y, instance_group=groups) - y1 = clf.predict(X, instance_group=groups) - - clf = WiWTriTraining(base_estimator=KNeighborsClassifier(), random_state=i) - clf.fit(X, y, instance_group=groups) - y2 = clf.predict(X, instance_group=groups) - - assert np.all(y1 == y2) - - def test_all_label(self): - clf = WiWTriTraining(base_estimator=KNeighborsClassifier()) - clf.fit(X, y, instance_group=groups) - clf.predict(X, instance_group=groups) - clf.predict_proba(X) +# def test_random_state(self): +# for i in range(10): +# clf = WiWTriTraining(base_estimator=KNeighborsClassifier(), random_state=i) +# clf.fit(X, y, instance_group=groups) +# y1 = clf.predict(X, instance_group=groups) + +# clf = WiWTriTraining(base_estimator=KNeighborsClassifier(), random_state=i) +# clf.fit(X, y, instance_group=groups) +# y2 = clf.predict(X, instance_group=groups) + +# assert np.all(y1 == y2) + +# def test_all_label(self): +# clf = WiWTriTraining(base_estimator=KNeighborsClassifier()) +# clf.fit(X, y, instance_group=groups) +# clf.predict(X, instance_group=groups) +# clf.predict_proba(X)