下面是机器学习支持向量机的代码,想问以下我已经有影像组学的特征了,我要加入临床数据,我应该怎么做,且我要是想要输出训练集的ROC数据应该怎么补充代码
```
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.svm import LinearSVC
from sklearn import metrics
train_path = r'F:\ra\STAR\three chaifengxunliangyangzhengji\RFE/train_screen.xlsx'
test_path = r'F:\ra\STAR\three chaifengxunliangyangzhengji\RFE/test_screen.xlsx'
save_dir = r'F:\ra\STAR\four jiqixuexi\logistic'
os.makedirs(save_dir, exist_ok=True)
df_train = pd.read_excel(train_path)
X_train = df_train.iloc[:, :-1] # 训练集特征
y_train = df_train.iloc[:, -1] # 训练集标签
print('train datasets:\n', df_train)
df_test = pd.read_excel(test_path)
X_test = df_test.iloc[:, :-1] # 测试集特征
y_test = df_test.iloc[:, -1] # 测试集标签
print('test datasets:\n', df_test)
estimator = LinearSVC()
estimator.fit(X_train, y_train)
y_pred_test = estimator.predict(X_test).tolist() # 预测结果
print('y_pred_test:', y_pred_test)
y_score_test = estimator._predict_proba_lr(X_test)[:, 1].tolist() # 预测概率
print('y_score_test:', y_score_test)
conf_m = metrics.confusion_matrix(y_test, y_pred_test)
TP = conf_m[1][1] # 真阳性
FP = conf_m[0][1] # 假阳性
TN = conf_m[0][0] # 真阴性
FN = conf_m[1][0] # 假阴性
plt.clf()
metrics.ConfusionMatrixDisplay.from_predictions(y_test, y_pred_test) # 横向真实值,纵向预测值
plt.savefig(os.path.join(save_dir, "confusion_matrix.jpg"), dpi=300)
plt.clf()
metrics.RocCurveDisplay.from_predictions(y_test, y_score_test)
plt.savefig(os.path.join(save_dir, "roc.jpg"), dpi=300)
report = metrics.classification_report(y_test, y_pred_test, digits=4) # 评估报告
Sensitivity = TP / (TP + FN) # 敏感度 召回率
Specificity = TN / (TN + FP) # 特异度
AUC = metrics.roc_auc_score(y_test, y_score_test)
with open(os.path.join(save_dir, "report.txt"), mode='w', encoding='utf-8') as fw:
fw.write(report)
fw.write('\n')
fw.write(f"Sensitivity: {Sensitivity}\n")
fw.write(f"Specificity: {Specificity}\n")
fw.write(f"AUC: {AUC}\n")
print('report:\n', report)
print('Sensitivity:', Sensitivity)
print('Specificity:', Specificity)
print('AUC:', AUC)
```用代码块功能插入代码,请勿粘贴截图