日期:2024-11-13 15:22
ols import add_constantdef calculate_vif(X): 计算给定自变量矩阵X的方差膨胀因子(VIF) # 添加常数项 X = add_constant(X) # 计算每个特征的VIF vif = pd.Series([variance_inflation_factor(X.values, i) for i in range(X.shape[1])], index=X.columns) return vifdef vif_feature_selection(X, threshold=5): 基于VIF的特征选择 vif = calculate_vif(X) while vif.max() threshold: # 移除具有最大VIF值的特征 feature_to_remove = vif.idxmax() X = X.drop(columns=[feature_to_remove]) # 重新计算VIF vif = calculate_vif(X)