MetaICVI

A Julia implementation of the Meta-ICVI method as a separate package.

https://github.com/ap6yc/metaicvi.jl

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A Julia implementation of the Meta-ICVI method as a separate package.

Basic Info
  • Host: GitHub
  • Owner: AP6YC
  • License: mit
  • Language: Julia
  • Default Branch: develop
  • Size: 459 KB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 3
  • Releases: 5
Created over 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Code of conduct Citation

README.md

MetaICVI

A Julia implementation of the Meta-ICVI method as a standalone package.

Please see the official documentation for usage and contribution guidelines.

| Documentation | Coverage | CI Status | Releases | |:-----------------:|:------------:|:-------------:|:------------:| | Dev | Codecov | CI Status | Zenodo | | Stable | [![Coveralls][coveralls-img]][coveralls-url] | Documentation | version | | Dependents | Issues | JuliaHub Status | Downloads | | deps | GitHubIssues | JuliaHub | Downloads |

Table of Contents

Usage

Installation

You must install PyCallJLD.jl alongside MetaICVI.jl for correct classifier module loading and saving. This is because the ScikitLearn.jl dependency requires saving/loading with the JLD.jl package on PyCall.jl objects, and PyCallJLD correctly loads the serialized object definitions into the current workspace. Otherwise, the classifier is loaded a memory block wrapped in a PyObject type, breaking inference and other operations.

Both PyCallJLD.jl and MetaICVI.jl are distributed as Julia packages, available on JuliaHub. Their installation followa the usual Julia package installation procedure, and they can both be installed simultaneously interactively:

julia-repl julia> ] (@v1.9) pkg> add PyCallJLD MetaICVI

or programmatically:

julia using Pkg Pkg.add("PyCallJLD") Pkg.add("MetaICVI")

You may also get the most recent changes directly from the GitHub repository with:

julia-repl julia> ] (@v1.9) pkg> add https://github.com/AP6YC/MetaICVI.jl

or programmatically, also with the GitHub link:

julia using Pkg Pkg.add("https://github.com/AP6YC/MetaICVI.jl")

Basic Usage

First, load both PyCallJLD and MetaICVI with

julia using PyCallJLD, MetaICVI

Then, create a MetaICVI module with the default constructor

julia metaicvi = MetaICVIModule()

and retrieve the MetaICVI value iteratively with

julia get_metaicvi(metaicvi, sample, label)

where sample is a real-valued vector and label is an integer.

Advanced Usage

After loading both PyCallJLD and MetaICVI

julia using PyCallJLD, MetaICVI

you can specify the MetaICVI options with

julia opts = MetaICVIOpts( classifier_selection = :SGDClassifier, classifier_opts = (loss="log_loss", max_iter=30), icvi_window = 5, correlation_window = 5, n_rocket = 5, rocket_file = "data/models/rocket.jld2", classifier_file = "data/models/classifier.jld", display = true, fail_on_missing = false ) metaicvi = MetaICVIModule(opts)

The options are

  • classifier_selection: a symbol for a linear classifier from ScikitLearn.jl (only used if you are creating and training a new classifier).
  • classifier_opts: the options passed to the classifier during instantiation (also only used if creating and training a new classifier).
  • icvi_window: the number of ICVI criterion values to compute rank correlation across.
  • correlation_window: the number of correlations to compute rocket features across.
  • rocket_file: filename of a saved RocketModule.
  • classifier_file: filename of a saved linear classifier.
  • display: boolean flag for logging info.
  • fail_on_missing: boolean flag for crashing if missing rocket and/or classifier files.

Contributing

Please raise an issue.

Acknowledgements

Authors

License

This software is developed by the Applied Computational Intelligence Laboratory (ACIL) of the Missouri University of Science and Technology (S&T) under the supervision of Teledyne Technologies for the DARPA L2M program. Read the License.

Citation

This project has a citation file file that generates citation information for the package and corresponding JOSS paper, which can be accessed at the "Cite this repository button" under the "About" section of the GitHub page.

You may also cite this repository with the following BibTeX entry:

