113 專技高考高等考試 資訊技師 資料結構與資料庫及資料探勘 考古題詳解
第 一 題20 分
給定一數列:、、、、、,欲將此數列由小排到大。請詳細說明並寫出利用選擇排序法(selection sort)排序的過程。
登入後即可作答並保存紀錄。
核心觀念
選擇排序法(selection sort)的作法是:每一回合都在尚未排序的部分中找出最小值,與該部分的第一個元素交換。完成一回合後,最前面已排序的範圍便增加一個元素。
本題數列共有 個元素,因此需要進行 回合;最後剩下的元素自然位於正確位置。排序過程中,已排序區由左至右逐步擴大。
解題方法與排序過程
初始數列為:
**第 1 回合:**在全部元素中找最小值。最小值為 ,與第一個元素 交換:
此時 已排定。
**第 2 回合:**在尚未排序的部分 中找最小值。最小值為 ,與該部分第一個元素 交換:
此時 已排定。
**第 3 回合:**在尚未排序的部分 中找最小值。最小值為 ,與 交換:
第 二 題20 分
請詳細說明何謂 -- 樹?
若給定一數列:、、、、、、、、、,現欲將此數列建立成一棵 -- 樹,請畫出最後的 -- 樹即可。
登入後即可作答並保存紀錄。
核心觀念
-- 樹是一種自平衡搜尋樹,也稱為階數為 的 B 樹。每個節點可存放一至三個由小到大排列的鍵值,並依鍵值數量分成三種:
- 2-節點:有 個鍵值、 個子樹。
- 3-節點:有 個鍵值、 個子樹。
- 4-節點:有 個鍵值、 個子樹。
各子樹的鍵值範圍由節點中的鍵值決定。例如,含有 的 3-節點,其三個子樹依序存放小於 、介於 與 之間、大於 的鍵值。
-- 樹須符合以下性質:
- 每個節點最多有 個鍵值,最多有 個子樹。
- 除根節點外,每個節點至少有 個鍵值。
- 所有葉節點都位於相同深度,因此樹高保持平衡。
- 鍵值遵守搜尋樹的大小順序。
解題方法
題目未指定插入時採用自底向上或自頂向下的分裂程序;這兩種標準程序插入相同數列後,都會得到相同的最終鍵值配置。依序插入 至 ,節點若超過 個鍵值,就將中間鍵值提升至父節點,並把其餘鍵值分成左右兩個節點。
關鍵分裂步驟如下:
第 三 題10 分
在資料探勘過程中,什麼是「決策樹」(Decision Tree)?請詳細解釋並舉例說明。
登入後即可作答並保存紀錄。
核心觀念
決策樹(Decision Tree)是一種用樹狀結構表示分類或預測規則的監督式學習方法。它從已標記結果的訓練資料中學習如何依據特徵逐步切分資料,最後預測新資料所屬的類別或數值。
決策樹由下列部分組成:
- 根節點:第一個用來切分資料的特徵或條件。
- 內部節點:後續的特徵測試,例如「年齡是否大於 30 歲」。
- 分支:測試結果所導向的路徑。
- 葉節點:輸出預測結果;分類樹輸出類別,迴歸樹輸出數值。
每一條從根節點走到葉節點的路徑,都能轉寫成一條「若……則……」的規則。
解題方法
回答此題可依「定義、建樹方式、評估指標、實例、優缺點」說明:
- 選擇切分特徵:在目前節點的資料中,挑選能使子集合更純的特徵。常見方法包括資訊增益、增益率與基尼不純度。
- 依特徵值切分資料:類別特徵可依類別分支;連續特徵常以門檻值切分,例如「年齡 」與「年齡 」。
- 遞迴建立子樹:對各分支重複選擇切分特徵,直到符合停止條件,例如資料已足夠純、樣本數太少或達到最大深度。
- 剪枝:移除對預測幫助有限的枝節,降低過度配適(overfitting),提升對新資料的泛化能力。
以 ID3 演算法為例,可用熵與資訊增益評估切分效果。若資料集合 中有 個類別,熵為:
以特徵 切分後的資訊增益為:
第 四 題10 分
在資料探勘過程中,什麼是「關聯規則」(Association Rule)?請詳細解釋並舉例說明。
登入後即可作答並保存紀錄。
核心觀念
關聯規則是資料探勘中,用來找出資料項目之間經常共同出現關係的方法。常見應用包括購物籃分析,例如分析顧客購買某些商品時,是否也常購買另一項商品。
一筆交易可表示為一個項目集合。關聯規則寫成:
其中 稱為前項(antecedent), 稱為後項(consequent),且 。規則表示:在包含 的交易中,常有交易也包含 ;它描述資料中的共現關係,不代表因果關係。
重要衡量指標
設資料共有 筆交易, 表示包含項目集合 的交易筆數占全部交易的比例。
- 支持度(support): 與 同時出現的比例。
- 信賴度(confidence):在包含 的交易中,也包含 的比例。
- 提升度(lift):衡量 與 的共同出現程度相較於彼此獨立時的差異。
表示正向關聯; 表示兩者獨立; 表示負向關聯。支持度與信賴度常用來篩選規則;提升度則可避免只因後項本身很常見,就誤以為規則特別有力。
解題方法與例子
以 5 筆購物交易為例:
| 交易 | 購買項目 |
|---|---|
| 牛奶、麵包 | |
| 牛奶、麵包、尿布 | |
| 牛奶、尿布 | |
| 麵包、尿布 | |
| 牛奶、麵包、尿布 |
分析規則「牛奶 麵包」:
第 五 題20 分
下面為一個名為 WORKS 的關聯綱要(relation schema),為員工投入專案的紀錄。一個員工可投入多個專案,一個專案有多個員工投入,主鍵(primary key)為員工代碼和專案代碼。
WORKS(E_ID(員工代碼)、P_ID(專案代碼)、HOURS(時數))
請寫出下列查詢的 SQL 敘述:
(一)列出投入的員工人數超過 人的專案代碼與投入該專案的員工人數。
(二)列出投入專案代碼為 PJ2255 中最高時數的員工代碼,並去掉重複值。
登入後即可作答並保存紀錄。
核心觀念
本題考查 SQL 的分組與彙總、群組篩選、子查詢及去除重複值。
GROUP BY依指定欄位將資料分組。COUNT(*)計算每組的資料筆數。由於主鍵為(E_ID, P_ID),同一員工對同一專案最多只有一筆紀錄,因此每個專案的紀錄筆數就是投入該專案的員工人數。HAVING用來篩選分組後的結果;WHERE則是在分組前篩選個別資料列。DISTINCT用來去除查詢結果中的重複值。
解題方法
(一)找出投入員工人數超過 50 人的專案
先依專案代碼 P_ID 分組,再計算每組的紀錄筆數。因為條件「超過 50 人」是針對分組後的人數,因此使用 HAVING 篩選:
SELECT P_ID, COUNT(*) AS EMPLOYEE_COUNT
FROM WORKS
GROUP BY P_ID
HAVING COUNT(*) > 50;
COUNT(*) > 50 是嚴格大於,因此恰有 50 位員工的專案不會列入結果。
(二)找出投入 PJ2255 且時數最高的員工代碼
先在 P_ID = 'PJ2255' 的紀錄中找出最大時數,再取出時數等於該最大值的員工代碼。使用 DISTINCT 確保結果不重複:
第 六 題20 分
請將下列的 ERD(Entity Relationship Diagram)轉換成關聯資料表的關聯綱要(relation schema)。
有三個實體分別為辦公室、教授和課程。其中屬性有底線者為該實體的主屬性(key attribute)。每位教授均有一間辦公室,每間辦公室只屬於一位教授,每位教授可以講授很多課程,每個課程可由多位教授合授。
最後完成的關聯綱要請務必標示出每個關聯綱要的名稱、主鍵(primary key)和外來鍵(foreign key)。若需新的關聯綱要或屬性請自行命名並請詳細說明。
ERD 中的實體與屬性如下:
辦公室:
- 辦公室代碼
- 大樓名稱
教授:
- 教授代碼
- 教授姓名
- 教授電話
課程:
- 課程代碼
- 課程名稱
- 學分數
關係:
- 辦公室與教授之間的「屬於」關係:每位教授均有一間辦公室,每間辦公室只屬於一位教授。
- 教授與課程之間的「授課」關係:每位教授可以講授很多課程,每個課程可由多位教授合授。
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
本題考查將 ERD 轉換為關聯綱要,以及依關係基數選擇轉換方式:
- 辦公室與教授是一對一關係,而且雙方都必須參與:每位教授恰有一間辦公室,每間辦公室也恰屬於一位教授。
- 教授與課程是多對多關係:教授可教多門課,課程也可由多位教授合授。
- 圖中底線屬性是各實體的主鍵:辦公室代碼、教授代碼、課程代碼。
解題方法
一對一且雙方都必須參與時,可將兩個實體合併為一個關聯綱要。這樣每筆資料都同時表示一位教授及其唯一辦公室;辦公室代碼設為唯一值,便能避免一間辦公室配給多位教授。
多對多關係則新增一個「授課」關聯綱要,將教授代碼與課程代碼組成複合主鍵,並各自作為外來鍵。
關聯綱要
教授辦公室
教授辦公室(教授代碼,教授姓名,教授電話,辦公室代碼,大樓名稱)
- 主鍵:教授代碼
- 候選鍵:辦公室代碼,並設為
UNIQUE - 外來鍵:無
- 說明:合併教授與辦公室兩個實體。每筆資料包含一位教授及其一間辦公室;教授代碼及辦公室代碼皆唯一,因此兩者一對一,且雙方均有對應資料。