首页 > 解决方案 > 评估指标中所有值输出为 1 的问题

问题描述

x_test,x_val,y_test,y_val = train_test_split(x_test,y_test,test_size=0.5) 
print(x_train.shape) 
#(1413, 3)   <----Result

print(x_val.shape)   
#(472, 3)    <----Result

print(x_test.shape)  
#(471, 3)    <----Result

我继续使用机器学习进行数据拆分,并得到了上述结果。

from sklearn.tree import DecisionTreeClassifier

dTree = DecisionTreeClassifier(max_depth=2,random_state=0).fit(x_train,y_train)
print("train score : {}".format(dTree.score(x_train, y_train)))
#train score : 1.0   <----Result

print("val score : {}".format(dTree.score(x_val, y_val)))
#val score : 1.0     <----Result

然后我们用决策树分别打印出train和val的得分,结果都是1。

predict_y = dTree.predict(x_test) 

from sklearn.metrics import classification_report 
print(classification_report(y_test, dTree.predict(x_test))) 
print("test score : {}".format(dTree.score(x_test, y_test)))

               precision    recall  f1-score   support

          A       1.00      1.00      1.00       235
          B       1.00      1.00      1.00       236

      accuracy                        1.00       471
     macro avg    1.00      1.00      1.00       471
  weighted avg    1.00      1.00      1.00       471

 test score : 0.9978768577494692

最后,classification_report 也显示了上述结果。我的某些数据拆分错误吗?或者 1 的值是否意味着所有数据都完全分类?如果我错了,我想听到正确的解决方案。

标签: pythonpandasscikit-learnsklearn-pandas

解决方案


推荐阅读