110 中華郵政招考營運職 數據分析 數據分析及演算法運用 考古題詳解

110 年・中華郵政招考・營運職・數據分析
試題代碼 110年中華郵政營運職 數據分析(數據分析及演算法運用)

第 第一題 題25 分

關聯規則分析是數據分析中常用於分析顧客交易項目關聯性的方法,請回答下列問題:

(一)請簡要說明關聯規則分析之定義。【5 分】

(二)請說明關聯規則分析的三項衡量指標。【10 分】

(三)Apriori 演算法是較早提出的關聯規則分析演算法,請簡要說明 Apriori 演算法流程。【10 分】

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「關聯規則分析」的基本定義、三項衡量指標,以及 Apriori 演算法如何由頻繁項目集產生關聯規則。

設交易資料庫為 DD,每筆交易包含若干商品項目。關聯規則通常表示為:

X⇒YX \Rightarrow Y

其中 XX、YY 為項目集,且須滿足:

X∩Y=∅X \cap Y = \varnothing

其意義是:在交易中出現項目集 XX 的顧客,也具有購買項目集 YY 的傾向。


(一)關聯規則分析之定義【5 分】

關聯規則分析(Association Rule Mining)是一種從大量交易資料中,挖掘不同項目之間共現關係與依存程度的資料探勘方法。

其目的在於找出具有足夠支持度與可信度的規則,例如:

{麵包}⇒{牛奶}\{\text{麵包}\} \Rightarrow \{\text{牛奶}\}

表示購買麵包的交易中,有相當比例也購買牛奶。此規則反映的是項目之間的統計關聯,並不代表因果關係。

關聯規則分析通常包含兩個階段:

  1. 找出滿足最低支持度的頻繁項目集。
  2. 從頻繁項目集中產生滿足最低可信度的關聯規則。

(二)關聯規則分析的三項衡量指標【10 分】

對規則 X⇒YX \Rightarrow Y,常用的三項衡量指標為支持度、信賴度(可信度)與提升度。

1. 支持度(Support)

支持度表示同時包含 XX 與 YY 的交易,占全部交易的比例:

support⁡(X⇒Y)=support⁡(X∪Y)=∣{t∈D∣X∪Y⊆t}∣∣D∣\operatorname{support}(X \Rightarrow Y) = \operatorname{support}(X \cup Y) = \frac{\left|\{t \in D \mid X \cup Y \subseteq t\}\right|}{|D|}

其中:

  • DD:全部交易資料庫。
  • tt:其中一筆交易。
  • ∣D∣|D|:交易總筆數。

支持度用來衡量該規則在整體資料中的普遍程度。支持度越高,表示 XX 與 YY 同時出現得越頻繁。


2. 信賴度或可信度(Confidence)

信賴度表示在已知交易包含 XX 的條件下,同時包含 YY 的條件機率:

confidence⁡(X⇒Y)=support⁡(X∪Y)support⁡(X)\operatorname{confidence}(X \Rightarrow Y) = \frac{\operatorname{support}(X \cup Y)} {\operatorname{support}(X)}

亦可表示為:

confidence⁡(X⇒Y)=P(Y∣X)\operatorname{confidence}(X \Rightarrow Y) = P(Y \mid X)

信賴度越高,表示購買 XX 的交易中,越常同時出現 YY。

須注意,信賴度具有方向性:

confidence⁡(X⇒Y)≠confidence⁡(Y⇒X)\operatorname{confidence}(X \Rightarrow Y) \neq \operatorname{confidence}(Y \Rightarrow X)

因此 X⇒YX \Rightarrow Y 與 Y⇒XY \Rightarrow X 是兩條不同的規則。


3. 提升度(Lift)

提升度用來比較「在出現 XX 的情況下出現 YY 的比例」,與「不考慮 XX 時 YY 的原始出現比例」之差異:

lift⁡(X⇒Y)=confidence⁡(X⇒Y)support⁡(Y)\operatorname{lift}(X \Rightarrow Y) = \frac{\operatorname{confidence}(X \Rightarrow Y)} {\operatorname{support}(Y)}

代入信賴度公式可得:

lift⁡(X⇒Y)=support⁡(X∪Y)support⁡(X)support⁡(Y)\operatorname{lift}(X \Rightarrow Y) = \frac{\operatorname{support}(X \cup Y)} {\operatorname{support}(X)\operatorname{support}(Y)}

提升度的判讀如下:

  • lift⁡>1 \operatorname{lift} > 1:XX 與 YY 呈正相關,出現 XX 時,YY 出現的機率高於一般情況。
  • lift⁡=1 \operatorname{lift} = 1:XX 與 YY 可視為相互獨立。
  • lift⁡<1 \operatorname{lift} < 1:XX 與 YY 呈負相關。

