[英]How a Logistic Regression model reacts if the probability of success and failure are exactly 0.5?
[英]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.