数据科学模型实现了很高的意外精度?

时间:2019-06-24 16:21:54

标签: python machine-learning scikit-learn

因此,我正在训练高斯贝叶斯分类器,由于某种原因,我对分类报告中的所有内容都很满意。显然这是错误的,我想知道为什么会这样。我在该领域没有太多经验,所以可以提供任何帮助! Kaggle内核链接: https://www.kaggle.com/rafayk7/kickstarter-real

features_train, features_test, target_train, target_test = train_test_split(
    data_analyze_scaled,
    target, 
    test_size = 0.2,
    random_state=42
)

print(features_train.shape)
print(target_train.shape)
print(features_test.shape)
print(target_test.shape)

给予

(265337, 254)
(265337,)
(66335, 254)
(66335,)

然后当我训练它时,

model = GaussianNB()

pred = model.fit(features_train, target_train).predict(features_test)

accuracy = classification_report(pred, target_test)
print(accuracy)

这给了我1.0的一切(精度,召回率,精度f1) 甚至逻辑回归模型也能为我提供100%的准确性。我认为这并不适合,因为它是100%的固定水平。 任何帮助表示赞赏!

这是数据的快照: enter image description here

target = data_analyze_scaled['state']
data_analyze_scaled.drop('state', axis=1)

这是我在train_test_split中使用的目标和data_analyze_scaled

1 个答案:

答案 0 :(得分:3)

错误在data_analyze_scaled.drop('state', axis=1)中。 该语句将从数据框中删除列state,并返回修改后的数据框,该数据框必须保存在另一个数据框对象中,例如:

data_analyze_scaled_x = data_analyze_scaled.drop('state', axis=1)

现在您应该在火车测试拆分中使用它。

在现有的实现中,您已将目标变量作为模型的功能提供。因此,无论您使用哪种模型,精度都将为1。

希望这会有所帮助!