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



浙公网安备 33010602011771号