[{"data":1,"prerenderedAt":1105},["ShallowReactive",2],{"navigation_docs":3,"-machine-learning-logistic-regression-complete-guide":352,"-machine-learning-logistic-regression-complete-guide-surround":1100},[4,54,83,116,125,161,179,200],{"title":5,"path":6,"stem":7,"children":8},"Ai","/ai","ai",[9,12,42,46,50],{"title":10,"path":6,"stem":11},"AI 技術探索","ai/index",{"title":13,"path":14,"stem":15,"children":16,"page":41},"Rag","/ai/rag","ai/RAG",[17,21,25,29,33,37],{"title":18,"path":19,"stem":20},"BM25 演算法深入解析：從 TF-IDF 到現代搜尋引擎的核心技術","/ai/rag/bm25-deep-dive-from-tf-idf-to-rag","ai/RAG/bm25-deep-dive-from-tf-idf-to-rag",{"title":22,"path":23,"stem":24},"Dense Retrieval（向量檢索）深入解析","/ai/rag/dense-retrieval-deep-dive","ai/RAG/dense-retrieval-deep-dive",{"title":26,"path":27,"stem":28},"RAG（Retrieval-Augmented Generation）原理與實作入門","/ai/rag/rag-intro-principles-and-implementation","ai/RAG/rag-intro-principles-and-implementation",{"title":30,"path":31,"stem":32},"RAG Retrieval Strategy 深入解析","/ai/rag/rag-retrieval-strategy-deep-dive","ai/RAG/rag-retrieval-strategy-deep-dive",{"title":34,"path":35,"stem":36},"Reciprocal Rank Fusion（RRF）教學：打造更穩定的檢索融合策略","/ai/rag/rrf-reciprocal-rank-fusion-guide","ai/RAG/rrf-reciprocal-rank-fusion-guide",{"title":38,"path":39,"stem":40},"TF-IDF（Term Frequency–Inverse Document Frequency）深入解析","/ai/rag/tf-idf-deep-dive","ai/RAG/tf-idf-deep-dive",false,{"title":43,"path":44,"stem":45},"Docus AI 功能完整實作指南","/ai/docus-ai-implementation","ai/docus-ai-implementation",{"title":47,"path":48,"stem":49},"llms.txt 是什麼？在 Nuxt 中控制 AI 與搜尋引擎爬蟲的新方式","/ai/llms-txt","ai/llms-txt",{"title":51,"path":52,"stem":53},"MCP（Model Context Protocol）是什麼？用「AI 的 USB-C」理解模型如何安全連接工具與資料","/ai/mcp_concept","ai/mcp_concept",{"title":55,"path":56,"stem":57,"children":58,"page":41},"Data Analysis","/data-analysis","data-analysis",[59,63,67,71,75,79],{"title":60,"path":61,"stem":62},"Exploratory Data Analysis（EDA）資料探索分析入門","/data-analysis/exploratory-data-analysis-eda","data-analysis/exploratory-data-analysis-eda",{"title":64,"path":65,"stem":66},"PR-AUC 深入解析：不平衡分類問題的重要評估指標","/data-analysis/pr-auc-for-imbalanced-classification","data-analysis/pr-auc-for-imbalanced-classification",{"title":68,"path":69,"stem":70},"ROC-AUC 深入解析：理解分類模型的判斷能力","/data-analysis/roc-auc-complete-guide","data-analysis/roc-auc-complete-guide",{"title":72,"path":73,"stem":74},"SHAP（SHapley Additive exPlanations）模型解釋方法深入解析","/data-analysis/shap-model-interpretation-complete-guide","data-analysis/shap-model-interpretation-complete-guide",{"title":76,"path":77,"stem":78},"Social Network Analysis（SNA）深入解析","/data-analysis/social-network-analysis-sna","data-analysis/social-network-analysis-sna",{"title":80,"path":81,"stem":82},"Time-based Split：為什麼時間序列資料不能使用 Random Split？","/data-analysis/time-based-split-vs-random-split","data-analysis/time-based-split-vs-random-split",{"title":84,"path":85,"stem":86,"children":87,"page":41},"MachineLearning","/machine_learning","machine_learning",[88,92,96,100,104,108,112],{"title":89,"path":90,"stem":91},"Confusion Matrix（混淆矩陣）完整解析","/machine_learning/confusion-matrix","machine_learning/confusion-matrix",{"title":93,"path":94,"stem":95},"Decision Tree 模型完整教學：從原理到 Python 實作","/machine_learning/decision-tree-complete-guide","machine_learning/decision-tree-complete-guide",{"title":97,"path":98,"stem":99},"為什麼 Decision Tree 在 Tabular Data 上常常勝過 Deep Learning？","/machine_learning/decision-tree-vs-deep-learning-on-tabular-data","machine_learning/decision-tree-vs-deep-learning-on-tabular-data",{"title":101,"path":102,"stem":103},"LightGBM 模型入門：理解高效能的 Gradient Boosting 演算法","/machine_learning/lightgbm-intro-for-tabular-data","machine_learning/lightgbm-intro-for-tabular-data",{"title":105,"path":106,"stem":107},"Logistic Regression（Logit 回歸）完整教學","/machine_learning/logistic-regression-complete-guide","machine_learning/logistic-regression-complete-guide",{"title":109,"path":110,"stem":111},"為什麼模型訓練需要 Train / Validation / Test Dataset？","/machine_learning/train-validation-test-dataset","machine_learning/train-validation-test-dataset",{"title":113,"path":114,"stem":115},"XGBoost 原理與實務教學","/machine_learning/xgboost-complete-guide","machine_learning/xgboost-complete-guide",{"title":117,"path":118,"stem":119,"children":120,"page":41},"Network","/network","network",[121],{"title":122,"path":123,"stem":124},"DNS 設定入門：CNAME vs A Record 完整解析","/network/dns-cname-vs-a-record-guide","network/dns-cname-vs-a-record-guide",{"title":126,"path":127,"stem":128,"children":129},"Nuxt","/nuxt","nuxt",[130,133,137,141,145,149,153,157],{"title":131,"path":127,"stem":132},"Nuxt 實戰指南","nuxt/index",{"title":134,"path":135,"stem":136},"Abstraction Layer 與 Adapter 的差別，一次搞懂設計角色","/nuxt/adapter_abstraction_layer","nuxt/adapter_abstraction_layer",{"title":138,"path":139,"stem":140},"Nuxt 4 全面理解 — 專案檔案結構解析","/nuxt/directory_structure","nuxt/directory_structure",{"title":142,"path":143,"stem":144},"Nuxt 前端 build 流程完整解析","/nuxt/frontend_build","nuxt/frontend_build",{"title":146,"path":147,"stem":148},"Nitro 是什麼？從 Nuxt 專案到 Server 與 Edge 的關鍵引擎","/nuxt/nitro","nuxt/nitro",{"title":150,"path":151,"stem":152},"深入理解 Nuxt 的 .nuxt 與 .output：為什麼部署時一定要分清楚？","/nuxt/nuxt_and_output","nuxt/nuxt_and_output",{"title":154,"path":155,"stem":156},"Nuxt 中 dev、build、preview 的差異一次搞懂","/nuxt/nuxt_dev_build_preview","nuxt/nuxt_dev_build_preview",{"title":158,"path":159,"stem":160},"Nuxt Image vs \u003Cimg>：為什麼 Nuxt 3 專案幾乎都該用 \u003CNuxtImg>？","/nuxt/nuxt_image","nuxt/nuxt_image",{"title":162,"path":163,"stem":164,"children":165},"Python 程式開發","/python","python/index",[166,167,171,175],{"title":162,"path":163,"stem":164},{"title":168,"path":169,"stem":170},"如何在 FastAPI 中調用記憶體 Buffer 回傳圖片 (附實例)","/python/memory_buffer","python/memory_buffer",{"title":172,"path":173,"stem":174},"Python 單元測試教學：如何為你的程式撰寫 Test","/python/python-unit-testing-unittest-pytest","python/python-unit-testing-unittest-pytest",{"title":176,"path":177,"stem":178},"如何使用 uv 取代 pip：改善 Python 專案的開發流程","/python/uv","python/uv",{"title":180,"path":181,"stem":182,"children":183,"page":41},"Statistic","/statistic","statistic",[184,188,192,196],{"title":185,"path":186,"stem":187},"卡方檢定（Chi-Square Test）入門教學","/statistic/chi-square-test-intro","statistic/chi-square-test-intro",{"title":189,"path":190,"stem":191},"常見抽樣方法（Sampling Methods）教學：Stratified、Quota、Convenience、Systematic、Simple Random","/statistic/common-sampling-methods-guide","statistic/common-sampling-methods-guide",{"title":193,"path":194,"stem":195},"Cramér’s V 指標介紹：如何衡量兩個類別變數之間的關聯","/statistic/cramers-v-for-categorical-association","statistic/cramers-v-for-categorical-association",{"title":197,"path":198,"stem":199},"Mann–Whitney U 與 Kolmogorov–Smirnov（KS）檢定：非參數統計檢定的入門指南","/statistic/mann-whitney-u-and-ks-test-intro","statistic/mann-whitney-u-and-ks-test-intro",{"title":201,"path":202,"stem":203,"children":204},"WebDev","/web_dev","web_dev",[205,208,234,248,282,312,334],{"title":206,"path":202,"stem":207},"Web 前端開發","web_dev/index",{"title":209,"path":210,"stem":211,"children":212},"瀏覽器與渲染","/web_dev/browser","web_dev/browser/index",[213,214,218,222,226,230],{"title":209,"path":210,"stem":211},{"title":215,"path":216,"stem":217},"瀏覽器儲存空間完整解析：Cookie、localStorage、IndexedDB 到 Cache Storage","/web_dev/browser/browser-storage-comprehensive-guide","web_dev/browser/browser-storage-comprehensive-guide",{"title":219,"path":220,"stem":221},"DOM (Document Object Model) 深入解析","/web_dev/browser/dom","web_dev/browser/dom",{"title":223,"path":224,"stem":225},"Service Worker Request Flow 深入解析","/web_dev/browser/service-worker-request-flow","web_dev/browser/service-worker-request-flow",{"title":227,"path":228,"stem":229},"CSR、SSR 與 SSG 是什麼？前端渲染策略完整比較","/web_dev/browser/ssr_csr_ssg","web_dev/browser/ssr_csr_ssg",{"title":231,"path":232,"stem":233},"Virtual DOM 深入解析：為什麼它能優化前端效能？","/web_dev/browser/virtual_dom","web_dev/browser/virtual_dom",{"title":235,"path":236,"stem":237,"children":238},"圖形技術","/web_dev/graphics","web_dev/graphics/index",[239,240,244],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"為什麼 Three.js 專案幾乎都選擇 CSR？從 SSR 問題談起","/web_dev/graphics/threejs_csr","web_dev/graphics/threejs_csr",{"title":245,"path":246,"stem":247},"WebGL 是什麼？為什麼前端 3D 幾乎都靠它？","/web_dev/graphics/webgl","web_dev/graphics/webGL",{"title":249,"path":250,"stem":251,"children":252},"架構與配置","/web_dev/infrastructure","web_dev/infrastructure/index",[253,254,258,262,266,270,274,278],{"title":249,"path":250,"stem":251},{"title":255,"path":256,"stem":257},"Zeabur + K3s + Nuxt 部署架構完整解析","/web_dev/infrastructure/k3s-zeabur","web_dev/infrastructure/K3s-zeabur",{"title":259,"path":260,"stem":261},"ECS vs Docker vs Kubernetes：從部署堆疊理解三層架構","/web_dev/infrastructure/ecs-docker-kubernetes-stack","web_dev/infrastructure/ecs-docker-kubernetes-stack",{"title":263,"path":264,"stem":265},"ECS vs VPS 是什麼？從部署網站的角度一次搞懂差別","/web_dev/infrastructure/ecs-vs-vps","web_dev/infrastructure/ecs-vs-vps",{"title":267,"path":268,"stem":269},"Zeabur 內網服務連線完整入門指南","/web_dev/infrastructure/k3s-internal-networking","web_dev/infrastructure/k3s-internal-networking",{"title":271,"path":272,"stem":273},"使用 Microservices 架構設計系統的優勢解析","/web_dev/infrastructure/microservices-architecture-advantages","web_dev/infrastructure/microservices-architecture-advantages",{"title":275,"path":276,"stem":277},"Nginx 入門教學：從反向代理到與 Kubernetes 的架構比較","/web_dev/infrastructure/nginx-intro","web_dev/infrastructure/nginx-intro",{"title":279,"path":280,"stem":281},"YAML 配置是什麼？為什麼現代開發都在用它","/web_dev/infrastructure/yaml-configuration","web_dev/infrastructure/yaml-configuration",{"title":283,"path":284,"stem":285,"children":286},"網絡與通訊","/web_dev/network","web_dev/network/index",[287,288,292,296,300,304,308],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"HTTP Request 結構完整解析：從 Request Line 到 Header 一次看懂","/web_dev/network/http-request-structure","web_dev/network/http-request-structure",{"title":293,"path":294,"stem":295},"OSI 模型（Open Systems Interconnection Model）完整解析","/web_dev/network/osi-model","web_dev/network/osi-model",{"title":297,"path":298,"stem":299},"RESTful API 設計原則與實務解析","/web_dev/network/restful-api","web_dev/network/restful-api",{"title":301,"path":302,"stem":303},"RESTful API 五大設計原則深入解析","/web_dev/network/restful-api-principles","web_dev/network/restful-api-principles",{"title":305,"path":306,"stem":307},"Server-Sent Events (SSE) 深入解析與實作教學","/web_dev/network/sse-introduction","web_dev/network/sse-introduction",{"title":309,"path":310,"stem":311},"WebSocket 入門教學：從概念到 Node.js 實作","/web_dev/network/websocket-introduction","web_dev/network/websocket-introduction",{"title":313,"path":314,"stem":315,"children":316},"認證與安全","/web_dev/security","web_dev/security/index",[317,318,322,326,330],{"title":313,"path":314,"stem":315},{"title":319,"path":320,"stem":321},"使用 Cookie 與 Session 建立使用者驗證（完整新手教學）","/web_dev/security/cookie-session-authentication","web_dev/security/cookie-session-authentication",{"title":323,"path":324,"stem":325},"JWT 驗證機制完整解析：從登入流程到實務應用","/web_dev/security/jwt-authentication","web_dev/security/jwt-authentication",{"title":327,"path":328,"stem":329},"Secret Key 簽名是什麼？從零理解資料簽名的本質","/web_dev/security/secret-key-signing","web_dev/security/secret-key-signing",{"title":331,"path":332,"stem":333},"SSH（Secure Shell）是什麼？從遠端登入到安全通道的核心概念","/web_dev/security/ssh","web_dev/security/ssh",{"title":335,"path":336,"stem":337,"children":338},"SEO 與規範","/web_dev/seo","web_dev/seo/index",[339,340,344,348],{"title":335,"path":336,"stem":337},{"title":341,"path":342,"stem":343},"Canonical URL 是什麼？用生活化方式搞懂前端 SEO 的基本保命符","/web_dev/seo/canonical_link","web_dev/seo/canonical_link",{"title":345,"path":346,"stem":347},"robots.txt 是什麼？SEO 的第一道守門員","/web_dev/seo/robot_txt","web_dev/seo/robot_txt",{"title":349,"path":350,"stem":351},"Nuxt SEO 中的 Meta 與 SEO 工具是如何運作的？","/web_dev/seo/seo","web_dev/seo/seo",{"id":353,"title":105,"body":354,"description":1087,"extension":1088,"links":1089,"meta":1090,"navigation":744,"path":106,"seo":1098,"stem":107,"__hash__":1099},"docs/machine_learning/logistic-regression-complete-guide.md",{"type":355,"value":356,"toc":1067},"minimark",[357,362,371,387,394,400,403,406,412,415,426,429,435,441,444,448,451,457,464,467,470,473,476,479,482,496,498,502,508,514,517,523,526,529,532,535,542,552,554,558,564,567,573,576,582,589,591,594,601,615,618,621,624,627,633,636,642,645,648,651,657,663,669,675,677,681,688,851,858,867,870,876,878,884,886,890,893,898,901,907,910,914,917,921,924,926,930,933,937,940,946,949,953,956,963,965,969,972,986,989,1011,1014,1021,1023,1026,1029,1032,1034,1037,1063],[358,359,361],"h2",{"id":360},"為什麼需要-logistic-regression","為什麼需要 Logistic Regression？",[363,364,365,366,370],"p",{},"在機器學習與統計建模中，我們經常需要解決",[367,368,369],"strong",{},"分類問題（classification problem）","。例如：",[372,373,374,378,381,384],"ul",{},[375,376,377],"li",{},"銀行是否應該核准貸款？",[375,379,380],{},"一筆交易是否為詐欺？",[375,382,383],{},"電子郵件是否為垃圾郵件？",[375,385,386],{},"病人是否患有某種疾病？",[363,388,389,390,393],{},"在這些問題中，預測結果通常只有兩種，例如 ",[367,391,392],{},"Yes / No、Fraud / Normal、Spam / Not Spam","。",[363,395,396,397,393],{},"這類問題被稱為 ",[367,398,399],{},"Binary Classification（二元分類）",[363,401,402],{},"一開始很多人會想：既然 Linear Regression 可以預測數值，那能不能直接用線性回歸來預測分類？例如：",[363,404,405],{},"$$\ny = \\beta_0 + \\beta_1 x\n$$",[363,407,408,409,393],{},"但這會產生一個問題：",[367,410,411],{},"Linear Regression 的輸出範圍是 $(-\\infty, +\\infty)$，而分類問題通常需要的是 0 到 1 之間的機率",[363,413,414],{},"例如我們希望得到：",[416,417,423],"pre",{"className":418,"code":420,"language":421,"meta":422},[419],"language-text","詐欺機率 = 0.87\n","text","",[424,425,420],"code",{"__ignoreMap":422},[363,427,428],{},"而不是：",[416,430,433],{"className":431,"code":432,"language":421,"meta":422},[419],"詐欺機率 = 2.3\n",[424,434,432],{"__ignoreMap":422},[363,436,437,438,393],{},"為了解決這個問題，就誕生了 ",[367,439,440],{},"Logistic Regression（Logit Regression）",[442,443],"hr",{},[358,445,447],{"id":446},"logistic-regression-的核心概念","Logistic Regression 的核心概念",[363,449,450],{},"Logistic Regression 的核心想法其實非常簡單：",[452,453,454],"blockquote",{},[363,455,456],{},"先用線性模型計算一個分數，再透過一個函數把它轉換成 0 到 1 的機率。",[363,458,459,460,463],{},"這個轉換函數就是 ",[367,461,462],{},"Sigmoid Function（S 型函數）","：",[363,465,466],{},"$$\n\\sigma(z) = \\frac{1}{1 + e^{-z}}\n$$",[363,468,469],{},"其中：",[363,471,472],{},"$$\nz = \\beta_0 + \\beta_1 x_1 + \\beta_2 x_2 + ... + \\beta_n x_n\n$$",[363,474,475],{},"因此 Logistic Regression 的完整模型可以寫成：",[363,477,478],{},"$$\nP(y=1|x) = \\frac{1}{1 + e^{-(\\beta_0 + \\beta_1x_1 + ... + \\beta_nx_n)}}\n$$",[363,480,481],{},"這個函數有一個非常重要的特性：",[372,483,484,490],{},[375,485,486,487],{},"輸出值永遠介於 ",[367,488,489],{},"0 和 1 之間",[375,491,492,493],{},"可以解釋為 ",[367,494,495],{},"某事件發生的機率",[442,497],{},[358,499,501],{"id":500},"為什麼叫做-logit-regression","為什麼叫做 Logit Regression？",[363,503,504,505,393],{},"Logistic Regression 的名稱其實來自 ",[367,506,507],{},"logit function",[363,509,510,511,463],{},"如果把機率 $p$ 轉換為 ",[367,512,513],{},"odds（勝算比）",[363,515,516],{},"$$\nodds = \\frac{p}{1-p}\n$$",[363,518,519,520,463],{},"再取對數，就會得到 ",[367,521,522],{},"logit",[363,524,525],{},"$$\nlogit(p) = \\log\\left(\\frac{p}{1-p}\\right)\n$$",[363,527,528],{},"Logistic Regression 的本質其實是：",[363,530,531],{},"$$\n\\log\\left(\\frac{p}{1-p}\\right) = \\beta_0 + \\beta_1x_1 + ... + \\beta_nx_n\n$$",[363,533,534],{},"也就是說：",[452,536,537],{},[363,538,539],{},[367,540,541],{},"Logistic Regression 是對 odds 的 log 進行線性建模。",[363,543,544,545,393,548],{},"這也是為什麼在統計學中，它常被稱為 ",[367,546,547],{},"Logit Model",[549,550,551],"span",{},"1",[442,553],{},[358,555,557],{"id":556},"sigmoid-function-的直觀理解","Sigmoid Function 的直觀理解",[363,559,560,561,393],{},"Sigmoid 函數的形狀是一條 ",[367,562,563],{},"S 型曲線",[363,565,566],{},"當輸入 $z$ 非常小時：",[416,568,571],{"className":569,"code":570,"language":421,"meta":422},[419],"z → -∞\nσ(z) → 0\n",[424,572,570],{"__ignoreMap":422},[363,574,575],{},"當輸入 $z$ 非常大時：",[416,577,580],{"className":578,"code":579,"language":421,"meta":422},[419],"z → +∞\nσ(z) → 1\n",[424,581,579],{"__ignoreMap":422},[363,583,584,585,588],{},"因此無論線性模型的輸出是多少，最終都會被壓縮到 ",[367,586,587],{},"0 到 1 之間","，這正好符合機率的需求。",[442,590],{},[358,592,593],{"id":593},"一個金融詐欺偵測的實例",[363,595,596,597,600],{},"假設我們正在建立一個 ",[367,598,599],{},"金融詐欺偵測模型","，並且使用以下兩個特徵：",[372,602,603,609],{},[375,604,605,608],{},[424,606,607],{},"transaction_amount","（交易金額）",[375,610,611,614],{},[424,612,613],{},"num_transactions_24h","（24 小時交易次數）",[363,616,617],{},"模型可能會學到以下公式：",[363,619,620],{},"$$\nz = -5 + 0.004 \\times amount + 0.6 \\times transactions\n$$",[363,622,623],{},"接著透過 Sigmoid 函數轉換為詐欺機率。",[363,625,626],{},"假設某筆交易：",[416,628,631],{"className":629,"code":630,"language":421,"meta":422},[419],"amount = 800\ntransactions = 5\n",[424,632,630],{"__ignoreMap":422},[363,634,635],{},"先計算：",[416,637,640],{"className":638,"code":639,"language":421,"meta":422},[419],"z = -5 + 0.004 × 800 + 0.6 × 5\nz = -5 + 3.2 + 3\nz = 1.2\n",[424,641,639],{"__ignoreMap":422},[363,643,644],{},"接著計算 Sigmoid：",[363,646,647],{},"$$\np = \\frac{1}{1 + e^{-1.2}} \\approx 0.77\n$$",[363,649,650],{},"得到結果：",[416,652,655],{"className":653,"code":654,"language":421,"meta":422},[419],"詐欺機率 = 77%\n",[424,656,654],{"__ignoreMap":422},[363,658,659,660,463],{},"如果我們設定分類 threshold 為 ",[367,661,662],{},"0.5",[416,664,667],{"className":665,"code":666,"language":421,"meta":422},[419],"p > 0.5  → Fraud\np ≤ 0.5  → Normal\n",[424,668,666],{"__ignoreMap":422},[363,670,671,672,393],{},"那這筆交易就會被模型判定為 ",[367,673,674],{},"Fraud",[442,676],{},[358,678,680],{"id":679},"python-實作-logistic-regression","Python 實作 Logistic Regression",[363,682,683,684,687],{},"在實務中，我們通常會使用 ",[424,685,686],{},"scikit-learn"," 來建立 Logistic Regression 模型。以下是一個簡單範例：",[416,689,693],{"className":690,"code":691,"language":692,"meta":422,"style":422},"language-python shiki shiki-themes github-dark","from sklearn.linear_model import LogisticRegression\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import classification_report\n\n# 假設 X 為特徵資料\n# y 為是否詐欺 (0 / 1)\nX_train, X_test, y_train, y_test = train_test_split(\n    X, y, test_size=0.2, random_state=42\n)\n\nmodel = LogisticRegression()\nmodel.fit(X_train, y_train)\n\npred = model.predict(X_test)\nprint(classification_report(y_test, pred))\n","python",[424,694,695,713,726,739,746,753,759,771,798,804,809,820,826,831,842],{"__ignoreMap":422},[549,696,699,703,707,710],{"class":697,"line":698},"line",1,[549,700,702],{"class":701},"snl16","from",[549,704,706],{"class":705},"s95oV"," sklearn.linear_model ",[549,708,709],{"class":701},"import",[549,711,712],{"class":705}," LogisticRegression\n",[549,714,716,718,721,723],{"class":697,"line":715},2,[549,717,702],{"class":701},[549,719,720],{"class":705}," sklearn.model_selection ",[549,722,709],{"class":701},[549,724,725],{"class":705}," train_test_split\n",[549,727,729,731,734,736],{"class":697,"line":728},3,[549,730,702],{"class":701},[549,732,733],{"class":705}," sklearn.metrics ",[549,735,709],{"class":701},[549,737,738],{"class":705}," classification_report\n",[549,740,742],{"class":697,"line":741},4,[549,743,745],{"emptyLinePlaceholder":744},true,"\n",[549,747,749],{"class":697,"line":748},5,[549,750,752],{"class":751},"sAwPA","# 假設 X 為特徵資料\n",[549,754,756],{"class":697,"line":755},6,[549,757,758],{"class":751},"# y 為是否詐欺 (0 / 1)\n",[549,760,762,765,768],{"class":697,"line":761},7,[549,763,764],{"class":705},"X_train, X_test, y_train, y_test ",[549,766,767],{"class":701},"=",[549,769,770],{"class":705}," train_test_split(\n",[549,772,774,777,781,783,787,790,793,795],{"class":697,"line":773},8,[549,775,776],{"class":705},"    X, y, ",[549,778,780],{"class":779},"s9osk","test_size",[549,782,767],{"class":701},[549,784,786],{"class":785},"sDLfK","0.2",[549,788,789],{"class":705},", ",[549,791,792],{"class":779},"random_state",[549,794,767],{"class":701},[549,796,797],{"class":785},"42\n",[549,799,801],{"class":697,"line":800},9,[549,802,803],{"class":705},")\n",[549,805,807],{"class":697,"line":806},10,[549,808,745],{"emptyLinePlaceholder":744},[549,810,812,815,817],{"class":697,"line":811},11,[549,813,814],{"class":705},"model ",[549,816,767],{"class":701},[549,818,819],{"class":705}," LogisticRegression()\n",[549,821,823],{"class":697,"line":822},12,[549,824,825],{"class":705},"model.fit(X_train, y_train)\n",[549,827,829],{"class":697,"line":828},13,[549,830,745],{"emptyLinePlaceholder":744},[549,832,834,837,839],{"class":697,"line":833},14,[549,835,836],{"class":705},"pred ",[549,838,767],{"class":701},[549,840,841],{"class":705}," model.predict(X_test)\n",[549,843,845,848],{"class":697,"line":844},15,[549,846,847],{"class":785},"print",[549,849,850],{"class":705},"(classification_report(y_test, pred))\n",[363,852,853,854,857],{},"如果想要取得",[367,855,856],{},"預測機率","，可以使用：",[416,859,861],{"className":690,"code":860,"language":692,"meta":422,"style":422},"model.predict_proba(X_test)\n",[424,862,863],{"__ignoreMap":422},[549,864,865],{"class":697,"line":698},[549,866,860],{"class":705},[363,868,869],{},"輸出會是：",[416,871,874],{"className":872,"code":873,"language":421,"meta":422},[419],"[[0.82, 0.18], [0.25, 0.75], ...]\n",[424,875,873],{"__ignoreMap":422},[363,877,469],{},[416,879,882],{"className":880,"code":881,"language":421,"meta":422},[419],"[Normal 機率, Fraud 機率]\n",[424,883,881],{"__ignoreMap":422},[442,885],{},[358,887,889],{"id":888},"logistic-regression-的優點","Logistic Regression 的優點",[363,891,892],{},"Logistic Regression 在資料科學與金融領域非常常見，原因包括：",[894,895,897],"h3",{"id":896},"_1-可解釋性高","1) 可解釋性高",[363,899,900],{},"模型係數可以直接解釋：",[416,902,905],{"className":903,"code":904,"language":421,"meta":422},[419],"feature 增加 → odds 增加或減少\n",[424,906,904],{"__ignoreMap":422},[363,908,909],{},"這對金融風控模型非常重要。",[894,911,913],{"id":912},"_2-訓練速度快","2) 訓練速度快",[363,915,916],{},"相比於複雜模型（例如 Neural Network），Logistic Regression 訓練成本非常低。",[894,918,920],{"id":919},"_3-不容易過度擬合","3) 不容易過度擬合",[363,922,923],{},"在資料量不是很大的情況下，Logistic Regression 通常能維持穩定表現。",[442,925],{},[358,927,929],{"id":928},"logistic-regression-的限制","Logistic Regression 的限制",[363,931,932],{},"雖然 Logistic Regression 非常實用，但仍然存在一些限制：",[894,934,936],{"id":935},"_1-假設線性關係","1) 假設線性關係",[363,938,939],{},"模型假設：",[416,941,944],{"className":942,"code":943,"language":421,"meta":422},[419],"log odds 與特徵是線性關係\n",[424,945,943],{"__ignoreMap":422},[363,947,948],{},"如果資料是高度非線性的，效果可能會變差。",[894,950,952],{"id":951},"_2-不擅長複雜特徵互動","2) 不擅長複雜特徵互動",[363,954,955],{},"與 Tree-based model（如 XGBoost、LightGBM）相比，Logistic Regression 很難捕捉複雜特徵互動。",[363,957,958,959,962],{},"因此在 ",[367,960,961],{},"tabular data 任務","中，GBDT 模型常常會有更好的表現。",[442,964],{},[358,966,968],{"id":967},"logistic-regression-在實務中的角色","Logistic Regression 在實務中的角色",[363,970,971],{},"即使現在有很多強大的模型，例如：",[372,973,974,977,980,983],{},[375,975,976],{},"Random Forest",[375,978,979],{},"XGBoost",[375,981,982],{},"LightGBM",[375,984,985],{},"Deep Neural Network",[363,987,988],{},"Logistic Regression 仍然被廣泛使用，尤其在以下情境：",[372,990,991,996,1001,1006],{},[375,992,993],{},[367,994,995],{},"信用評分模型（Credit Scoring）",[375,997,998],{},[367,999,1000],{},"詐欺偵測（Fraud Detection）",[375,1002,1003],{},[367,1004,1005],{},"醫療風險預測",[375,1007,1008],{},[367,1009,1010],{},"A/B Testing 分析",[363,1012,1013],{},"原因在於：",[452,1015,1016],{},[363,1017,1018],{},[367,1019,1020],{},"Logistic Regression 的可解釋性與穩定性，在許多產業仍然非常重要。",[442,1022],{},[358,1024,1025],{"id":1025},"結論",[363,1027,1028],{},"Logistic Regression 是機器學習中最經典的分類模型之一。它的核心概念是先建立一個線性模型，再透過 Sigmoid 函數將輸出轉換為機率。由於其可解釋性高、訓練速度快且數學結構清晰，因此在金融風控、醫療預測與各類分類問題中都被廣泛使用。",[363,1030,1031],{},"理解 Logistic Regression 不僅能幫助我們掌握分類模型的基本原理，也能為後續學習更複雜的模型（如 GBDT 或 Deep Learning）建立扎實的基礎。",[442,1033],{},[358,1035,1036],{"id":1036},"參考資料",[1038,1039,1040,1048,1054],"ol",{},[375,1041,1042,1043,1047],{},"James, G., Witten, D., Hastie, T., & Tibshirani, R. ",[1044,1045,1046],"em",{},"An Introduction to Statistical Learning",". Springer.",[375,1049,1050,1051,1047],{},"Bishop, C. ",[1044,1052,1053],{},"Pattern Recognition and Machine Learning",[375,1055,1056,1057],{},"Scikit-learn Documentation – Logistic Regression: ",[1058,1059,1060],"a",{"href":1060,"rel":1061},"https://scikit-learn.org/stable/modules/linear_model.html",[1062],"nofollow",[1064,1065,1066],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":422,"searchDepth":715,"depth":715,"links":1068},[1069,1070,1071,1072,1073,1074,1075,1080,1084,1085,1086],{"id":360,"depth":715,"text":361},{"id":446,"depth":715,"text":447},{"id":500,"depth":715,"text":501},{"id":556,"depth":715,"text":557},{"id":593,"depth":715,"text":593},{"id":679,"depth":715,"text":680},{"id":888,"depth":715,"text":889,"children":1076},[1077,1078,1079],{"id":896,"depth":728,"text":897},{"id":912,"depth":728,"text":913},{"id":919,"depth":728,"text":920},{"id":928,"depth":715,"text":929,"children":1081},[1082,1083],{"id":935,"depth":728,"text":936},{"id":951,"depth":728,"text":952},{"id":967,"depth":715,"text":968},{"id":1025,"depth":715,"text":1025},{"id":1036,"depth":715,"text":1036},"從直觀概念到數學公式，深入理解 Logistic Regression 的原理，並透過實際案例了解它在分類問題中的應用。","md",null,{"tags":1091,"category":86,"date":1097},[1092,1093,1094,1095,1096],"machine learning","logistic regression","classification","statistics","data science","2026-03-08",{"title":105,"description":1087},"0ZNUOErvlDP0aO381XRVemqy2D-RKYQe6ITnfvuuRW4",[1101,1103],{"title":101,"path":102,"stem":103,"description":1102,"children":-1},"介紹 LightGBM 的核心概念、運作方式與實際應用，幫助初學者理解為什麼它在表格資料（tabular data）上表現如此優秀。",{"title":109,"path":110,"stem":111,"description":1104,"children":-1},"了解機器學習中資料切分的重要性，說明 Train、Validation 與 Test dataset 各自的角色與避免資料洩漏的方法。",1776690842039]