繁体   English   中英

逻辑回归 - 如何在另一个数据集上使用 model 并获取概率值

[英]Logistic Regression - How to use model on another dataset and get probability values

我正在制作我的第一个 ML model,在第二个数据集上使用 model 时我需要一些帮助。

所以我有两组:“train_full.csv”和“test_full.csv”。 两组具有完全相同的结构。

唯一不同的是,在“train_full.csv”列中,“target”填充了 0 和 1,而在“test_set.csv”中,该列是空的,我想预测这些值。

您可以在下面找到我基于“train_full.csv”的 model。 为了代码的清晰,我跳过了数据清理的整个部分:

df2 = pd.read_csv("train_full.csv", sep = ';')
test_set = pd.read_csv("test_full.csv", sep = ';')
#Dataset cleaning

#my y is column named "target", and my x's are the remaining column

X_train, X_test, y_train, y_test = train_test_split(df2.drop('target',axis=1), 
           df2['target'], test_size=0.35, 
            random_state=101)

#Creating Logistic Regression Model

logmodel = LogisticRegression()
result = logmodel.fit(X_train, y_train)

#Making predictions
Predictions = logmodel.predict(X_test)

print(metrics.confusion_matrix(y_test, Predictions))

print(metrics.classification_report(y_test,Predictions)) #Accuracy: 78%

auc = metrics.roc_auc_score(y_test, y_pred_proba) #AUC: ~0.695

现在我想在第二个数据集上使用 model,我已经在第二行代码中导入了它,但是我不再需要将数据集拆分为训练和测试子集。 我想在整个“test_full.csv”集上使用上面的 model。 我怎样才能做到这一点?

另外,有没有办法添加一个计算概率的列? 所以我的 output 将是一个 pandas dataframe 看起来像这样:

Id probability target
0 0.75 1
1 0.78 1
2 0.34 0
3 0.84 1
4 0.13 0
5 0.34 0

亲切的问候

这很简单。

您只需要从test_set中删除目标列,并且需要使用logmodel.predict()进行分类,使用logmodel.predict_proba()进行概率。 这是相同的示例=>

test_set = test_set.drop(['target'],axis=1)

==> 下面 2 行将在test_set dataframe 中添加一列,这是与预测相关的概率和分类

test_set['prob'] = logmodel.predict_proba(test_set)
test_set['classification'] = logmodel.predict(test_set)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM