余 維 肖偉昌 聶小英 彭 微
(湖北科技學(xué)院 湖北·咸寧 437100)
目前,很多高校結(jié)合自己的優(yōu)勢(shì)進(jìn)行轉(zhuǎn)型發(fā)展,其中不乏向應(yīng)用型進(jìn)行轉(zhuǎn)型,更加注重培養(yǎng)應(yīng)用型人才。針對(duì)理工多學(xué)科交叉專業(yè),比如醫(yī)學(xué)信息工程專業(yè)的專業(yè)課教學(xué),傳統(tǒng)的理論教學(xué)面臨重大的挑戰(zhàn)。傳統(tǒng)的理論教學(xué)往往是學(xué)生被動(dòng)填鴨式的接受知識(shí),雖然能讓學(xué)生學(xué)到很多理論知識(shí),但是在解決實(shí)際問題時(shí)十分茫然,不能做到舉一反三。因此有必要以任務(wù)驅(qū)動(dòng)為導(dǎo)向,在結(jié)合案例教學(xué)的基礎(chǔ)上增加學(xué)生的主動(dòng)性,將教師與學(xué)生的角色互換,充分發(fā)揮學(xué)生的主觀能動(dòng)性,讓學(xué)生享受學(xué)習(xí)的過程,在提高學(xué)習(xí)成效的同時(shí)提高理論與實(shí)踐應(yīng)用的能力。
目前,人口老年化一直呈現(xiàn)出上升趨勢(shì),而帕金森綜合征是一種常見的神經(jīng)系統(tǒng)退行性疾病,常見于老年人。發(fā)病平均年齡約為60歲,帕金森病在40歲以下的年輕人中很少見。大多數(shù)帕金森病患者是散發(fā)性的,只有不到10%的人有家族病史。
本文從加州大學(xué)歐文分校(UCI)的機(jī)器學(xué)習(xí)庫①中的帕金森綜合征數(shù)據(jù)集入手,對(duì)其數(shù)據(jù)進(jìn)行分析并構(gòu)建一個(gè)帕金森綜合征預(yù)測模型,以供決策者提高診斷效率及準(zhǔn)確率。根據(jù)所要解決的問題,按照數(shù)據(jù)挖掘的流程,本文所得到預(yù)測帕金森綜合征的分類模型是通過數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、挖掘建模、模型評(píng)估等幾個(gè)階段完成的。通過對(duì)理論與實(shí)踐操作,學(xué)生能對(duì)數(shù)據(jù)挖掘過程中的每個(gè)階段有更深刻的認(rèn)識(shí)。
本文選取的公開數(shù)據(jù)集來自伊斯坦布爾大學(xué)醫(yī)學(xué)院神經(jīng)內(nèi)科188例帕金森綜合征患者(男性107例,女性81例),年齡從33歲到87歲不等(65.1±10.9)歲。對(duì)照組為64例健康人(男23例,女41例),年齡41-82歲(61.1±8.9)歲。在數(shù)據(jù)收集過程中,麥克風(fēng)設(shè)置為44.1kHz,并根據(jù)醫(yī)生的檢查,從每個(gè)受試者中收集元音/a/的持續(xù)發(fā)音,并進(jìn)行三次重復(fù)(見表1)。
表1:帕金森病分類數(shù)據(jù)集
對(duì)于龐大的數(shù)據(jù)量,原始數(shù)據(jù)集中的數(shù)據(jù)或多或少是存在質(zhì)量下降的現(xiàn)象,直接利用該數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘,不僅會(huì)增加挖掘工作的難度,還會(huì)影響挖掘效果的準(zhǔn)確性。為了減輕影響數(shù)據(jù)挖掘的多種因素,提高用來挖掘的數(shù)據(jù)質(zhì)量,通常獲取數(shù)據(jù)后需對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,以使混亂無序的數(shù)據(jù)變?yōu)槿菀追治鎏幚淼臄?shù)據(jù)。對(duì)獲取的數(shù)據(jù)進(jìn)行預(yù)處理步驟通常包括數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換、數(shù)據(jù)精簡等。
要解決的問題是通過對(duì)帕金森綜合征數(shù)據(jù)集進(jìn)行數(shù)據(jù)挖掘,分類得到能有效判斷罹患帕金森綜合征的預(yù)測模型。基于python的第三方工具庫中,sklearn作為機(jī)器學(xué)習(xí)領(lǐng)域知名的模塊之一,包含了很多重要的數(shù)據(jù)挖掘算法。鑒于此,考慮選用兩種常用分類算法(如KNN算法和決策樹算法)對(duì)帕金森綜合征數(shù)據(jù)集進(jìn)行分析預(yù)測,并在python語言編程環(huán)境下結(jié)合sklearn庫進(jìn)行建模②。
1.3.1 決策樹算法建模
將采集到的188例帕金森綜合征患者數(shù)據(jù)分成兩部分:一部分作為訓(xùn)練集,用來構(gòu)建模型;另一部分作為測試集,用來評(píng)估模型的準(zhǔn)確性。利用sklearn庫中的train_test_split生成訓(xùn)練集和測試集,利用sklearn庫中的Decision Tree Classifier生成決策樹,得到?jīng)Q策樹模型的核心代碼如下:
1.3.2 KNN算法建模
與上述決策樹算法建模操作相似,將188例帕金森綜合征患者數(shù)據(jù)集分成訓(xùn)練集和測試集,利用sklearn庫中的train_test_split生成訓(xùn)練集和測試集,利用sklearn的KNeighbors-Classifier方法對(duì)KNN算法進(jìn)行建模,得到KNN算法模型的核心代碼如下:
利用1.3節(jié)對(duì)188例帕金森綜合征患者數(shù)據(jù)集分離出的訓(xùn)練集生成出對(duì)應(yīng)的決策樹算法模型和KNN算法模型后,用相應(yīng)的測試集對(duì)生成的兩種模型進(jìn)行精確度評(píng)估。通過驗(yàn)證,得到兩種不同模型的預(yù)測精度。
1.4.1 決策樹算法模型評(píng)估
利用predict對(duì)測試數(shù)據(jù)集x_test進(jìn)行預(yù)測,y_predict為預(yù)測結(jié)果,借助y_test,利用sklearn庫中的metrics.confusion_matrix生成混淆矩陣結(jié)果并對(duì)y_predict進(jìn)行分析,核心代碼如下:
結(jié)果見表2決策樹算法模型混淆矩陣表。通過表2所示的混淆矩陣,計(jì)算出模型的準(zhǔn)確率和錯(cuò)誤率見表4。
表2:決策樹算法模型混淆矩陣表
1.4.2 KNN算法模型評(píng)估
與1.4.1節(jié)類似,通過測試集對(duì)模型進(jìn)行預(yù)測,并對(duì)預(yù)測結(jié)果進(jìn)行分析,核心代碼如下:
結(jié)果見表3 KNN算法模型混淆矩陣表。通過表3所示的混淆矩陣,計(jì)算出模型的準(zhǔn)確率和錯(cuò)誤率見表4。
表3:KNN算法模型混淆矩陣表
表4:算法模型準(zhǔn)確率和錯(cuò)誤率
由表4能看出,兩種不同的模型中,決策樹模型對(duì)帕金森綜合征的預(yù)測更加準(zhǔn)確。
通過對(duì)公開的帕金森綜合征數(shù)據(jù)集入手,對(duì)目標(biāo)任務(wù)進(jìn)行分析,構(gòu)建一個(gè)帕金森綜合征預(yù)測模型。針對(duì)該分類問題,本文利用python編程環(huán)境和相關(guān)工具庫完成了帕金森綜合征數(shù)據(jù)挖掘,包括數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、算法建模與模型評(píng)估等四個(gè)階段。利用機(jī)器學(xué)習(xí)領(lǐng)域著名的 sklearn庫實(shí)現(xiàn)了決策樹算法模型和KNN算法模型,并對(duì)188例帕金森綜合征數(shù)據(jù)集分離出的測試集進(jìn)行模型評(píng)估。通過對(duì)比決策樹模型和KNN模型的精確度,能夠得出決策樹算法在帕金森綜合征數(shù)據(jù)挖掘上的應(yīng)用優(yōu)于KNN算法的結(jié)果。與單純理論教學(xué)相比,課堂學(xué)習(xí)中,將實(shí)踐與理論結(jié)合,使學(xué)生在學(xué)習(xí)理論的同時(shí)加強(qiáng)編程的練習(xí),能有效提高學(xué)生理解并掌握所學(xué)的數(shù)據(jù)挖掘方法在臨床工作中的應(yīng)用。
注釋
① http://archive.ics.uci.edu/ml/index.php
② https://scikit-learn.org/stable/