P12 数据的降维及特征选择

https://www.bilibili.com/video/BV184411Q7Ng?p=12

P12 数据的降维及特征选择

 

 注解:

  1. 这里了的降维不是指数组的维度,不是1维、2维、3维那个维。

P12 数据的降维及特征选择

 

 注解:

  1. 这个是3维的特征转换为2维的特征。
  2. 降维就是把样本的特征的数量减少,比如在分辨男女的时候,把每个样本里面的特征肤色去掉。

P12 数据的降维及特征选择

 

 P12 数据的降维及特征选择

 

 P12 数据的降维及特征选择

 

 P12 数据的降维及特征选择

 

 注解:

  1. 特征2和特征3是可与去掉的,不然突然增加训练成本。

P12 数据的降维及特征选择

 注解:

  1. 过滤式就是把低方差的特征通过设定方差阈值过滤掉。

  P12 数据的降维及特征选择

 

 注解:

  • 如果方差为0或者接近于0,则考虑把这个特征拿掉,因为它没有波动,反映不出样本之间的差别,区分不开不同的样本。

P12 数据的降维及特征选择

 

 P12 数据的降维及特征选择

 

 

P12 数据的降维及特征选择

 

 注解:

  1. 调用函数,把第1列特征和第3列特征去掉。
from sklearn.feature_selection import VarianceThreshold









def var():
    """
    删除低方差的特征
    :return:
    """
    var=VarianceThreshold(threshold=0.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()

运行结果:

P12 数据的降维及特征选择

 

 注解:

  1. 把相同的特征都删掉了,删掉了特征向量[0,0,0]和特征向量[3,3,3].
from sklearn.feature_selection import VarianceThreshold









def var():
    """
    删除低方差的特征
    :return:
    """
    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()

运行结果:

 P12 数据的降维及特征选择

 注解:

  1. 如果是方差阈值设为1,则特征向量[2,1,1]也被去掉了。
  2. 一般方差的阈值可以是[0,10]之间。

P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 注解:

  1. 一张图片的特征向量是可能达到上万的。

P12 数据的降维及特征选择

 

 

 注解:

  1. 用2维表示3维的东西。
  2. 图片1和2看不出来是洒水壶,图片3勉强能看出来,图片4(二维)最能表示洒水壶。

P12 数据的降维及特征选择

 

 

 注解:

  1. 如果特征向量本来就很少,比如10个左右,是没有必要使用PCA进行特征压缩的。

P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 

P12 数据的降维及特征选择

 

 

 注解:

  1. 特征向量1和特征向量50存在一个大约2倍的关系,这就是特征向量之间的相关性。

P12 数据的降维及特征选择

 

 

 注解:

  1. 如果要压缩成一维的话,可以向x轴或者y轴投影,这样数据点就会由于5个变成3个,这个不是PCA。
  2. PCA是找到一个直线,让样本点投影到这条直线上,切尽可能的减少样本量的损失。如,可以找到一条斜线,投影后,5个样本点还是5个样本点,只不过数据发生了变化,数据量没有发生变化。

P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 

 P12 数据的降维及特征选择

 

 P12 数据的降维及特征选择

 

 

P12 数据的降维及特征选择

 

 

 注解:

  1. 参数n_components一般填90%~95%之间的一个数字,表示用PCA(主成分分析)进行特征压缩的时候,保留95%的特征量,一般没有一个最优值,需要不断的调试才能得出最优值。
  2. 参数n_components也可以填一个整数,表示减少到的特征数量,但是一般并不知道需要减少到多少个特征数。

代码演示:

 

from sklearn.decomposition import PCA




def pca():
    """
    主成分分析
    :return:
    4个样本,每个样本3个特征
    """
    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()

运行结果:

P12 数据的降维及特征选择

 

 注解:

  1. 4个样本3个特征,变成了3个样本2个特征。
  2. 当然这两个特征没有实际意义,只是举的数字例子。
  3. 特征数量还剩大约90%,因为调用主成分分析函数的时候,参数选择的就是保留90%的特征数。

 

上一篇:证书密钥KEYSTORE转换PEM


下一篇:苹果证书p12和描述文件的创建方法