Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • P pyod
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 144
    • Issues 144
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 16
    • Merge requests 16
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Yue Zhao
  • pyod
  • Merge requests
  • !115

SOD Time Complexity Optimisation

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Yahya requested to merge github/fork/John-Almardeny/SOD_EXX_time_Improvement into development Jun 18, 2019
  • Overview 2
  • Commits 1
  • Pipelines 0
  • Changes 1

Closes #114 (closed)

After doing some experiments on SOD, it turns out (as expected) that more than 95% of the extra time complexity is purely because of snn() function in SOD and more specifically the numpy function isin() used in snn().

However, this function cannot be used under numba since it is not supported yet.

I implemented a workaround to make it work under numba.

The results show noticeable improvement in time complexity and even faster than Fast ABOD algorithm.

Although SOD achieves a pretty good precision in high-dimensional spaces, nevertheless, please note that SOD is well-known to have relatively poor time complexity as many papers and blogs show (example).

Experiment Settings:

#Samples #Features #Neighbors
10K 10 50

Results

Model Time(sec)
SOD (old) 130
SOD (new) 58
Fast ABOD 87
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/John-Almardeny/SOD_EXX_time_Improvement