提升度可避免單看信賴度所造成的誤判。例如某項商品本身就非常熱門,即使它與 XX 沒有特殊關聯,規則的信賴度仍可能很高;此時應搭配提升度判斷實際關聯程度。


指標計算示例

假設共有 1,0001,000 筆交易,其中:

  • 同時購買 XX 與 YY 的交易有 120120 筆。
  • 購買 XX 的交易有 300300 筆。
  • 購買 YY 的交易有 400400 筆。

則:

support⁡(X⇒Y)=1201000=0.12\operatorname{support}(X \Rightarrow Y) = \frac{120}{1000} = 0.12 confidence⁡(X⇒Y)=120300=0.4\operatorname{confidence}(X \Rightarrow Y) = \frac{120}{300} = 0.4 lift⁡(X⇒Y)=0.40.4=1\operatorname{lift}(X \Rightarrow Y) = \frac{0.4}{0.4} = 1

因此,雖然該規則的信賴度為 40%40\%,但提升度等於 11,表示 XX 的出現並未提高 YY 的出現機率,兩者沒有明顯的正向關聯。


(三)Apriori 演算法流程【10 分】

1. 核心原理:Apriori 性質

Apriori 演算法的基礎是「向下封閉性質」(downward closure property):

若一個項目集是頻繁項目集,則其所有非空子集合也必定是頻繁項目集。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 第二題 題25 分

深度學習於 2012 年起,再次有突破性的發展;其中,圖像辨識可能有助於郵局多項業務效率提升,請回答下列問題:

(一)請說明卷積神經網路(CNN)之基本概念。【10 分】

(二)相較於傳統機器學習,卷積神經網路(CNN)能夠提升圖像辨識正確率之原因為何?【10 分】

(三)請說明卷積神經網路(CNN)與循環神經網路(RNN)之差異性。【5 分】

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查深度學習中兩類重要神經網路:

  1. CNN(Convolutional Neural Network,卷積神經網路):主要處理影像、圖形等具有空間結構的資料。
  2. RNN(Recurrent Neural Network,循環神經網路):主要處理文字、語音、時間序列等具有順序性的資料。

答題重點包括 CNN 的卷積運算、特徵擷取、池化、參數共享,以及其相較於傳統機器學習的優勢,並比較 CNN 與 RNN 的資料結構與運作方式。


(一)卷積神經網路(CNN)之基本概念【10 分】

1. CNN 的定義與用途

CNN 是一種適合處理網格狀資料的深度神經網路。影像可視為由像素組成的二維網格,每個像素具有灰階值或 RGB 色彩值,因此 CNN 能直接利用影像的空間結構進行特徵學習。

以郵局業務為例,CNN 可應用於:

  • 郵件或包裹條碼辨識
  • 手寫地址辨識
  • 身分證件影像辨識
  • 表單及文件分類
  • 郵件影像瑕疵檢測
  • 人臉或物件辨識

CNN 通常由多層卷積層、啟動函數、池化層及全連接層所組成。


2. 卷積層

卷積層使用一個小型矩陣,稱為濾波器或卷積核,在輸入影像上逐區域滑動,計算局部加權總和,以擷取影像特徵。

若輸入影像為 XX,卷積核為 KK,則輸出特徵圖可表示為:

S(i,j)=∑m∑nX(i+m,j+n)K(m,n)+bS(i,j)=\sum_m\sum_n X(i+m,j+n)K(m,n)+b

其中:

  • X(i+m,j+n)X(i+m,j+n):輸入影像局部區域的像素值
  • K(m,n)K(m,n):卷積核中的權重
  • bb:偏差值
  • S(i,j)S(i,j):特徵圖在位置 (i,j)(i,j) 的輸出值

卷積核的權重不是人工指定,而是透過訓練資料及反向傳播法學習而得。

不同卷積核可學習不同特徵,例如:

  • 淺層卷積核:邊緣、線條、角點
  • 中層卷積核:紋理、形狀、局部構造
  • 深層卷積核:物件部位及整體語意

3. 局部感受野與參數共享

CNN 具有兩項重要設計:

(1)局部感受野

每個神經元只連接輸入影像中的一小塊區域,而非連接全部像素,因此能保留影像的局部空間關係。

例如辨識文字時,局部區域可先辨識筆畫和邊緣,再逐步組合成字元與文字。

(2)參數共享

同一個卷積核會套用在影像不同位置,表示相同特徵不論出現在左側、右側、上方或下方,都能被同一組參數偵測。

