最近在處理mi資料的時候發現濾波真的很重要啊,之前一直沒把預處理當個事,這次發現還是很重要的!!!
有fir濾波的時候準確率為百分之九十多。
注釋掉fir濾波後,準確率只有百分之三十多。。。還趕不上隨機的結果。
# 設定log輸出等級
mne.set_log_level(false)
# bciciv_2a_gdf中腦電信道的名稱
channels_a = ['eeg-fz', 'eeg-0', 'eeg-1', 'eeg-2', 'eeg-3', 'eeg-4', 'eeg-5', 'eeg-c3', 'eeg-6', 'eeg-cz',
'eeg-7', 'eeg-c4', 'eeg-8', 'eeg-9', 'eeg-10', 'eeg-11', 'eeg-12', 'eeg-13', 'eeg-14', 'eeg-pz',
'eeg-15', 'eeg-16']
# 定義csp分類函式,用於分類左手右手的訊號
def mi_eeg_csp(filename, components, channels):
# 載入挑選出的腦電資料,根據訊號的質量經過了初步的篩選
with open(filename, 'rb') as f:
epochs = pickle.load(f)
# 對資料進行濾波處理
epochs_train = epochs.filter(7., 30., fir_design='firwin', skip_by_annotation='edge')
# epochs_train = epochs
# 只處理其中的左右手部分(總共包括4類)
traindata = epochs_train['cueleft', 'cueright'].get_data(channels)
trainlabels = epochs_train['cueleft', 'cueright'].events[:, -1]
# 根據設計的交叉驗證引數,分配相關的訓練集和測試集資料
cv = shufflesplit(10, test_size=0.2, random_state=42)
# 建立線性分類器
lda = lineardiscriminantanalysis()
# 建立csp提取特徵,這裡使用4個分量的csp
csp = csp(n_components=components, reg=none, log=false, norm_trace=false)
# 建立機器學習的pipeline,也就是分類模型,使用這種方式可以把特徵提取和分類統一整合到了clf中
clf = pipeline([('csp', csp), ('lda', lda)])
# 獲取交叉驗證模型的得分
scores = cross_val_score(clf, traindata, trainlabels, cv=cv, n_jobs=4)
# 輸出結果,準確率和不同樣本的佔比
class_balance = np.mean(trainlabels == trainlabels[0])
class_balance = max(class_balance, 1. - class_balance)
print("classification accuracy: %f / chance level: %f" % (np.mean(scores), class_balance))
if __name__ == '__main__':
# 程式開始時間
timestart = time.time()
# 設定檔案路徑
# 執行csp演算法
mi_eeg_csp(filefullpatha, components=4, channels=channels_a)
# 程式結束時間
timeend = time.time()
# 列印程式整體用時
print("用時:", timeend - timestart)
有fir濾波的時候準確率為68%左右。
沒有fir濾波的時候準確率僅為51%左右。
開始的時候發現濾波前後資料沒有變化,一度認為是mne庫的bug,後來發現在mne庫中預設是不會對eog資料濾波的。在這裡預設只處理eeg資料,前後對比可以發現eeg資料變化了,而eog資料並沒有改變。
fir濾波前:
fir濾波後:
python中df去重 python去重函式是什麼
資料去重可以使用duplicated 和drop duplicates 兩個方法。dataframe.duplicated subset none,keep first 返回boolean series表示重複行 引數 subset 列標籤或標籤序列,可選 僅考慮用於標識重複項的某些列,預設情況下使...
pcl庫中濾波器總結
1 引言 在獲取點雲時由於裝置精度 操作者經驗 環境因素等帶來的影響,以及電磁波衍射的特性 被測物體表面性質變化和資料拼接配準操作過程的影響,點雲資料中將不可避免的出現一些雜訊點。在點雲處理流程中,濾波處理作為預處理的第一步,往往對後續處理管道影響很大,只有在濾波預處理中將雜訊點 離群點 孔洞 資料...
保邊濾波中雙邊濾波與引導濾波的區別
雙邊濾波 雙邊濾波是一種同時考慮了畫素空間差異與強度差異的濾波器,因此具有保持影象邊緣的特性。高斯濾波器如下 其中w是權重,i和j是畫素索引,k是歸一化常量。公式中可以看出,權重只和畫素之間的空間距離有關係,無論影象的內容是什麼,都有相同的濾波效果。再來看看雙邊濾波器,它只是在原有高斯函式的基礎上加...