【问题标题】:Automatic Linear/Multiple Regression in Python with 50+ columnsPython 中的自动线性/多重回归,包含 50 多列
【发布时间】:2022-01-11 07:13:40
【问题描述】:
我有一个包含 50 多列的数据集,我正在尝试在 Python 中找到一种方法来在每个变量组合之间进行简单的线性回归。这里的目标是找到进一步分析的起点(即,我将更深入地研究那些具有某种显着 R 平方的对)。
我已将所有列放在一个 numpy 数组列表中。我怎样才能在每个组合之间进行简单的线性回归,并为该组合打印 R 方?是否有可能对每个组合再次尝试多元线性回归,最多包含 5-6 个变量?
每个数组有大约 200 行,因此对于这个个人项目来说,速度方面的代码效率不会是一个大问题。
【问题讨论】:
标签:
python
pandas
scikit-learn
linear-regression
【解决方案1】:
如果您正在寻找具有高 r 平方值的列,只需尝试相关矩阵。为了简化可视化,我建议您使用 seaborn 绘制热图:
import seaborn as sns
import matplotlib.pyplot as plt
df_corr = df.corr()
sns.heatmap(df_corr, cmap="coolwarm", annot=True)
plt.show()
我对您的其他建议是在您的数据集中运行主成分分析 (PCA),以找到具有最高可变性的特征。通常,这些变量是最重要的,可以用来做出最好的预测。如果需要有关此技术的更多信息,请告诉我。
【解决方案2】:
这更像是一个 EDA 问题而不是 python 问题。查看一些回归资源,特别是相关矩阵。但是,一种可能的解决方案是使用itertools.combinations,组大小为 6。这将为您提供 15,890,700 种不同的选项来运行回归,因此除非您想要运行超过 1500 万次回归,否则您应该执行一些 EDA 以在您的数据集。