问题描述
from sksurv.preprocessing import OneHotEncoder
from sksurv.datasets import load_veterans_lung_cancer
from sksurv.linear_model import CoxPHSurvivalAnalysis
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data_x,data_y = load_veterans_lung_cancer()
data_y
data_x_numeric = OneHotEncoder().fit_transform(data_x)
estimator = CoxPHSurvivalAnalysis()
estimator.fit(data_x_numeric,data_y)
x_new = pd.DataFrame.from_dict({
1: [65,1,60,1],2: [65,0],3: [65,4: [65,1]},columns=data_x_numeric.columns,orient='index')
pred_surv = estimator.predict_survival_function(x_new)
当我想绘制结果时:
time_points = np.arange(1,1000)
for i,surv_func in enumerate(pred_surv):
plt.step(time_points,surv_func(time_points),where="post",label="Sample %d" % (i + 1))
plt.ylabel("est. probability of survival $\hat{S}(t)$")
plt.xlabel("time $t$")
plt.legend(loc="best")
我收到以下错误:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我该如何解决这个问题?
第二个问题是,如何将对象 pred_surv 的结果传输到数据帧?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)