此設計可大幅減少模型參數量,降低計算成本,也增強模型對物件位置變化的適應能力。


4. 啟動函數

卷積運算後通常會套用非線性啟動函數,常見的是 ReLU:

ReLU⁡(x)=max⁡(0,x)\operatorname{ReLU}(x)=\max(0,x)

ReLU 可增加模型的非線性表達能力,使神經網路能學習複雜的影像關係,並有助於減少深層網路訓練時的梯度消失問題。


5. 池化層

池化層會將特徵圖縮小,以降低資料維度及計算量,並保留重要特徵。

常見方式包括:

  • 最大池化(Max Pooling):取區域中的最大值
  • 平均池化(Average Pooling):取區域中的平均值

例如 2×22\times2 最大池化會從每個 2×22\times2 區域中取最大值,使特徵圖的長寬縮小,同時保留最明顯的特徵。

池化也可使模型對小幅度的平移、旋轉或變形具有較好的容忍度。


6. 全連接層與輸出層

經過多層卷積與池化後,模型將特徵圖展平,輸入全連接層,整合前面擷取的特徵,最後由輸出層進行分類。

多分類問題常使用 Softmax:

P(y=k∣x)=ezk∑j=1CezjP(y=k\mid x)=\frac{e^{z_k}}{\sum_{j=1}^{C}e^{z_j}}

其中 CC 為類別數,輸出結果代表輸入影像屬於各類別的機率。


7. CNN 的訓練方式

CNN 以標記資料進行監督式學習,流程如下:

  1. 輸入影像。
  2. 經過卷積、啟動及池化層擷取特徵。
  3. 由輸出層產生預測結果。
  4. 使用損失函數衡量預測值與正確答案的差異。
  5. 透過反向傳播計算梯度。
  6. 使用梯度下降法更新卷積核及其他網路參數。

(二)CNN 相較於傳統機器學習能提升圖像辨識正確率之原因【10 分】

1. 傳統機器學習依賴人工特徵工程

傳統圖像辨識通常分為兩個階段:

  1. 由專家人工設計特徵。
  2. 將特徵輸入分類器,例如 SVM、決策樹或類神經網路。

人工特徵可能包括:

  • 邊緣
  • 角點
  • 顏色
  • 紋理
  • 形狀
  • HOG、SIFT 等影像描述子

其限制在於:特徵品質高度依賴設計者經驗,人工特徵未必能完整描述複雜影像,且不同任務常需重新設計特徵。

CNN 則能直接由原始像素中自動學習適合該任務的特徵,形成端到端的訓練流程。


2. 能學習階層式特徵

CNN 會由淺入深地學習特徵:

像素→邊緣→局部形狀→物件部位→完整物件\text{像素}\rightarrow\text{邊緣}\rightarrow\text{局部形狀}\rightarrow\text{物件部位}\rightarrow\text{完整物件}

淺層負責辨識簡單構造,深層逐步組合為複雜語意。此種階層式特徵學習,能比單純依賴人工特徵更充分地表達影像內容。


3. 保留影像的空間結構

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 第三題 題25 分

請使用「選擇排序法(Selection Sort)」將下面陣列 aa 中的 6 個整數由小至大排序,請依照【表三】格式將過程中每一回合的排序結果列出。【25 分】

【提示】「選擇排序法(Selection Sort)」的概念是在每一回合中選擇出範圍內最大元素,再與範圍內最右邊元素交換。

int a[6] = {36, 60, 19, 40, 24, 2};\texttt{int a[6] = \{36, 60, 19, 40, 24, 2\};}
回合a[0]a[0]a[1]a[1]a[2]a[2]a[3]a[3]a[4]a[4]a[5]a[5]
原始排列36601940242
第 1 回合
第 2 回合
第 3 回合
第 4 回合
第 5 回合

【表三】

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查選擇排序法(Selection Sort)的操作流程。

題目指定的規則是:

  1. 每一回合只處理尚未完成排序的範圍。
  2. 從該範圍中找出最大元素。
  3. 將最大元素與該範圍最右端的元素交換。
  4. 每完成一回合,最右端的位置即確定為正確的排序結果。
  5. 陣列共有 66 個元素,因此需要進行 6−1=56-1=5 回合。

由小至大排序時,選出的最大值會依序放到陣列右側:

a[5],a[4],a[3],a[2],a[1]a[5],a[4],a[3],a[2],a[1]

解題方法與逐回合操作

原始陣列為:

[36,60,19,40,24,2][36,60,19,40,24,2]

第 1 回合

處理範圍為 a[0]a[0] 至 a[5]a[5]:

[36,60,19,40,24,2][36,60,19,40,24,2]

