浏览Github上有关Emotion-EEG的仓库

今天的任务是浏览Github上有关Emotion-EEG的仓库,看看有什么发现。


Human-Emotion-Analysis-using-EEG-from-DEAP-dataset
提取了数据库的PSD特征和DWT特征,在Arousal轴和Valence轴的二分类问题,使用KNN和SVM。
PSD特征:四个波段/总功率的比值,四分类正确率26%;
DWT特征:小波能量、小波熵、标准差,效果也只有60%;


EmoRegNet
使用DataFrame进行数据处理,四分类问题正确率60%。
所提取的特征:

  • mean
  • median
  • max
  • min
  • std dev
  • variance
  • range
  • skewness
  • kurtosis
    包括在长为806的10个分片段以及全长数据中提取的特征,共9*11+2=101个特征。(很奇怪,有一行特征全1,有一行特征为试验序号)
    在适用到全数据库文件后,得到的xs.shape=(32, 40, 40, 101), ys.shape=(32, 40, 4),存储于x.dat和y.dat中。
    神经网络部分:
batchSizebatchSize = 50
nbClasses = 2
nbEpoch = 5
CH, DATA = 40, 101
nbFilters = 100
nbConv = 3
NEpoch = 50

model = Sequential()

model.add(Convolution2D(nbFilters, (nbConv, nbConv), input_shape=(1,CH,DATA), activation='tanh', data_format='channels_first'))
model.add(Convolution2D(nbFilters, (nbConv, nbConv), activation='tanh'))
model.add(MaxPool2D())
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(128, activation='tanh'))
model.add(Dropout(0.25))
model.add(Dense(nbClasses, activation='softplus'))

sgd = SGD(lr=0.00001, decay= 1e-6, momentum= 0.9, nesterov=True)

model.compile(sgd, 'categorical_crossentropy')

值得一提的是,源代码中训练部分直接使用了validation_split=1/32进行分割,会导致并非按照被试participant进行划分,因此,在训练前使用KFold先划分数据集,再训练。
修改后的训练代码:

accAll = []
for _ in range(NEpoch):
    for train, test in kf.split(xs):     
        X_train, X_test, Y_train, Y_test = xs[train], xs[test], ys[train], ys[test]
        
        pat, exp, ch, data = xs.shape
        X_train = X_train.reshape((pat-1)*exp, 1, ch, data)
        X_test = X_test.reshape(1*exp, 1, ch, data)
        
        pat, exp, label = ys.shape
        Y_train = Y_train.reshape((pat-1)*exp, label)[:, :2]
        Y_test = Y_test.reshape(1*exp, label)[:, :2]
        
        model.fit(X_train, Y_train, batch_size=batchsize, epochs=nbEpoch)
        loss, acc = model.evaluate(X_test, Y_test)
        accAll.append(acc)

然而,随着循环的进行,acc会不断的上升,因为在循环的过程中会把原来为测试集的样本当成训练集,从而造成假象,所以需要使用K.clear_session()来清除前一次的训练结果。

分类结果:0.63046875
另一方面,将他的特征使用SVM进行分类,结果如图所示。效果一般。


浏览Github上有关Emotion-EEG的仓库_第1张图片
20180709_SVM_result

你可能感兴趣的:(浏览Github上有关Emotion-EEG的仓库)