我看过一些使用随机森林估计倾向得分的论文。 我想知道如何在 Python 中做到这一点。 这是我迄今为止尝试过的。 predict_proba() 是获得倾向分数的正确方法吗? 任何帮助,将不胜感激! ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
所以我在面板数据上运行随机森林回归时遇到了一些麻烦。
目前的数据如下所示:
我想进行随机森林回归,根据我拥有的变量预测每个 ID 随时间变化的 KwH。 我已使用以下代码将数据拆分为训练和测试样本:
from sklearn.model_selection import train_test_split
X = df[['hour', 'day', 'month', 'dayofweek', 'apparentTemperature',
'summary', 'household_size', 'work_from_home', 'num_rooms',
'int_in_renew', 'int_in_gen', 'conc_abt_cc', 'feel_abt_lifestyle',
'smrt_meter_help', 'avg_gender', 'avg_age', 'house_type', 'sum_insul',
'total_lb', 'total_fridges', 'bigg_apps', 'small_apps',
'look_at_meter']]
y = df[['KwH']]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
然后我希望训练我的 model 并针对测试样本进行测试,但是我不确定如何执行此操作。 我试过这段代码:
from sklearn.ensemble import RandomForestRegressor
rfc = RandomForestRegressor(n_estimators=200)
rfc.fit(X_train, y_train)
但是我收到以下错误消息:
当需要一维数组时,传递了列向量 y。 请将 y 的形状更改为 (n_samples,),例如使用 ravel()。
我不确定这个错误是否从根本上是我的数据排列方式或我做随机森林的方式,所以对此有任何帮助,然后在之后针对测试样本测试数据,将不胜感激。
提前致谢。
只需将y = df[['KwH']]
切换为y = df['KwH']
或y = df.KwH
解决此问题。
这是因为scikit-learn
不希望y
成为 dataframe,并且选择带有双[[...]]
的列恰好返回 dataframe。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.