Skip to content

CWU-VKD-LAB/DV2.0

 
 

Repository files navigation

DV

About

This application displays n-Dimensional data in 2D using General Line Coordinates Linear (GLC-L) then visualizes the results as Hyper Blocks using CUDA for optimization.

Features

  • For better class separation, Linear Discriminant Analysis (LDA) is used to get the optimal angles and threshold for a visualization.
  • Adjustments to the angles and threshold can be done by using the related slider.
  • Graphs produced by this program can be panned, zoomed in/out, and scaled.
  • Graph order can be rearranged.
  • Analytics generated by this program include the "All Data," "Data Without Overlap," "Overlap Data," and "Worst Case," confusion matrices as well as k-fold cross validation.

Please refer to the user manual for specifics on any of the information above.

Dataset Information

  • Dataset must be in .csv format
  • Dataset must include a header row
  • If there is an ID column, it must be first
  • If there is a class column it must be last
  • Dataset features besides "class" must be numeric

Example Dataset

dataset

Requirements

Install and Run

Important: run/DV.zip is stored using Git LFS. If you use GitHub’s “Download ZIP” for this repository (or clone without Git LFS), DV.zip will be a small pointer file and will appear empty/invalid when opened.

  1. Install Git LFS and clone the repository:
    • git lfs install
    • git clone <repo>
    • git lfs pull
  2. Open the run directory
  3. Extract DV.zip
  4. Start the application:
    • Prefer run.bat (included inside DV.zip), or
    • Run java -jar DV.jar
  5. See Run Instructions.pdf for usage walkthroughs once the app is running

Rebuild run/DV.zip (Windows distribution)

From the repository root on a Windows machine with Java 17 (the script can locate JDK 17 if it is installed) and Python 3.10–3.12 (required for PyInstaller 5.x; Python 3.14 is not used):

scripts\package-dv.bat

The script creates .venv-package, installs scripts/requirements-package.txt, compiles DV.jar from src/, runs PyInstaller on source/Python/code_and_pyinstaller_spec/, and writes run/DV.zip. It does not reuse committed bundles under source/Python/<tool>/. Dev-only flags: -SkipJava, -SkipPython, -SkipZip (see scripts/package-dv.ps1). Override the interpreter with DV_PACKAGE_PYTHON if needed.

Build and Run from Source

  1. Clone repository and open as project in Intellij IDE
  2. Build project
  3. Run

Generic build instructions

  1. Clone repository
  2. Run from root directory to compile: javac -cp "lib/*:src" src/*.java src/Sliders/*.java
  3. Run from root directory to run: java -cp "lib/*:src" Main

This method requires the use of the lib directory for libraries, this can be manually updated to fit your system should a specific dependency version be required.

Dataset Links

Visualizations

Iris dataset Iris-setosa (upper graph) vs Iris-versicolor and Iris-virginica (lower graph)

iris

Breast Cancer Wisconsin benign (upper graph) vs malignant (lower graph)

bcw

License

This project is licensed under the MIT License for both personal and commercial use. See the LICENSE file for details.

About

DV 2.0 program originally developed by Lincoln Huber developed using Java and JFreeChart, optimized with JCuda.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 62.4%
  • Cython 27.0%
  • Go Template 5.3%
  • Python 2.0%
  • Cuda 1.7%
  • PowerShell 1.5%
  • Other 0.1%