降维:
降低维度:在特定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程
目标:特征与特征之间不相关(减少冗余信息)
0维:标量
1维:向量
2维:矩阵
这里处理对象是二维数组
两种方法:
特征选择
主成分分析
特征选择:
数据中包含冗余相关变量,旨在从原有特征中找出主要特征
![]()
方法:
低方差特征过滤:
API:
# 特征值的低方差过滤 def variance_demo(): ''' 过滤低方差的特征 :return: ''' # 1 获取数据 data = pd.read_csv("水垢数据(带标签).csv", encoding="utf-8") # 保留数据额所有行,和第1到倒数第1列 data = data.iloc[1:, 0:-1] # 返回data.shape可以直接显示特征个数 # print(data, data.shape) # 2 实例化一个转换器类,threshold设置阈值,特征值的方差低于5的特征都会被删除 tranfer = VarianceThreshold(threshold=10) # 3 调用fit_transform data_new = tranfer.fit_transform(data) print('data_new:\n', data_new, data_new.shape) # 相关系数就表示了特征间的相关程度(这里采用皮尔逊相关系数api:pearsonr) # 计算两个变量的相关系数,返回结果的第一个值是相关系数,大于0是正相关,小于0是负相关 r1 = pearsonr(data['w1'], data['w3']) r2 = pearsonr(data['w2'], data['w4']) print('相关系数是:\n', r1) print('相关系数是:\n', r2) return None
主成分分析:
API:
案例:探究用户对物品类别的喜好细分
1、需要将user_id和aisle放在同一个表中
2、找到 user_id和aisle之间的关系 - 交叉表和透视表
3、特征冗余过多 -> PCA降维