Skip to the content.

AiJudge:臺灣北部 5 地方法院毒品案件量刑研究

以 2018-01 ~ 2026-02、98 個月、北部 5 地方法院(基隆/臺北/士林/新北/桃園)共 68,985 件毒品判決為樣本,建立可預測判決刑期的研究模型,並以 walk-forward 時序 交叉驗證評估其在實務上的泛化能力。

一、研究摘要

長期以來,社會對司法量刑的一個關注是:性質相似的案件,是否得到合理一致的判決?個案差異固然存在,但不同被告、相近事實、刑度卻顯著不同,往往讓當事人與家屬無所適從。本研究以司法院公開資料為基礎,將判決書這種文字密集的法律文件,系統性地轉換成電腦能讀懂的結構化資料,並以此訓練統計模型,預測在臺灣北部 5 地方法院審理的毒品案件可能會獲得怎樣的刑期。

研究發現:(1) 透過程式自動辨識判決中的關鍵法律要件(行為態樣、毒品級別、減刑事由等),準確率在驗證樣本上達到 F1 0.93–1.00;(2) 機器學習模型在 5 院聯合訓練後對中位刑期預測 MAE 2.52 個月、±3 個月命中率 87.7%;(3) 同一個 5 院模型在基隆案件測試列上 MAE 反而降到 1.82 月,比基隆-only 模型的 2.20 月還好 ~17%——其他 4 院的案件當作增強樣本、用「法院」one-hot flag 區分風格,反而讓基隆規律學得更穩;(4) 經 outlier 驅動的三次迭代改進(sum_individual_months 特徵 + §17/§59 reject regex 增強 + p50 head 改 L1 loss),raw quantile crossings 從 18.7% 降到 6.5%、販賣 MAE 從 10.36 降到 8.87,但重罪平均誤差仍受桃園/新北寬刑度分布牽動,需要結構化擷取「共犯角色、犯後態度、和解金額」才能再壓。

研究的價值不在取代法官,而在於提供透明且可量化的量刑趨勢資訊,幫助當事人、辯護律師理解自身案件可能落點,輔助學術研究觀察司法實務變化,並為日後可能的「量刑一致性監測」奠定方法論基礎。

二、研究背景

2.1 為何研究量刑

刑事審判最後階段——量刑——具有相當大的法官裁量空間。法律雖然規定了刑度範圍(例如販賣第二級毒品「無期徒刑或十年以上有期徒刑」),但同樣是販賣案件、相似的數量和情節,最終判決可能從十年到二十年不等。當事人在面對訴訟時,很難取得客觀、量化、基於實際判決資料的參考點。

過去這類研究多依賴法律學者的手工分析,受限於樣本大小和分析效率,難以在統計意義上得到結論。近年自然語言處理與機器學習的進步,讓我們有機會用程式系統性處理大量判決書,補上這個資料缺口。

2.2 為何選擇北部 5 院的毒品案件

選擇單一罪名類型、橫跨北部 5 院(基隆/臺北/士林/新北/桃園)做為起點,是基於四個考量:

  1. 資料可得性:司法院自 1996 年起公開判決書資料,可下載完整文字
  2. 法條相對單純:毒品危害防制條例 §4–§11 的構成要件清楚,便於程式辨識
  3. 案件量充足:5 院 8 年累積 68,985 件(單被告且含量刑數字者 62,328 件),足以做時序交叉驗證並涵蓋重罪
  4. 法理一致、量刑風格不同:5 院適用相同的中央法律,但歷年量刑統計存在系統性差異——這正好讓模型用「法院」one-hot 特徵自動吸收區域風格,並讓基隆等案件量較少的法院從其他院的訓練資料中受益

案件量分布(單被告、有量刑數字):

法院 JID prefix 件數
新北 PC 24,947
桃園 TY 20,750
臺北 TP 11,324
士林 SL 6,155
基隆 KL 5,809

未來若將方法論擴及其他法院或罪名,需重新校準。

三、研究方法

3.1 從判決書到結構化資料

