06机器学习——特征工程数据的降维
这里的维度是指特征的数量
如:三维的降为二维的
比如有四个特征,但是并不是全部需要,就把不需要的特征删除掉
删除掉后特征的数量就变少了,所以统称为降维
数据降维
1.特征选择
2.主成分分析
(1)数据的降维之特征选择
比如我们要对鸟进行分类
·特征选择是什么
Variance(方差),过滤式就是对方差进行过滤
方差为0时,说明这一列特征值都一样,一样的话就不需要拿去分析了
指定方差,将无用的、冗余的特征都给删除
方差大小:考虑所有样本这个特征的数据情况
from sklearn.feature_selection import VarianceThreshold
def var():
"""
特征选择-删除低方差的特征
:return:None
"""
var=VarianceThreshold()
data=var.fit_transform([[0,2,0,3],[0,1,4,3],[0,1,1,3]])
print(data)
return None
if __name__=="__main__":
var()
结果:
可以指定删除的方差:
from sklearn.feature_selection import VarianceThreshold
def var():
"""
特征选择-删除低方差的特征
:return:None
"""
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()
结果:
这个方差的大小也不是想取多少就取多少,一般是根据实际情况来取
(嵌入式之后再说)
·其他特征选择方法
神经网络(后面具体介绍)
(2)数据的降维之主成分分析
特征数量达到上百的时候,考虑数据的简化
数据也会改变,特征数量也会减少
n_components:
·小数:百分比的形式,0-1,动态的指定保留多少信息,保留90%-95%最好
·整数:指定的是,减少到的特征数量
from sklearn.decomposition import PCA
def pca():
"""
主成分分析进行特征降维
: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__":
pca()
结果:
降维案例1
每个人买了什么物品,用户进行分类就可以有针对性的投广告
降维到27
其他降维方法
特征选择与主成分分析的比较
当维度过百时就使用主成分分析