本系列第 19 篇|這篇回答:把前面各篇串起來,一個 AI 專案從問題到上線要做哪些判斷? 讀完這篇,你應該能:
- 在一個完整案例裡認出每一步用到的觀念,並對上對應的篇章。
- 用「線索→方法」對照表,快速找到該回看的篇章。
- 說出一個 AI 專案最常出錯的幾個環節。
一、一個案例走完全流程
某連鎖藥局準備做兩件事。一件是預測哪些會員會在 30 天內回來領慢性病處方藥,以便提前提醒。另一件是做一個客服助理,回答藥品與會員制度的問題。下面依實際要下的判斷走一遍。每一步寫出選擇的理由,並註明對應的篇章。
第 1 步:先問三件事(第 1 篇)
預測有回來領藥的標籤,客服依文件回答,兩任務分開處理。
詳細說明
選方法之前,先問第 1 篇的三件事:資料長什麼樣、要回答什麼、有什麼限制。
預測領藥這件事,資料是表格,每一列依時間排列,同一位會員有多筆紀錄;每一筆都有標籤(label),也就是這位會員後來有沒有在 30 天內回來領藥。要回答的是「誰會回來」,屬於預測。限制是處方屬於健康資料,而且提醒以天為單位決定。客服助理則是文字問答,依據是公司內部文件,沒有「有沒有回來」這種標籤。兩個任務從這裡就分開處理。
第 2 步:描述資料(第 2、11 篇)
金額右偏改用中位數與四分位距,回來領藥約 12% 還不是模型的分數。
詳細說明
先看消費金額。它是右偏(right-skewed)的:多數交易金額不大,少數大單把平均數(mean)往上拉。拿平均數當作典型的一筆消費,會被大單抬高。依第 2 篇,改用中位數(median)與四分位距(IQR)。中位數是金額排序後落在正中間的那一個,少數大單不容易移動它。四分位距是中間一半資料所佔的範圍,用來說明金額有多散。第 11 篇把同一組數畫成盒鬚圖(box plot):盒子的長度就是四分位距,離盒子很遠的點就是那些大單。
接著看目標有多少。30 天內回來領藥的比例約 12%。這是資料的底數,還不是模型的分數。第 5 步評估時會用到它。
第 3 步:清理與特徵(第 5、8 篇)
用評估資料算清理規則,或算進預測時間點之後的領藥,都是資料洩漏。
詳細說明
清理會用到訓練集(training set)。訓練集取較早的月份,切法在第 5 步說明。這裡先定規則:凡是從資料算出來的清理規則,只向訓練集學習。
年齡有缺。做中位數插補(imputation)時,中位數只從訓練集計算,再拿去填訓練集以外的空值。若把後來要拿來評估的年齡也算進中位數,那些資料在評估前就參與了訓練,這是資料洩漏(data leakage)。填完之後另加一欄「年齡是否缺失」。年齡這欄是空的,這件事可能本身就帶有訊息,不該被填補擦掉。這些欄位在程式裡的先後,是第 8 篇要看得懂的:先定出訓練集,再算中位數、做編碼,然後才套到其餘資料。
藥品類別用 One-Hot 編碼(one-hot encoding)。每一類一欄,屬於該類寫 1,不屬於寫 0。類別是名稱。各自一欄之後,模型看到的是「是或不是」,不會把類別看成可以比大小的數字。
「過去 90 天領藥次數」這類特徵,只能用預測時間點以前的資料計算。若在某一天預測未來 30 天會不會回來,次數只算到這一天之前。把這一天之後的領藥也算進去,等於先看見後來才發生的事。同一位會員有多筆紀錄時,這種洩漏特別容易發生。
第 4 步:儲存與處理(第 6、7 篇)
交易放進資料倉儲,夜間批次作業算特徵;文件切塊嵌入存向量資料庫。
詳細說明
交易紀錄放進資料倉儲(data warehouse),集中保存這份依時間排列的表(第 6 篇)。提醒以天為單位決定,特徵不必每寫入一筆交易就重算。交易先留在倉儲,每天夜間用批次作業(batch job)把下一輪要用的特徵一次算完(第 7 篇)。串流(streaming)處理是每來一筆就更新;這個提醒的決策時間是一天,夜間批次對得上。
客服用的公司文件走另一條路。文件先切塊(chunking),每一塊轉成嵌入(embedding),存進向量資料庫(vector database)。交易表提供預測用的特徵,向量資料庫依文意找出文件段落。
第 5 步:建模、訓練與評估(第 12、13、14 篇)
約 88% 的準確率會漏掉該提醒的人,改看召回率與精確率。
詳細說明
切分按時間做。較早的月份當訓練集,最後兩個月當驗證資料(第 12 篇)。資料依時間排列。若改成隨機抽列,較晚的紀錄會進訓練,評估時等於先看過後來的世界。
同一位會員的所有列放在同一邊。這個人若同時出現在訓練與驗證,模型可以記住他的習慣,驗證分數會好看,上線遇到沒見過的會員就沒有這份記憶。
會回來領藥的人約只占 12%。這種較少的結果是陽性(positive class)。評估時不看整體準確率(accuracy)。以這個比例可以算出原因:若模型把每個人都預測成「不會回來」,判對的就是約 100% − 12% = 88% 的人,準確率約 88%,該提醒的人卻一個都沒被抓到。改看召回率(recall)、精確率(precision)與 PR 曲線(precision-recall curve)(第 14 篇)。召回率是真的會回來的人裡面,被抓到的比例。精確率是被模型點名提醒的人裡面,後來真的回來的比例。漏提醒的代價高,就多看召回率。一直打擾不會回來的人代價高,就多看精確率。PR 曲線把這兩個數在不同判定門檻下的取捨畫在一起。
模型先用邏輯斯迴歸(logistic regression)做出基準,再拿梯度提升(gradient boosting)和它比。基準的用處是:後面的模型若沒有比它更好,就不必為更高的複雜度付上線成本。
訓練時同時看訓練損失與驗證損失(validation loss)(第 13 篇)。訓練損失還在降、驗證損失開始升,就是過擬合(overfitting):模型越貼近訓練資料,對沒參與訓練的驗證資料越差。這時用提早停止(early stopping),不再訓練後面的輪次,並留下驗證損失較好的那一組參數。
第 6 步:驗證上線效果(第 4、9 篇)
上線前做 A/B 測試,差異要統計顯著,效果量要值得提醒成本。
詳細說明
召回率與精確率說明模型怎麼抓人,還沒有說明提醒本身會不會讓人更常回來。上線前做 A/B 測試(A/B test)(第 9 篇)。會員分成兩組不同的人,一組收到提醒,一組沒有,比較兩組的 30 天回診率,也就是有沒有回來領藥。
兩組的差異要達到統計顯著(statistical significance)(第 4 篇),也要看效果量(effect size)值不值得提醒的成本(第 9 篇)。顯著回答的是這次差距不太像純粹碰巧。效果量回答的是多回來的人夠不夠支付提醒。人數很多時,很小的差距也可以顯著,仍可能不值得做。
第 7 步:客服助理(第 15、16、17 篇)
回答必須附上文件段落,找不到依據就說不知道並轉給真人。
詳細說明
客服助理使用大型語言模型(large language model),並加上 RAG(retrieval-augmented generation)。問題進來時,先到向量資料庫取出公司文件裡切好的段落,再依那些段落回答(第 16、17 篇)。第 15 篇的神經網路(neural network)是這類模型的結構。這個任務要守住的是:回答要用得到的文件段落。
溫度(temperature)調低,是讓同一個問題少出現差很多的說法,回答比較一致。溫度不檢查內容有沒有寫在文件裡。降低幻覺(hallucination)靠另一組規定:回答要附上引用的文件段落;文件裡找不到依據時,就說不知道,並轉給真人。
第 8 步:隱私(第 18 篇)
代號能還原就仍是個資,對照表權限要分開,不要貼外部生成式 AI。
詳細說明
處方是敏感的健康資料。只收集預測與客服真正要用的欄位。對內用代號取代姓名與會員身分,這是假名化(pseudonymization)。代號若仍能靠對照表還原成某一個人,資料就還是個資,讀取對照表與明細的權限要分開限制。會員個資不要貼到外部的生成式 AI(generative AI)服務。
第 9 步:上線之後(第 12 篇)
資料漂移與概念漂移都要重新評估,關係變了就重新訓練。
詳細說明
上線之後要持續監控。新客群大量加入,輸入資料的分佈和訓練時不同,是資料漂移(data drift)。健保或藥品政策若改變,同樣的欄位會代表不同的意思,這是概念漂移(concept drift):「過去 90 天領藥次數」還是那個欄位,但它和「30 天內會不會回來」的關係已經換了。兩種情況都要重新評估。關係已經變了,就有必要重新訓練。
最常出錯的地方集中在第 3 步(洩漏)、第 5 步(只看準確率)與第 9 步(上線後沒人看)。
二、線索與方法對照
先對線索再回該篇核對前提,不同線索不要併成同一個答案。
詳細說明
下表把工作中常見的線索對上方法與篇次。先對線索,再回該篇核對方法的前提。
| 線索 | 優先想到 | 回看第幾篇 |
|---|---|---|
| 同一批人前後測 | 配對 t 檢定(paired t-test) | 第 4 篇 |
| 三組以上的平均比較 | ANOVA(變異數分析)與事後比較 | 第 4 篇 |
| 兩個類別變數有無關聯 | 卡方獨立性檢定(chi-square test of independence) | 第 4 篇 |
| 兩組轉換率比較 | 兩比例 Z 檢定(two-proportion z-test) | 第 4 篇 |
| 固定區間內的事件次數 | 卜瓦松分佈(Poisson);變異數遠大於平均則改負二項分佈(negative binomial) | 第 3 篇 |
| 中位數靠近 Q1、上鬚很長 | 右偏(right skew) | 第 2 篇 |
| 有極端值時的典型值、分散,或要縮放 | 中位數與四分位距(IQR);縮放用 Robust Scaling | 第 2、5 篇 |
| 有序類別;無序且類別少;高基數 | 順序編碼(ordinal encoding);One-Hot;目標編碼(target encoding,須折外)或頻率編碼(frequency encoding) | 第 5 篇 |
| 前處理或 SMOTE 做在切分之前 | 資料洩漏(data leakage)。SMOTE 是對少數類合成新樣本 | 第 5、12 篇 |
| 類別極度不平衡 | 召回率(recall)、精確率(precision)、PR-AUC(精確-召回曲線下面積);重採樣只在訓練集 | 第 12、14 篇 |
| 同一人多筆紀錄;時間序列 | GroupKFold(同一人不可拆開);依時間切分 | 第 10、12 篇 |
| 扣庫存、轉帳,不能只完成一半 | ACID 與關聯式資料庫(relational database) | 第 6 篇 |
| 關係網路、環狀轉帳 | 圖形資料庫(graph database) | 第 6 篇 |
| 語意相近的內容搜尋 | 嵌入(embedding)加向量資料庫的近似最近鄰(ANN) | 第 6、17 篇 |
| 單機容量或吞吐達到上限 | 分片(sharding,水平擴展) | 第 6 篇 |
| 秒級的即時判斷 | 串流處理(stream processing;Kafka 與 Flink) | 第 7 篇 |
| 需要一再迭代的機器學習運算 | Spark 的記憶體內運算 | 第 7 篇 |
| 現場頻寬有限,且要低延遲 | 邊緣運算(edge computing) | 第 7 篇 |
| CSV 大於記憶體 | read_csv 的 chunksize、usecols、dtype |
第 8 篇 |
| 整數欄要保留缺失 | astype('Int64') |
第 8 篇 |
| 寬表轉長表 | pd.melt |
第 8 篇 |
| 少數群體要有足夠樣本 | 分層抽樣(stratified sampling) | 第 9 篇 |
| 變數有序,或有離群值時看相關 | Spearman 等級相關 | 第 9 篇 |
| 購物籃、經常一起買 | 支援度(support)、信賴度(confidence)、提升度(lift) | 第 10 篇 |
| 群的形狀不固定,且含雜訊點 | DBSCAN | 第 10 篇 |
| 隨時間的趨勢;數值跨數量級;相關有正有負 | 折線圖;對數刻度;相關矩陣用發散色熱圖 | 第 11 篇 |
| 訓練損失一路下降,驗證損失卻開始上升 | 過擬合:提早停止、正則化 | 第 12、13 篇 |
| 訓練初期損失劇烈震盪或出現 NaN | 學習率太大,調小學習率 | 第 13 篇 |
| 特徵很多,想讓沒用的特徵權重歸零 | L1 正則化(lasso) | 第 13 篇 |
| 標註影像只有幾百張 | 預訓練 CNN 的遷移學習(transfer learning),搭配資料擴增 | 第 15 篇 |
| 很深的網路,前面幾層幾乎學不動 | 梯度消失:改用 ReLU、加殘差連接 | 第 15 篇 |
| 長對話後模型忘了早先給的資訊 | 脈絡窗口(context window)上限;由系統保存並重新放回脈絡 | 第 16 篇 |
| 生成結果要穩定一致 | 調低溫度(temperature)或貪婪解碼 | 第 16 篇 |
| 模型編造不存在的規定或文獻 | 幻覺(hallucination):RAG 提供依據,並要求附出處、人工查核 | 第 16、17 篇 |
| 經常更新的內部知識問答 | RAG(檢索增強生成) | 第 17 篇 |
| 資料不能離開各機構 | 聯邦學習(federated learning) | 第 18 篇 |
| 可以交雲端計算,但不能看明文 | 同態加密(homomorphic encryption) | 第 18 篇 |
| 公開統計,又要防止反推到個人 | 差分隱私(differential privacy) | 第 18 篇 |
少數列是「先用前者,前提被打破才改後者」:固定區間的件數先想卜瓦松分佈,變異數遠大於平均就改負二項分佈。有序、無序、高基數是三條不同線索;同一人多筆與時間序列也是兩條不同線索。不要併成同一個答案。
三、容易混淆的地方
下面六組概念名稱相近,判斷時不能互換。右邊欄是它在資料、報告、儀表板、日誌、程式審查或需求裡實際出現的樣子。
| 容易混淆 | 差別在哪 | 實際遇到時的線索 |
|---|---|---|
| 配對 t 檢定(paired t-test)與獨立兩樣本 t 檢定(independent two-sample t-test) | 配對用在同一批人前後兩次。獨立兩樣本用在兩群不同的人。 | 藥局的 A/B 測試是「有提醒」與「沒提醒」兩群不同會員,兩欄對不上同一個人,應走獨立兩樣本。報告若把同一位會員提醒前、提醒後配成一列再檢定,那是配對。先看兩組資料是不是同一批人。 |
| 精確率(precision)與召回率(recall) | 漏抓的代價高時看召回率。誤報的代價高時看精確率。 | 提出需求的人說「會回來的人漏提醒很傷」,儀表板應看召回率。說「不要一直打擾不會回來的人」,看精確率。報告若只給一個整體準確率(accuracy),以約 12% 會回來計算,全部預測不回來也有 100% − 12% = 88%,召回率與精確率卻都沒有出現在報告裡。 |
| 資料漂移(data drift)與概念漂移(concept drift) | 資料漂移是輸入的分佈變了。概念漂移是輸入與結果的關係變了。 | 監控日誌裡年齡或金額的分佈整塊偏移,多半是資料漂移,例如新客群加入。分佈差不多、召回率卻掉下去,而且中間改過健保或藥品政策,多半是概念漂移:同一個「過去 90 天領藥次數」,和回診的關係已經不同。 |
| 切分前做 SMOTE(少數類過採樣的一種做法)或前處理,對上只在訓練資料內做 | 切分前就對全部資料做過採樣(oversampling)、插補或編碼,評估用的資料會提前進入訓練,這是資料洩漏(data leakage)。規則只能在訓練資料內決定,再套到其餘資料。 | 程式審查若看到先對整份表做 SMOTE、插補或編碼,然後才切訓練與驗證,就是這個順序。驗證分數好得離「陽性約 12%」這種難度太遠時,要回頭查誰先誰後。 |
| 假名化(pseudonymization)與匿名化(anonymization) | 假名化留有對照表,代號還原得到本人,仍是個資。匿名化是無法再識別這個人。 | 倉儲裡若還有一張代號對姓名的表,文件卻寫已經匿名,那只是假名化。權限清單仍要管這張對照表與處方明細。無法再識別的做法,不留還原用的對照。 |
| 降低溫度(temperature)與降低幻覺(hallucination) | 溫度調低只減少用詞的隨機性,同樣問題的回答比較固定。內容有沒有依據,要靠 RAG 與事後查核。 | 客服日誌裡溫度已經調低,回答仍寫出會員制度文件沒有的折扣,而且該則沒有附上檢索到的段落。需求若寫成「溫度調低就不會亂編」,和這筆日誌對不上。 |
四、綜合練習
第 1 題
某客服平台要為每小時進線通數建模。這組次數的平均是 4、變異數是 15。即時看板必須在 1 秒內更新。哪一種做法同時滿足分佈與時間限制?
- (A) 用卜瓦松分佈建模,每天批次更新一次看板
- (B) 用負二項分佈建模,並以串流處理(Kafka 與 Flink)在秒級更新看板
- (C) 用常態分佈建模,把明細先寫進資料倉儲再查詢
- (D) 用二項分佈建模,以 MapReduce 隔夜彙總
看答案與解析
答案:B
平均 4、變異數 15。15 ÷ 4 = 3.75,變異數是平均的 3.75 倍,不符合卜瓦松「變異數接近平均」,件數模型要改負二項分佈。看板要求 1 秒內更新,對上串流處理,不是日終批次。
- (A) 變異數遠大於平均,卜瓦松的前提不成立;每日批次也無法在 1 秒內更新。
- (C) 常態分佈(normal distribution)描述的不是固定區間的件數;資料倉儲(data warehouse)服務事後查詢,不是秒級判斷。
- (D) 二項分佈(binomial distribution)要先有固定的試驗次數,情境是一段時間內的事件件數;MapReduce 是批次運算,同樣過不了 1 秒。
回看:第 3、7 篇
第 2 題
某醫院用每位病患的多次就診紀錄預測再入院,陽性只佔 3%。驗證應該怎麼設計?
- (A) 每一筆就診隨機切成訓練與測試,以準確率為主要指標
- (B) 先對全部資料做 SMOTE,再隨機切分,仍以準確率評估
- (C) 用 R² 評估這次預測好不好
- (D) 以病患為單位做 GroupKFold,看召回率與 PR-AUC,重採樣只在訓練折內進行
看答案與解析
答案:D
同一病患的多筆就診必須整組留在訓練或整組留在驗證,所以用 GroupKFold。陽性佔 3%,也就是 3 ÷ 100 = 0.03。若全部預測「不再入院」,準確率是 1 − 0.03 = 0.97,這個數字沒有說出再入院的人被找出多少。召回率與 PR-AUC 才對得上這個目標。重採樣只在訓練折內做,驗證折才不被合成樣本改寫。
- (A) 逐筆隨機切分會讓同一病患出現在訓練與驗證兩邊;準確率又可以被 0.97 的全猜陰性墊高。
- (B) 切分前就對全部資料做 SMOTE,是資料洩漏。
- (C) R²(決定係數)用於連續目標的擬合。再入院是有或沒有的分類。
回看:第 12、14 篇
第 3 題
某電商要在推薦頁顯示經常被同一張訂單一起買走的商品。分析購物籃時,應該怎麼留下規則?
- (A) 只留信賴度最高的規則
- (B) 用 K-means 依商品價格分群,推薦同群商品
- (C) 做關聯規則,保留支援度達到門檻、且提升度大於 1 的規則
- (D) 對商品售價做 t 檢定,顯著的商品才放上推薦頁
看答案與解析
答案:C
購物籃用支援度、信賴度、提升度一起看。提升度大於 1,表示兩項商品一起出現的機會高於各自獨立被買;支援度門檻用來拿掉極少見、站不穩的組合。
- (A) 熱銷品和許多商品的信賴度都高,不表示這個組合比獨立購買更強。
- (B) K-means 依價格距離分群,回答的是價格像不像,不是有沒有出現在同一購物籃。
- (D) t 檢定比較的是平均。情境沒有兩組平均要比較。
回看:第 10 篇
第 4 題
某零售公司的分析師執行下面這行程式。
df.groupby('store')['sales'].sum().nlargest(5)
結果是什麼?
- (A) 各門市銷售總額最高的 5 間
- (B) 資料裡的前 5 筆交易
- (C) 銷售總額最低的 5 間門市
- (D) 每一間門市銷售金額最高的 5 筆交易
看答案與解析
答案:A
groupby('store') 依門市分組。['sales'].sum() 把每個門市的 sales 加總,每個門市只剩一筆總額。nlargest(5) 從這些總額取出最大的 5 個,就是銷售總額最高的 5 間門市。
- (B) 前 5 筆交易要對原始列取頭。這裡先分組加總,已經不是原始交易順序。
- (C) 最低的 5 間不是
nlargest。 - (D) 加總之後每個門市只剩一個總額,沒有留下該門市的前 5 筆明細。
回看:第 8 篇
第 5 題
某內容平台把新版頁面做 A/B 測試,對照組與實驗組各 200 萬人。兩組轉換率相差 0.02 個百分點,檢定得到 p < 0.001。這項結果該怎麼用?
- (A) p 這麼小,表示新版提升很大,應立即全面上線
- (B) 統計上已經顯著,仍要先評估效果量與實務價值,再決定是否上線
- (C) 樣本大到各 200 萬人,檢定沒有意義,整段結果作廢
- (D) 這是兩組轉換率,應改做卡方適合度檢定
看答案與解析
答案:B
0.02 個百分點換到比例尺度:0.02 ÷ 100 = 0.0002。p < 0.001 表示這麼大的樣本下,這個差距不像碰巧,統計顯著成立。上線與否要看 0.0002 的比例差有沒有實務價值。效果量回答的是差多大,p 回答的不是這件事。
- (A) p 小不能把 0.0002 說成很大的提升。
- (C) 樣本大不會讓檢定失效。它讓很小的差也能達到顯著,所以更不能拿 p 代替效果量。
- (D) 卡方適合度檢定(chi-square goodness-of-fit)看的是一個類別變數像不像某個給定的理論比例,不是這裡的決策。若題目改問「兩組轉換率用哪種檢定」,對照表是兩比例 Z 檢定;換成它也不會把 0.0002 變成很大的效果。
回看:第 4、9 篇
第 6 題
某跨國公司要讓員工查詢最新的內部規章。規章經常改版,正文含有員工個資欄位。問答系統應該怎麼做?
- (A) 用全部規章微調一個公開模型,之後不必再更新
- (B) 把規章原文貼進公開聊天服務,請它代答
- (C) 個資留在文件裡即可,只要回答能看到條文
- (D) 用 RAG 回答;建索引前去識別化,或加上權限控管,使不該看的人讀不到個資欄位
看答案與解析
答案:D
規章經常更新,適合 RAG:回答時查最新文件,改版後更新索引。文件含員工個資欄位,建索引前要去識別化,或用權限控管限制誰能查到那些欄位。兩件事都要做。
- (A) 微調凍結的是當時那一版規章,新條文不會自動進來;個資也會留在公開模型裡。
- (B) 把含個資的原文送到公開聊天服務,文件離開可控範圍。
- (C) 情境已經寫明含有員工個資欄位,索引與回答都會碰到這些欄位。
回看:第 17、18 篇
第 7 題
某工廠有 200 台感測器,每秒回傳一次讀值,傳輸偶而中斷約 10 分鐘。現場要做即時預警。資料進來之後應該怎麼處理?
- (A) 每天匯出 CSV,用當天平均填補缺口後再跑預警
- (B) 只要某台感測器出現過中斷,就整台刪除
- (C) 在邊緣端處理短缺口,以前值填補或內插,並以串流計算特徵做預警
- (D) 先打亂時間順序,再送進批次模型
看答案與解析
答案:C
200 台感測器每秒回傳,而且要即時預警,對上邊緣運算與串流:現場先處理,再計算預警要用的特徵。偶發的約 10 分鐘中斷在這題是短缺口,以前值填補或內插補上,不改成整天的平均。
- (A) 每日匯出 CSV 趕不上即時;用當天平均填補會抹掉中斷前後的變化。
- (B) 偶發中斷不是整台失效。刪掉所有出現過缺口的感測器,會失去仍在回傳的讀值。
- (D) 即時預警的特徵依賴時間先後。打亂之後,讀值不再是「到這一秒為止」的序列。
回看:第 5、7 篇
第 8 題
主管要用一張圖看 20 個特徵彼此的相關,相關有正有負。應該畫什麼?
- (A) 相關矩陣熱圖,顏色用以 0 為中心的發散色
- (B) 同一批相關改用循序色,顏色越深表示相關越強
- (C) 20 張圓餅圖,每張代表一個特徵
- (D) 長條圖比較 20 個特徵的平均,並把 Y 軸從資料範圍的中段截斷
看答案與解析
答案:A
20 個特徵的兩兩相關是一張矩陣,用熱圖。相關有正有負,顏色要用以 0 為中心的發散色,正負才分得開。
- (B) 循序色(sequential palette)只有由弱到強的一個方向,0 不在色階中央,負相關會被看成比較弱的正相關。
- (C) 圓餅圖看的是一個整體裡各部分的佔比。20 張圓餅沒有「特徵 i 對特徵 j」的格子。
- (D) 長條圖比的是各特徵自己的高低,不是兩兩相關;從中段截斷 Y 軸還會把接近的高度畫成很大的差距。
回看:第 11 篇
第 9 題
某電商團隊在訓練一個預測模型時,訓練損失一路下降,但驗證損失從第 8 個 epoch 開始上升。同一個團隊的客服助理,偶爾會編造文件裡不存在的退貨規定。下面哪一種處理是對的?
- (A) 兩個問題都靠再訓練更多 epoch 解決。
- (B) 把客服助理的溫度調到 0,就不會再編造不存在的退貨規定。
- (C) 預測模型在第 8 個 epoch 後開始過擬合,應提早停止,並保留第 8 個 epoch 的參數。客服助理要用 RAG 提供退貨規定文件,並要求回答附上來源。
- (D) 驗證損失上升代表學習率太小,要繼續訓練。
看答案與解析
答案:C
訓練損失還在下降,驗證損失卻從第 8 個 epoch 開始上升,表示模型在第 8 個 epoch 之後開始過擬合。提早停止就是不再繼續後面的 epoch,並保留第 8 個 epoch 的參數。客服助理編造不存在的退貨規定,是因為回答沒有文件依據。要用 RAG 提供退貨規定文件,並要求回答附上來源,依據才對得起來。
- (A) 再訓練更多 epoch 會讓驗證損失繼續上升,過擬合更嚴重;多訓練也不會補上客服助理缺少的退貨規定。
- (B) 溫度調到 0 只讓用詞更固定,文件沒有的退貨規定仍會被說成確定的內容。
- (D) 學習率太小時,損失多半降得很慢;訓練損失持續下降、驗證損失從中途上升,不是這個形狀,繼續訓練會讓過擬合更嚴重。
回看:第 13、16、17 篇
第 10 題
某工廠用 3,000 張標註過的零件影像做瑕疵分類,瑕疵只占 4%。第一版模型準確率 96%,卻一個瑕疵都沒抓到。下面哪一種判斷是對的?
- (A) 96% 已經很高,可以上線。
- (B) 改用從零訓練的大型模型就會好。
- (C) 先對全部影像做過採樣,再切分訓練與測試。
- (D) 模型把所有影像都判為正常,準確率等於正常品比例 96%。應改看召回率與精確率,並用預訓練 CNN 做遷移學習、搭配資料擴增。重採樣只在訓練資料內做。
看答案與解析
答案:D
一個瑕疵都沒抓到,又得到 96% 準確率,等於把每一張都判成正常。正常品比例是 1 − 0.04 = 0.96。用張數算:3,000 × 0.04 = 120,瑕疵 120 張;3,000 − 120 = 2,880,正常 2,880 張。全部判正常時判對 2,880 張,2,880 ÷ 3,000 = 0.96,就是 96%。瑕疵的召回率是 0 ÷ 120 = 0。所以要改看召回率與精確率。標註影像是這 3,000 張,做法是用預訓練 CNN 做遷移學習,並搭配資料擴增;重採樣若要做,只在訓練資料內做。
- (A) 96% 就是全部判成正常的準確率,瑕疵召回率是 0,不能上線。
- (B) 這裡要做的是預訓練 CNN 的遷移學習與資料擴增。改成從零訓練的大型模型,並沒有處理全部判成正常這件事。
- (C) 先對全部影像過採樣再切分,測試用的影像在切分前就被改過,這是資料洩漏。重採樣只在訓練資料內做。
回看:第 12、14、15 篇
五、重點回顧
- 每一步先問資料型態、目標與限制,方法跟著這些前提走;藥局的領藥預測與客服助理,從有沒有標籤、是不是表格、依據是不是內部文件,就該分開。
- 最常見的三種失誤是:特徵或前處理把預測時點之後的資料、或驗證資料,漏進訓練;陽性少的時候只看準確率;上線之後沒有人看資料漂移與概念漂移。
- 中位數、四分位距、統計顯著與 A/B 測試負責看清資料和上線差異,邏輯斯迴歸、梯度提升與召回率、精確率負責預測誰該被提醒,同一個專案裡兩邊一起支撐決定。
- 生成式客服要有文件依據:用 RAG 檢索、回答附上出處、找不到依據就說不知道並轉真人;處方與會員身分用假名化並限制權限,個資不送進外部的生成式 AI 服務。
- 綜合練習若答錯,用第二節的對照表找到篇章,重讀該篇的「容易混淆的地方」,再回到這篇的藥局案例對一次。