В настоящее время я прогнозирую время ожидания человека в определенном месте.
Тестовый ввод:
Location_Name Arrival_Time
NSP 10:21:2019 05:10:01 PM
Вывод:
Wait_Time: 1 hr 32 min 27 sec
Что я хочуТеперь я должен сказать, насколько я уверен (%) в том, что этот предсказанный результат верен.
Чтобы достичь этого, я попробовал использовать доверительные интервалы и концепцию оценки на регрессоре случайных лесов, но не смог достичь этого.
Функцияprept_proba () не вызывается для регрессора. Итак, я застрял с этим.
#Python problem
print('------- Fitting the model ---------')
r_leg = RandomForestRegressor(max_depth=3, random_state=32,n_estimators=200,oob_score=True)
r_leg.fit(X_train,Y_train)
#define function to calculate rmse and print score
def rmse(x,y): return math.sqrt(((x-y)**2).mean())
def print_score(m):
res = [rmse(m.predict(X_train), Y_train.to_numpy()),m.score(X_train, Y_train.to_numpy())]
# if hasattr(m, 'oob_score_'): res.append(m.oob_score_)
print(res)
print_score(r_leg)
def mean_confidence_interval(data, confidence=0.95):
a = 1.0 * np.array(data)
n = len(a)
m, se = np.mean(a), scipy.stats.sem(a)
h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1)
return m, m-h, m+h
mean,LB,UB = mean_confidence_interval(Y_train.DayDiff)
Вывод должен возвращать уверенный процент, как,
"I'm 80% sure that the person will wait at NSP for 1 hr 32 min 27 sec"