判決書是寫給人看的文字,要讓電腦處理,必須先把文字中的關鍵事實「結構化」。本研究將每份判決書轉換成以下幾類欄位:

3.2 為什麼這項工作不容易

判決書的書寫風格雖有套式但相當繁複。同樣一個減刑事由,法官可能寫成「依毒品危害防制條例第 17 條第 2 項規定,減輕其刑」、「爰依該項規定減刑」、或在解釋條文時順帶引用,但實際上沒有適用該條於該名被告。要正確辨識這些差異,需要兼顧:

本研究透過反覆迭代(共驗證 100 件人工標註樣本)才將自動辨識準確率推到實用水準。

3.3 預測模型

在結構化資料上訓練 XGBoost,採「分層 bundle」設計:四個獨立的 head 共用同一份特徵矩陣。

預測完成後再經過「規則約束層」:依法定刑度(毒品條例 §4–§11,加上 §17Ⅰ/§17Ⅱ/§59/§62 自首/§25Ⅱ 未遂各自 ½ 減刑、簡易判決下限 ½、數罪併罰應執行刑 30 年上限)clip 到合法範圍,並重新單調化 p25 ≤ p50 ≤ p75。模型在規則層之後 100% 不會輸出違反法律的刑期。

3.4 評估方式:walk-forward 時序交叉驗證

判決資料隨時間累積,鄰近時間的案件往往涉及相似事實、相似法官、相似量刑風氣,若用隨機 80/20 切分會讓「時間上相鄰」的訓練/測試案件互相洩漏資訊,估出過於樂觀的誤差。

因此本研究改用 expanding-window walk-forward CV:把全部案件按 JDATE 排序後切成 6 個等量區段,第 1 段固定當作種子訓練資料,之後每一折以「累積前面所有區段」訓練、「下一段」測試,共得 5 折,測試集永遠嚴格晚於每一筆訓練資料。最後我們把 5 折的測試樣本(合計 51,940 件)pool 起來計算指標。

3.5 分位數校正:conformal δ-shift

XGBoost 的 quantile head 受正則化影響,原始預測的 [p25, p75] 經驗覆蓋率約 45%,比理想的 50% 略偏窄。本研究在每折訓練結束後,於 val 尾段算殘差的 α-分位數 δ_α = quantile(y − ŷ, α),在 test 時把 raw quantile 預測加上 δ_α,這就是標準的 conformalized quantile regression(CQR)marginal shift。校正後 5 院 pooled 覆蓋率從 49.6% → 49.7%(基隆-only model 校正前 44.9% → 51.4%),δ 與模型一起寫入 ModelBundle metadata,推論時自動套用。

四、研究發現

4.1 結構化抽取準確率

在 100 件人工標註的驗證樣本上,自動抽取的關鍵欄位達到下列水準:

對最關鍵的量刑數字(有期徒刑月數),在 94 件有量刑的樣本中達到 100% 完全相符。這一數字得來不易,因為它涉及辨識主文中「應執行有期徒刑伍月」這類多罪併罰結果,並區分多被告場合下哪一段刑期屬於哪位被告。

4.2 模型預測誤差

在 walk-forward 5 折的合計 51,940 件測試樣本上,模型的整體表現如下:

5 院聯訓 XGBoost 模型的中位數預測(p50)平均絕對誤差(MAE)為 2.52 個月,相較於以「永遠輸出中位數」的天真基線 6.00 個月,誤差降低約 53%;中位殘差 1.0 個月、±3 個月命中率 87.7%、±6 個月命中率 93.3%、R² 0.708。最後一折(2024-05 ~ 2026-02 測試,訓練 51,940 件)MAE 3.55 月、R² 0.697,顯示模型對較近期的判決仍有穩定的泛化能力。

4.2.1 各法院 MAE 拆解

同一個 5 院模型在不同法院的 test 列上拆開算 MAE:

