【发布时间】:2020-05-16 07:50:48
【问题描述】:
我参加了一个在线课程,讲师使用数据集 (50,5) 解释了反向消除,您可以通过查看列的 p 值手动消除列。
import statsmodels.api as sm
X = np.append(arr = np.ones((2938, 1)).astype(int), values = X, axis = 1)
X_opt = X[:, [0,1,2,3,4,5]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()
# Second Step
X_opt = X[:, [0,1,,3,4,5]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()
# and so on
现在在我拥有的 (2938, 214) 等大型数据集上练习时,我是否必须自己消除所有列?因为这是很多工作,或者有某种算法或方法可以做到这一点。
这可能是一个愚蠢的问题,但我是机器学习的初学者,因此感谢任何帮助。谢谢
【问题讨论】:
-
更好的方法是将 PCA(主成分分析)应用于您的
m预测变量,并且只保留您获得的n最重要的新功能。看看this answer -
@VictorDeleau 这取决于,他的特征可能(并且可能确实)存在多重共线性、低特征方差或不为他的任务提供判别信息等问题。 PCA 仅创建解释内在数据差异的基础。特征选择至少是重要的第一步,不应该随意挥手。
标签: python machine-learning linear-regression