博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习 数据降维
阅读量:4104 次
发布时间:2019-05-25

本文共 1585 字,大约阅读时间需要 5 分钟。

数据降维

维度: 特征的数量

降维:减少特征数量

主要的方式:

1、特征选择

特征选择的原因:

冗余:部分特征的相关的高,容易消耗算性能
噪声:部分特征对预测结果有影响

特征选择就是单纯的从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值、也可以不改变值,但是选择后的特征位数肯定比选择前小,毕竟我们只选择了其中的一部分特征

主要方法(三大武器):

Filter(过滤式):Variance Threshole
Embedded(嵌入式):正则化、决策树
Wrapper(包裹式)

过滤式

API :Sklearn.feature_selection.VarianceThreshold

from sklearn.feature_selection import VarianceThresholddef var():    """    特征选择-删除低方差的特征    """    var=VarianceThreshold(threshold=0.0)    data=var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])    print(data)    return Noneif __name__=="__main__":    var()

运行结果如下:

在这里插入图片描述

2、主成分分析

PCA

本质:PCA是一种分析、简化数据集的技术
目的:是数据维度压缩,尽可能降低原数据的维数(复杂度),损失多少信息。
作用:可以削弱回归分析或者聚类分析中特征的数量

当PCA特征数量达到上百的时候,考虑数据的简化

数据会改变,数量也会减少

pca流程

from sklearn.decomposition import PCAdef pca():    """    主成分分析,进行特征降维    """    pca=PCA(n_components=0.9)    data=pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])    print(data)    return Noneif __name__=="__main__":    pca()

运行结果如下:

在这里插入图片描述

案例

instacart市场篮子分析

import pandas as pdfrom sklearn.decomposition import PCA#读取四张表的数据prior=pd.read_csv(".anaconda/order_prodacts_prior.csv")products=pd.read_csv(".anaconda/products.csv")order=pd.read_csv(".anaconda/order.csv")aisles=pd.read_csv(".anaconda/aisles.csv")#合并四张表的数据_mg=pd.merge(prior,products,on=['product_id','product_id'])_mg=pd.merge(_mg,orderm,on=['order_id','order_id'])mt =pd,merge(_mg,aisles,on=['aisle_id','aisle_id'])mt.head(10)#产看前十行的数据

在这里插入图片描述

#交叉表(特殊的分组工具)pd.crosstab(mt['user_id'],mt['aisle'])cross.head(10)

在这里插入图片描述

#进行主成分分析(降维)pca=PCA[n_conponents=0.9]data=pca.fit_transfrom[cross]data

在这里插入图片描述

data.shape

结果为(206209,27)

降维后远远小于上面没降维前的数据

转载地址:http://ivcsi.baihongyu.com/

你可能感兴趣的文章