«RuntimeWarning: деление на ноль, встречающееся в ошибке true_divide» - регрессор случайного леса - PullRequest
0 голосов
/ 06 января 2020

я пытаюсь реализовать случайный лесной регрессор. Мне нужно рассчитать производительность.

, когда я пытаюсь разделить ((errors / p_test_labels)). я получаю сообщение об ошибке «RuntimeWarning: деление на ноль, встречающееся в true_divide ошибке».

        errors=array([0.66, 0.1 , 0.  , 0.02, 0.14, 0.  , 0.2 , 0.42, 0.16, 0.9 , 0.14,
               0.  , 0.66, 0.02, 0.18, 0.  , 0.  , 0.24, 0.  , 0.  , 0.  , 0.06,
               0.04, 0.02, 0.54, 0.06, 0.14, 0.54, 0.  , 0.4 , 0.04, 0.  , 0.  ,
               0.48, 0.02, 0.06, 0.  , 0.26, 0.08, 0.04, 0.74, 0.12, 0.24, 0.08,
               0.  , 0.18, 0.14, 0.  , 0.3 , 0.62, 0.  , 0.12, 0.72, 0.  , 0.3 ,
               0.02, 0.  , 0.1 , 0.  , 0.16, 0.  , 0.02, 0.04, 0.18, 0.38, 0.94,
               0.  , 0.5 , 0.72, 0.04, 0.46, 0.02, 0.12, 0.52, 0.22, 0.02, 0.58,
               0.84, 0.02, 0.06, 0.  , 0.  , 0.08, 0.24, 0.  , 0.14, 0.2 , 0.  ,
               0.02, 0.2 , 0.28, 0.1 , 0.04, 0.06, 0.18, 0.1 , 0.1 ])


        p_test_labels=array([1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
               1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0,
               1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
               1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1,
               1, 1, 1, 1, 0, 1, 0, 1, 1], dtype=int64)



#full code
# Instantiate model with 50 decision trees
rf = RandomForestRegressor(n_estimators=50,random_state = 42)

# Train the model on training data
rf.fit(p_train, p_train_labels);

# Use the forest's predict method on the test data
predictions = rf.predict(p_test)
# Calculate the absolute errors
errors = abs(predictions - p_test_labels)
# Print out the mean absolute error (mae)
print('Mean Absolute Error:', round(np.mean(errors), 2), 'degrees.')


(errors / p_test_labels)

# Calculate mean absolute percentage error (MAPE)
mape = np.mean(100 * (errors / p_test_labels))
# Calculate and display accuracy
accuracy = 100 - mape
print('Accuracy:', round(accuracy, 2), '%.')
...