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