基隆案件的 MAE 反而最低(1.82 月),低於基隆-only 訓練時的 2.20 月——其他 4 院案件當作增強樣本、用「法院」one-hot flag 區分風格後,基隆規律學得更穩。這是「跨院聯訓 + 用 court flag 區分」的關鍵價值。整體 MAE 2.52 之所以較高,純粹是被桃園/新北的寬刑度分布拉高,並非每院個別變差。

4.2.2 區間預測(quantile)與緩刑分類

單一數字當預測對使用者其實不夠用——「比較可能落在哪個範圍」、「會不會給緩刑」往往是當事人更想知道的。本研究在同一份特徵上加上三個分位數迴歸頭(p25 / p50 / p75,採 XGBoost reg:quantileerror,並用 §3.5 的 CQR δ-shift 校正)與一個緩刑二元分類頭:

整體 [p25, p75] 區間覆蓋率經 CQR δ-shift 校正後達 49.6%(理想 50%)。三個 pinball loss(p25 / p50 / p75)= 0.98 / 1.26 / 1.17 月,量級對得起 MAE。

緩刑分類器在 5 院聯訓下基底為 2.87%(比單院基隆 0.91% 高 3 倍),達 PR-AUC 0.367(相當於基底的 13 倍),accuracy 95.27%、precision 34.5%、recall 71.7%(F1-max threshold tuning,threshold 隨各折在 0.20 ~ 0.55 間自動調)。使用者場景以「篩出可能符合緩刑條件的案件給律師複看」較合適,而非自動決策。

4.3 不同罪名的預測難度差異

把所有 walk-forward 測試樣本依主要罪名分組,預測誤差呈現明顯差異:

施用案件(n = 25,367)誤差僅 1.12 個月、持有(n = 18,687)1.06 個月,這類案件刑期普遍 2–6 個月、影響因素相對單純,模型表現極佳。販賣(n = 5,936)平均誤差 8.9 個月,運輸(n = 879)26.2 個月、製造(n = 264)15 個月。主因是這類案件刑期變異極大(例如販賣可能 6 個月、也可能十年以上有期徒刑甚至無期),而真正決定刑度的因子(共犯角色、犯後態度、和解、悔意等)目前還沒被結構化抽取出來。注意 5 院聯訓後重罪樣本數從基隆-only 的 47~571 件大幅擴大到 264~5,936 件,但平均 MAE 仍受桃園/新北寬分布牽動。

4.4 哪些因素最影響量刑

機器學習模型可以告訴我們,哪些因素的存在最能解釋刑期的差異。將模型內部的「特徵重要性」由高到低排序:

排名前列的因素,與法律實務上的量刑邏輯高度一致

這個結果驗證了模型確實學到了合理的判決邏輯,而非依賴噪音特徵。注意 L1 loss(實驗 3 後採用)的 gain 量級與 squared error 不可直接比較;絕對值小但相對排序仍可信。

五、限制與誤差來源

研究在三個面向遇到瓶頸,這也是後續工作的方向:

1. 重罪資料樣本仍偏少且分布寬 5 院聯訓後重罪樣本擴大 10–100×(販賣 571→5,936、運輸 47→879、製造 14→264),但平均誤差仍 10–29 月。主因不是樣本量不足,而是這類案件本身刑度變異就極大(從 6 個月到無期),加上各院量刑風格差異被一併吸收進來。要進一步壓 MAE 需要結構化擷取「共犯角色、犯後態度、和解金額」等個案決定性因子。

2. 法官裁量幅度估計困難 當被告同時有「偵審自白」與「情堪憫恕」兩項減刑事由時,法定上限是降到原刑期的四分之一,但法官實際讓步多少,受個案無數細節影響——共犯關係、悔意程度、家庭因素等。目前模型只有「刑法第 57 條十款主觀因子」的 scaffold(透過 Claude AI 從判決書抽取),尚未跑完全資料集;對重罪案件預測幫助上限仍有限。

