java的mape_python中的MAPE(平均绝对百分比误差)测量结果

我尝试在我的随机林代码中测量MAPE(平均绝对百分比误差)值。MAE值为7.5。当我试图计算MAPE时,它输出:Accuracy: -inf %

这是我计算MAPE的代码。如何使它工作,或者为什么它不计算一个值。在

^{pr2}$

以下是值:errors: array([ 2.165, 6.398, 2.814, ..., 21.268, 8.746, 11.63 ])

test_labels: array([45, 47, 98, ..., 87, 47, 72])

这些类型包括:var1 int64

var2 int64

var3 float64

var4 int64

var6 float64

var7 int64

var1. float64

dtype: object

示例值,超过8000个条目var1 var2. var3 var4 var5 var6 var7

"420823370" "183" "2019-09-07 22:13:04" "84" "2019-09-07 22:12:46" "72" "00:00:18"

"420521201" "183" "2019-09-07 17:43:03" "84" "2019-09-07 17:42:51" "46" "00:00:12"

"420219554" "183" "2019-09-07 12:43:02" "88" "2019-09-07 12:42:39" "72" "00:00:23"

"419618820" "183" "2019-09-07 02:43:01" "92" "2019-09-07 02:42:46" "80" "00:00:15"

"419618819" "183" "2019-09-07 02:43:01" "84" "2019-09-07 02:42:46" "80" "00:00:15"

"417193989" "183" "2019-09-05 10:42:52" "82" "2019-09-05 10:42:23" "0" "00:00:29"

"416891691" "183" "2019-09-05 05:42:51" "78" "2019-09-05 05:42:49" "72" "00:00:02"

"416587222" "183" "2019-09-05 00:42:51" "88" "2019-09-05 00:42:35" "99" "00:00:16"

"416587223" "183" "2019-09-05 00:42:51" "82" "2019-09-05 00:42:35" "99" "00:00:16"

"416587224" "183" "2019-09-05 00:42:51" "80" "2019-09-05 00:42:35" "99" "00:00:16"

id:Big Int. ts_tuid: Big Int. rssi: numeric. batl: real. ts_diff:interval

下面是代码示例:

从CSV加载数据model = (

pd.read_csv("source.csv", parse_dates=['var3', 'var5'], date_parser=lambda x: pd.to_datetime(x))

.assign(

rssi_ts=lambda x: x.loc[:, 'var3'].astype(int) / 10 ** 9,

batl_ts=lambda x: x.loc[:, 'var5'].astype(int) / 10 ** 9,

ts_diff=lambda x: pd.to_timedelta(x.loc[:, 'ts_diff']).astype(int) / 10 ** 9

)

)

# Labels are the values we want to predict

labels_b = np.array(halti['var4'])

# Remove the labels from the features

# axis 1 refers to the columns

features_r = halti.drop('var4', axis = 1)

features_r2 = list(features_r.columns)

# Convert to numpy array

features_r = np.array(features_r)

# Using Skicit-learn to split data into training and testing sets

from sklearn.model_selection import train_test_split

# Split the data into training and testing sets

train_features, test_features, train_labels, test_labels = train_test_split(features_r, labels_b, test_size = 0.25, random_state = 42)

# Import the model we are using

from sklearn.ensemble import RandomForestRegressor

# Instantiate model with 1000 decision trees

rf = RandomForestRegressor(n_estimators = 1000, random_state = 42)

# Train the model on training data

rf.fit(train_features, train_labels);

# Use the forest's predict method on the test data

predictions = rf.predict(test_features)

# Calculate the absolute errors

errors = abs(predictions - test_labels)

# Print out the mean absolute error (mae)

print('Mean Absolute Error:', round(np.mean(errors), 2), 'degrees.')

mape = 100 * (errors / test_labels)

# Calculate and display accuracy

accuracy = 100 - np.mean(mape)

print('Accuracy:', round(accuracy, 2), '%.')

你可能感兴趣的:(java的mape)