我正在尝试使用sklearn的决策树分类器进行分类。我已经将训练和测试数据集存储到两个单独的熊猫数据框中。我这样称呼分类器:
classifier = DecisionTreeClassifier(criterion = 'entropy', random_state = 0)
classifier.fit(features_in_training_set, class_labels_in_training_set)
predictions = classifier.predict(features_in_testing_set)
但是,我收到此错误,这在对树进行分类时似乎很常见。
ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
我知道这两个数据集中都没有缺失值。我正在使用不正当的方法更改它们。数据帧的打印结果显示了这一点,但要仔细检查,我也尝试过df.isna()
并且输出均为False。我不认为我有无穷大值,因为框架由二进制值组成。我不想删除行或列,因为我不想减少数据集。我也不想在任何其他条件下替换它们。
我不太确定如何查找对于dtype float 32太大的列,以及如何更改它们。我觉得这可能是我的时间戳列。这是训练数据帧的一小段,因为它很大:
time A B
0 1.518999e+09 1 1
1 1.518999e+09 1 0
2 1.518999e+09 0 1
3 1.518999e+09 0 0
答案 0 :(得分:0)
尝试检查数据框的摘要。 例如如果您的数据框显示缺少任何特征的样本,则意味着某些观测值的值为空。
遇到可能的除以零的情况。