開發者指南# 貢獻 貢獻方式 自動化貢獻政策 提交錯誤報告或功能請求 如何撰寫良好的錯誤報告 貢獻程式碼 影片資源 如何貢獻 拉取請求檢查清單 持續整合(CI) 提交訊息標記 建置鎖定檔案 解決鎖定檔案中的衝突 停滯的拉取請求 停滯且未認領的問題 新貢獻者的議題 文件 建置文件 在 GitHub Actions 上產生文件 測試並改善測試覆蓋率 監控效能 問題追蹤器標籤 維護向後相容性 棄用 變更參數的預設值 程式碼審查指南 閱讀現有的程式碼庫 為 scikit-learn 製作最小的重現程式 良好實踐 提供包含最少註解的失敗程式碼範例 將您的腳本精簡到盡可能小的程度 除非絕對必要,請勿報告您的資料 使用 Markdown 格式 合成資料集 NumPy Pandas make_regression make_classification make_blobs 資料集載入工具 開發 scikit-learn 估算器 scikit-learn 物件的 API 不同的物件 估算器 實例化 擬合 估計屬性 通用屬性 自行撰寫估算器 get_params 和 set_params 複製 估算器類型 估算器標籤 set_output 的開發者 API check_is_fitted 的開發者 API HTML 表示法的開發者 API 程式碼撰寫指南 輸入驗證 隨機數 測試中的數值斷言 開發人員的提示和技巧 提高生產力和保持理智的提示 在拉取請求上折疊和展開過時的差異 將拉取請求檢出為遠端追蹤分支 在拉取請求中顯示程式碼覆蓋率 有用的 pytest 別名和旗標 審查的標準回覆 偵錯 CI 問題 使用鎖定檔案取得接近 CI 的環境 使用 valgrind 偵錯 Cython 中的記憶體錯誤 在 x86_64 機器上建置和測試 ARM64 平台 Meson 建置後端 開發人員工具 驗證工具 高效線性代數和陣列運算 高效隨機取樣 稀疏矩陣的高效常式 圖形常式 測試函數 多類別和多標籤工具函數 輔助函數 雜湊函數 警告和例外 如何最佳化速度 Python、Cython 或 C/C++? 分析 Python 程式碼 記憶體使用量分析 使用 Cython 分析已編譯的擴充功能 使用 yep 和 gperftools 使用偵錯器 gdb 使用 gprof 使用 valgrind / callgrind / kcachegrind kcachegrind 使用 joblib.Parallel 的多核心並行處理 一個簡單的演算法技巧:熱啟動 Cython 最佳實踐、慣例和知識 在 scikit-learn 中使用 Cython 開發的提示 簡化開發的提示 提高效能的提示 使用 OpenMP 類型 安裝 scikit-learn 的開發版本 安裝每日建置版本 從原始碼建置 相依性 執行時相依性 建置相依性 測試相依性 從標籤建置特定版本 平台特定的指示 Windows macOS 來自 conda-forge 的 macOS 編譯器 來自 Homebrew 的 macOS 編譯器 Linux 來自系統的 Linux 編譯器 來自 conda-forge 的 Linux 編譯器 FreeBSD 錯誤分類和問題管理 處理問題以改善它們 處理 PR 以協助審查 核心和貢獻者體驗團隊成員的分類操作 分類問題的典型工作流程 維護者資訊 發佈 參考步驟 更新作者列表 合併拉取請求 scikit-learn.org 網站 實驗性功能 使用繪圖 API 開發 繪圖 API 概述 使用多個軸繪圖