1,去除线性共线性,使变量数据稀疏。

共线性检测:

1,VIF(方差膨胀因子),1/(1-R**2)以10为分界点,(0-10)不存在多重共线性问题,>10存在多重共线性问题。 (vif包建议5以上则存在共线性问题)

from statsmodels.stats.outliers_influence import variance_inflation_factor as vif

vif(np.array(DataFrame),索引数) #两个参数第一个必须是包含所有解释变量的数组,第二个即为索引值。

features=data.columns
removefeatures=[]
for i in range(len(features)):
     vifs=vif(np.array(data),i)
     if vifs>10:
         removefeatures.append(features[i])
stayfeatures=list(set(features)-set(removefeatures))

2,PCA共线性问题的解决(主成分分析 降维)#由于不能明确的知道需要几个变量,存在局限性

from sklearn.decomposition  import PCA
pca=PCA(n_componts=,white=是否需要归一化)
pca.fit(x)  #x可以是array,也可以是dataframe
print(pca.explained_variance_ratio_)

 3,针对样本不均衡进行过采样和欠采样

主要运用算法SMOTE

from imblearn.over_sampling   import SMOTE  #不能有str需要时float or int
sm=SMOTE(random_state=?)
over_x,over_y=sm.fit_resample(x,y)