3. 多被告案件對齊問題 一份判決中可能有兩、三位被告,每人罪名不同、刑期不同。本研究目前直接過濾掉多被告判決(5 院 2,413 件 / 約佔 3.5%)以避免標籤雜訊,但同時也犧牲了販賣/運輸案件常見的共犯結構樣本。後續會改成「逐被告獨立建模」。

4. 殘留法定刑度越界 rule-clip 後模型預測 0% 違法;但 ground-truth 標籤仍有 2.10%(5 院聯訓)落在我們所抽取的法定刑度區間之外(基隆-only 0.91%),主要來自重罪 §59 未被偵測、簡易判決附件中的減刑事由不在 JFULL 中、§11 持有純質淨重加重型未建表、以及 5 院間細微的量刑慣例差異未對齊到單一規則表。

六、應用前景

研究的價值不在取代法律專業判斷,而在提供事前可參考的量刑趨勢資訊

6.1 對當事人與家屬

毒品案件當事人面對訴訟時,最焦慮的就是「不知道會被判多少」。本研究的模型可以根據案情(行為類型、毒品級別、是否自白、是否累犯、起訴法院)等,給出該類案件在北部 5 院近八年(2018–2026)的判決區間,幫助當事人有合理預期,避免因資訊落差被誤導。

6.2 對辯護律師

律師在量刑辯論時,往往需要援引「類似案件」做為比較基礎。本研究累積的 68,985 件判決資料庫與抽取結果,可作為量刑辯論的證據資料庫,律師可快速檢索「同樣是販賣第二級毒品、有第 17 條第 2 項自白、無累犯」的歷年判決,做為向法院提出的參考。

6.3 對司法系統的潛在貢獻

更宏觀地說,這類研究最大的潛在價值在三方面:

加速簡易案件審理 一個成熟的量刑模型可作為法官的參考工具——不是替代法官判斷,而是提供「此類案件近期同庭判決中位數」這樣的數字。對於高度標準化的簡易判決(純施用、單純持有),可顯著降低法官查閱前案的時間成本。粗略估算,若每件簡易判決能省下 5–10 分鐘的查找時間,以基隆每月 50 件估算,單一法院每年可釋出約 50–100 小時的法官時間用於更需要審慎處理的疑難案件。

量刑一致性監測 司法行政機關可以用類似工具,定期檢視「相似案件刑度離散程度」是否在合理範圍。離群案件可作為司法研究或在職教育的樣本,長期改善量刑一致性

輔助當事人理解司法 當判決是個黑箱時,民眾對司法的信任難以建立。本類研究的成果若以親民的方式呈現(例如「全國法院近五年此類案件刑期分布」),有助於提升司法透明度與民眾理解。

6.4 對學術與政策研究

這套方法論可推廣到:

七、未來展望

7.1 短期(3–6 個月)

7.2 中期(6 個月–1 年)

7.3 長期

八、限制與聲明

本研究僅供學術探討用途,不能也不應作為下列用途:

研究使用的資料限於臺灣北部 5 地方法院(基隆/臺北/士林/新北/桃園)毒品案件,結果無法外推至其他法院或不同罪名。模型對重罪預測誤差大,重大刑案不可使用本工具的預測。研究團隊不對使用本研究結果所造成的任何後果負責。

完整程式碼與資料處理流程開源於 github.com/Jung217/AiJudge,歡迎研究者檢視、複現、改進。

九、互動量刑試算(教育用途)

下面這個工具讓你選擇案件特徵,即時看到該類案件依法的法定刑度區間,以及北部 5 院近 8 年同類案件的實際判決中位數。所有計算都在瀏覽器內完成,不送任何資料到後端。每個減刑事由旁邊滑鼠移上去(hover)可看到對應法條原文。

調整上方選項…
本工具僅供教育與一般參考。法定刑度區間 100% 依現行法律計算;「同類案件中位數」來自 2018-01 ~ 2026-02 北部 5 院 4.9 萬件實際判決,但個案差異(共犯、和解、犯後態度、§57 主觀因子)無法在此呈現。不可作為法律建議、判決依據、或律師代理之替代。

Last updated: 2026-05-19