の出力を、フィットした生存のフィッティングされたCoxnetSurvivalAnalysis
モデルからどのように解釈するのか混乱します。私はノートブックIntro to Survival Analysis in scikit-survivalとAPIリファレンスを読んだが、説明を見つけることができません。以下は私の混乱につながるものの最小限の例です。pythonでfitされたscikit-survivalモデルから.predict()の出力を解釈するには?
import pandas as pd
from sksurv.datasets import load_veterans_lung_cancer
from sksurv.linear_model import CoxnetSurvivalAnalysis
# load data
data_X, data_y = load_veterans_lung_cancer()
# one-hot-encode categorical columns in X
categorical_cols = ['Celltype', 'Prior_therapy', 'Treatment']
X = data_X.copy()
for c in categorical_cols:
dummy_matrix = pd.get_dummies(X[c], prefix=c, drop_first=False)
X = pd.concat([X, dummy_matrix], axis=1).drop(c, axis=1)
# display final X to fit Cox Elastic Net model on
del data_X
print(X.head(3))
ので、ここでXは、モデルになるだろう:
Age_in_years Celltype Karnofsky_score Months_from_Diagnosis \
0 69.0 squamous 60.0 7.0
1 64.0 squamous 70.0 5.0
2 38.0 squamous 60.0 3.0
Prior_therapy Treatment
0 no standard
1 yes standard
2 no standard
...フィッティングモデルと発電予測に移る:
# Fit Model
coxnet = CoxnetSurvivalAnalysis()
coxnet.fit(X, data_y)
# What are these predictions?
preds = coxnet.predict(X)
preds
は、X
と同じレコード数を持ちますが、その値はdata_y
の値とは異なります。 nそれらが適合した同じデータ。
print(preds.mean())
print(data_y['Survival_in_days'].mean())
出力:
-0.044114643249153422
121.62773722627738
だから何が正確にpreds
ですか?明らかに.predict
はscikit-learnとはかなり違った意味ですが、何が分かりません。 API Referenceは「予測された決定関数」を返しますが、それはどういう意味ですか?また、X
の場合、予測される見積もりは月額yhat
でどうなりますか?私は生存分析に新しいので、私は明らかに何かが欠けている。 X入力で
あなたはこれを理解しましたか? – francium87d
@ francium87dそれはハザード比 – jeremycg
@ francium87dのように見えます。私はこの質問をgithub(https:// github。図書館の著者は、「予測は任意のスケールでのリスクスコアであり、通常はイベントの順序を決定することができますが、正確な時刻は決定できない」と述べています。この "私はどのように解釈するのですか"という質問に答えますが、実際に私が本当に望んでいたものに私を近づかせることはありませんでした。これは生存時間の予測でした。それを得るには、明らかに 'estimator.predict_survival_function'を何らかの方法。 –