from matplotlib.pyplot import plot

from classifier import distance
from data import source
from data.segmentation import ecg
data_folder = source.PumpPrimingDataFolder("../data/original")
ecg_database = ecg.ECGBeatLabeledSamplesDatabase(data_folder, 20, True)
(train, test) = ecg_database.get_labeled_training_and_test_samples(
    1, 'ad45363b-7632-432e-a368-215d3fb0ca10', 10)
classifier = distance.AverageDistanceClassifier(1, 'cosine')
classifier.train(train)
roc_min = classifier.get_roc(test, type='min', activity_info=1)
roc_mean = classifier.get_roc(test, type='mean', activity_info=1)
#roc_sum = classifier.get_roc(test,type='sum',activity_info=1)
plot(roc_min[0], roc_min[1], 'r-')
plot(roc_mean[0], roc_mean[1], 'y-')
plot([0, 1], [1, 0], 'b-')
#plot(roc_sum[0],roc_sum[1],'b-')
print "Finished"
import inspect

from classifier import svm, distance, kmeans
from data import source
from data.features.generation import ecg_only_functions
from data.features.generation import multimodal_functions
from data.features.generation import single_signal_functions
from data.preprocessing.preprocessor import Preprocessor
from data.segmentation.segmenter import Segmenter
from experiments.experiment2 import OneClassExperimenter
from data.features.generator import FeatureExtractor

#Read the data folder
data_folder = source.PumpPrimingDataFolder("dataset_activity1")
print "** Done reading data folder **"

# Preprocessing
preprocessor = Preprocessor(ecg=[["subset", {
    "start": 500,
    "end": -200
}], ["savitzky_golay", {
    'window_size': 5,
    'order': 2,
    'deriv': 0,
    'rate': 1
}], ["normf", {}]],
                            ppg=[["subset", {
                                "start": 500,
                                "end": -200
                            }],
                                 [
Esempio n. 3
0
from data import source

data_folder = source.PumpPrimingDataFolder("real_original_data/")
data_files = []
data_files.extend([
    data_file for data_file in data_folder.data_files
    if data_file.user_id == "f225a13c-c149-4e6f-a530-5f1ca0722d77"
])
data_files.extend([
    data_file for data_file in data_folder.data_files
    if data_file.user_id == "47b3fe43-f579-4375-9b84-c162fa007"
])
#data_files.extend([data_file for data_file in data_folder.data_files if data_file.user_id=="ad45363b-7632-432e-a368-215d3fb0ca9a"])
#data_files.extend([data_file for data_file in data_folder.data_files if data_file.user_id=="ad45363b-7632-432e-a368-215d3fb0ca9d"])
#data_files.extend([data_file for data_file in data_folder.data_files if data_file.user_id=="ea124ef1-64c5-4dbf-8f19-d96d7804cf21"])
for data_file in data_files:
    ecg = [1024 - x for x in data_file.ecg]
    data_file.ecg = ecg
    data_file.save()
Esempio n. 4
0
from biosppy.signals import ecg
from numpy import mean

from data import source

#Read the data folder
data_folder = source.PumpPrimingDataFolder("dataset")
print "Done reading data folder"

from data.preprocessing.preprocessor import Preprocessor
hr = {}
for data_file in data_folder.data_files:
    if data_file.user_id not in hr.keys():
        hr[data_file.user_id] = {}
    if data_file.activity != 3:
        d = data_file.ecg
        try:
            out = ecg.ecg(signal=d, sampling_rate=100, show=None)
            hr[data_file.user_id][data_file.activity]= mean(out[6])
        except Exception:
            hr[data_file.user_id][data_file.activity] = 0
for user_id in data_folder.get_all_user_ids():
    print "{0}: {1}, {2}, {3}, {4}".format(user_id,hr[user_id][1],hr[user_id][2],hr[user_id][4],mean(hr[user_id].values()))

Esempio n. 5
0
import time

from classifier import distance
from data import source
from data.segmentation import ecg

start_time = time.time()
data_folder = source.PumpPrimingDataFolder("original_data")
#extract interpolated beat samples
ecg_database = ecg.ECGBeatLabeledSamplesDatabase(data_folder, 80, True)
# your code
elapsed_time = time.time() - start_time
print "Database Created in " + str(elapsed_time)
start_time = time.time()
(train, test) = ecg_database.get_labeled_training_and_test_samples(
    1, 'ad45363b-7632-432e-a368-215d3fb0ca10', 10)
# your code
elapsed_time = time.time() - start_time
print "Train and Test sets Created in " + str(elapsed_time)
start_time = time.time()
classifier = distance.AverageDistanceClassifier(distance_function='cosine')
elapsed_time = time.time() - start_time
print "Classifier Created in " + str(elapsed_time)
start_time = time.time()
classifier.train(train)
elapsed_time = time.time() - start_time
print "Classifier Trained in " + str(elapsed_time)
start_time = time.time()
roc_min_score = classifier.test(test, type='min', activity_info=True)
elapsed_time = time.time() - start_time
print "ROC Min Obtained in " + str(elapsed_time)
Esempio n. 6
0
import logging
import sys
from classifier import svm
from data import source
from data.segmentation import ecg
from experiments import experiment

#get data folder
data_folder = source.PumpPrimingDataFolder(sys.argv[1])
#extract interpolated beat samples
ecg_database = ecg.ECGBeatLabeledSamplesDatabase(data_folder)
#with open('ecg_database_smothed_before_splitting.pkl','rb') as input:
#    ecg_database = pickle.load(input)
print "Database read. Beginning experiments"
nus = [0.01, 0.05, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]
kernels = ["rbf", "linear", "poly", "sigmoid"]
gammas = [0.01, 0.05, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]
number_training_samples = [5, 10, 15, 20, 30]
activity_training = [0, 1, 2, 4]
for activity in activity_training:
    for nu in nus:
        for kernel in kernels:
            for gamma in gammas:
                for n_train in number_training_samples:
                    classifier = svm.SVMROCClassifier(nu=nu,
                                                      kernel=kernel,
                                                      gamma=gamma)
                    classifier.print_details()
                    exp = experiment.OneClassROCAreaExperimenter(
                        ecg_database,
                        classifier,