ValueError: pos_label=1 不是有效标签:array(['N', 'Y'], dtype='<U1')

数据挖掘 机器学习 Python 数据 数据分析 蟒蛇
2022-02-23 20:44:23
X = train_encoded_df.iloc[:, 1: ]
y = train_encoded_df["Loan_Status"]

print("Precision:",metrics.precision_score(y_test, y_pred))

我的训练数据包含使用get_dummies().

这导致了错误:

> ValueError: pos_label=1 is not a valid label: array(['N', 'Y'], dtype='U1')

如何解决这个问题?

2个回答

pos_label是 scikit-learn precision_score文档)的一个论点;它的目的是,表明哪个标签是正面的,如果没有明确给出(就像你在这里的情况),它假定默认值1(再次检查文档)。

由于您的案例中的正面标签似乎是'Y',因此将最后一行替换为:

print("Precision:",metrics.precision_score(y_test, y_pred, pos_label='Y'))

你可以试试这个:

print("精度:",metrics.precision_score(y_test, y_pred, average='weighted'))