实验要求
数据中总共有664条数据,每条数据分别是多个症状对应一个症候,本质上是一个简单的二分类问题,即根据症状分类是否属于瘀血阻络证。
具体要求:
(1)全部数据作为训练集:得出相应的分类指标准确率accuracy,精确率precision,召回率recall,F1-score,并画出最终的ROC曲线,得出AUC值。
(2)把数据集分为训练集、验证集和测试集,再进行分类,并得出准确率等。
(3)运用5-fold Cross-validation方法进行验证,与前两种方法对比。
数据展示
症状(部分):
症候(标黄):
代码
导包
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_score, recall_score, f1_score, roc_auc_score, roc_curve
from sklearn.model_selection import train_test_split, cross_val_score, cross_val_predict
读取数据
data = pd.read_excel(r"C:\Users\guo\Desktop\课程\医学数据挖掘\实验1-逻辑回归分析中医药数据\症状_瘀血阻络证_data.xlsx")
lr = LogisticRegression() # 建立逻辑回归模型
X = data.iloc[:, :-1] # 特征
Y = data.iloc[:, -1] # 标签
不划分训练集和测试集
lr.fit(X, Y) # 训练模型
# 准确率
print("Accuracy:", lr.score(X, Y))
# 精确率
print("Precision:", precision_score(Y, lr.predict(X)