1.在开始计算时,给定类别为3类使用以下代码进行计算
python
y_pred = classifier.predict(X_test)
y_pred_prob = classifier.predict_proba(X_test)
发现发现输出的y_pred标签没有对应于y_pred_prob中每一个最大值对应位置的标签,找不到存在的问题。
bash
print(y_test)
print(y_pred)
print(y_pred_prob)
-------------------------------------------
[2 2 2 ... 2 1 1]
[1 1 1 ... 0 1 1]
[[0.24505519 0.5998661 0.15507871]
[0.03279259 0.68830022 0.27890719]
[0.01111932 0.5753406 0.41354007]
...
[0.82954333 0.02279303 0.14766364]
[0.20383596 0.51148829 0.28467575]
[0.03366171 0.92129916 0.04503913]]
多方面检查后,才发现
bash
print(pd.unique(y_pred))
#[1 2 0]
print(pd.unique(y_test))
#[1 2 3]
----------------------------------------
原来是在使用sklearn计算y_pred时,类别标签是从0,开始,导致结果无法对应。