bibtex @article{Melton2022, author = "Niklas Melton and Sasha Petrenko and Donald Wunsch", title = "{Meta-iCVIs: Ensemble Validity Metrics for Concise Labeling of Correct, Under- or Over-Partitioning in Streaming Clustering}", year = "2022", month = "12", url = "https://doi.org/10.36227/techrxiv.21685214", doi = "10.36227/techrxiv.21685214" }

Owner

  • Name: Sasha Petrenko
  • Login: AP6YC
  • Kind: user

Graduate researcher of applied computational intelligence at the Missouri University of Science and Technology.

Citation (CITATION.cff)

# CFF version for the document
cff-version: 1.2.0

# Author list
authors:
  - family-names: "Petrenko"
    given-names: "Sasha"
    orcid: "https://orcid.org/0000-0003-2442-8901"
    website: "https://ap6yc.github.io/"
    email: "sap625@mst.edu"
    alias: "AP6YC"
    affiliation: "Missouri University of Science and Technology"

# Repository title and descriptors
title: "AP6YC/MetaICVI.jl"
message: "If you use this software, please cite it as below."
keywords:
  - "ICVI"
  - "CVI"
  - "Cluster Validity Indices"
  - "Incremental Cluster Validity Indices"
  - "Cluster Validation"
identifiers:
  - description: "The DOI of the latest MetaICVI.jl Zenodo archive."
    type: "doi"
    value: "10.5281/zenodo.5633988"
url: "https://doi.org/10.5281/zenodo.5633988"
repository-code: "https://github.com/AP6YC/MetaICVI.jl"
license: "MIT"
institution:
  name: "Missouri University of Science and Technology"

# Preferred citation of the preprint paper
message: "Please cite this software using the metadata from 'preferred-citation'."
preferred-citation:

  # Authors list for the JOSS paper
  authors:
    - family-names: "Melton"
      given-names: "Niklas"
      orcid: "https://orcid.org/0000-0001-9625-7086"
      email: "niklasmelton@gmail.com"
      affiliation: "Missouri University of Science and Technology"
    - family-names: "Petrenko"
      given-names: "Sasha"
      orcid: "https://orcid.org/0000-0003-2442-8901"
      website: "https://ap6yc.github.io/"
      email: "sap625@mst.edu"
      alias: "AP6YC"
      affiliation: "Missouri University of Science and Technology"
    - family-names: "Wunsch"
      given-names: "Donald"
      name-suffix: "II"
      orcid: "https://orcid.org/0000-0002-9726-9051"
      website: "https://people.mst.edu/faculty/dwunsch/"
      email: "dwunsch@mst.edu"
      alias: "dwunsch"
      affiliation: "Missouri University of Science and Technology"

  # Title, DOI, and journal details for the JOSS paper
  title: "Meta-iCVIs: Ensemble Validity Metrics for Concise Labeling of Correct, Under- or Over-Partitioning in Streaming Clustering"
  year: 2022
  month: 12
  type: "article"
  identifiers:
    - description: "The DOI of the AdaptiveResonance.jl JOSS paper."
      type: "doi"
      value: "10.36227/techrxiv.21685214"
  url: "https://doi.org/10.36227/techrxiv.21685214"
  institution:
    name: "Missouri University of Science and Technology"

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 120
  • Total Committers: 2
  • Avg Commits per committer: 60.0
  • Development Distribution Score (DDS): 0.15
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Sasha Petrenko s****5@u****u 102
CompatHelper Julia c****y@j****g 18
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 10
  • Total pull requests: 31
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 2 months
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.74
  • Merged pull requests: 26
  • Bot issues: 0
  • Bot pull requests: 23
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • AP6YC (9)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (24)
  • AP6YC (8)
Top Labels
Issue Labels
enhancement (5) documentation (4) bug (1)
Pull Request Labels
compat (6) enhancement (4) documentation (3) bug (2) release (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
juliahub.com: MetaICVI

A Julia implementation of the Meta-ICVI method as a separate package.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 9.9%
Dependent packages count: 38.9%
Average: 41.6%
Forks count: 53.5%
Stargazers count: 64.2%
Last synced: 7 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
  • styfle/cancel-workflow-action 0.11.0 composite
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia latest composite
  • styfle/cancel-workflow-action 0.9.1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/CompatHelper.yml actions