降维
降维是指在某些限定条件下,较低特征的个数,得到一组“不相关”的主变量的过程
1、特征选择
1.1 方法:
- 过滤式filter
- 方差选择:低方差特征过滤
- 相关系数:特征与特征之间的相关程度
- 嵌入式embedded
- 决策树
- 正则化
- 深度学习
模块:sklearn.feature_selection
1.2 方差选择
sklearn.feature_selection.VarianceThreshold(threshold=0)
- Variance.fit_transform(X)
参数X:numpy array格式的数据[n_samples,n_features] - 返回值:训练集中差异低于threshold的特征将被删除
def variance_demo():
data=pd.read_csv("factor_returns.csv")
data=data.iloc[:,1:-2]
print(data)
transfer=VarianceThreshold(threshold=10)
data_final=transfer.fit_transform(data)
print(data_final,data_final.shape)
将原本九个特征筛选剩下7个特征
1.3 相关系数
皮尔逊相关系数(Pearson Correlation Coefficient),反映变量之间相关关系密切程度的统计指标
所以我们最终得出结论是广告投入费与月平均销售额之间有高度的正相关关系
- 特点
相关系数的值介于-1与+1之间,即-1≤r≤+1。其性质如下:- 当r>0时,表示两变量正相关,r<0时, 两变量为负相关
- 当|r|=1时, 表示两变量为完全相关,当r=0时,表示两变量间无相关关系
- 当0<|r|<1时,表示两变量存在一定程度的相关。 且|r|越接近1,两变量间线性关系越密切; |r|越接近于0,表示两变量的线性相关越弱
- 一般可按三级划分: |r|<0.4为低度相关; 0.4<|r|<0.7为显著性相关; 0.7<|r|<1为高度线性相关
from scipy.stats import pearsonr
……
r = pearsonr(data["pe_ratio"],data["pb_ratio"])
print(r)
对于相关性系数比较高的特征,有三种处理方法
- 选取其中一个
- 加权求和
- 主成分分析
主成分分析:
定义:高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量
作用:是数据维数压缩,尽可能降低原数据的维数(复杂度), 损失少量信息。
应用:回归分析或者聚类分析当中
sklearn.decomposition.PCA(n_components=None)
- n_ components:
- 小数:表示保留百分之多少的信息
- 整数:减少到多少特征
def PCA_demo():
data= [[2,8,4,5],[6,3,0,8],[5,4,9,1]]
transfer=PCA(2)
data_new=transfer.fit_transform(data)
print(data_new)
结果: