def trainClassifier(self):
if self.trainCap is None:
raise Exception('No data available for training.')
dialog = wx.ProgressDialog('Training Classifier',
'Featurizing', maximum=self.nFold+1,
style=wx.PD_ELAPSED_TIME | wx.PD_SMOOTH)
segmented = self.trainCap.segment(start=0.0, end=self.trialSecs)
segs = [segmented.select(matchFunc=lambda mark: self.markToStim(mark) == choice)
for choice in self.choices]
assert segs[0].getNSeg() == self.nTrainTrial
##print 'nSegs:'
##for sg in segs:
## print sg.getNSeg(), sg.data.shape
freqs, trainData = self.powerize(segs)
self.plotPanel.plotFeatures(trainData, freqs, self.choices,
self.trainCap.getChanNames())
##print trainData[0].mean(axis=0)
##print trainData[0].mean(axis=0).shape
##print trainData[1].mean(axis=0)
##print trainData[1].mean(axis=0).shape
if self.classifierKind == 'lda':
self.trainLDA(trainData, dialog)
elif self.classifierKind == 'nn':
self.trainNN(trainData, dialog)
else:
raise Exception('Invalid classifier kind: %s.' % str(self.classifierKind))
self.plotPanel.showPieMenu()
评论列表
文章目录