https://github.com/cscully-allison/machine_learning

Repository for Machine Learning Related Projects

https://github.com/cscully-allison/machine_learning

Science Score: 13.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.3%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Repository for Machine Learning Related Projects

Basic Info
  • Host: GitHub
  • Owner: cscully-allison
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 142 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 8 years ago · Last pushed about 8 years ago
Metadata Files
Readme

readme.md

About

Author: Connor Scully-Allison Date: 05/15/2018 This is a repository for all code and data related to the multi-GPU implementation of a robust and sparse fuzzy-k means algorithim.

Main Directories

  1. inputData - This directory holds all data which was used for testing at various points of development. Timings were collected using data.csv.
  2. Seqential - This directory contains the executable sequential code of RSFKM used to collect baseline timing data. The subdirectory cvxgen containes generated optimization code.
  3. Multiple-GPU - This diectory contains the executable GPU optimized code for iRSFKM. The subdirectory cvx gen contains CPU adapatations of generated opimization code and all the source code for all cuda kernels called from RSFKM.py.
  4. legacy - Contains various iterations of RSFKM which were not used for data colletion.

Running the program

Setup

From RSFKM/ run command

``` export CUDAHOME=/usr/local/cuda-9.0 export LDLIBRARYPATH=${CUDAHOME}/lib64 PATH=${CUDA_HOME}/bin:${PATH} export PATH

source PyEnv/bin/activate ```

Seqential

From the Sequential directory, optimized sequential code can be run with the following command:

./MAIN.py -i ../inputData/data.csv -o null -l 1 -k 15 -r .5 -t 100 -rw 1000 -c 11 -g 1

  • -i: input data
  • -o: output of graph to show clustering, does not work on cubix box
  • -l: indicates if there is a leading column of time stamps which needs to be stripped away for clustering
  • -k: Number of clusters that our data will be clustered into; with the optimized CPU code, this is must be set to 15
  • -r: Regukating parameter used to enforce sparseness; can be tuned to produce different clustering results
  • -t: Threshold parameter used to reduce influence of outlers on centroid updates; can be tuned to produce different clustering resultsl sufficently low values <50 will result in errors however
  • -rw: the number of rows we are clustering
  • -c: the number of features we are using in our clustering; with data.csv this value can be up to 30

Multi-Gpu

From the Multiple_GPU directory, GPU code can be run with the following command:

srun --gres=gpu:1 ./MAIN_PAR.py -i ../inputData/data.csv -o null -l 1 -k 15 -r .5 -t 50 -rw 1000 -c 11 -P .1

  • --gres=gpu:1 : Sets the number of GPUs to be used. On cubix this can be any number between 1 and 8.
  • -i: input data
  • -o: output of graph to show clustering, does not work on cubix box
  • -l: indicates if there is a leading column of time stamps which needs to be stripped away for clustering
  • -k: Number of clusters that our data will be clustered into; with the optimized CPU code, this is must be set to 15
  • -r: Regukating parameter used to enforce sparseness; can be tuned to produce different clustering results
  • -t: Threshold parameter used to reduce influence of outlers on centroid updates; can be tuned to produce different clustering resultsl sufficently low values < 50 will result in errors however
  • -rw: the number of rows we are clustering
  • -c: the number of features we are using in our clustering; with data.csv this value can be up to 30
  • -P: this argument denotes the percentage of values we are removing to test the accuracy of our imputation.

Some Resources

http://stanford.edu/~cpiech/cs221/handouts/kmeans.html

https://en.wikipedia.org/wiki/Matrixnorm#Frobeniusnorm

Owner

  • Name: cscully-allison
  • Login: cscully-allison
  • Kind: user

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels