python-3.x - 有没有什么方法可以计算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"
解决方案
推荐阅读
- c# - Can't send more than 160 characters sms C# using GSM Modem
- azure - 我无法使用 Windows 10 Enterprise 在 VS2017 中运行/调试 Azure Function 项目
- python - Python多维列表-如果更改一个值,则列中的所有值都会更改
- javascript - Textarea 不会保存条目
- objective-c - 以编程方式在 Watch App 上看不到图像
- php - 在 Woocommerce 中检查产品类别的购物车项目
- c# - Linking selenium with electron framework (c#)
- javascript - Copy text with new lines to clipboard
- javascript - LocalStorage 表列排序
- html - 在选择选项上隐藏元素