首页 > 解决方案 > 有没有什么方法可以计算python中随机森林回归(连续输出)预测的置信度分数?

问题描述

我目前正在预测一个人在某个位置的等待时间。

测试输入:

Location_Name  Arrival_Time
NSP            10:21:2019 05:10:01 PM

输出:

Wait_Time: 1 hr 32 min 27 sec

我现在想要的是告诉我这个预测的输出是正确的(%)我有多自信。

为了实现它,我在随机森林回归器上尝试了 Confident Intervals 和 score 概念,但无法实现。

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

标签: python-3.xmachine-learningrandom-foreststatsmodels

解决方案


推荐阅读