zoukankan      html  css  js  c++  java
  • 吴裕雄 python 机器学习——主成份分析PCA降维

    # -*- coding: utf-8 -*-
    
    import numpy as np
    import matplotlib.pyplot as plt
    
    from sklearn import datasets,decomposition
    
    def load_data():
        '''
        加载用于降维的数据
        '''
        # 使用 scikit-learn 自带的 iris 数据集
        iris=datasets.load_iris()
        return iris.data,iris.target
    
    #PCA降维
    def test_PCA(*data):
        X,y=data
        # 使用默认的 n_components
        pca=decomposition.PCA(n_components=None)
        pca.fit(X)
        print('explained variance ratio : %s'% str(pca.explained_variance_ratio_))
    
    # 产生用于降维的数据集
    X,y=load_data()
    # 调用 test_PCA
    test_PCA(X,y)

    def plot_PCA(*data):
        '''
        绘制经过 PCA 降维到二维之后的样本点
        '''
        X,y=data
        # 目标维度为2维
        pca=decomposition.PCA(n_components=2)
        pca.fit(X)
        # 原始数据集转换到二维
        X_r=pca.transform(X) 
        ###### 绘制二维数据 ########
        fig=plt.figure()
        ax=fig.add_subplot(1,1,1)
        # 颜色集合,不同标记的样本染不同的颜色
        colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2))
        for label ,color in zip( np.unique(y),colors):
            position=y==label
            ax.scatter(X_r[position,0],X_r[position,1],label="target= %d"%label,color=color)
        ax.set_xlabel("X[0]")
        ax.set_ylabel("Y[0]")
        ax.legend(loc="best")
        ax.set_title("PCA")
        plt.show()
        
    # 调用 plot_PCA
    plot_PCA(X,y)

  • 相关阅读:
    详细讲解 关于Linux静态库和动态库的分析
    linux下的共享库(动态库)和静态库
    原子性
    TCP-心跳
    linux alsa pcm(此pcm非硬件pcm接口)
    linux音频 DAPM之二:audio paths与dapm kcontrol
    linux 音频驱动
    imx6qsbd kpp
    nand flash详解及驱动编写
    嵌入式Qt程序启动参数-qws 不需要X11桌面系统
  • 原文地址:https://www.cnblogs.com/tszr/p/10795561.html
Copyright © 2011-2022 走看看