由于没有提供数据集,以下是伪代码实现:

导入所需库

import pandas as pd from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score, roc_auc_score, roc_curve

读取数据集

data = pd.read_csv('data.csv')

特征选择

X = data[['gender', 'age', 'BMI']] y = data['disease']

划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

建立支持向量机模型

clf = SVC(kernel='linear', probability=True)

训练模型

clf.fit(X_train, y_train)

预测测试集

y_pred = clf.predict(X_test) y_prob = clf.predict_proba(X_test)[:, 1]

计算准确率和AUC

accuracy = accuracy_score(y_test, y_pred) auc_score = roc_auc_score(y_test, y_prob)

绘制ROC曲线

fpr, tpr, thresholds = roc_curve(y_test, y_prob) plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % auc_score) plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver operating characteristic') plt.legend(loc="lower right") plt.show()

输出准确率和AUC

print('准确率:', accuracy) print('AUC:', auc_score

用python实现性别年龄BMI对disease的预测划分训练80和测试集20在测试集上做疾病的预测需要使用支持向量机算法选择评价预测效果的指标准确率和AUC绘图并评估预测效果

原文地址: https://www.cveoy.top/t/topic/gE1M 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录