Python Logistic回归预测阈值误差

Python Logistic回归预测阈值误差,python,Python,我使用逻辑回归预测二元变量设置阈值为.60。模型的准确性给了我一个错误 我正在使用predict_proba()将阈值设置为.60,但当我试图找到模型的准确性时,它给了我错误: 问题是y\u train1也不包含布尔数组。检查df[“animal”]系列中的内容,并确定哪一类是阳性的(例如,如果该类中填充了'dog'和'cat',则假设“cat”为真,则以下代码段将起作用): 您可以使用逻辑回归模型(model.classes.)上的classes.属性查看'cat'或'dog'是否分配给0或

我使用逻辑回归预测二元变量设置阈值为.60。模型的准确性给了我一个错误

我正在使用
predict_proba()
将阈值设置为.60,但当我试图找到模型的准确性时,它给了我错误:


问题是
y\u train1
也不包含布尔数组。检查
df[“animal”]
系列中的内容,并确定哪一类是阳性的(例如,如果该类中填充了
'dog'
'cat'
,则假设“cat”为真,则以下代码段将起作用):



您可以使用逻辑回归模型(
model.classes.
)上的
classes.
属性查看
'cat'
'dog'
是否分配给0或1

df[“animal”]包含多少类,您能在问题中显示其中的一个片段吗?您的问题是本系列的数据类型是string2类-->dog and catYep,这是您的问题。我已经添加了一个答案,我将对其进行编辑,以反映dog和catDog的使用情况,catDog为假,Cat为真,更新后的答案反映出我获得了准确度,但其非常低,显示为0.90。但是当我做正常的逻辑回归而没有超出阈值时,它给了我.98。我认为我在这里做了一些错误的事情。你确定你的类是正确的吗(例如,cal肯定是真的吗?)
print(model.classes)
的输出是什么
X=df[["age",  "breed"]]
y=df["animal"]

from sklearn.model_selection import train_test_split
X_train1,X_test1,y_train1,y_test1=train_test_split(X,y,test_size=0.30,random_state=0)

# import the class
from sklearn.linear_model import LogisticRegression


model = LogisticRegression(class_weight="balanced")
model.fit(X_train1, y_train1)


preds = (model4.predict_proba(X_test1)[:,1] >= 0.60)
print(preds)
#from sklearn import metrics
#print(" Prediction Accuracy:",metrics.accuracy_score(y_test1, prediction4))
#from sklearn.metrics import accuracy_score
dat= accuracy_score(y_test1, preds)
print(dat)
dat= accuracy_score(y_test1=="cat", preds)