python 中的一致性索引
concordance index in python
我正在寻找 Harrell's c-index
(一致性索引)的 python/sklearn/lifelines/whatever 实现,它在 random survival forests 中提到。
C 指数的计算步骤如下:
- 根据数据形成所有可能的案例对。
- 省略那些生存时间较短的对。如果
Ti=Tj
则省略 i 和 j 对,除非至少有一个是死亡。让 Permissible
表示允许的对总数。
- 对于每个允许的
Ti
和 Tj
不相等的对,如果较短的生存期则计为 1
时间的预测结果更差;如果预测结果相同,则计为 0.5。对于每个允许的对,其中 Ti=Tj
并且都是死亡,如果预测结果相同,则计为 1;否则,计数 0.5。对于每个允许的
对 Ti=Tj
,但不是两者都是死亡,如果死亡有
更差的预期结果;否则,计数 0.5。让索引表示
所有允许对的总和。
- C 指数
C
由 C=Concordance/Permissible
定义。
注:nltk
有一个ConcordanceIndex
方法,意义不同:(
LifeLines 包现已实现此功能 c-index, or concordance-index
LifeLine 包可以实现索引索引。
pip install lifelines
或
conda install -c conda-forge lifelines
示例:
from lifelines.utils import concordance_index
cph = CoxPHFitter().fit(df, 'T', 'E')
concordance_index(df['T'], -cph.predict_partial_hazard(df), df['E'])
我正在寻找 Harrell's c-index
(一致性索引)的 python/sklearn/lifelines/whatever 实现,它在 random survival forests 中提到。
C 指数的计算步骤如下:
- 根据数据形成所有可能的案例对。
- 省略那些生存时间较短的对。如果
Ti=Tj
则省略 i 和 j 对,除非至少有一个是死亡。让Permissible
表示允许的对总数。 - 对于每个允许的
Ti
和Tj
不相等的对,如果较短的生存期则计为 1 时间的预测结果更差;如果预测结果相同,则计为 0.5。对于每个允许的对,其中Ti=Tj
并且都是死亡,如果预测结果相同,则计为 1;否则,计数 0.5。对于每个允许的 对Ti=Tj
,但不是两者都是死亡,如果死亡有 更差的预期结果;否则,计数 0.5。让索引表示 所有允许对的总和。 - C 指数
C
由C=Concordance/Permissible
定义。
注:nltk
有一个ConcordanceIndex
方法,意义不同:(
LifeLines 包现已实现此功能 c-index, or concordance-index
LifeLine 包可以实现索引索引。
pip install lifelines
或
conda install -c conda-forge lifelines
示例:
from lifelines.utils import concordance_index
cph = CoxPHFitter().fit(df, 'T', 'E')
concordance_index(df['T'], -cph.predict_partial_hazard(df), df['E'])