Skip to main content

Machine Learning tools for LETU FENNEC senior design team

Project description

fennec-ml

A suite of data science and machine learning tools for use by the LeTourneau University FENNEC senior design team.

Fennec Logo PyPI version

Instalation

pip install fennec-ml

Quick Start

Data Utils

import os
import fennec_ml as fn

# setup
root_dir = os.getcwd()
excel_dir = os.path.join(root_dir, "Raw_Data")
csv_dir = os.path.join(root_dir, "Proccessed_Data")
timesteps = 60

# excel to csv
fn.folder_cleaner(excel_dir)

# normalize and get labels
norm_data = fn.normalize(csv_dir)
labels = fn.get_CG_labels(csv_dir)

# segment and sort into train, validate, and test datasets
dataset_dict = fn.segment_and_split(norm_data, labels, timesteps)

# use dataset_dict
training_sets = dataset_dict['Training_Set']['sets']
training_labels = dataset_dict['Training_Set']['labels']

Project Structure

myproject/
├── data/
│   ├── raw_data/
│   │   ├── flight123_AA_L.xlxs
│   │   └── ...
│   └── proccessed_data/
│       ├── flight123_AA_L.csv
│       └── ...
├── saved_models/
│   └── ...
├── vars_of_interest.json
├── project_dev.ipynb
└── project_training.py

Features

data_cleaner()

Preprocesses .xlsx files into fennec question-usefull .csv files.

Args:

  • filepath (string): The .xlsx file to process.
  • savepath (string): The folder to save the .csv file.
  • overwrite (bool): Skips the overwrite checker if true.
  • skip (bool): Skips duplicate files instead of checking or overwriting if true.
  • varspath (string): The vars-of-interest.json path. Defaults to same folder as THIS script.

Relies on the vars_of_interest.json file to determine what data is wanted

fn.data_cleaner(excel_filename, overwrite= True)

folder_cleaner()

Preprocesses a folder of .xlsx files into fennec question-usefull .csv files.

Args:

  • excel_dir (string): The folder of .xlsx files to process.
  • savepath (string): The folder to save the .csv file.
  • overwrite (bool): Skips the overwrite checker if true.
  • skip (bool): Skips duplicate files instead of checking or overwriting if true.
  • varspath (string): The vars-of-interest.json path. Defaults to same folder as this script.

Relies on the vars_of_interest.json file to determine what data is wanted

fn.folder_cleaner(excel_dir, skip= True)

normalize()

Return a 3D array of normalized data from cleaned csv's
Note: Normalizing means scaling the data between the min and max values

Args:

  • csv_dir (string): The path (including the folder name) of cleaned data
  • weights (list): An optional list of weights corresponding to each column
  • offsets (list): An optional list of offsets corresponding to column

Returns:

  • norm_data (list): A list of numpy arrays holding normalized data
scaled_data = fn.normalize(csv_dir)

standardize()

Return a 3D array of standardized data from cleaned csv's
Note: Standarizing means scaling the data so the mean = 0 and the std deviation = 1

Args:

  • csv_dir (string): The path (including the folder name) of cleaned data
  • weights (list): An optional list of weights corresponding to each column
  • offsets (list): An optional list of offsets corresponding to column

Returns:

  • stand_data (list): A list of numpy arrays holding STANDARDIZED data
scaled_data = fn.standardize(csv_dir)

get_CG_labels()

Reads all filenames in a folder and returns characterization labels

Args:

  • csv_dir (string): Directory of .csv files from which to get labels

Returns:

  • labels (list): A list of all the characterization labels
cg_labels = fn.get_CG_labels(csv_dir)

segment_and_split()

Segments, labels, and sorts data into dataset dictionary

Args:

  • input_data (list): List of numpy arrays, 1 per proccessed and scaled files
  • input_labels (list): List of characterization lables, 1 per file (should correspond to input_data)
  • timesteps (int): length of desired segments
  • train_split (float): Percentage of segments to save as training segments
  • validate_split (float): Percentage of segments to save as validation segments

Returns:

  • output (dict): 3 labels: "Training_Set", "Validation_Set", and "Testing_Set"
    Each set has the follwing labels: "sets" and "labels"
    • "sets" : list of sets, corresponds to "labels"
    • "labels" : list of labels, corresponds to "sets"
data_dict = fn.segment_and_split(all_data, all_labels, 60)

train_set = data_dict['Training_Set']['sets']
train_labels = data_dict['Training_Set']['labels']

Contributers

  • Luke Fagg (Team Lead)
  • Micah Yarbrough (Pilot ID)
  • Wills Kookogey (Fault ID)
  • Justin Hawk (3D CG)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fennec_ml-0.3.5.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fennec_ml-0.3.5-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file fennec_ml-0.3.5.tar.gz.

File metadata

  • Download URL: fennec_ml-0.3.5.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for fennec_ml-0.3.5.tar.gz
Algorithm Hash digest
SHA256 eab1e6c28850f68e21a2b9810da34d770537cfeeb6481446cd1acfba2c6eac87
MD5 df22b5f6965ce8e0583094115c03a559
BLAKE2b-256 2a376602f5f46789c3277ac0d3ac833a1edc1f994acf5019db3b7e7a295518d8

See more details on using hashes here.

File details

Details for the file fennec_ml-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: fennec_ml-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for fennec_ml-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 47f8fc07fb9915ffeb076823d80950981b3d390ecfb0b3db2cf440eb7ee62b07
MD5 123e7dd9c07c8d83c602d69f48501b33
BLAKE2b-256 18089f1edcc0c618ada080a14c28da46acc80bdd8b6016cf0598ab5674d57a7d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page