{"id":37074667,"url":"https://github.com/t-sakai-kure/pywsl","last_synced_at":"2026-01-14T08:47:24.611Z","repository":{"id":51205320,"uuid":"103832342","full_name":"t-sakai-kure/pywsl","owner":"t-sakai-kure","description":"Python codes for weakly-supervised learning","archived":false,"fork":false,"pushed_at":"2020-04-03T12:49:25.000Z","size":13406,"stargazers_count":125,"open_issues_count":3,"forks_count":29,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-11-27T12:05:29.145Z","etag":null,"topics":["classification","machine-learning","positive-unlabeled-learning","python","semi-supervised-learning","unlabeled-data"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/t-sakai-kure.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-17T13:49:14.000Z","updated_at":"2025-10-27T15:12:03.000Z","dependencies_parsed_at":"2022-09-10T17:11:15.124Z","dependency_job_id":null,"html_url":"https://github.com/t-sakai-kure/pywsl","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/t-sakai-kure/pywsl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t-sakai-kure%2Fpywsl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t-sakai-kure%2Fpywsl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t-sakai-kure%2Fpywsl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t-sakai-kure%2Fpywsl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/t-sakai-kure","download_url":"https://codeload.github.com/t-sakai-kure/pywsl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/t-sakai-kure%2Fpywsl/sbom","scorecard":{"id":864585,"data":{"date":"2025-08-11","repo":{"name":"github.com/t-sakai-kure/pywsl","commit":"79a5bf104a53cb6d3498918e435bd88ac5331543"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":1,"reason":"Found 2/17 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"14 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2021-870 / GHSA-8rh6-h94m-vj54","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: GHSA-6p56-wp2h-9hxr","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2020-107 / GHSA-jjw5-xxj6-pcv5","Warn: Project is vulnerable to: PYSEC-2024-110 / GHSA-jw8x-6495-233v","Warn: Project is vulnerable to: PYSEC-2020-108","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T02:19:59.564Z","repository_id":51205320,"created_at":"2025-08-24T02:19:59.565Z","updated_at":"2025-08-24T02:19:59.565Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414693,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","machine-learning","positive-unlabeled-learning","python","semi-supervised-learning","unlabeled-data"],"created_at":"2026-01-14T08:47:23.182Z","updated_at":"2026-01-14T08:47:24.567Z","avatar_url":"https://github.com/t-sakai-kure.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pywsl: **py**thon codes for **w**eakly-**s**upervised **l**earning\r\n\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Build Status](https://travis-ci.org/t-sakai-kure/pywsl.svg?branch=master)](https://travis-ci.org/t-sakai-kure/pywsl)\r\n[![PyPI version](https://badge.fury.io/py/pywsl.svg)](https://badge.fury.io/py/pywsl)\r\n\r\nThis package contains the following implementation:\r\n- ***Unbiased PU learning***  \r\n  \u0026nbsp;\u0026nbsp;\u0026nbsp; in \"Convex formulation for learning from positive and unlabeled data\", ICML, 2015 [[uPU]](#uPU)\r\n- ***Non-negative PU Learning***  \r\n  \u0026nbsp;\u0026nbsp;\u0026nbsp; in \"Positive-unlabeled learning with non-negative risk estimator\", NIPS, 2017 [[nnPU]](#nnPU)\r\n- ***PU Set Kernel Classifier***  \r\n  \u0026nbsp;\u0026nbsp;\u0026nbsp; in \"Convex formulation of multiple instance learning from positive and unlabeled bags\", Neural Networks, 2018 [[PU-SKC]](#pu-skc)\r\n- ***Class-prior estimation based on energy distance***  \r\n  \u0026nbsp;\u0026nbsp;\u0026nbsp; in \"Computationally efficient class-prior estimation under class balance change using energy distance\", IEICE-ED, 2016 [[CPE-ENE]](#cpe_ene).\r\n- ***PNU classification***  \r\n  \u0026nbsp;\u0026nbsp;\u0026nbsp; in \"Semi-supervised classification based on classification from positive and unlabeled data\", ICML 2017 [[PNU]](#pnu_mr).\r\n- ***PNU-AUC optimization***  \r\n  \u0026nbsp;\u0026nbsp;\u0026nbsp; in \"Semi-supervised AUC optimization based on positive-unlabeled learning\", MLJ 2018 [[PNU-AUC]](#pnu_auc).\r\n\r\n## Installation\r\n```sh\r\n$ pip install pywsl\r\n```\r\n\r\n## Main contributors\r\n- [Tomoya Sakai](https://t-sakai-kure.github.io)\r\n- [Han Bao](http://levelfour.github.io)\r\n- [Ryuichi Kiryo](https://github.com/kiryor)\r\n\r\n## References\r\n1. \u003ca name=\"uPU\"\u003e du Plessis, M. C., Niu, G., and Sugiyama, M.   \r\n  Convex formulation for learning from positive and unlabeled data.   \r\n  In Bach, F. and Blei, D. (Eds.), Proceedings of 32nd International Conference on Machine Learning,\r\n  JMLR Workshop and Conference Proceedings, vol.37, pp.1386-1394, Lille, France, Jul. 6-11, 2015. \r\n1. \u003ca name=\"nnPU\"\u003e Kiryo, R., Niu, G., du Plessis, M. C., and Sugiyama, M.   \r\n  Positive-unlabeled learning with non-negative risk estimator.  \r\n  In Guyon, I.,  Luxburg, U. V., Bengio, S., Wallach, H., Fergus, R., Vishwanathan, S., and Garnett, R. (Eds.), \r\n  Advances in Neural Information Processing Systems 30, pp.1674-1684, 2017.   \r\n1. \u003ca name=\"pu-skc\"\u003e Bao, H., Sakai, T., Sato, I., and Sugiyama, M.  \r\n  Convex formulation of multiple instance learning from positive and unlabeled bags.  \r\n  Neural Networks, vol.105, pp.132-141, 2018.  \r\n1. \u003ca name=\"cpe_ene\"\u003e Kawakubo, H., du Plessis, M. C., and Sugiyama, M.  \r\n  Computationally efficient class-prior estimation under class balance change using energy distance.   \r\n  IEICE Transactions on Information and Systems, vol.E99-D, no.1, pp.176-186, 2016.\r\n1. \u003ca name=\"pnu_mr\"\u003e Sakai, T., du Plessis, M. C., Niu, G., and Sugiyama, M.   \r\n  Semi-supervised classification based on classification from positive and unlabeled data.   \r\n  In Precup, D. and Teh, Y. W. (Eds.), Proceedings of 34th International Conference on Machine Learning, Proceedings of Machine Learning Research, vol.70, pp.2998-3006, Sydney, Australia, Aug. 6-12, 2017.  \r\n1. \u003ca name=\"pnu_auc\"\u003e Sakai, T., Niu, G., and Sugiyama, M.   \r\n  Semi-supervised AUC optimization based on positive-unlabeled learning.   \r\n  Machine Learning, vol.107, no.4, pp.767-794, 2018.   \r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft-sakai-kure%2Fpywsl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ft-sakai-kure%2Fpywsl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ft-sakai-kure%2Fpywsl/lists"}