0、思维导图

05_data降维 of 特征工程【day1】 随笔 第1张

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1、data降维

1、what?

  维度(数组的维度)

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

  05_data降维 of 特征工程【day1】 随笔 第2张

 2、data降维方法

  1. 特征选择

  2. 主成分分析

 

3、其他降维方法

05_data降维 of 特征工程【day1】 随笔 第3张

 

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

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

 

2、特征选择

1、reason of  特征选择

  05_data降维 of 特征工程【day1】 随笔 第4张

  05_data降维 of 特征工程【day1】 随笔 第5张

2、what is 特征选择?

  05_data降维 of 特征工程【day1】 随笔 第6张

3、主要方法

 05_data降维 of 特征工程【day1】 随笔 第7张

05_data降维 of 特征工程【day1】 随笔 第8张

 05_data降维 of 特征工程【day1】 随笔 第9张

4、varianceThreshold  删除低方差的特征

sklearn.feature_selection.VarianceThreshold

  VarianceThreshold 

  方差     阈值

 

 语法:

  05_data降维 of 特征工程【day1】 随笔 第10张

流程

  05_data降维 of 特征工程【day1】 随笔 第11张

代码 

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()

 

 

05_data降维 of 特征工程【day1】 随笔 第12张 05_data降维 of 特征工程【day1】 随笔 第13张 05_data降维 of 特征工程【day1】 随笔 第14张

意义

  删除差不多相同的特征data

 

3、PCA(主成分分析)

 1、what is PCA

  05_data降维 of 特征工程【day1】 随笔 第15张

   05_data降维 of 特征工程【day1】 随笔 第16张

 

2、why need 降维?

PCA目的:简化dataSet

 

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

 05_data降维 of 特征工程【day1】 随笔 第17张

05_data降维 of 特征工程【day1】 随笔 第18张

 

 3、how to 降维

1. 找到最好的箭头?

    05_data降维 of 特征工程【day1】 随笔 第19张

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

    所有data信息并未损耗太多

  05_data降维 of 特征工程【day1】 随笔 第20张

  05_data降维 of 特征工程【day1】 随笔 第21张

 

3. 公式计算(了解)

   05_data降维 of 特征工程【day1】 随笔 第22张

 

 

4、人脸特征主成分分析

 05_data降维 of 特征工程【day1】 随笔 第23张

 

 5、PCA

1、语法

 05_data降维 of 特征工程【day1】 随笔 第24张

  一般保留90%以上的信息

05_data降维 of 特征工程【day1】 随笔 第25张

2、流程

  05_data降维 of 特征工程【day1】 随笔 第26张

 

 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%的信息

05_data降维 of 特征工程【day1】 随笔 第27张

 

 

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

1、kaggle比赛题

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

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

  05_data降维 of 特征工程【day1】 随笔 第28张

 

2、data  

  05_data降维 of 特征工程【day1】 随笔 第29张

 

 3、如何进行PCA?

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

    05_data降维 of 特征工程【day1】 随笔 第30张

     05_data降维 of 特征工程【day1】 随笔 第31张

    05_data降维 of 特征工程【day1】 随笔 第32张

  05_data降维 of 特征工程【day1】 随笔 第33张

  05_data降维 of 特征工程【day1】 随笔 第34张

 

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

 

  05_data降维 of 特征工程【day1】 随笔 第35张

    05_data降维 of 特征工程【day1】 随笔 第36张

 

 3、进行主成分分析

 

     05_data降维 of 特征工程【day1】 随笔 第37张

  05_data降维 of 特征工程【day1】 随笔 第38张

 

  05_data降维 of 特征工程【day1】 随笔 第39张

 结果:

   134简化到 27

 

 

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

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

  pip install jupyter  

  

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

  jupyter notebook  

  

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

  05_data降维 of 特征工程【day1】 随笔 第40张

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

  05_data降维 of 特征工程【day1】 随笔 第41张

 

点击New,选择python3

    05_data降维 of 特征工程【day1】 随笔 第42张05_data降维 of 特征工程【day1】 随笔 第43张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