数据降维:减少特征数量
特征选择就是单纯地从提取到地所有特征中选择部分特征作为训练集特征 主要方法: Filter(过滤式):VarianceThreshold(方差) Embedded(嵌入式):正则化、决策树 Wrapper(包裹式)
Filter(过滤式) 方差大小:考虑所有样本这个特征的数据情况
sklearn.feature_selection.Variancethreshold Variancethreshold(threshold=0.0)删除所有低方差特征 Variance.fit_transform(X)
In [1]: from sklearn.feature_selection import VarianceThreshold var = VarianceThreshold(threshold=0.0) data = var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]]) data Out [1]:array([[2, 0], [1, 4], [1, 1]])将数据分解为较低维数空间 n_components:小数(降维后保留数据的百分之几)、整数(降维后的维数)
PCA.fit_transform(X)X:numpy array格式的数据[n_samples,n_features] 返回值:转换后指定维度的array
In [2]:from sklearn.decomposition import PCA In [3]:pca = PCA(n_components=0.9) data = pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]]) data Out [3]:array([[ 1.28620952e-15, 3.82970843e+00], [ 5.74456265e+00, -1.91485422e+00], [-5.74456265e+00, -1.91485422e+00]])https://www.kaggle.com/c/instacart-market-basket-analysis/data 1、合并表 pd.merge(prior, products, on=[‘prodict_id’,‘product_id’]) 2、建立一个类似行,列数据(交叉表——特殊分组表) cross = pd.crosstab(mt[user_id], mt[‘aisle’]) 3、进行主成分分析 pca = PCA(n_components=0.9) data = pca.fit_transform(cross)
