我目前正在研究从不同人的不同抗菌谱测试中获得的数据集。我的目标是提出一个模型来预测和研究抗生素的敏感性/耐药性。我将附上一个数据框示例以获取更多视觉信息,但为了恢复,我有 900 名患者,使用 210 列抗生素(每种抗生素 2 列,1 列用于敏感性,1 列用于 CMI)。
我想提出一个逻辑回归,因为我们有很多分类变量(M/F、明智/不明智/稍微明智......等)。我最终陷入了如何为这种回归提供形式的困境,因为我的生物变量数据非常差。
我有很多抗生素,但只有 2 个生物变量,所以我有点困惑,因为我真的不知道我是否可以提取有用的信息,尝试将抗生素耐药性建模为这些生物变量和 CMI(最小抑制)专注)。或者改变整个思维方式来提取信息。
如果我很好地理解你的目的,根据我的知识,你必须首先导入 pandas 库并将你的数据读入 pandas DataFrame。
import pandas as pd
df = pd.read_csv("antibiograms.csv")
然后探索并清理您的数据。您可以使用 df.head、df.info、 和 df.isnull 方法(最后一个非常重要,我经常使用)来获取数据摘要,检查数据类型、描述性统计数据和缺失值。您还可以使用 df.drop 和 df.fillna 方法来删除或填充不需要或缺失的值。
之后将分类变量转换为数值变量。您可以使用pd.get_dummies 函数为变量的每个类别创建虚拟变量。 (例如,如果您有一个名为“Gender”的变量,其中包含两个类别“M”和“F”,则您可以创建两个名为“Gender_M”和“Gender_F”的虚拟变量,它们根据性别取值 1 或 0) 然后将数据分为训练集和测试集。您可以使用 sklearn 库中的 train_test_split 函数将数据随机拆分为训练集和测试集。
from sklearn.model_selection import train_test_split
X = df.drop("Outcome", axis=1) # the features
y = df["Outcome"] # the target variable
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
random_state=42)
之后,您必须使用 LogisticRegression class 拟合逻辑回归模型。
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(penalty="l2", solver="lbfgs")
lr.fit(X_train, y_train)
最后用逻辑回归模型进行预测:
y_pred = lr.predict(X_test) # the predicted class labels
y_prob = lr.predict_proba(X_test) # the predicted probabilities
最后但并非最不重要的一点是,您可以使用各种指标和方法来衡量模型在测试集上的表现。