其中最大值為 6060,位於 a[1]a[1]。將 6060 與最右端的 a[5]=2a[5]=2 交換:

[36,2,19,40,24,60][36,2,19,40,24,60]

此時 a[5]=60a[5]=60 已完成定位。

第 2 回合

處理範圍縮小為 a[0]a[0] 至 a[4]a[4]:

[36,2,19,40,24][36,2,19,40,24]

其中最大值為 4040,位於 a[3]a[3]。將 4040 與範圍最右端的 a[4]=24a[4]=24 交換:

[36,2,19,24,40,60][36,2,19,24,40,60]

此時 a[4]=40a[4]=40 已完成定位。

第 3 回合

處理範圍為 a[0]a[0] 至 a[3]a[3]:

[36,2,19,24][36,2,19,24]

其中最大值為 3636,位於 a[0]a[0]。將 3636 與範圍最右端的 a[3]=24a[3]=24 交換:

[24,2,19,36,40,60][24,2,19,36,40,60]

此時 a[3]=36a[3]=36 已完成定位。

第 4 回合

處理範圍為 a[0]a[0] 至 a[2]a[2]:

[24,2,19][24,2,19]
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 第四題 題25 分

下列是 AA 與 BB 兩個矩陣的乘法,左邊是 2×32 \times 3 矩陣,右邊是 3×23 \times 2 矩陣,相乘的結果是 CC,為 2×22 \times 2 矩陣。

計算方法是左邊矩陣的「列」乘以右邊矩陣的「行」,並加總起來,亦即:

c11=a11×b11+a12×b21+a13×b31c_{11}=a_{11}\times b_{11}+a_{12}\times b_{21}+a_{13}\times b_{31} c12=a11×b12+a12×b22+a13×b32c_{12}=a_{11}\times b_{12}+a_{12}\times b_{22}+a_{13}\times b_{32}

……

若以陣列來儲存矩陣資料,請依照【表四】C/C++ 語言的格式,寫出一個 m×nm \times n 矩陣乘以 n×pn \times p 矩陣的演算法,亦即 A(m×n)×B(n×p)=C(m×p)A(m \times n)\times B(n \times p)=C(m \times p)。【25 分】

Matrix_Multiplication(int m, int n, int p, int a[m][n],
                      int b[n][p], int c[m][p])
{
    for(int i=0; ________; i++) {
        for(int j=0; ________; j++) {
            ________=0;
            for(int k=0; ________; k++) {
                c[i][j]=__________________________;
            }
        }
    }
}

【表四】

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

矩陣乘法 Am×nBn×p=Cm×pA_{m\times n}B_{n\times p}=C_{m\times p} 的計算規則如下:

  • AA 的第 ii 列共有 nn 個元素。
  • BB 的第 jj 行共有 nn 個元素。
  • CC 的第 ii 列、第 jj 行元素,為 AA 第 ii 列與 BB 第 jj 行的內積。

因此:

cij=∑k=0n−1aikbkjc_{ij}=\sum_{k=0}^{n-1}a_{ik}b_{kj}

其中:

  • i=0,1,…,m−1i=0,1,\ldots,m-1
  • j=0,1,…,p−1j=0,1,\ldots,p-1
  • k=0,1,…,n−1k=0,1,\ldots,n-1

陣列採用 C/C++ 的「從 00 開始編號」,所以索引範圍分別為:

  • a[i][k]a[i][k]:0≤i<m0\le i<m,0≤k<n0\le k<n
  • b[k][j]b[k][j]:0≤k<n0\le k<n,0≤j<p0\le j<p
  • c[i][j]c[i][j]:0≤i<m0\le i<m,0≤j<p0\le j<p

解題方法

矩陣乘法需要三層迴圈:

  1. 最外層迴圈控制結果矩陣 CC 的列索引 ii,共 mm 列。
  2. 中間迴圈控制結果矩陣 CC 的行索引 jj,共 pp 行。
  3. 最內層迴圈控制內積的累加索引 kk,共 nn 項。

對每一個 c[i][j]c[i][j],必須先設定為 00,再依序累加:

c[i][j]=a[i][0]b[0][j]+a[i][1]b[1][j]+⋯+a[i][n−1]b[n−1][j]c[i][j] = a[i][0]b[0][j] +a[i][1]b[1][j] +\cdots +a[i][n-1]b[n-1][j]

因此程式中的空格應填入:

  • 第一空:i < m
  • 第二空:j < p
  • 第三空:c[i][j]
  • 第四空:k < n
  • 第五空:c[i][j] + a[i][k] * b[k][j]

完整演算法如下:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

其他考古題

110 年數據分析的其他科目