---
# System prepended metadata

title: 預測患者住院時間
tags: [論文研究]

---

# **預測患者住院時間**
[**2021 IEEE 國際生物資訊與生物醫學會議 (BIBM)**](https://ieeexplore.ieee.org/document/9669527)
<font size="2">**DOI: 10.1109/BIBM52615.2021.9669527**</font>
<font size="1">*Zhiwei Fu, Xinran Gu, Jia Fu, Mojtaba Moattari, Farhana Zulkernine*</font>

<style>.red {color: red;}</style>
<style>.blue {color: #4682B4;}</style>
<style>.green {color: green;}</style>
<style>.orange {color: orange;}</style>

## **摘要 (ABSTRACT)**
 由於冠狀病毒肺炎病例的治療過程密集，預測病患在醫院的住院天數(LOS)非常重要，這有助於更好地管理資源，提高醫院服務的效率，從而提供更好的醫療保健。為了預測住院天數，我們使用了四種人工神經網絡模型，即多層感知器(MLP)、卷積神經網絡(CNN)、帶有主成分分析的多層感知器(PCA+MLP)以及雙向長短時記憶(BiLSTM)模型，來分析使用Microsoft醫院住院天數數據的不同模型的優缺點。所提議的方法與最先進的模型和一個簡單的MLP模型進行了比較。我們的模型達到了73%到88%的準確度，其中CNN模型提供了最高的準確度。
 
---

## **1. 引言(INTRODUCTION)**
COVID-19 的全球爆發引起了公眾和健康當局的關注。在疫情爆發期間，許多國家面臨的首要和最重要的問題是醫療資源短缺。截至2021年6月25日，全球已報告180,867,093例確診的COVID病例和3,918,231例死亡。COVID可以分為輕型、普通型和重型。大多數患者僅有輕微症狀，如感冒和發燒，而一些重症患者則患有急性呼吸窘迫症候群或敗血性休克，甚至死亡。全球的醫院都在全力運作，以容納和治療COVID患者，並採取額外措施來控制疾病的傳播。為了服務疑似COVID患者和確診病例，醫院需要更多的空間、人力、預防措施和物資資源，如專為有其他合併症的患者提供的呼吸機和其他藥物。因此，如果能提前預測患者在醫院的住院時長，這將有助於醫院不僅應對像大流行這樣的危機期間日益增長的患者護理需求，還可以降低醫療成本。此外，醫生在這種情況下將有更多的時間制定治療重症患者的策略，從而減少醫院患者的平均住院時長，從而形成一個正向循環。

周的深入研究探討了流行病系統中病床容量的變化，其中參數被假定為與時間相關的分段函數，再次強調了住院時長對醫院的重要性。具體來說，醫院病床的數量遵循一個邏輯增長曲線來模擬流行病及其參數。模擬結果顯示，減少病床總數會放緩病床的供應。病床補充的延遲增加了確診病例和死亡的累計數量，並延長了爆發情況。因此，觀察和預測患者在醫院的住院時長（LOS）是非常重要的，它是預測醫院運營效率的一個重要參數。

在本文中，我們的目標是解決住院時長（LOS）的問題，並開發多個人工神經網路（ANN）模型來預測LOS。ANN是完成此任務的理想工具，因為它們在預測建模中表現出色，其中模型可以自動從數據中學習必要的參數值，並隨著數據的變化而調整參數值[4, 5]。由於缺乏關於COVID患者的可用在線數據集，我們選擇了反映大流行情況的2017年醫院患者數據集[6]作為合適的替代品。為了為研究人員提供一個研究COVID患者的住院時長的基礎架構，我們使用各種深度學習模型分析了這個Microsoft LOS數據，並提供了預處理數據和建模超參數的詳細信息。由於多層感知器（MLP）模型在許多現有的工作中都被普遍使用[7, 8]，所以我們除了帶有主成分分析（PCA）的MLP模型外，還實施了一個MLP模型作為基線，以及一個卷積神經網路（CNN）和一個雙向長短時記憶（BiLSTM）模型。在這四個模型中，我們的CNN模型達到了最高的88%的準確率。

我們使用了Microsoft LOS數據集中的標量和一熱編碼特徵作為輸入特徵，並借助主成分分析（PCA）作為正規化工具。我們為我們實施的每一個ANN模型找到了合適的模型結構和超參數。我們呈現了一個性能比較，其中報告了準確性，以及這些模型對過擬合的傾向。本文的其餘部分組織如下。第II節介紹了相關工作。第III節描述了數據集和預處理方法。第IV節呈現了模型實施、結果和分析。最後，第V節以未來工作的清單總結了本文。


## **2. 相關工作(RELATED WORK)**
人工神經網絡（ANN）在醫學領域已被廣泛使用，並在疾病預測 [27, 28] 和生物醫學影像分析 [29] 上進行了大量的研究。Nair等人建立了一個快速模塊化的ANN來分類乳腺癌，大大減少了計算複雜性，提高了效率，並獲得了相當高的準確率（99.6%）[9]。Gabbe創建了一個新模型來監控外傷的質量，其效率和準確性均遠高於傳統的計算模型[10]。Daghistani等人使用ANN和貝葉斯網絡預測了患有心血管疾病的患者的預期住院時間[11]。Wang等人實施了一個人工神經網絡，旨在預測病人是否會在30天、90天或1年的時間窗內返回醫院[7]。這是一個重要的研究主題，因為可以監控患有慢性疾病的病人，提供家庭幫助，從而減少每年約170億美元的醫院再入院成本。

對於特徵提取，研究人員已經應用CNN模型在許多數據領域，包括醫學領域，有效地從空間分佈的數據中提取特徵[17,18]。Feng等人提出了一種基於多粒度（MG-CNN）醫學概念嵌入的CNN模型，使用醫院質量監控系統數據測試病人特徵對住院費用和住院時間的影響[18]。多粒度詞嵌入用於增強數據。它基於國際疾病分類（ICD）系統[19, 27]使用醫學本體信息，並根據一定的規則將醫學概念編碼到低維空間。ICD根據其特徵對疾病進行分類和編碼。MG-CNN從每個原始ICD代碼中提取四個細粒度代碼，每個分類級別的代碼包含特定數量的特徵。通過計算由高分類級的前幾個字符組成的短代碼來實現它，以增加其出現的頻率，以理解數據中的罕見醫學概念。將三種不同的CNN模型（帶有一熱編碼器的CNN、單通道word2vec的CNN和多粒度word2vec的CNN）的性能與預測醫院住院時間的傳統迴歸方法（帶有一熱的線性迴歸、帶有一熱的隨機森林樹、單通道word2vec的隨機森林樹和多粒度word2vec的隨機森林樹）進行比較。MG-CNN模型在住院總費用和住院時間上取得了最佳的表現，住院費用的R平方為0.7876，住院時間的R平方為0.5618。

另一方面，Fernandes等人使用了與本研究中使用的數據集相似的特徵，並實施了多個模型，包括MLP分類器、CNN、SVM和隨機森林（RF），以預測ICU入院患者的機械通氣插管，其準確度範圍從44%到88%[14]。

在預測迴歸模型中，反向傳播是最廣泛使用的網絡訓練算法。Pofahl等人認為，在某一大小的神經網絡模型中，反向傳播算法是預測小兒外傷患者住院時間的最合適方法，他們的模型的準確度範圍從80%到88%[20]。反向傳播算法有廣泛的應用，主要在分類問題中。Cheon等人應用主成分分析（PCA）和深度神經網絡（DNN）模型預測中風患者的死亡率。多層感知器是使用反向傳播的DNN。PCA是一種簡單的非參數優化方法，用於將特徵投影到高共變數基底並減少輸入維度。他們使用PCA和DNN模型將分類變數轉換為連續變數，最終減少了數據的離散化[21]。

Cao等人建立了一個帶有Naïve Bayes（NB）模型的MLP分類器，以預測HBV引發的肝硬化的階段[23]。他們使用從當地診所和大學收集的數據，每個數據包含239條記錄，每條記錄有13個屬性。經過訓練和測試，達到了77.5%的準確率。Kingma等人建立了一個混合ANN分類模型，通過結合循環神經網絡（RNN）和K-means聚類[24]。Kingma等人通過將長短期記憶模型與K-means聚類結合，實現了0.0477的RMSE值。受這些模型的啟發，我們實施了三個ANN模型來預測醫院的住院時間。


## **3. 數據介紹(DATA)**
本研究中使用的住院時長（LOS）數據集是由Microsoft於2017年發布的[6, 15]。由於該數據集記錄了在類似情況下（2017年的大流行）醫院中的患者的詳細和真實信息，因此它是COVID患者的住院時長數據集的理想替代品。儘管還有其他候選數據集，如醫院質量管理系統（HQMS）和與COVID-19相關的數據[1, 2, 3]，但由於我們無法通過互聯網訪問這些數據集或它們的擁有者，所以我們選擇不使用它們。雖然Microsoft數據集包含了許多噪音數據，但它允許我們通過結合一熱和標量特徵來探索創新的基於PCA的特徵提取方法，如果使用其他現有的數據集，我們則不需要實施這些方法。

### **A. 數據說明(Data Description )**
Microsoft的住院時長（LOS）數據集包含從多家當地醫院收集的10萬條患者信息記錄。LOS數據集的每一行都有27個特徵，如表I所列。它代表了每位患者的詳細信息，包括性別、過去180天內的再入院次數，以及一段文本註釋，指示患者在住院期間是否被診斷出有其他疾病，如心理障礙、腎病、哮喘等。記錄中有57%是女性，43%是男性。每條記錄都由一個醫院入院號（ID）和一個就診號ID（從1到100,000）唯一標識。醫院入院ID代表不同的醫院位置，每家醫院都有不同的容納患者的能力。住院期間進行的大多數生物測量都記錄為浮點數。 “住院時長”記錄為1到17天的一個數字。我們訓練我們的模型來預測這個值，並將預測值與這個標籤進行比較以計算準確度。

![image.png](https://hackmd.io/_uploads/SkUoVt-Qa.png)
![image.png](https://hackmd.io/_uploads/r1NTVt-mT.png)
**圖1 資料預處理與模型開發流程圖工作流程**


### **B. 數據預處理(Data Preprocessing )**
在上述數據特徵中，有些對我們的研究不重要，因為它們不影響預測，有些則包括我們試圖預測的信息。我們放棄了就診號ID、訪問日期、出院日期和LOS標籤，因為我們只想基於患者的健康狀況預測LOS。去除不必要的特徵有助於減少模型大小和計算複雜性。其他特徵，如患者在過去180天內的再入院次數、性別和就診ID，要麼被匯總為一個數字或字符串。我們使用一位編碼(one-hot-coding)來編碼此數據作為我們模型的輸入，這為我們提供了基於一位表示法的11個附加特徵。因此，從每條記錄中提取和使用的特徵總數如下。在每個患者記錄的27個總特徵中，有4個被丟棄，因為它們包括預測或不必要的信息，並且通過匯總同一患者的多條記錄中的一些特徵，創建了11個附加特徵，結果用作模型輸入的特徵總數為34。

**<span class="orange">$27−4+11=34 --------- (1)$</span>**

我們計算了所有數據特徵值的分佈，並對其中一些進行了歸一化，因為這些值的範圍和分佈範圍很廣。表I顯示了這些數據特徵的平均值、眾數和中位數。當平均值、眾數和中位數非常接近時，數據被認為服從正態分佈，沒有顯著的異常值。我們使用Scikit-learn庫中的Python StandardScaler() 函數來縮放以下特徵值，以將這些數據值標準化為零均值和單位方差：“hematocrit”（血細胞比容）、“sodium”（鈉）、“glucose”（葡萄糖）、“creatinine”（肌酸酐）、“bmi”、“pulse”（脈搏）和“respiration”（呼吸）。如果平均值、眾數和中位數彼此相差很遠，則表示數據中可能存在異常值。我們使用Scikit-learn庫中的RobustScaler()方法去除中位數，並根據分位數範圍縮放“neutrophils”（中性粒細胞）和“blood_urea_nitro”的數據值，以對值進行標準化。結果，所有數據值的方差大大縮短，並縮放在[-2, 2]的範圍內。為了將數據集投影到低維空間並刪除一些不重要的特徵，我們應用了主成分分析（PCA）方法。此外，為了避免失去重要特徵並防止過度減少，我們將特徵數量保持不變為34，如公式(1)所示。最後，我們通過應用Numpy陣列方法將數據集轉換為陣列，然後將數據分為80:20的比例作為訓練和測試數據集。整體而言，圖1可視化了對LOS數據進行的所有預處理。

![image.png](https://hackmd.io/_uploads/rkmrzF-XT.png)
**圖1 資料預處理與模型開發流程圖工作流程**

#### **<span class="green">:mag: RobustScaler()解釋 :</span>**
:::success
**RobustScaler() 是 scikit-learn 庫中的一種資料預處理方法，專為處理含有異常值的資料而設計。當資料中存在異常值時，使用平均值和標準差進行標準化可能不太適合，因為異常值會對平均值和標準差造成很大的影響。此時，基於中位數和四分位數進行標準化會更為穩健，因為這兩個統計量不容易受到異常值的影響**
 
**- RobustScaler() 的工作原理如下**

![image.png](https://hackmd.io/_uploads/H1GifY-QT.png)

**使用 RobustScaler() 的主要好處是，它對異常值具有魯棒性，因此在資料中有異常值時，它可以提供更好的標準化結果。這種方法確保了在資料中大部分的正常值大致在 -1 到 1 的範圍內，而異常值（比如下面例子中的100）則可能遠離這個範圍，但它不會像使用平均值和標準差那樣受到異常值的強烈影響。**

![image.png](https://hackmd.io/_uploads/HySTztbQT.png)
:::

## **4. 執行(IMPLEMENTATION)**
為了預測住院天數（LOS），我們使用了四種人工神經網路模型，分別是多層感知器（MLP）[23]、卷積神經網絡（CNN）[29]、帶有PCA的多層感知器，以及雙向長短期記憶（BiLSTM）[20]模型，如下所述。

### **A. MLP**
我們實施了一個MLP模型作為基線分類模型，使用監督學習來與其他更先進的模型進行性能比較。它的建立、訓練和測試都簡單且快速。

為了優化這次的實施並選擇剩餘的參數，我們採用了一種暴力方法，參考了Wang等人[7]和Matrouk等人[16]的方法。基本原則是嘗試使用不同組合的隱藏層和不同數量的節點來嘗試模型。最後，我們採用tanh函數和學習率=0.01設計了我們的三隱藏層（32節點、32節點、32節點）基線模型。模型的結構如圖2所示。我們使用不同的配置、批量大小和激活函數對模型進行了實驗。經過調整後，我們決定使用"Adam"優化器，並使用隨機梯度基礎損失函數。我們還將所有運行的動量保持在0.9，並給予所有運行1,000次迭代以達到收斂。整體而言，通過這個基線模型測試了741個獨特的配置。

最終模型有3個隱藏層，每層大小為32（層中的神經元）。在所有節點中使用tanh激活函數，學習率為0.001。輸出層的大小為17，用於預測從1-17的住院天數。

![image.png](https://hackmd.io/_uploads/Byay7tbmT.png)
**圖 2. MLP 分類器模型的層。 每層下提供的值是神經元的數量。**


#### **<span class="green">:mag: MLP Model 詳細解釋 :</span>**
:::success
**將多層感知機（MLP）模型作為基線分類模型，MLP模型的優點是訓練和測試的速度快。**

**<span class="blue">- 優化實施：</span>**
**為了優化此實施並選擇剩餘的參數，他們採用了暴力法，根據Wang等人和Matrouk等人的方法，嘗試了不同的隱藏層和節點數量的組合。**

**<span class="blue">- 模型結構：</span>**
**最終，他們使用了tanh激活函數和0.01的學習率，設計了一個具有三個隱藏層（每層32個節點）的基線模型。這個模型的結構在圖2中顯示。**

**<span class="blue">- 實驗與調整：</span>**
**他們通過使用不同的配置、批次大小和激活函數進行了實驗，並在調整後決定使用'Adam'優化器和隨機梯度基礎的損失函數。為所有運行保留了0.9的動量，並為所有運行提供了1,000個循環以達到收斂。通過這個基線模型，測試了741個唯一配置。**

**<span class="blue">- 最終模型：</span>**
**最終的模型具有3個隱藏層，每層有32個神經元。所有節點都使用tanh激活函數，學習率為0.001。輸出層的大小為17，用於預測從1到17的住院時長（LOS）。**
:::

### **B. CNN+MLP**
Feng等人[19]報告稱，即使是表現最差的帶有一熱編碼器的CNN，在預測醫院住院天數的Hospital Quality Monitoring System數據上，其性能也優於傳統的回歸模型。這反映了CNN能夠提取複雜的特徵並提高預測精度[19]。與典型的ANN不同，CNN的結構是不同的。在常規的前向神經網絡中，每一層都由一組神經元組成，這些神經元連接到前一層和下一層的所有神經元。但在CNN模型中，一層中的神經元與前一層的一部分神經元連接。CNN架構的實現使得訓練和操作更加健壯和成本效益高，同時減少和共享網絡參數。由於我們在數據預處理階段去除了數據集中的冗餘信息，所以我們沒有添加池化層，以確保保留已學到的特徵集和分辨率。

![image.png](https://hackmd.io/_uploads/B1TgmFWQ6.png)

**圖 3. CNN 模型架構圖**

圖3展示了我們的CNN模型的架構。輸入層由512個節點（$2^9$）組成。它來自於表I中顯示的九個選定的標準化特徵。使用drop-out連接來減少神經網絡的過擬合效果，每次訓練中隨機不激活一半的神經單元。為了讓網絡學會提取更多的組合特徵，兩個連續的層是完全連接的，然後是一個dropout層，總共有1024個節點（512 x 2 = 1024），並使用0.5的dropout比率。下一層將1024個單元轉換為32×32×1（三維）以將數據餵送到卷積層。接下來的兩個卷積層分別使用64和32個內核提取特徵，內核大小為3×3，步長為1。第一個卷積層僅提取低級特徵，第二個卷積層從低級特徵中提取更複雜的特徵。激活函數ReLU被應用於賦予網絡非線性截斷能力。最後，表示形式被轉換為一維以滿足17個輸出節點。對於模型優化，採用了隨機梯度下降（SGD）。CNN模型的其他參數列在表II中。

![image.png](https://hackmd.io/_uploads/H1K-XF-7p.png)
**表二. CNN模型詳細參數**


#### **<span class="green">:mag: CNN Model 詳細解釋 :</span>**
:::success
**<span class="blue">- 性能比較：</span>**
**根據參考文獻[19]，即使是表現最差的CNN（配合一熱編碼）在預測LOS方面也優於使用醫院質量監控系統數據的傳統回歸模型。這表明CNN能夠提取複雜的特徵，從而提高預測準確性。**

**<span class="blue">- CNN結構：</span>**
**與常規的前向神經網絡不同，CNN中的神經元在每一層只連接到前一層的一部分神經元，而不是全部。這種結構使得CNN能夠更高效和節省成本地進行訓練和運行，同時減少並共享網絡參數。**

**<span class="blue">- 池化層的省略：</span>**
**在數據預處理階段，研究人員去除了數據集中的冗餘信息。為了保留學習到的特徵集和分辨率，他們沒有添加池化層**。

**<span class="blue">- CNN模型架構（圖3）：</span>**
1. **輸入層由512個節點組成，來自9個已經正規化的特徵。**
1. **為了減少過擬合效應，實施了dropout連接，隨機不激活每次訓練中的一半神經單元。**
1. **接下來的兩個完全連接層和一個dropout層共有1024個節點，並使用了0.5的dropout比率。**
1. **在卷積層，首先將1024個單元轉換為32×32×1的三維結構，然後通過64和32個核分別提取特徵，核大小為3×3，步長為1。**
1. **最後，將表示轉換為一維以適應17個輸出節點。使用隨機梯度下降（SGD）進行模型優化。**
:::

### **C. PCA+MLP**
受到Pofahl [20]和Cheon等人[21]的工作啟發，我們在基線上加入PCA，創建了第三個模型（PCA+MLP模型），該模型基於PCA方法分析數據，以找到主要特徵以建立人工神經網絡模型。在預處理階段，PCA被用來提取主要特徵並減少數據離散化，而分類特徵使用一熱編碼進行編碼。在我們的數據集中只有三十四個特徵的情況下，我們不需要減少數據的維度。因此，PCA在這種情況下只是基於方差減少數據的離散性（不是數據的維度）。如圖4所示，使用PCA的特徵分佈在0和1之間。

![image.png](https://hackmd.io/_uploads/ByO5mFb7a.png)
**圖4. PCA + MLP架構圖**

由於PCA只用於減少數據的離散性，所以多層感知器的輸入維度仍然保持為34。為了避免過擬合，我們沒有為這個模型添加太多的隱藏層。經過調整後，兩個隱藏層被認為是可取的，而這兩個隱藏層可以與激活函數一起使用，以任意精度表示任意的決策邊界[22]。最終確定隱藏層中的節點數為68和17，以達到最佳性能（表III所示）。此模型的輸出節點數量始終只有一個，那就是預測的住院天數。

![image.png](https://hackmd.io/_uploads/B1iQ7tb76.png)
**表三。 不同數量的隱藏節點的效能變化**

圖5展示了PCA+MLP模型的架構。由於準確度在4000次迭代左右趨於平穩，所以設定訓練迭代次數為4000。在測試“sigmoid”、“ReLU”、“tanh”和“identity”後，選擇了ReLU激活函數。除了輸出層外，我們還添加了Adam優化器，以提高最終預測的準確性。表III顯示了不同超參數組合的網絡性能。

![image.png](https://hackmd.io/_uploads/B1FdmKZQp.png)
**圖 5. DNN 模型架構圖**

#### **<span class="green">:mag: PCA+MLP Model 詳細解釋 :</span>**
:::success
**PCA是一種降維技術，用於減少資料的維度，同時盡可能保持原始資料的變異性。
舉例：假設我們有兩個高度相關特徵，如身高和體重。使用PCA，我們可以將這兩個特徵合併成一個新的特徵，這樣可以減少資料的維度而不大量丟失信息**。

**PCA+MLP模型是一個結合了主成分分析和多層感知機的模型，旨在透過減少資料離散化和調整網路結構來提高預測醫院住院時長的準確度。**

**<span class="blue">- 預處理階段:</span>**
**在預處理階段，使用PCA來提取主要特徵並減少數據的離散化，同時使用one-hot-coding來編碼分類特徵。**

**<span class="blue">- 維度降低:</span>**
**由於數據集中只有34個特徵，所以無需降低數據的維度。因此，在這種情況下，PCA僅基於方差來減少數據的離散化，而不是數據的維度，使用PCA的特徵分布在0和1之間分布。**

**<span class="blue">- 多層感知機的結構:</span>**
**由於PCA僅用於減少數據的離散化，多層感知機的輸入維度仍然保持為34。為了避免過擬合，沒有在此模型中添加太多隱藏層。經過調整後，發現兩個隱藏層是理想的，這兩個隱藏層可以與激活函數一起使用，以任意精度表示任意決策邊界。**

**<span class="blue">- 隱藏層和輸出節點:</span>**
**隱藏層中的節點數最終確定為68和17，以實現最佳性能（如表III所示）。此模型中的輸出節點數量始終只有一個，即預測的住院時長。**

**<span class="blue">- 訓練和激活函數:</span>**
**訓練周期設置為4,000，因為準確率在大約4,000周期時趨於穩定。在測試了“sigmoid”、“ReLU”、“tanh”和“identity”後，選擇了ReLU激活函數。**
:::


### **D. BiLSTM + MLP** 

根據Kingma等人的研究[24]，如果初始簇是隨機選擇的，K-means聚類算法不能保證唯一解，且可能難以解釋和驗證結果。由於我們的數據集已經有了特定的分組（從1到17），所以分類器比聚類得到了更好的結果。此外，與簡單的RNN相比，Long Short Term Memory (LSTM)模型是一個有效的非線性網絡，它考慮到數據中的時間序列、順序和非線性特性。再者，與常規的RNN模型相比，Bidirectional LSTM模型具有更深入的學習過程，如圖6所示。我們開發了一個結合雙向LSTM和MLP分類器的混合ANN。

![image.png](https://hackmd.io/_uploads/BkGnQtb7p.png)
**圖 6. 所提出的雙向 LSTM 模型概述**

對於每個實例，相同的輸入向量都被提供給前向和後向層的每個LSTM單元，並且每個LSTM的隱藏層輸出都被傳遞到同一層中的同一方向的下一節點。因此，Bi-LSTM在過去和未來的前向和後向方向中學習了序列模式。在這裡，我們使用LSTM作為解碼器，其中所有的輸入序列都是相似的向量，以強化該信息與權重矩陣的特徵向量對齊，這是一種抑制噪聲輸入並只強化特定輸入的技巧。

表IV展示了BiLSTM+MLP模型的不同參數組合，顯示了不同層中的試驗和節點數量。根據表IV，我們觀察到準確性與隱藏層數、節點數和迭代次數之間存在正相關，從試驗＃1、＃2、＃4、＃7和＃8可以看出。然而，由於梯度消失問題，試驗＃3、＃5和＃6的準確性明顯降低。根據表IV中的ACCU（準確性）列，我們可以看到最後一行（第一層有34個節點，第二層有128個節點）顯示了最高的準確性。使用此配置，我們使用了Sigmoid Recurrent Activation Function和Adam Backpropagation Optimizer。

![image.png](https://hackmd.io/_uploads/Bkj2XYWQa.png)
**表四。 BiLSTM+MLP 模型的不同參數組合顯示不同層的試驗和節點數量**

LSTM模型中的輸出向量的形式為[18,1,2000]，代表了數據點被分配到的可能類別的中心點序列。但是，每個可能的中心點與其他中心點之間都有很大的距離。為了做出最終預測，採用了StandardScaler和MLP分類器的管道，而MLP具有與我們的第一個模型相同的參數（隱藏層數和節點數）。

#### **<span class="green">:mag: BiLSTM+MLP Model 詳細解釋 :</span>**
:::success
**<span class="blue">- BiLSTM的運作:</span>**
**對於每個實例，同一輸入向量被送入前向和後向層的每個LSTM單元，每個LSTM的隱藏層輸出被傳遞到同一層中的下一個節點。因此，Bi-LSTM能夠從過去和未來分別學習前向和後向的序列模式。在這裡，LSTM被用作解碼器，所有的輸入序列都是相似的向量，以確保信息與權重矩陣的特徵向量對齊，這是一種抑制噪聲輸入並只增強特定輸入的技巧。**

**<span class="blue">- 參數組合和準確性:</span>**
**根據表IV，可以觀察到準確性與隱藏層的數量、節點的數量和訓練周期之間存在正相關。然而，在試驗#3、#5和#6中，準確性明顯降低，這是由於梯度消失問題。在表IV的ACCU（準確性）列中，最後一行（第一層有34個節點，第二層有128個節點）顯示了最高的準確性。**
:::


## **5. 實驗結果(RESULT)**
在數據準備過程之後，我們使用相同的訓練和驗證數據集來訓練每個模型。表V展示了四個模型在測試數據集上的結果。為了更全面和深入地了解每個模型的訓練過程，我們在訓練的前300個迭代後進行了干預，並繪製了MSE和ACCU，如圖7和圖8所示。

![image.png](https://hackmd.io/_uploads/rkUJ4KZQ6.png)
**表五. 所有四個模型的最終結果（包括準確率、均方誤差和訓練時間）**

![image.png](https://hackmd.io/_uploads/BJJgNYZXT.png)
**圖 7. 前 300 個 epoch 期間四種模型的 ACCU 變化趨勢**

![image.png](https://hackmd.io/_uploads/HydlEYbm6.png)
**圖 8. 前 300 個 epoch 期間四種模型的 MSE（損失）變化趨勢**


#### **<span class="green">:mag: 實驗結果-詳細解釋 :</span>**
:::success
**<span class="blue">- CNN模型取得最高準確度：</span>**
* **在進行的模型比較中，卷積神經網絡（CNN）模型達到最高的預測準確度。*** **在進行的模型比較中，卷積神經網絡（CNN）模型達到最高的預測準確度。**
* **CNN模型需要六小時來完成4,561次訓練迭代（epochs），訓練過程相對耗時。**

**<span class="blue">- PCA+MLP模型的表現：</span>**
* **在早期的訓練階段（15個迭代後），PCA+MLP模型的準確度超越了其他模型，並且一直保持最高準確度直到300個迭代結束。**
* **此模型經歷了大量的參數測試，這使得模型配置非常優化，PCA被認為是加速學習過程的好選擇。**

**<span class="blue">- Bi-LSTM模型的準確度最低：</span>**
* **雙向長短期記憶（Bi-LSTM）模型在訓練中的準確度是最低的。**
* **儘管訓練後數據點在類別標籤對應的正確質心周圍聚集，但該模型並不適合這個問題，因為它在處理非序列數據方面的能力有限。**

**<span class="blue">- CNN與LSTM模型的比較：</span>**
* **LSTM模型在訓練數據上的表現只是表面的近似，不夠泛化。**
* **LSTM模型的均方誤差（MSE）頻繁上升和下降，表明模型發生了過擬合。**
* **從這些觀察中對於這個問題，特別是因為LSTM設計用於序列數據，Bi-LSTM模型不是一個合適的選擇。**

**<span class="blue">- 基線模型（MLP）與PCA+MLP模型在200個迭代後獲得相似結果：</span>**
* **兩個模型的表現在120個迭代左右開始趨同。**
* **與基線模型相似，PCA+MLP模型經過了大量的參數測試，最終實現了優化的配置。**

**這項研究比較了多種不同深度學習模型在預測問題的表現，發現CNN模型在準確度上表現最佳，而PCA+MLP模型則在訓練過程中表現出較快的學習速度和優化的性能。ㄦBi-LSTM模型由於其設計主要用於序列數據，在本研究的預測問題上並不適用。**
:::

## **6. 討論(Discussion)**
我們觀察到，模型的準確率在73%到88%之間，這是相當有希望的。我們的模型將預測的住院天數分為1到17天。很少有人在醫院住16或17天。因此，這樣一個類別中的數據點分類錯誤會降低整體模型的準確性。郭等人通過報告COVID患者的住院天數中位數為17天來解決這個問題[25]。然而，在本研究中使用的Microsoft LOS數據中，有很少的病人住院天數為17天，因此報告中位數並不是一個選項。如前所述，我們無法使用COVID患者的數據集，因為我們找不到與Microsoft LOS數據集（100,000條記錄）一樣全面的公開可訪問的帶有LOS標籤的COVID數據集。然而，我們的模型可以在未來擴展，以適用於包含LOS標籤的新的COVID數據集。

由於許多數據點有重疊（例如，病人有相同的信息，但住院天數不同），我們觀察到了不准確的預測。我們選擇保留這些數據點，因為如果我們在預處理步驟中清除並刪除了這些數據，我們可能會失去高達30%的有用數據。此外，當我們有太少的數據點來訓練模型時（例如，住院17天的數據點），模型的性能很差，這影響了整體的準確性。然而，與其他數據集相比，Microsoft LOS數據集的噪音特性有助於開發和測試健壯的預測模型。結果顯示，這些模型在高噪音條件下表現良好，並且容易過度擬合。

整體而言，CNN模型如表V所示，達到了最高的準確率。在這個模型中，卷積層中的神經元只與前一層的一部分神經元相連（不是完全連接）。在同一層中的一些神經元之間的連接的權重W和偏差B是共享的，這大大減少了每個可學習核的訓練參數數量。然而，CNN的訓練速度比其他模型慢。儘管訓練過程需要六個小時才能完成4561個迭代，但最終結果是四個模型中最好的。圖7展示了這個結果。我們看到PCA+MLP模型在第15個迭代之後超越了其他三個模型的準確率，並保持了最高的準確率值，直到300個迭代結束。

如圖7所示，Bi-LSTM模型的準確率最低。然而，訓練結束後，結果顯示，數據點聚集在與類標籤相對應的正確中心點周圍。儘管一些數據點被錯誤地分類，但它們的標籤仍然有一個合理的變異。然而，這並不意味著Bi-LSTM模型適合這個問題。CNN準確性和MSE與LSTM模型的比較揭示了一些重要的線索。LSTM只是表面上近似了地圖，這還不足以對所有的訓練實例進行泛化。其次，如圖8部分所示，LSTM模型中MSE的頻繁上升和下降驗證了LSTM對訓練數據的過度擬合。從這些觀察中，我們得出結論，Bi-LSTM模型不適合這個問題，特別是因為LSTM是為序列數據設計的。

基線模型（簡單的MLP）和PCA+MLP模型在200個迭代時獲得了相似的穩定結果。兩條線在120個迭代左右開始收斂。與基線模型相似，PCA+MLP經歷了大量的參數測試，這使得配置非常優化。我們在圖8中看到，PCA在這個任務中是一個理想的選擇，以加速學習。

#### **<span class="green">:mag: 討論(Discussion)章節 重點部分 :</span>**
:::success
1. **所有模型的準確度介於73％到88％之間，頗具前景。**

1. **預測的住院天數（LOS）分為1到17類，但很少有人住院16或17天，這種錯分會降低整體模型準確度。**

1. **很多數據點有重疊，造成不準確的預測，保留這些數據點是為了不失去大量的有用信息。**

1. **CNN模型在所有模型中達到了最高的準確度，但訓練速度較慢，需要六小時完成4,561個周期的訓練。**

1. **Bi-LSTM模型的準確度最低，並且不適合此問題，因為LSTM是為序列數據設計的。**

1. **基線模型（簡單的MLP）和PCA+MLP模型在200個周期時獲得了相似的良好結果，兩條線在120個周期左右開始收斂。**

1. **PCA在此任務中是一個理想的選擇，可加速學習。**
:::


## **7. 結論(CONCLUSION)**
“在同時優先考慮病患需求並降低相關的護理成本的同時，提高病患護理的質量是必要的”[26]。我們認為，在醫療保健領域，人工神經網絡（ANNs）可以在此起到關鍵作用。如果醫院能夠有一個可靠的患者住院天數預測器，醫院管理部門可以高效地分配資源，提供高質量的醫療護理服務，同時最大限度地減少醫療保健成本。

隨著近期COVID-19大流行以及醫院入院人數的指數性增長，住院天數的預測在近年來變得越來越重要。如我們的研究所示，患者的生命體征和其他信息可以影響住院天數預測的準確性。我們為Microsoft醫院數據集開發並驗證了四種模型，即MLP、PCA+MLP、CNN+MLP和Bi-LSTM+MLP，其中CNN模型在這四個候選者中表現最佳（即，88%的準確度值）。

在未來的工作中，我們打算研究更多的模型，並考慮位置和市政信息，以建立更健壯的住院天數預測模型。人口、城市或都市區域以及該地區的其他健康設施的數量和類型都會影響疾病的爆發和住院天數。然而，我們需要的所有信息並不總是在數據集中可用，從多個數據資源中鏈接數據是改進模型開發和決策支持的必要條件。

---