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.
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_2D_CG_labels()
Reads all filenames in a folder and returns 2d CG 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)
get_1D_CG_labels()
Reads all filenames in a folder and returns 1d CG 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fennec_ml-0.4.2.tar.gz.
File metadata
- Download URL: fennec_ml-0.4.2.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d58194dcb0f41d16aed589a19c02bb3e5965e1c143892a22f14bc46142abb742
|
|
| MD5 |
c9b65300b0098e3ad77d10090962f3fb
|
|
| BLAKE2b-256 |
b55d00e9757369eec2d26d0109af17d9d849ea15ea94675186800b7af7d251a5
|
File details
Details for the file fennec_ml-0.4.2-py3-none-any.whl.
File metadata
- Download URL: fennec_ml-0.4.2-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0421cf975ce036f38157533fcef854a3eb974ac1ce970831ba2c51975c7cca2
|
|
| MD5 |
fac3c0da07a21731e97061e23a211270
|
|
| BLAKE2b-256 |
5987f70e3e144669c44a03cf3398bb27fcdac3c51fbd8c2b0545e0b974bc2238
|