我的網站–> http://www.yansongsong.cnpython
項目github地址:https://github.com/xiaosongshine/preliminary_challenge_baseline_kerasgit
爲響應國家健康中國戰略,推送健康醫療和大數據的融合發展的政策,由清華大學臨牀醫學院和數據科學研究院,天津市武清區京津高村科技創新園,以及多家重點醫院聯合主辦的首屆中國心電智能大賽正式啓動。自今日起至2019年3月31日24時,大賽開啓全球招募,預計大賽總獎金將高達百萬元!目前官方報名網站已上線,歡迎高校、醫院、創業團隊等有志於中國心電人工智能發展的人員踊躍參加。github
首屆中國心電智能大賽官方報名網站>>http://mdi.ids.tsinghua.edu.cn算法
下載完整的訓練集和測試集,共1000例常規心電圖,其中訓練集中包含600例,測試集中共400例。該數據是從多個公開數據集中獲取。參賽團隊須要利用有正常/異常兩類標籤的訓練集數據設計和實現算法,並在沒有標籤的測試集上作出預測。編程
該心電數據的採樣率爲500 Hz。爲了方便參賽團隊用不一樣編程語言都能讀取數據,全部心電數據的存儲格式爲MAT格式。該文件中存儲了12個導聯的電壓信號。訓練數據對應的標籤存儲在txt文件中,其中0表明正常,1表明異常。bash
簡單分析一下,初賽的數據集共有1000個樣本,其中訓練集中包含600例,測試集中共400例。其中訓練集中包含600例是具備label的,能夠用於咱們訓練模型;測試集中共400例沒有標籤,須要咱們使用訓練好的模型進行預測。網絡
賽題就是一個二分類預測問題,解題思路應該包括如下內容app
通過對賽題的分析,咱們把任務分紅四個小任務,首先第一步是:dom
該心電數據的採樣率爲500 Hz。爲了方便參賽團隊用不一樣編程語言都能讀取數據,全部心電數據的存儲格式爲MAT格式。該文件中存儲了12個導聯的電壓信號。訓練數據對應的標籤存儲在txt文件中,其中0表明正常,1表明異常。編程語言
咱們由上述描述能夠得知,
數據處理函數定義:
讀取一條數據進行顯示
咱們由上述信息能夠看出每種導聯都是由5000個點組成的列表,12種導聯方式使每一個樣本都是12*5000的矩陣,相似於一張分辨率爲12x5000的照片。
咱們須要處理的就是把每一個讀取出來,歸一化一下,送入網絡進行訓練能夠了。
標籤處理方式
我這裏是採用從reference.txt讀取,而後打亂保存到reference.csv中,注意必定要進行數據打亂操做,否則訓練效果不好。由於原始數據前面便籤所有是1,後面所有是0
數據迭代方式
數據讀取的方式我採用的是生成器的方式,這樣能夠按batch讀取,加快訓練速度,你們也能夠採用一下所有讀取,看我的的習慣了
數據咱們處理好了,後面就是模型的搭建了,我使用keras搭建的,操做簡單便捷,tf,pytorch,sklearn你們能夠按照本身喜愛來。
網絡模型能夠選擇CNN,RNN,Attention結構,或者多模型的融合,拋磚引玉,此Baseline採用的一維CNN方式,一維CNN學習地址
模型搭建
用model.summary()輸出的網絡模型爲
訓練參數比較少,你們能夠根據本身想法更改。
模型訓練
訓練過程輸出(最優結果:loss: 0.0565 - acc: 0.9820 - val_loss: 0.8307 - val_acc: 0.8800)
預測數據
下面是前十條預測結果:
你們須要注意一下,我預測的方式和官方不一樣,須要你們本身根據賽題要求來進行預測提交。。
此Baseline採用最簡單的一維卷積達到了88%測試準確率(可能會由於隨機初始化值上下波動),你們也能夠多嘗試GRU,Attention,和Resnet等結果,測試準確率準確率會突破90+。
能力有限,寫的很差的地方歡迎你們批評指正。。
我的主頁--> https://xiaosongshine.github.io/
項目github地址:https://github.com/xiaosongshine/preliminary_challenge_baseline_keras
歡迎Fork+Star,以爲有用的話,麻煩小小鼓勵一下 ><