【发布时间】:2021-06-15 19:58:50
【问题描述】:
我正在尝试获得最佳组合以达到最佳 R 平方和 P 值。在这种情况下,我有 6 列来运行代码,但我只有这个组合的 R-Squared 和 P 值([col0, col1, col2, col3, col4, col5] vs [col6])。我想测试所有可能的组合,例如:
[col0] 与 [col6]
[col0 + col1] 与 [col6]
[col0 + col1 + col2] 与 [col6]...
有什么办法可以自动完成吗?所以我不必运行所有可能的组合。
import statsmodels.api as sm
from sklearn import linear_model
X = df_norm[["col0",
"col1",
"col2",
"col3",
"col4",
"col5"]]
y = df_norm["col6"]
import statsmodels.api as sm
# with statsmodels
X = sm.add_constant(X)
model = sm.OLS(y, X).fit()
print_model = model.summary()
【问题讨论】:
-
我认为你可以从sklearn中提取R-squared和P-value的值。当您提取值时,根据您的选择运行 50 或 100 次迭代。然后,比较 r-squared 的先前值和 value,如果它们大于当前值。最后,将其保存在 pickle 上,然后根据您的模拟加载具有最高值的 pickle。
-
在我的真实数据库中,我有 230 列。你能给我一个进行迭代的代码示例吗?
-
如果您有 230 列,您不想遍历所有可能的组合。总共有 2**230 个组合。你应该想出一个更好的过滤器。
标签: python linear-regression correlation statsmodels