Go to Top

05_data降维 of 特征工程【day1】

 0、思维导图

 

1、data降维

1、what?

  维度(数组的维度)

  降维:维度(特征的数量)  3个特征----> 2个特征

  

 2、data降维方法

  1. 特征选择

  2. 主成分分析

 

3、其他降维方法

 

 4、特征选择与降维比较?

    用PCA:维度特征 数量有几百个

 

2、特征选择

1、reason of  特征选择

  

  

2、what is 特征选择?

  

3、主要方法

 

 

4、varianceThreshold  删除低方差的特征

sklearn.feature_selection.VarianceThreshold

  VarianceThreshold 

  方差     阈值

 

 语法:

  

流程

  

代码 

from sklearn.feature_selection import VarianceThreshold  # 特征选择--删除低方差的特征

def var():
    """
    特征选择--删除低方差的特征
    :return: None
    """
    # var = VarianceThreshold(threshold=0.0)  # 删除特征相同的data
    var = VarianceThreshold(threshold=1.0)
    data = var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]])
    print(data)
    return None

if __name__ == '__main__':
    var()

 

 

  

意义

  删除差不多相同的特征data


3、PCA(主成分分析)

 1、what is PCA

  

   

 

2、why need 降维?

PCA目的:简化dataSet

 

 高维度数据容易出现的问题

 

 

 3、how to 降维

1. 找到最好的箭头?

    

2. 三维-----> 二维

    所有data信息并未损耗太多

  

  

 

3. 公式计算(了解)

   

 

 

4、人脸特征主成分分析

 

 

 5、PCA

1、语法

 

  一般保留90%以上的信息

2、流程

  

 

 3、代码

from sklearn.decomposition import PCA  # PCA主成分分析

def pac():
    """
    主成分分析 进行 特征降维
    :return: None
    """
    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 None

if __name__ == '__main__':
    pac()

 

 

是原data的 90%的信息

 

 

 4、探究:用户对物品类别的喜好细分降维

1、kaggle比赛题

  预测用户对物品类别的喜好

  https://www.kaggle.com/c/instacart-market-basket-analysis

  

 

2、data  

  

 

 3、如何进行PCA?

 1、合并各张表到一张表中

    

     

    

  

  

 

2、建立一个类似行、列的data

 

  

    

 

 3、进行主成分分析

 

     

  

 

  

 结果:

   134简化到 27

 

 

5、拓展:jupyter notebook的安装和打开

安装非常简单,只需要在终端输入:

  pip install jupyter  

  

打开jupyter notebook 也只需要在终端输入:

  jupyter notebook  

  

运行上面的命令之后,你将看到类似下面这样的输出:

  

如上图,它打开了一个端口,并且会在你的浏览器中打开这个页面,主目录是图中的那个directory(可能第一次打开没有这个目录)。

  

 

点击New,选择python3

    

 

posted @ 2019-04-17 16:39  一分耕耘一分收获  阅读(308)  评论(0编辑  收藏  举报