예제 #1
0
def raw_validation_load():
    dirpath1 = '/Users/Jonathan/PhD/Seizure_related/batchSept_UC_20'
    testdataobj20 = SeizureData(dirpath1, amount_to_downsample=40)
    testdataobj20.load_data()
    datasettest20 = testdataobj20.data_array

    dirpath2 = '/Users/Jonathan/PhD/Seizure_related/batchSept_UC_40'
    testdataobj40 = SeizureData(dirpath2, amount_to_downsample=40)
    testdataobj40.load_data()
    datasettest40 = testdataobj40.data_array
    print datasettest40.shape, 'is correct data shape'

    datasettest = np.vstack([datasettest20, datasettest40])
    return datasettest
예제 #2
0
def raw_training_load():
    ################# 'NEW data' ###################
    dirpath = '/Users/Jonathan/PhD/Seizure_related/20150616'
    _20150616dataobj = SeizureData(dirpath, amount_to_downsample=40)
    _20150616dataobj.load_data()
    _20150616data = _20150616dataobj.data_array
    _20150616labels = _20150616dataobj.label_colarray
    _20150616data_norm = normalise(_20150616data)

    print _20150616dataobj.filename_list.shape
    _20150616dataobj.filenames_list = [
        _20150616dataobj.filename_list[i]
        for i in range(_20150616dataobj.filename_list.shape[0])
    ]
    for name in _20150616dataobj.filenames_list[0:20]:
        print name[-34:]

    # select out the stuff we want
    #inds = np.loadtxt('0901_400newdata.csv', delimiter=',')
    notebook_dir = '/Users/jonathan/PhD/Seizure_related/2015_08_PyRanalysis/'
    inds = np.loadtxt(notebook_dir + '0616correctedintervals.csv',
                      delimiter=',')
    data0616_unnorm = _20150616data[list(inds[:, 0])]
    data0616 = _20150616data_norm[list(inds[:, 0])]
    labels0616 = _20150616labels[list(inds[:, 0])]
    for i in range(data0616.shape[0]):
        labels0616[i] = inds[i, 1]

    ################## Original Data ####################
    dirpath = '/Users/Jonathan/PhD/Seizure_related/Classified'
    dataobj = SeizureData(dirpath, amount_to_downsample=20)
    dataobj.load_data()
    dataobj = relabel(dataobj)
    dataobj = reorder(dataobj)
    dataset301 = dataobj.data_array
    labels301 = dataobj.label_colarray
    new_labels = np.loadtxt(notebook_dir + 'new_event_labels_28082015.csv',
                            delimiter=',')
    for x in new_labels:
        labels301[x[0]] = x[1]

    selection = np.loadtxt(notebook_dir + 'perfect_event_labels_28082015.csv',
                           delimiter=',')
    indexes = list(selection[:, 0])
    dataset129_unnorm = dataset301[indexes, :]
    dataset129_norm = normalise(dataset129_unnorm)
    dataset301_norm = normalise(dataset301)
    labels129 = labels301[indexes]
    return np.vstack((data0616_unnorm, dataset301))
예제 #3
0
    def assess_states(self,
                      raw_path=None,
                      downsample_rate=None,
                      savestring='example',
                      threshold=65,
                      raw_load=True,
                      saved_path=None,
                      make_pdfs=True):

        self.threshold = '65'  # 'sureity' threshold
        self.savestring = savestring
        if raw_load:
            self.dataobj = SeizureData(raw_path, fs_dict=self.fs_dict)
            self.dataobj.load_data()
            f = open('../' + savestring + '_saved', 'wb')
            pickle.dump(self.dataobj, f)

        else:
            assert saved_path != None
            self.dataobj = pickle.load(open(saved_path, 'rb'))
        #print 'printing filename_list'
        #print self.dataobj.filename_list

        self.norm_data = utils.normalise(self.dataobj.data_array)
        feature_obj = FeatureExtractor(self.norm_data)
        i_features = self.classifier.imputer.transform(
            feature_obj.feature_array)
        iss_features = self.classifier.std_scaler.transform(i_features)
        lda_iss_features = self.lda.transform(iss_features)

        np.set_printoptions(precision=3, suppress=True)

        #self.pred_table = self.r_forest.predict_proba(iss_features)*100
        #self.preds = self.r_forest.predict(iss_features)

        self.pred_table = self.r_forest_lda.predict_proba(
            lda_iss_features) * 100
        self.preds = self.r_forest_lda.predict(lda_iss_features)

        self.predslist = list(self.preds)  # why need this?
        self.predslist[self.predslist == 4] = 'Baseline'
        self.max_preds = np.max(self.pred_table, axis=1)
        #print pred_table
        self.threshold_for_mixed = np.where(
            self.max_preds < int(self.threshold), 1, 0)  # 1 when below
        self._string_fun2()
        self._write_to_excel()
        if make_pdfs:
            self.plot_pdfs()