Python
共 6 篇關於「Python」的技術文章。
你的 predict 到底在做什麼:chainladder CapeCod 回傳的第三個數字
chainladder-python 的 CapeCod.predict 不是套用你存下的模型。在 ukmotor 樣本上,前一條對角線擬合出的 apriori 是 0.6572660657,predict 到新對角線回傳 0.6894525318,在新資料上乾淨重新擬合是 0.7062253126。拆開公式,predict 用的是今天的損失與曝險,配上一期的發展型態。
放錯一行的檢查不會報錯,只會變成裝飾:chainladder predict 的四種靜默失敗
精算函式庫 chainladder-python 的 predict 在四種輸入不匹配時照樣回傳結果:775 列進去 643 列出來、6 列進去 775 列出來、一列的型態套到另一列少算 38%、已付型態套到已發生資料高估 52%,都沒有錯誤訊息。這篇拆我們提的修正 PR #1310 裡兩個輸入驗證的教訓:合法與危險的寬鬆在資料上同形,要找系統自己寫下的標記;檢查放在會改寫輸入的那一行之後,不會報錯,只會在它最該看見的情況失明。
一個字元的 bug 讓 775 列準備金全錯:chainladder CapeCod.predict 拆解
美國產險精算學會的 chainladder-python 是精算師算損失準備金的標準函式庫。CapeCod.predict() 有一個 > 1 該寫成 > 0 的條件,讓最常見的使用方式拿到錯的 apriori:comauto 業務線擬合值 0.569,預測回傳 1.252,775 列全錯。既有測試覆蓋了那條路徑卻沒抓到,原因是它用的資料集永遠走另一個分支。這篇講 Cape Cod 方法在做什麼、那一行為什麼錯、測試怎麼漏、以及依 casact 政策做的 AI 使用揭露。
Python 的 **kwargs 接不到具名參數:人道 OpenStreetMap 無人機系統每張災區照片都存錯格式的原因
一個函式簽章裡有 content_type,文件也寫了,呼叫下游 SDK 時卻只傳了位置參數加 **kwargs。因為 content_type 是具名參數,Python 把值綁在它身上,kwargs 裡沒有它,所以每一張災後空拍照都以 application/octet-stream 存進 S3,瀏覽器只會下載不會顯示。這篇用 hotosm/drone-tm #882 講 Python 參數綁定的規則、為什麼同一個函式的 metadata 沒事、以及一個 mock 要綁真簽章的測試寫法。
24 天內併入六個組織的七筆 PR:維護者教我的七件事
從美國產險精算學會到人道 OpenStreetMap,24 天內七筆 PR 被六個組織的維護者合併(美國產險精算學會收了兩筆)。這篇逐筆拆解:bug 在哪一行、為什麼測試沒抓到、維護者在審查時糾正了我什麼。三個共同病灶:只跑 Linux 的 CI、為了錯的理由通過的測試、被語言語意騙過的哨兵值。每一筆都附 PR 連結,可以自己去對。
官方沒寫、Wiki 說「還在調查中」:我打開了遊戲的 38GB 封包,自己去找答案
當所有權威來源都說「不知道」,剩下的辦法就是去讀原始的那一層。這是一次完整的逆向工程記錄:兩小時、零依賴、200 行 Python,從 38GB 遊戲封包裡挖出官方沒公開的資料表。不寫程式也讀得懂。