zoukankan      html  css  js  c++  java
  • 《特征工程三部曲》之三:维度压缩

    当特征选择完成之后,就可以直接训练模型了,但是可能由于特征矩阵过大导致计算量大,训练时间长的问题;因此,降低特征矩阵维度,也是必不可少的,主成分分析就是最常用的降维方法,在减少数据集的维度的同时,保持对方差贡献最大的特征,在sklearn中,我们使用PCA类进行主成分分析。

    • 主成分分析(Principal Components Analysis)

    • PCA API

      • 有一个参数用于设置主成分的个数:pca_3=PCA(n_components=3),设置好参数后,就可以生成PCA的对象了
      • 接着我们可以调用fit_transform方法对高维数据进行压缩:data_pca_3=pca3.fit_transform(data)

    我们人类能看到的数据是三维数据,那么怎样把四维数据压缩到三维数据呢?

    #导入iris特征数据到data变量中
    import pandas
    from sklearn import datasets
    import matplotlib.pyplot as plt
    from sklearn.decomposition import PCA
    from mpl_toolkits.mplot3d import Axes3D
    
    iris =datasets.load_iris()
    
    data = iris.data
    
    #分类变量到target变量中
    target = iris.target
    
    #使用主成分分析,将四维数据压缩为三维
    pca_3 = PCA(n_components=3)
    data_pca_3 = pca_3.fit_transform(data)
    
    #绘图
    colors={0:'r',1:'b',2:'k'}
    markers={0:'x',1:'D',2:'o'}
    
    #弹出图形
    #%matplotlib qt
    
    #三维数据
    fig = plt.figure(1,figsize=(8,6))
    ax = Axes3D(fig,elev=-150,azim=110)
    
    data_pca_gb = pandas.DataFrame(
        data_pca_3
    ).groupby(target)
    
    for g in data_pca_gb.groups:
        ax.scatter(
            data_pca_gb.get_group(g)[0],
            data_pca_gb.get_group(g)[1],
            data_pca_gb.get_group(g)[2],
            c=colors[g],
            marker=markers[g],
            cmap=plt.cm.Paired
        )
    plt.show()

    生成的效果图如下:
    @数据分析-jacky

  • 相关阅读:
    backbone Model
    this指的是,调用函数的那个对象。
    原型和实例的关系
    继承之重写prototype
    11、分布式session的几种实现方式
    10、session 分布式处理
    9、session 与 cookie 区别
    8、HTTP 请求的 GET 与 POST 方式的区别
    7、说说自定义注解的场景及实现
    6、说说反射的用途及实现
  • 原文地址:https://www.cnblogs.com/shujufenxi/p/7786578.html
Copyright © 2011-2022 走看看