[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-havakv--pycox":3,"tool-havakv--pycox":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",148568,2,"2026-04-09T23:34:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":75,"owner_email":75,"owner_twitter":75,"owner_website":75,"owner_url":77,"languages":78,"stars":83,"forks":84,"last_commit_at":85,"license":86,"difficulty_score":32,"env_os":87,"env_gpu":88,"env_ram":88,"env_deps":89,"category_tags":98,"github_topics":99,"view_count":32,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":106,"updated_at":107,"faqs":108,"releases":143},6154,"havakv\u002Fpycox","pycox","Survival analysis with PyTorch","pycox 是一个基于 PyTorch 构建的 Python 开源库，专注于生存分析与事件时间预测。它主要解决了传统统计方法在处理高维数据或复杂非线性关系时的局限性，帮助开发者利用深度学习技术更精准地预测事件发生的时间概率（如患者生存期、设备故障时间等）。\n\n该工具非常适合人工智能研究人员、数据科学家以及需要处理时间至事件数据的深度学习开发者使用。pycox 不仅封装了多种主流的生存分析模型算法，还提供了从数据预处理、神经网络构建、模型训练到效果评估的一站式解决方案。其独特的技术亮点在于依托 torchtuples 框架，极大地简化了 PyTorch 模型的训练流程，并内置了丰富的评估指标与标准数据集。此外，pycox 具有高度的灵活性，支持用户自定义网络架构和损失函数，甚至能将自编码器等结构与生存模型结合，为探索前沿算法提供了便捷的基础设施。无论是初学者通过示例笔记本快速上手，还是专家进行复杂的定制化研究，pycox 都能提供专业且友好的支持。","\n\u003Ch1 align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Ffigures\u002Flogo.svg\" alt=\"pycox\" width=\"200\">\n\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n    \u003Cstrong>Time-to-event prediction with PyTorch\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n     \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Factions\">\u003Cimg alt=\"GitHub Actions status\" src=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fworkflows\u002FPython%20package\u002Fbadge.svg\">\u003C\u002Fa>\n     \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fpycox\u002F\">\u003Cimg alt=\"PyPI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpycox.svg\">\u003C\u002Fa>\n     \u003Ca href=\"https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpycox\">\u003Cimg alt=\"PyPI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fpycox\">\u003C\u002Fa>\n     \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fpycox\u002F\">\u003Cimg alt=\"Hei\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpycox.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002FLICENSE\" title=\"License\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-BSD%202--Clause-orange.svg\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"#get-started\">Get Started\u003C\u002Fa> •\n    \u003Ca href=\"#methods\">Methods\u003C\u002Fa> •\n    \u003Ca href=\"#evaluation-criteria\">Evaluation Criteria\u003C\u002Fa> •\n    \u003Ca href=\"#datasets\">Datasets\u003C\u002Fa> •\n    \u003Ca href=\"#installation\">Installation\u003C\u002Fa> •\n    \u003Ca href=\"#references\">References\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n**pycox** is a python package for survival analysis and time-to-event prediction with [PyTorch](https:\u002F\u002Fpytorch.org), built on the [torchtuples](https:\u002F\u002Fgithub.com\u002Fhavakv\u002Ftorchtuples) package for training PyTorch models. An R version of this package is available at [survivalmodels](https:\u002F\u002Fgithub.com\u002FRaphaelS1\u002Fsurvivalmodels).\n\nThe package contains implementations of various [survival models](#methods), some useful [evaluation metrics](#evaluation-criteria), and a collection of [event-time datasets](#datasets).\nIn addition, some useful preprocessing tools are available in the `pycox.preprocessing` module.\n\n# Get Started\n\nTo get started you first need to install [PyTorch](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F).\nYou can then install **pycox** via pip: \n```sh\npip install pycox\n```\nOR, via conda:\n```sh\nconda install -c conda-forge pycox\n```\n\nWe recommend to start with [01_introduction.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F01_introduction.ipynb), which explains the general usage of the package in terms of preprocessing, creation of neural networks, model training, and evaluation procedure.\nThe notebook use the `LogisticHazard` method for illustration, but most of the principles generalize to the other methods.\n\nAlternatively, there are many examples listed in the [examples folder](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fexamples), or you can follow the tutorial based on the `LogisticHazard`:\n\n- [01_introduction.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F01_introduction.ipynb): General usage of the package in terms of preprocessing, creation of neural networks, model training, and evaluation procedure.\n\n- [02_introduction.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F02_introduction.ipynb): Quantile based discretization scheme, nested tuples with `tt.tuplefy`, entity embedding of categorical variables, and cyclical learning rates.\n\n- [03_network_architectures.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F03_network_architectures.ipynb):\n  Extending the framework with custom networks and custom loss functions. The example combines an autoencoder with a survival network, and considers a loss that combines the autoencoder loss with the loss of the `LogisticHazard`.\n\n- [04_mnist_dataloaders_cnn.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F04_mnist_dataloaders_cnn.ipynb):\n  Using dataloaders and convolutional networks for the MNIST data set. We repeat the [simulations](https:\u002F\u002Fpeerj.com\u002Farticles\u002F6257\u002F#p-41) of [\\[8\\]](#references) where each digit defines the scale parameter of an exponential distribution.\n\n\n# Methods\n\nThe following methods are available in the `pycox.methods` module.\n\n## Continuous-Time Models:\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>Method\u003C\u002Fth>\n        \u003Cth>Description\u003C\u002Fth>\n        \u003Cth>Example\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>CoxTime\u003C\u002Ftd>\n        \u003Ctd>\n        Cox-Time is a relative risk model that extends Cox regression beyond the proportional hazards \u003Ca href=\"#references\">[1]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fcox-time.ipynb\">notebook\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>CoxCC\u003C\u002Ftd>\n        \u003Ctd>\n        Cox-CC is a proportional version of the Cox-Time model \u003Ca href=\"#references\">[1]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fcox-cc.ipynb\">notebook\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>CoxPH (DeepSurv)\u003C\u002Ftd>\n        \u003Ctd>\n        CoxPH is a Cox proportional hazards model also referred to as DeepSurv \u003Ca href=\"#references\">[2]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fcox-ph.ipynb\">notebook\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>PCHazard\u003C\u002Ftd>\n        \u003Ctd>\n        The Piecewise Constant Hazard (PC-Hazard) model \u003Ca href=\"#references\">[12]\u003C\u002Fa> assumes that the continuous-time hazard function is constant in predefined intervals.\n        It is similar to the Piecewise Exponential Models \u003Ca href=\"#references\">[11]\u003C\u002Fa> and PEANN \u003Ca href=\"#references\">[14]\u003C\u002Fa>, but with a softplus activation instead of the exponential function.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fpc-hazard.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Discrete-Time Models:\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>Method\u003C\u002Fth>\n        \u003Cth>Description\u003C\u002Fth>\n        \u003Cth>Example\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>LogisticHazard (Nnet-survival)\u003C\u002Ftd>\n        \u003Ctd>\n        The Logistic-Hazard method parametrize the discrete hazards and optimize the survival likelihood \u003Ca href=\"#references\">[12]\u003C\u002Fa> \u003Ca href=\"#references\">[7]\u003C\u002Fa>.\n        It is also called Partial Logistic Regression \u003Ca href=\"#references\">[13]\u003C\u002Fa> and Nnet-survival \u003Ca href=\"#references\">[8]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F01_introduction.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>PMF\u003C\u002Ftd>\n        \u003Ctd>\n        The PMF method parametrize the probability mass function (PMF) and optimize the survival likelihood \u003Ca href=\"#references\">[12]\u003C\u002Fa>. It is the foundation of methods such as DeepHit and MTLR.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fpmf.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>DeepHit, DeepHitSingle\u003C\u002Ftd>\n        \u003Ctd>\n        DeepHit is a PMF method with a loss for improved ranking that \n        can handle competing risks \u003Ca href=\"#references\">[3]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fdeephit.ipynb\">single\u003C\u002Fa>\n        \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fdeephit_competing_risks.ipynb\">competing\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>MTLR (N-MTLR)\u003C\u002Ftd>\n        \u003Ctd>\n        The (Neural) Multi-Task Logistic Regression is a PMF methods proposed by \n        \u003Ca href=\"#references\">[9]\u003C\u002Fa> and \u003Ca href=\"#references\">[10]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fmtlr.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>BCESurv\u003C\u002Ftd>\n        \u003Ctd>\n        A method representing a set of binary classifiers that remove individuals as they are censored \u003Ca href=\"#references\">[15]\u003C\u002Fa>. The loss is the binary cross entropy of the survival estimates at a set of discrete times, with targets that are indicators of surviving each time.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fadministrative_brier_score.ipynb\">bs_example\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n# Evaluation Criteria\n\nThe following evaluation metrics are available with `pycox.evalutation.EvalSurv`.\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>Metric\u003C\u002Fth>\n        \u003Cth>Description\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>concordance_td\u003C\u002Ftd>\n        \u003Ctd>\n        The time-dependent concordance index evaluated at the event times \u003Ca href=\"#references\">[4]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>brier_score\u003C\u002Ftd>\n        \u003Ctd>\n        The IPCW Brier score (inverse probability of censoring weighted Brier score) \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[6]\u003C\u002Fa>\u003Ca href=\"#references\">[15]\u003C\u002Fa>.\n        See Section 3.1.2 of \u003Ca href=\"#references\">[15]\u003C\u002Fa> for details.\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>nbll\u003C\u002Ftd>\n        \u003Ctd>\n        The IPCW (negative) binomial log-likelihood \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[1]\u003C\u002Fa>. I.e., this is minus the binomial log-likelihood and should not be confused with the negative binomial distribution.\n        The weighting is performed as in Section 3.1.2 of \u003Ca href=\"#references\">[15]\u003C\u002Fa> for details.\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>integrated_brier_score\u003C\u002Ftd>\n        \u003Ctd>\n        The integrated IPCW Brier score. Numerical integration of the `brier_score` \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[6]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>integrated_nbll\u003C\u002Ftd>\n        \u003Ctd>\n        The integrated IPCW (negative) binomial log-likelihood. Numerical integration of the `nbll` \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[1]\u003C\u002Fa>.\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>brier_score_admin integrated_brier_score_admin\u003C\u002Ftd>\n        \u003Ctd>\n        The administrative Brier score \u003Ca href=\"#references\">[15]\u003C\u002Fa>. Works well for data with administrative censoring, meaning all censoring times are observed.\n        See this \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fadministrative_brier_score.ipynb\">example notebook\u003C\u002Fa>.\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>nbll_admin integrated_nbll_admin\u003C\u002Ftd>\n        \u003Ctd>\n        The administrative (negative) binomial log-likelihood \u003Ca href=\"#references\">[15]\u003C\u002Fa>. Works well for data with administrative censoring, meaning all censoring times are observed.\n        See this \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fadministrative_brier_score.ipynb\">example notebook\u003C\u002Fa>.\n        \u003C\u002Ftd>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n# Datasets\n\nA collection of datasets are available through the `pycox.datasets` module.\nFor example, the following code will download the `metabric` dataset and load it in the form of a pandas dataframe\n```python\nfrom pycox import datasets\ndf = datasets.metabric.read_df()\n```\n\nThe `datasets` module will store datasets under the installation directory by default. You can specify a different directory by setting the `PYCOX_DATA_DIR` environment variable.\n\n## Real Datasets:\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>Dataset\u003C\u002Fth>\n        \u003Cth>Size\u003C\u002Fth>\n        \u003Cth>Dataset\u003C\u002Fth>\n        \u003Cth>Data source\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>flchain\u003C\u002Ftd>\n        \u003Ctd>6,524\u003C\u002Ftd>\n        \u003Ctd>\n        The Assay of Serum Free Light Chain (FLCHAIN) dataset. See \n        \u003Ca href=\"#references\">[1]\u003C\u002Fa> for preprocessing.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvincentarelbundock\u002FRdatasets\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>gbsg\u003C\u002Ftd>\n        \u003Ctd>2,232\u003C\u002Ftd>\n        \u003Ctd>\n        The Rotterdam & German Breast Cancer Study Group.\n        See \u003Ca href=\"#references\">[2]\u003C\u002Fa> for details.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredleekatzman\u002FDeepSurv\u002Ftree\u002Fmaster\u002Fexperiments\u002Fdata\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>kkbox\u003C\u002Ftd>\n        \u003Ctd>2,814,735\u003C\u002Ftd>\n        \u003Ctd>\n        A survival dataset created from the WSDM - KKBox's Churn Prediction Challenge 2017 with administrative censoring.\n        See \u003Ca href=\"#references\">[1]\u003C\u002Fa> and \u003Ca href=\"#references\">[15]\u003C\u002Fa> for details.\n        Compared to kkbox_v1, this data set has more covariates and censoring times.\n        Note: You need \n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKaggle\u002Fkaggle-api#api-credentials\">Kaggle credentials\u003C\u002Fa> to access the dataset.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fkkbox-churn-prediction-challenge\u002Fdata\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>kkbox_v1\u003C\u002Ftd>\n        \u003Ctd>2,646,746\u003C\u002Ftd>\n        \u003Ctd>\n        A survival dataset created from the WSDM - KKBox's Churn Prediction Challenge 2017. \n        See \u003Ca href=\"#references\">[1]\u003C\u002Fa> for details.\n        This is not the preferred version of this data set. Use kkbox instead.\n        Note: You need \n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKaggle\u002Fkaggle-api#api-credentials\">Kaggle credentials\u003C\u002Fa> to access the dataset.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fkkbox-churn-prediction-challenge\u002Fdata\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>metabric\u003C\u002Ftd>\n        \u003Ctd>1,904\u003C\u002Ftd>\n        \u003Ctd>\n        The Molecular Taxonomy of Breast Cancer International Consortium (METABRIC).\n        See \u003Ca href=\"#references\">[2]\u003C\u002Fa> for details.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredleekatzman\u002FDeepSurv\u002Ftree\u002Fmaster\u002Fexperiments\u002Fdata\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>nwtco\u003C\u002Ftd>\n        \u003Ctd>4,028\u003C\u002Ftd>\n        \u003Ctd>\n        Data from the National Wilm's Tumor (NWTCO).\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvincentarelbundock\u002FRdatasets\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>support\u003C\u002Ftd>\n        \u003Ctd>8,873\u003C\u002Ftd>\n        \u003Ctd>\n        Study to Understand Prognoses Preferences Outcomes and Risks of Treatment (SUPPORT).\n        See \u003Ca href=\"#references\">[2]\u003C\u002Fa> for details.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredleekatzman\u002FDeepSurv\u002Ftree\u002Fmaster\u002Fexperiments\u002Fdata\">source\u003C\u002Fa>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Simulated Datasets:\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>Dataset\u003C\u002Fth>\n        \u003Cth>Size\u003C\u002Fth>\n        \u003Cth>Dataset\u003C\u002Fth>\n        \u003Cth>Data source\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>rr_nl_nph\u003C\u002Ftd>\n        \u003Ctd>25,000\u003C\u002Ftd>\n        \u003Ctd>\n        Dataset from simulation study in \u003Ca href=\"#references\">[1]\u003C\u002Fa>.\n        This is a continuous-time simulation study with event times drawn from a\n        relative risk non-linear non-proportional hazards model (RRNLNPH).\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fpycox\u002Fsimulations\u002Frelative_risk.py\">SimStudyNonLinearNonPH\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>sac3\u003C\u002Ftd>\n        \u003Ctd>100,000\u003C\u002Ftd>\n        \u003Ctd>\n        Dataset from simulation study in \u003Ca href=\"#references\">[12]\u003C\u002Fa>.\n        This is a discrete time dataset with 1000 possible event-times.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fpycox\u002Fsimulations\u002Fdiscrete_logit_hazard.py\">SimStudySACCensorConst\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>sac_admin5\u003C\u002Ftd>\n        \u003Ctd>50,000\u003C\u002Ftd>\n        \u003Ctd>\n        Dataset from simulation study in \u003Ca href=\"#references\">[15]\u003C\u002Fa>.\n        This is a discrete time dataset with 1000 possible event-times.\n        Very similar to `sac3`, but with fewer survival covariates and administrative censoring determined by 5 covariates.\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fpycox\u002Fsimulations\u002Fdiscrete_logit_hazard.py\">SimStudySACAdmin\u003C\u002Fa>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n# Installation\n\n**Note:** *This package is still in its early stages of development, so please don't hesitate to report any problems you may experience.* \n\nThe package only works for python 3.6+.\n\nBefore installing **pycox**, please install [PyTorch](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) (version >= 1.1).\nYou can then install the package with\n```sh\npip install pycox\n```\nFor the bleeding edge version, you can instead install directly from github (consider adding `--force-reinstall`):\n```sh\npip install git+git:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox.git\n```\n\n## Install from Source\n\nInstallation from source depends on [PyTorch](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F), so make sure a it is installed.\nNext, clone and install with\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox.git\ncd pycox\npip install .\n```\n\n# References\n\n  \\[1\\] Håvard Kvamme, Ørnulf Borgan, and Ida Scheel. Time-to-event prediction with neural networks and Cox regression. *Journal of Machine Learning Research*, 20(129):1–30, 2019. \\[[paper](http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv20\u002F18-424.html)\\]\n\n  \\[2\\] Jared L. Katzman, Uri Shaham, Alexander Cloninger, Jonathan Bates, Tingting Jiang, and Yuval Kluger. Deepsurv: personalized treatment recommender system using a Cox proportional hazards deep neural network. *BMC Medical Research Methodology*, 18(1), 2018. \\[[paper](https:\u002F\u002Fdoi.org\u002F10.1186\u002Fs12874-018-0482-1)\\]\n\n  \\[3\\] Changhee Lee, William R Zame, Jinsung Yoon, and Mihaela van der Schaar. Deephit: A deep learning approach to survival analysis with competing risks. *In Thirty-Second AAAI Conference on Artificial Intelligence*, 2018. \\[[paper](http:\u002F\u002Fmedianetlab.ee.ucla.edu\u002Fpapers\u002FAAAI_2018_DeepHit)\\]\n  \n  \\[4\\] Laura Antolini, Patrizia Boracchi, and Elia Biganzoli. A time-dependent discrimination index for survival data. *Statistics in Medicine*, 24(24):3927–3944, 2005. \\[[paper](https:\u002F\u002Fdoi.org\u002F10.1002\u002Fsim.2427)\\]\n\n  \\[5\\] Erika Graf, Claudia Schmoor, Willi Sauerbrei, and Martin Schumacher. Assessment and comparison of prognostic classification schemes for survival data. *Statistics in Medicine*, 18(17-18):2529–2545, 1999. \\[[paper](https:\u002F\u002Fonlinelibrary.wiley.com\u002Fdoi\u002Fabs\u002F10.1002\u002F%28SICI%291097-0258%2819990915\u002F30%2918%3A17\u002F18%3C2529%3A%3AAID-SIM274%3E3.0.CO%3B2-5)\\]\n\n  \\[6\\] Thomas A. Gerds and Martin Schumacher. Consistent estimation of the expected brier score in general survival models with right-censored event times. *Biometrical Journal*, 48 (6):1029–1040, 2006. \\[[paper](https:\u002F\u002Fonlinelibrary.wiley.com\u002Fdoi\u002Fabs\u002F10.1002\u002Fbimj.200610301?sid=nlm%3Apubmed)\\]\n\n\\[7\\] Charles C. Brown. On the use of indicator variables for studying the time-dependence of parameters in a response-time model. *Biometrics*, 31(4):863–872, 1975.\n\\[[paper](https:\u002F\u002Fwww.jstor.org\u002Fstable\u002F2529811?seq=1#metadata_info_tab_contents)\\]\n\n\\[8\\] Michael F. Gensheimer and Balasubramanian Narasimhan. A scalable discrete-time survival model for neural networks. *PeerJ*, 7:e6257, 2019.\n\\[[paper](https:\u002F\u002Fpeerj.com\u002Farticles\u002F6257\u002F)\\]\n\n\\[9\\] Chun-Nam Yu, Russell Greiner, Hsiu-Chin Lin, and Vickie Baracos. Learning patient- specific cancer survival distributions as a sequence of dependent regressors. *In Advances in Neural Information Processing Systems 24*, pages 1845–1853. Curran Associates, Inc., 2011.\n\\[[paper](https:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F4210-learning-patient-specific-cancer-survival-distributions-as-a-sequence-of-dependent-regressors)\\]\n\n\\[10\\] Stephane Fotso. Deep neural networks for survival analysis based on a multi-task framework. *arXiv preprint arXiv:1801.05512*, 2018.\n\\[[paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1801.05512.pdf)\\]\n\n\\[11\\] Michael Friedman. Piecewise exponential models for survival data with covariates. *The Annals of Statistics*, 10(1):101–113, 1982.\n\\[[paper](https:\u002F\u002Fprojecteuclid.org\u002Feuclid.aos\u002F1176345693)\\]\n\n\\[12\\] Håvard Kvamme and Ørnulf Borgan. Continuous and discrete-time survival prediction with neural networks. *arXiv preprint arXiv:1910.06724*, 2019.\n\\[[paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1910.06724.pdf)\\]\n\n\\[13\\] Elia Biganzoli, Patrizia Boracchi, Luigi Mariani, and Ettore Marubini. Feed forward neural networks for the analysis of censored survival data: a partial logistic regression approach. *Statistics in Medicine*, 17(10):1169–1186, 1998.\n\\[[paper](https:\u002F\u002Fonlinelibrary.wiley.com\u002Fdoi\u002Fabs\u002F10.1002\u002F(SICI)1097-0258(19980530)17:10%3C1169::AID-SIM796%3E3.0.CO;2-D)\\]\n\n\\[14\\] Marco Fornili, Federico Ambrogi, Patrizia Boracchi, and Elia Biganzoli. Piecewise exponential artificial neural networks (PEANN) for modeling hazard function with right censored data. *Computational Intelligence Methods for Bioinformatics and Biostatistics*, pages 125–136, 2014.\n\\[[paper](https:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007%2F978-3-319-09042-9_9)\\]\n\n\\[15\\] Håvard Kvamme and Ørnulf Borgan. The Brier Score under Administrative Censoring: Problems and Solutions. *arXiv preprint arXiv:1912.08581*, 2019.\n\\[[paper](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1912.08581.pdf)\\]\n","\u003Ch1 align=\"center\">\n    \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Ffigures\u002Flogo.svg\" alt=\"pycox\" width=\"200\">\n\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n    \u003Cstrong>使用 PyTorch 进行事件发生时间预测\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n     \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Factions\">\u003Cimg alt=\"GitHub Actions 状态\" src=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fworkflows\u002FPython%20package\u002Fbadge.svg\">\u003C\u002Fa>\n     \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fpycox\u002F\">\u003Cimg alt=\"PyPI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fpycox.svg\">\u003C\u002Fa>\n     \u003Ca href=\"https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpycox\">\u003Cimg alt=\"PyPI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fpycox\">\u003C\u002Fa>\n     \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fpycox\u002F\">\u003Cimg alt=\"Hei\" src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpycox.svg\">\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002FLICENSE\" title=\"License\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-BSD%202--Clause-orange.svg\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n\u003Cp align=\"center\">\n    \u003Ca href=\"#get-started\">开始使用\u003C\u002Fa> •\n    \u003Ca href=\"#methods\">方法\u003C\u002Fa> •\n    \u003Ca href=\"#evaluation-criteria\">评估标准\u003C\u002Fa> •\n    \u003Ca href=\"#datasets\">数据集\u003C\u002Fa> •\n    \u003Ca href=\"#installation\">安装\u003C\u002Fa> •\n    \u003Ca href=\"#references\">参考文献\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n**pycox** 是一个用于生存分析和事件发生时间预测的 Python 包，基于 [PyTorch](https:\u002F\u002Fpytorch.org) 构建，并依托于 [torchtuples](https:\u002F\u002Fgithub.com\u002Fhavakv\u002Ftorchtuples) 包来训练 PyTorch 模型。该包的 R 版本可在 [survivalmodels](https:\u002F\u002Fgithub.com\u002FRaphaelS1\u002Fsurvivalmodels) 中找到。\n\n此包包含多种 [生存模型](#methods) 的实现、一些有用的 [评估指标](#evaluation-criteria)，以及一系列 [事件时间数据集](#datasets)。此外，`pycox.preprocessing` 模块中还提供了一些实用的预处理工具。\n\n# 开始使用\n\n要开始使用，您首先需要安装 [PyTorch](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)。\n然后可以通过 pip 安装 **pycox**：\n```sh\npip install pycox\n```\n或者通过 conda 安装：\n```sh\nconda install -c conda-forge pycox\n```\n\n我们建议从 [01_introduction.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F01_introduction.ipynb) 开始，该笔记本以预处理、神经网络构建、模型训练和评估流程为例，详细介绍了包的基本用法。\n虽然该笔记本以 `LogisticHazard` 方法为例进行说明，但其中的大部分原则同样适用于其他方法。\n\n此外，[examples 文件夹](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fexamples) 中也列有许多示例，或者您可以按照基于 `LogisticHazard` 的教程进行学习：\n\n- [01_introduction.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F01_introduction.ipynb)：以预处理、神经网络构建、模型训练和评估流程为例，介绍包的一般用法。\n  \n- [02_introduction.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F02_introduction.ipynb)：基于分位数的离散化方案、使用 `tt.tuplefy` 的嵌套元组、分类变量的实体嵌入，以及循环学习率的应用。\n\n- [03_network_architectures.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F03_network_architectures.ipynb)：\n  展示如何通过自定义网络和自定义损失函数扩展框架。该示例将自动编码器与生存网络相结合，并考虑一种同时包含自动编码器损失和 `LogisticHazard` 损失的综合损失函数。\n\n- [04_mnist_dataloaders_cnn.ipynb](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F04_mnist_dataloaders_cnn.ipynb)：\n  使用数据加载器和卷积神经网络处理 MNIST 数据集。我们复现了 [\\[8\\]](#references) 中的 [模拟实验](https:\u002F\u002Fpeerj.com\u002Farticles\u002F6257\u002F#p-41)，其中每个数字定义了一个指数分布的比例参数。\n\n\n# 方法\n\n以下方法可在 `pycox.methods` 模块中找到。\n\n## 连续时间模型：\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>方法\u003C\u002Fth>\n        \u003Cth>描述\u003C\u002Fth>\n        \u003Cth>示例\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>CoxTime\u003C\u002Ftd>\n        \u003Ctd>\n        Cox-Time 是一种相对风险模型，它将 Cox 回归扩展到了比例风险假设之外 \u003Ca href=\"#references\">[1]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fcox-time.ipynb\">笔记本\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>CoxCC\u003C\u002Ftd>\n        \u003Ctd>\n        Cox-CC 是 Cox-Time 模型的比例版本 \u003Ca href=\"#references\">[1]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fcox-cc.ipynb\">笔记本\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>CoxPH (DeepSurv)\u003C\u002Ftd>\n        \u003Ctd>\n        CoxPH 是一种 Cox 比例风险模型，也被称为 DeepSurv \u003Ca href=\"#references\">[2]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fcox-ph.ipynb\">笔记本\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>PCHazard\u003C\u002Ftd>\n        \u003Ctd>\n        分段常数风险（PC-Hazard）模型 \u003Ca href=\"#references\">[12]\u003C\u002Fa> 假设连续时间的风险函数在预定义的区间内保持不变。\n        它类似于分段指数模型 \u003Ca href=\"#references\">[11]\u003C\u002Fa> 和 PEANN \u003Ca href=\"#references\">[14]\u003C\u002Fa>, 不过使用的是 softplus 激活函数而非指数函数。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fpc-hazard.ipynb\">笔记本\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 离散时间模型：\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>方法\u003C\u002Fth>\n        \u003Cth>描述\u003C\u002Fth>\n        \u003Cth>示例\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>LogisticHazard (Nnet-survival)\u003C\u002Ftd>\n        \u003Ctd>\n        Logistic-Hazard 方法对离散风险进行参数化，并优化生存似然函数 \u003Ca href=\"#references\">[12]\u003C\u002Fa> \u003Ca href=\"#references\">[7]\u003C\u002Fa>。\n        它也被称为部分逻辑回归 \u003Ca href=\"#references\">[13]\u003C\u002Fa> 和 Nnet-survival \u003Ca href=\"#references\">[8]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002F01_introduction.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>PMF\u003C\u002Ftd>\n        \u003Ctd>\n        PMF 方法对概率质量函数 (PMF) 进行参数化，并优化生存似然函数 \u003Ca href=\"#references\">[12]\u003C\u002Fa>。它是 DeepHit 和 MTLR 等方法的基础。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fpmf.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>DeepHit、DeepHitSingle\u003C\u002Ftd>\n        \u003Ctd>\n        DeepHit 是一种基于 PMF 的方法，采用改进排序的损失函数，能够处理竞争风险 \u003Ca href=\"#references\">[3]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fdeephit.ipynb\">single\u003C\u002Fa>\n        \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fdeephit_competing_risks.ipynb\">competing\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>MTLR (N-MTLR)\u003C\u002Ftd>\n        \u003Ctd>\n        （神经）多任务逻辑回归是一种由 \u003Ca href=\"#references\">[9]\u003C\u002Fa> 和 \u003Ca href=\"#references\">[10]\u003C\u002Fa> 提出的 PMF 方法。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fmtlr.ipynb\">notebook\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>BCESurv\u003C\u002Ftd>\n        \u003Ctd>\n        该方法由一组二分类器组成，在个体被删失时将其移除 \u003Ca href=\"#references\">[15]\u003C\u002Fa>。损失函数是在一组离散时间点上生存估计的二元交叉熵，其目标是每个时间点是否存活的指示变量。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fadministrative_brier_score.ipynb\">bs_example\u003C\u002Fa>\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n# 评估指标\n\n以下评估指标可通过 `pycox.evaluation.EvalSurv` 获得。\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>指标\u003C\u002Fth>\n        \u003Cth>描述\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>concordance_td\u003C\u002Ftd>\n        \u003Ctd>\n        在事件发生时间点上评估的时变一致性指数 \u003Ca href=\"#references\">[4]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>brier_score\u003C\u002Ftd>\n        \u003Ctd>\n        IPCW 布里尔评分（删失概率逆加权布里尔评分） \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[6]\u003C\u002Fa>\u003Ca href=\"#references\">[15]\u003C\u002Fa>。\n        详情请参阅 \u003Ca href=\"#references\">[15]\u003C\u002Fa> 第 3.1.2 节。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>nbll\u003C\u002Ftd>\n        \u003Ctd>\n        IPCW（负）二项式对数似然 \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[1]\u003C\u002Fa>。即这是二项式对数似然的负值，不应与负二项式分布混淆。\n        权重计算方式同 \u003Ca href=\"#references\">[15]\u003C\u002Fa> 第 3.1.2 节所述。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>integrated_brier_score\u003C\u002Ftd>\n        \u003Ctd>\n        整合后的 IPCW 布里尔评分。对 `brier_score` 进行数值积分 \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[6]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>integrated_nbll\u003C\u002Ftd>\n        \u003Ctd>\n        整合后的 IPCW（负）二项式对数似然。对 `nbll` 进行数值积分 \u003Ca href=\"#references\">[5]\u003C\u002Fa>\u003Ca href=\"#references\">[1]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>brier_score_admin integrated_brier_score_admin\u003C\u002Ftd>\n        \u003Ctd>\n        行政性布里尔评分 \u003Ca href=\"#references\">[15]\u003C\u002Fa>。适用于存在行政删失的数据，即所有删失时间均可观测。\n        请参阅此 \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fadministrative_brier_score.ipynb\">示例 notebook\u003C\u002Fa>。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>nbll_admin integrated_nbll_admin\u003C\u002Ftd>\n        \u003Ctd>\n        行政性（负）二项式对数似然 \u003Ca href=\"#references\">[15]\u003C\u002Fa>。同样适用于存在行政删失的数据，即所有删失时间均可观测。\n        请参阅此 \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fexamples\u002Fadministrative_brier_score.ipynb\">示例 notebook\u003C\u002Fa>。\n        \u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n# 数据集\n\n通过 `pycox.datasets` 模块可以获取一系列数据集。\n例如，以下代码将下载 `metabric` 数据集并以 pandas 数据框的形式加载：\n```python\nfrom pycox import datasets\ndf = datasets.metabric.read_df()\n```\n\n默认情况下，`datasets` 模块会将数据集存储在安装目录下。您可以通过设置环境变量 `PYCOX_DATA_DIR` 来指定其他目录。\n\n## 真实数据集：\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>数据集\u003C\u002Fth>\n        \u003Cth>规模\u003C\u002Fth>\n        \u003Cth>数据集\u003C\u002Fth>\n        \u003Cth>数据来源\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>flchain\u003C\u002Ftd>\n        \u003Ctd>6,524\u003C\u002Ftd>\n        \u003Ctd>\n        血清游离轻链（FLCHAIN）数据集。预处理方法见 \n        \u003Ca href=\"#references\">[1]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvincentarelbundock\u002FRdatasets\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>gbsg\u003C\u002Ftd>\n        \u003Ctd>2,232\u003C\u002Ftd>\n        \u003Ctd>\n        鹿特丹和德国乳腺癌研究小组的数据。\n        详情请参阅 \u003Ca href=\"#references\">[2]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredleekatzman\u002FDeepSurv\u002Ftree\u002Fmaster\u002Fexperiments\u002Fdata\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>kkbox\u003C\u002Ftd>\n        \u003Ctd>2,814,735\u003C\u002Ftd>\n        \u003Ctd>\n        基于WSDM - KKBox 2017年客户流失预测挑战赛构建的生存数据集，包含行政删失信息。\n        详情请参阅 \u003Ca href=\"#references\">[1]\u003C\u002Fa> 和 \u003Ca href=\"#references\">[15]\u003C\u002Fa>。\n        与kkbox_v1相比，该数据集具有更多的协变量和删失时间。\n        注意：访问该数据集需要 \n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKaggle\u002Fkaggle-api#api-credentials\">Kaggle账号凭据\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fkkbox-churn-prediction-challenge\u002Fdata\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>kkbox_v1\u003C\u002Ftd>\n        \u003Ctd>2,646,746\u003C\u002Ftd>\n        \u003Ctd>\n        基于WSDM - KKBox 2017年客户流失预测挑战赛构建的生存数据集。\n        详情请参阅 \u003Ca href=\"#references\">[1]\u003C\u002Fa>。\n        这不是该数据集的首选版本，请使用kkbox。\n        注意：访问该数据集需要 \n        \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FKaggle\u002Fkaggle-api#api-credentials\">Kaggle账号凭据\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.kaggle.com\u002Fc\u002Fkkbox-churn-prediction-challenge\u002Fdata\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>metabric\u003C\u002Ftd>\n        \u003Ctd>1,904\u003C\u002Ftd>\n        \u003Ctd>\n        国际乳腺癌分子分类联盟（METABRIC）的数据。\n        详情请参阅 \u003Ca href=\"#references\">[2]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredleekatzman\u002FDeepSurv\u002Ftree\u002Fmaster\u002Fexperiments\u002Fdata\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>nwtco\u003C\u002Ftd>\n        \u003Ctd>4,028\u003C\u002Ftd>\n        \u003Ctd>\n        来自全国威尔姆斯肿瘤研究组（NWTCO）的数据。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvincentarelbundock\u002FRdatasets\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>support\u003C\u002Ftd>\n        \u003Ctd>8,873\u003C\u002Ftd>\n        \u003Ctd>\n        “理解治疗预后、偏好、结果及风险”研究（SUPPORT）。\n        详情请参阅 \u003Ca href=\"#references\">[2]\u003C\u002Fa>。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredleekatzman\u002FDeepSurv\u002Ftree\u002Fmaster\u002Fexperiments\u002Fdata\">来源\u003C\u002Fa>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 模拟数据集：\n\n\u003Ctable>\n    \u003Ctr>\n        \u003Cth>数据集\u003C\u002Fth>\n        \u003Cth>规模\u003C\u002Fth>\n        \u003Cth>数据集\u003C\u002Fth>\n        \u003Cth>数据来源\u003C\u002Fth>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>rr_nl_nph\u003C\u002Ftd>\n        \u003Ctd>25,000\u003C\u002Ftd>\n        \u003Ctd>\n        来自 \u003Ca href=\"#references\">[1]\u003C\u002Fa> 中模拟研究的数据集。\n        这是一项连续时间模拟研究，事件时间基于相对风险非线性非比例风险模型（RRNLNPH）生成。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fblob\u002Fmaster\u002Fpycox\u002Fsimulations\u002Frelative_risk.py\">SimStudyNonLinearNonPH\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>sac3\u003C\u002Ftd>\n        \u003Ctd>100,000\u003C\u002Ftd>\n        \u003Ctd>\n        来自 \u003Ca href=\"#references\">[12]\u003C\u002Fa> 中模拟研究的数据集。\n        这是一个离散时间数据集，有1000种可能的事件时间。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fpycox\u002Fsimulations\u002Fdiscrete_logit_hazard.py\">SimStudySACCensorConst\u003C\u002Fa>\n    \u003C\u002Ftr>\n    \u003Ctr>\n        \u003Ctd>sac_admin5\u003C\u002Ftd>\n        \u003Ctd>50,000\u003C\u002Ftd>\n        \u003Ctd>\n        来自 \u003Ca href=\"#references\">[15]\u003C\u002Fa> 中模拟研究的数据集。\n        这也是一个离散时间数据集，有1000种可能的事件时间。\n        与`sac3`非常相似，但生存协变量较少，并且行政删失由5个协变量决定。\n        \u003C\u002Ftd>\n        \u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fpycox\u002Fsimulations\u002Fdiscrete_logit_hazard.py\">SimStudySACAdmin\u003C\u002Fa>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\n# 安装\n\n**注意：** *本包目前仍处于开发初期，如果您遇到任何问题，请随时报告。*\n\n该包仅支持Python 3.6及以上版本。\n\n在安装**pycox**之前，请先安装[PyTorch](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)（版本≥1.1）。\n随后可以通过以下命令安装该包：\n```sh\npip install pycox\n```\n若需使用最新版本，可直接从GitHub安装（建议添加`--force-reinstall`参数）：\n```sh\npip install git+git:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox.git\n```\n\n## 从源码安装\n\n从源码安装依赖于[PyTorch](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)，因此请确保已安装PyTorch。\n接下来，克隆并安装：\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox.git\ncd pycox\npip install .\n```\n\n# 参考文献\n\n  \\[1\\] Håvard Kvamme、Ørnulf Borgan 和 Ida Scheel。基于神经网络和Cox回归的时间至事件预测。《机器学习研究期刊》，20(129):1–30，2019年。\\[论文](http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv20\u002F18-424.html)\\]\n\n  \\[2\\] Jared L. Katzman、Uri Shaham、Alexander Cloninger、Jonathan Bates、Tingting Jiang 和 Yuval Kluger。Deepsurv：使用Cox比例风险深度神经网络的个性化治疗推荐系统。《BMC医学研究方法学》，18(1)，2018年。\\[论文](https:\u002F\u002Fdoi.org\u002F10.1186\u002Fs12874-018-0482-1)\\]\n\n  \\[3\\] Changhee Lee、William R Zame、Jinsung Yoon 和 Mihaela van der Schaar。Deephit：一种用于竞争风险生存分析的深度学习方法。《第三十二届人工智能协会会议论文集》，2018年。\\[论文](http:\u002F\u002Fmedianetlab.ee.ucla.edu\u002Fpapers\u002FAAAI_2018_DeepHit)\\]\n\n  \\[4\\] Laura Antolini、Patrizia Boracchi 和 Elia Biganzoli。生存数据的时间依赖性判别指数。《统计在医学中》，24(24):3927–3944，2005年。\\[论文](https:\u002F\u002Fdoi.org\u002F10.1002\u002Fsim.2427)\\]\n\n  \\[5\\] Erika Graf、Claudia Schmoor、Willi Sauerbrei 和 Martin Schumacher。生存数据预后分类方案的评估与比较。《统计在医学中》，18(17-18):2529–2545，1999年。\\[论文](https:\u002F\u002Fonlinelibrary.wiley.com\u002Fdoi\u002Fabs\u002F10.1002\u002F%28SICI%291097-0258%2819990915\u002F30%2918%3A17\u002F18%3C2529%3A%3AAID-SIM274%3E3.0.CO%3B2-5)\\]\n\n  \\[6\\] Thomas A. Gerds 和 Martin Schumacher。右删失事件时间下一般生存模型中期望Brier分数的一致估计。《生物计量学杂志》，48(6):1029–1040，2006年。\\[论文](https:\u002F\u002Fonlinelibrary.wiley.com\u002Fdoi\u002Fabs\u002F10.1002\u002Fbimj.200610301?sid=nlm%3Apubmed)\\]\n\n  \\[7\\] Charles C. Brown。关于在反应时间模型中使用指示变量研究参数时间依赖性的探讨。《生物计量学》，31(4):863–872，1975年。\n  \\[论文](https:\u002F\u002Fwww.jstor.org\u002Fstable\u002F2529811?seq=1#metadata_info_tab_contents)\\]\n\n  \\[8\\] Michael F. Gensheimer 和 Balasubramanian Narasimhan。一种适用于神经网络的可扩展离散时间生存模型。《PeerJ》，7:e6257，2019年。\n  \\[论文](https:\u002F\u002Fpeerj.com\u002Farticles\u002F6257\u002F)\\]\n\n  \\[9\\] Chun-Nam Yu、Russell Greiner、Hsiu-Chin Lin 和 Vickie Baracos。将患者特异性癌症生存分布学习为一系列相关回归器。《神经信息处理系统进展24》，第1845–1853页。Curran Associates, Inc.，2011年。\n  \\[论文](https:\u002F\u002Fpapers.nips.cc\u002Fpaper\u002F4210-learning-patient-specific-cancer-survival-distributions-as-a-sequence-of-dependent-regressors)\\]\n\n  \\[10\\] Stephane Fotso。基于多任务框架的生存分析深度神经网络。《arXiv预印本 arXiv:1801.05512》，2018年。\n  \\[论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1801.05512.pdf)\\]\n\n  \\[11\\] Michael Friedman。带有协变量的生存数据分段指数模型。《统计年鉴》，10(1):101–113，1982年。\n  \\[论文](https:\u002F\u002Fprojecteuclid.org\u002Feuclid.aos\u002F1176345693)\\]\n\n  \\[12\\] Håvard Kvamme 和 Ørnulf Borgan。基于神经网络的连续与离散时间生存预测。《arXiv预印本 arXiv:1910.06724》，2019年。\n  \\[论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1910.06724.pdf)\\]\n\n  \\[13\\] Elia Biganzoli、Patrizia Boracchi、Luigi Mariani 和 Ettore Marubini。用于删失生存数据分析的前馈神经网络：一种部分逻辑回归方法。《统计在医学中》，17(10):1169–1186，1998年。\n  \\[论文](https:\u002F\u002Fonlinelibrary.wiley.com\u002Fdoi\u002Fabs\u002F10.1002\u002F(SICI)1097-0258(19980530)17:10%3C1169::AID-SIM796%3E3.0.CO;2-D)\\]\n\n  \\[14\\] Marco Fornili、Federico Ambrogi、Patrizia Boracchi 和 Elia Biganzoli。用于建模右删失数据危险函数的分段指数人工神经网络（PEANN）。《生物信息学与生物统计学的计算智能方法》，第125–136页，2014年。\n  \\[论文](https:\u002F\u002Flink.springer.com\u002Fchapter\u002F10.1007%2F978-3-319-09042-9_9)\\]\n\n  \\[15\\] Håvard Kvamme 和 Ørnulf Borgan。行政删失下的Brier分数：问题与解决方案。《arXiv预印本 arXiv:1912.08581》，2019年。\n  \\[论文](https:\u002F\u002Farxiv.org\u002Fpdf\u002F1912.08581.pdf)\\]","# PyCox 快速上手指南\n\nPyCox 是一个基于 PyTorch 的 Python 包，专用于生存分析（Survival Analysis）和时间至事件预测（Time-to-event prediction）。它提供了多种深度学习生存模型、评估指标以及预处理工具。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux, macOS 或 Windows\n*   **Python 版本**: 3.6 及以上\n*   **核心依赖**:\n    *   [PyTorch](https:\u002F\u002Fpytorch.org\u002F) (必须先安装)\n    *   `torchtuples` (安装 pycox 时会自动处理)\n    *   `pandas`, `numpy`, `scikit-learn` 等科学计算库\n\n**注意**：建议先根据官方文档安装适合您 CUDA 版本的 PyTorch。\n\n## 安装步骤\n\n您可以选择使用 `pip` 或 `conda` 进行安装。国内用户推荐使用清华源或阿里源以加速下载。\n\n### 方式一：使用 pip 安装\n\n```bash\n# 使用默认源\npip install pycox\n\n# 【推荐】国内用户使用清华源加速\npip install pycox -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 方式二：使用 conda 安装\n\n```bash\nconda install -c conda-forge pycox\n```\n\n## 基本使用\n\nPyCox 的工作流通常包含四个步骤：**数据预处理** -> **构建神经网络** -> **定义模型与训练** -> **评估**。\n\n以下是一个基于 `LogisticHazard`（离散时间模型）的最小化示例：\n\n### 1. 导入依赖与准备数据\n\n```python\nimport torch\nimport torch.nn as nn\nfrom pycox import datasets\nfrom pycox.models import LogisticHazard\nfrom pycox.evaluation import EvalSurv\nfrom torchtuples import prutils\n\n# 加载示例数据集 (metabric)\ndf = datasets.metabric.read_df()\n\n# 拆分特征 (x) 和 标签 (duration, event)\ncols_standardize = ['x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7', 'x8', 'x9']\ncols_categorize = ['x10', 'x11', 'x12', 'x13', 'x14', 'x15', 'x16', 'x17', 'x18', 'x19']\n\n# 简单的预处理：标准化数值列，分类列转为整数索引\n# 实际项目中建议使用 pycox.preprocessing 模块进行更严谨的处理\nfrom sklearn.preprocessing import StandardLabelEncoder\nstandardize = lambda x: (x - x.mean()) \u002F x.std()\ndf[cols_standardize] = df[cols_standardize].apply(standardize)\ndf[cols_categorize] = df[cols_categorize].apply(StandardLabelEncoder().fit_transform)\n\nx = df[cols_standardize + cols_categorize].values\ny_duration = df['dur'].values\ny_event = df['event'].values\n\n# 划分训练集和测试集\ntrain_idx = df.index[:int(len(df)*0.7)]\ntest_idx = df.index[int(len(df)*0.7):]\n\nx_train, y_dur_train, y_event_train = x[train_idx], y_duration[train_idx], y_event[train_idx]\nx_test, y_dur_test, y_event_test = x[test_idx], y_duration[test_idx], y_event[test_idx]\n```\n\n### 2. 构建神经网络\n\n定义一个简单的全连接网络（MLP）：\n\n```python\nin_features = x_train.shape[1]\nnum_nodes = [32, 32]\nout_features = 1 # 对于 LogisticHazard，输出节点数通常由离散化的时间区间数决定，这里简化示意\n\nnet = nn.Sequential(\n    nn.Linear(in_features, num_nodes[0]),\n    nn.ReLU(),\n    nn.Dropout(0.1),\n    nn.Linear(num_nodes[0], num_nodes[1]),\n    nn.ReLU(),\n    nn.Dropout(0.1),\n    nn.Linear(num_nodes[1], out_features) # 实际使用时需根据 discretization 方案调整输出维度\n)\n```\n\n### 3. 定义模型并训练\n\n```python\n# 定义离散化方案 (将连续时间划分为区间)\n# 这里使用简单的分位数划分，实际请参考官方 notebook 中的详细设置\nbreaks = prutils.quantile_discretizer(y_dur_train, quantiles=[0.25, 0.5, 0.75])\n\n# 初始化模型\nmodel = LogisticHazard(net, breaks=breaks)\n\n# 配置优化器\noptimizer = model.optimizer(lr=0.01)\n\n# 开始训练\n# batch_size, epochs, verbose 等参数可根据需要调整\nmodel.fit(x_train, (y_dur_train, y_event_train), batch_size=256, epochs=50, verbose=True)\n```\n\n### 4. 模型评估\n\n使用测试集进行预测并计算一致性指数（Concordance Index）：\n\n```python\n# 获取预测结果\nsurv = model.predict_surv_df(x_test)\n\n# 初始化评估对象\nev = EvalSurv(surv, y_dur_test, y_event_test, censor_surv='km')\n\n# 计算时间依赖性一致性指数 (Time-dependent Concordance Index)\nc_index = ev.concordance_td('antolini')\nprint(f\"Concordance Index: {c_index}\")\n\n# 绘制生存曲线示例 (前 5 个样本)\n# surv.iloc[:, :5].plot(drawstyle='steps-post')\n```\n\n> **提示**：以上代码为逻辑演示。完整的预处理流程（如实体嵌入、复杂的离散化方案）和更多模型（如 CoxPH, DeepHit 等）的详细用法，强烈建议参考项目官方提供的 [Jupyter Notebook 教程](https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fhavakv\u002Fpycox\u002Ftree\u002Fmaster\u002Fexamples\u002F)，特别是 `01_introduction.ipynb`。","某医疗科技公司的数据科学团队正在构建癌症患者术后复发风险预测系统，需要精准估算不同时间点的生存概率以辅助医生制定个性化随访方案。\n\n### 没有 pycox 时\n- 传统统计模型（如 Cox 比例风险模型）难以直接融合医学影像等非结构化数据，特征工程极其繁琐且信息损失严重。\n- 缺乏基于深度学习的端到端训练框架，无法利用 PyTorch 的自动微分优势灵活定制复杂的神经网络架构来处理高维病历数据。\n- 处理“删失数据”（即部分患者在观察期内未复发或失访）时需手动编写复杂的似然函数，代码易错且难以复现前沿算法。\n- 评估模型性能时，缺少标准化的时间依赖性指标（如动态 C-index），导致难以客观对比不同时间点上的预测准确度。\n\n### 使用 pycox 后\n- 直接调用内置的 `LogisticHazard` 或 `DeepHit` 等方法，轻松将 CNN 提取的影像特征与临床表格数据结合，实现多模态端到端建模。\n- 依托 PyTorch 生态，团队可快速搭建包含自编码器或注意力机制的自定义网络，并利用 `torchtuples` 简化训练循环与超参数调优。\n- 内置模块自动处理删失数据的损失函数计算，无需重复造轮子，显著降低算法实现门槛并确保数学逻辑的严谨性。\n- 提供开箱即用的评估工具包，一键生成时间依赖性的 ROC 曲线和 C-index，直观量化模型在整个随访周期内的表现。\n\npycox 通过将前沿生存分析算法与 PyTorch 深度整合，让医疗团队能高效构建高精度的动态风险预测模型，真正赋能临床决策。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhavakv_pycox_ba1ac3d1.png","havakv","Håvard Kvamme","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhavakv_24d6be02.png",null,"University of Oslo","https:\u002F\u002Fgithub.com\u002Fhavakv",[79],{"name":80,"color":81,"percentage":82},"Python","#3572A5",100,968,206,"2026-04-02T05:49:21","BSD-2-Clause","","未说明",{"notes":90,"python":91,"dependencies":92},"该工具基于 PyTorch 构建，需先安装 PyTorch。支持通过 pip 或 conda 安装。包含多种生存分析模型（连续时间和离散时间）及评估指标。示例代码以 Jupyter Notebook 形式提供，涵盖数据预处理、网络构建、训练及评估流程。数据集默认下载到安装目录，可通过设置环境变量 PYCOX_DATA_DIR 更改存储路径。","3.6+",[93,94,95,96,97],"torch","torchtuples","pandas","numpy","scikit-learn",[14],[100,101,102,103,104,105],"survival-analysis","pytorch","python","machine-learning","neural-networks","deep-learning","2026-03-27T02:49:30.150509","2026-04-10T15:53:37.551096",[109,114,119,124,129,134,138],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},27862,"如何为不平衡数据集添加自定义评估指标或损失函数？","如果需要自定义评估逻辑，可以创建一个继承自 `Callback` 的类（例如 `LRScheduler` 的包装器），并在 `on_epoch_end` 方法中调用自定义评分函数。如果希望使用训练损失作为调度器的评分依据，可以使用 `self.model.train_metrics.scores['loss']['score'][-1]` 获取。对于正则化，通常不建议直接在损失函数中添加项，而是通过在优化器中设置权重衰减（weight decay）来实现 L2 正则化，或使用 Dropout 层进行正则化。","https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fissues\u002F49",{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},27863,"如何在 CoxTime 模型中使用时变协变量（time-dependent covariates）？","虽然具体实现细节取决于数据格式，但一般建议将时间相关的变量（如 's'）作为普通协变量包含在输入中。如果是数值型协变量，可能需要进行标准化处理；如果是二元变量，则可以直接使用。有用户尝试将数据转换为计数过程形式（counting process form）以配合标准 Cox 时变模型，并与 CoxTime 进行比较，这表明处理时变协变量的关键在于正确构造输入数据的结构。","https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fissues\u002F18",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},27864,"如何获取具体的事件发生时间预测值（time-to-event prediction）？","PyCoX 主要输出生存函数曲线。若要获得单个时间点预测值，通常建议使用中位生存时间（median survival time）。具体做法是找到生存函数值首次下降到 0.5 以下的时间索引。虽然没有官方固定的点估计方法，但中位数是一个合理的选择，也可以通过验证集来确定最佳阈值。","https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fissues\u002F41",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},27865,"如何在 Windows 上解决下载 KKBox 数据集时的 FileNotFoundError 错误？","该问题通常与解压 `.7z` 文件有关。维护者已确认在 Windows 上需要重写代码以使用 `py7zr` 库来处理解压过程。如果遇到此错误，请确保安装了 `py7zr`，并检查环境变量 `PYCOX_DATA_DIR` 是否设置正确。维护者已针对 Windows 更新了代码以兼容 `py7zr`，建议更新到最新版本。","https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fissues\u002F68",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},27866,"如何在 CoxPH 或 CoxTime 模型中使用 LSTM 代替默认的 MLPVanilla？","可以自定义一个继承自 `nn.Module` 的 LSTM 类。关键是要正确处理输入维度：在 `forward` 方法中，将输入重塑为 `(len(input), 1, embedding_dim)` 以适应 LSTM 的序列输入要求（每个患者作为一个序列）。LSTM 输出后需展平并连接全连接层。示例代码显示，只要输入形状调整正确，这种替换在理论上是可行的，且能正常工作。","https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fissues\u002F53",{"id":135,"question_zh":136,"answer_zh":137,"source_url":113},27867,"如何在神经网络中进行正则化（Regularization）？","在神经网络的损失函数中直接添加正则化项并不常见。对于 L2 正则化（类似岭回归），推荐在优化器中直接设置 `weight_decay` 参数（例如 `torch.optim.Adam` 中的 `weight_decay` 参数），这在数学上等同于 L2 惩罚。L1 正则化在神经网络中较少使用。此外，Dropout 是一种非常有效且常用的正则化方法，通常比修改损失函数更受推荐。",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},27868,"是否支持通过 Conda 安装 PyCoX 及其依赖？","是的，社区贡献者已经添加了 Conda 配方（recipe）。由于部分依赖（如 `py7zr`）需要编译 C\u002FC++ 库，安装过程曾较为复杂，但目前所有依赖均已打包进 Conda。用户可以通过 Conda 渠道安装，这简化了特别是在需要 C\u002FC++ 库环境下的分发和安装过程。","https:\u002F\u002Fgithub.com\u002Fhavakv\u002Fpycox\u002Fissues\u002F88",[144,148,152,156,160,165,170],{"id":145,"version":146,"summary_zh":75,"released_at":147},188810,"v0.3.0","2024-09-04T15:31:22",{"id":149,"version":150,"summary_zh":75,"released_at":151},188811,"v0.2.3","2022-01-14T09:10:02",{"id":153,"version":154,"summary_zh":75,"released_at":155},188812,"v0.2.2","2021-02-02T13:44:18",{"id":157,"version":158,"summary_zh":75,"released_at":159},188813,"v0.2.1","2020-04-30T08:55:11",{"id":161,"version":162,"summary_zh":163,"released_at":164},188814,"v0.2.0","## 发行说明\n\n\n### 功能特性\n\n- 针对存在行政删失的数据集，新增了行政布里尔分数和二项式对数似然作为评估指标。\n\n- 新增 `BCESurv` 方法，该方法不考虑删失信息，也不强制生存函数单调递增。它旨在模拟一组忽略删失观测的二分类器。\n\n- 改进了 `kkbox` 数据集，增加了行政删失时间及更多协变量。\n\n- 新增 `sac_admin5` 模拟数据集，包含行政删失信息。\n\n- 增加了更多关于协变量相关删失时间和行政删失的模拟研究。\n\n\n### 变更\n\n- 更新以兼容 `torchtuples` v.0.2.0。\n\n- `CoxPH` 现在使用常规数据集，不再需要对生存时间进行排序。旧方法已更名为 `CoxPHSorted`，但未来将被移除。","2019-12-19T08:15:02",{"id":166,"version":167,"summary_zh":168,"released_at":169},188815,"v0.1.1","修复了一些小错误，并发布到 PyPI。","2019-12-17T11:15:20",{"id":171,"version":172,"summary_zh":173,"released_at":174},188816,"v0.1.0","# 发行说明 v0.1.0\n\n这些说明主要关注现有代码的更改，而非新增功能。\n\n## 评估标准\n\n- 修复了 IPCW 中的索引错误。\n- `EvalSurv` 现在有一个 `steps` 参数，用于确定生存曲线在估计时间点之间的行为方式。之前默认为 `'pre'`，现在默认改为 `'post'`。这将对离散时间方法的一致性指标影响最大。若需获得旧的结果，请设置 `ev.step = 'pre'`，或使用合理的插值方案。\n- 将 `pycox.evaluation.utils` 移至 `pycox.utils`。\n- 用负二项式对数似然 `nbll` 替换了二项式对数似然 `mbll`。即仅符号不同。\n\n## 模型\n\n- 用 `predict_surv` 和 `predict_surv_df` 替代了 `predict_survival_function`。\n- 提供了针对单个对照组的更稳定的 CoxCC 和 CoxTime 损失函数版本。\n- 重新组织了 Cox 模型的模块位置。\n\n## 预处理\n\n- 为各方法添加了分位数离散化功能。","2019-10-16T14:45:59"]