SafeU: A python toolkit of Safe Learning for Unlabeled Data
Authors: De-Ming Liang, Feng Shi, Hai-Yu Chen, Xiao-Shuang Lv, Yong-Nan Zhu, Yu-Feng Li
Introduction
SafeU (Safe learning for Unlabeled data), is a python toolkit of safe machine learning algorithms utilizing unlebeled data (A brief introduction of safe semi-supervised learning can be found here). It builds in multiple safe semi-supervised learning algorithms, and provide a weakly-supervised learning experiment framework including some well-defined protocols for learning algorithms, experiments and evaluation metrics. With this toolkit, you build up your comparing experiments between learning algorithms with different learning settings like supervised, semi/weakly-supervised, as well as different tasks such as single/multi-label learning. We hope this toolkit could help you explore the classic semi-supervised learning algorithms and go further to test your ones.
Submit bugs or suggestions in the Issues section or feel free to submit your contributions as a pull request.
Getting Start
- For the latest news, blog posts, tutorials, papers, etc. related to SafeU, check out (Need a official release website)
- Get set up quickly
- Try the (tutorial).
- Read the (documents).
Setup
You can get safeu simply by:
pip install SafeU
Or clone safeu source code to your local directory and build from source:
cd SafeU
python setup.py safeu
pip install dist/*.whl
The dependencies of SafeU are:
- Python dependency
python == 3.6 | 3.7
- Basic Dependencies
numpy >= 1.15.1
scipy >= 1.1.0
scikit-learn >= 0.19.2
cvxopt >= 1.2.0
Examples
We can use safeu for algorithm experiments. The following example shows a possible way to experiment based on built-in algorithms and data sets:
import sys, os
from safeu.Experiments import SslExperimentsWithoutGraph
from safeu.model_uncertainty.S4VM import S4VM
# algorithm configs
configs = [
('S4VM', S4VM(), {
'kernel': 'RBF',
'gamma':[0],
'C1': [50,100],
'C2': [0.05,0.1],
'sample_time':[100]
})
]
# datasets
# name,feature_file,label_file,split_path,graph_file
datasets = [
('house', None, None, None, None),
('isolet', None, None, None, None)
]
# experiments
experiments = SslExperimentsWithoutGraph(transductive=True, n_jobs=4)
experiments.append_configs(configs)
experiments.append_datasets(datasets)
experiments.set_metric(performance_metric='accuracy_score')
results = experiments.experiments_on_datasets(unlabel_ratio=0.75,test_ratio=0.2,
number_init=2)
Reference
[1] Yu-Feng Li, Lan-Zhe Guo, Zhi-Hua Zhou. Towards Safe Weakly Supervised Learning. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), In press.
[2] Yu-Feng Li and Zhi-Hua Zhou. Towards making unlabeled data never hurt. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 37(1):175-188, 2015.
[3] Yu-Feng Li, De-Ming Liang. Lightweight Label Propagation for Large-Scale Network Data. IEEE Transactions on Knowledge and Data Engineering (TKDE), in press.
[4] Tong Wei, Lan-Zhe Guo, Yu-Feng Li, Wei Gao. Learning safe multi-label prediction for weakly labeled data. Machine Learning (MLJ). 107(4): 703-725, 2018.
[5] Yu-Feng Li, Shao-Bo Wang, Zhi-Hua Zhou. Graph quality judgement: A large margin expedition. In: Proceedings of the 25th International Joint Conference on Artificial Intelligence (IJCAI'16), New York, NY, 2016, pp.1725-1731.
Metadata
Release files for safeu 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| safeu-0.1.0.tar.gz | 3.1 MB | Without provenance | Details for safeu-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| safeu-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for safeu-0.1.0-py3-none-any.whl |
Total release size: 6.4 MB
Release files / safeu-0.1.0.tar.gz
| Download URL | safeu-0.1.0.tar.gz |
|---|---|
| Size | 3.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
89ca2f00aba3e713da888d6533f4b54636cdb45ced6d0091c9ba76aa31b8db2d
|
|
BLAKE2b-256 checksum How to use checksums |
3c32dfa247d5607fa052c276b4e31e744a52288dd0bdd1c83a8b79ed8a7025a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.0
|
Release files / safeu-0.1.0-py3-none-any.whl
| Download URL | safeu-0.1.0-py3-none-any.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
92aa8953f93c863c5dff02069dee1c8de481e4927381c2cd39ff0ba72de6bf63
|
|
BLAKE2b-256 checksum How to use checksums |
4741bd28ec1b423aa0a3ca54fe34c0f25702863577862b508c02c9790a816c3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.26.0 CPython/3.7.0
|
Security for safeu 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.