Есть ли какой-либо метод для расчета достоверной оценки предсказания случайной лесной регрессии (непрерывного вывода) в python? - PullRequest
0 голосов
/ 21 октября 2019

В настоящее время я прогнозирую время ожидания человека в определенном месте.

Тестовый ввод:

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"
...