Adding files
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
import init_utils
|
||||
import common
|
||||
|
||||
# Initialize the environment and get the name
|
||||
name = init_utils.initialize_environment(__file__)
|
||||
args = init_utils.get_args()
|
||||
|
||||
# Set arguments from command line
|
||||
max_acc_drop = args.max_acc_drop
|
||||
device = args.device
|
||||
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import torch.nn as nn
|
||||
import torch.nn.functional as F
|
||||
from sklearn.model_selection import train_test_split
|
||||
|
||||
# Load our Dataset
|
||||
|
||||
pelvis_acc = pd.read_excel('elderly_fall/Posterior Pelvis Accelerometer Measures.xlsx',
|
||||
sheet_name = 'ST')
|
||||
|
||||
y_data = pelvis_acc['Faller (1), Non-Faller (0)'].to_numpy()
|
||||
|
||||
pelvis_acc = pelvis_acc.drop(columns = [pelvis_acc.columns[0], 'Faller (1), Non-Faller (0)'])
|
||||
|
||||
head_acc = pd.read_excel('elderly_fall/Head Accelerometer Measures.xlsx',
|
||||
sheet_name = 'ST')
|
||||
|
||||
head_acc = head_acc.drop(columns = [head_acc.columns[0], 'Faller (1), Non-Faller (0)'])
|
||||
|
||||
|
||||
pressure_sen = pd.read_excel('elderly_fall/Pressure-Sensing Insole Measures.xlsx',
|
||||
sheet_name = 'ST')
|
||||
|
||||
pressure_sen = pressure_sen.drop(columns = [pressure_sen.columns[0], 'Faller (1), Non-Faller (0)'])
|
||||
|
||||
|
||||
left_shank = pd.read_excel('elderly_fall/Left Shank Accelerometer Measures.xlsx',
|
||||
sheet_name = 'ST')
|
||||
|
||||
left_shank = left_shank.drop(columns = [left_shank.columns[0], 'Faller (1), Non-Faller (0)'])
|
||||
|
||||
|
||||
X_data = pd.concat([head_acc, pressure_sen, pelvis_acc, left_shank], axis = 1)
|
||||
|
||||
# Preprocess the Data
|
||||
|
||||
def normalize_column(column):
|
||||
old_min = column.min()
|
||||
old_max = column.max()
|
||||
new_min = 0
|
||||
new_max = 255
|
||||
normalized_column = ((column - old_min) / (old_max - old_min)) * (new_max - new_min) + new_min
|
||||
return normalized_column.astype(int)
|
||||
|
||||
X_data = X_data.apply(normalize_column)
|
||||
X_d = X_data/255.0
|
||||
X_train, X_test, y_train, y_test = train_test_split(X_d, y_data,
|
||||
test_size = 0.15, random_state = 42)
|
||||
|
||||
X_train = X_train.to_numpy()
|
||||
X_test = X_test.to_numpy()
|
||||
|
||||
BATCH_SIZE = 1
|
||||
epochs = 5
|
||||
lr = 0.0001
|
||||
|
||||
class EF_MLP(nn.Module):
|
||||
def __init__(self):
|
||||
super(EF_MLP, self).__init__()
|
||||
self.linear1 = nn.Linear(117, 20)
|
||||
self.relu1 = nn.ReLU()
|
||||
self.linear2 = nn.Linear(20, 2)
|
||||
|
||||
def forward(self,X):
|
||||
X = self.relu1(self.linear1(X))
|
||||
X = self.linear2(X)
|
||||
return F.log_softmax(X, dim = 1)
|
||||
|
||||
net = EF_MLP()
|
||||
|
||||
common.create_ibex_qnn(net, name, device, X_train, y_train, X_test, y_test, BATCH_SIZE = BATCH_SIZE,
|
||||
epochs = epochs, lr = lr, max_acc_drop = max_acc_drop)
|
||||
Reference in New Issue
Block a user