zoukankan      html  css  js  c++  java
  • 博雅数据机器学习07

    博雅数据机器学习07

    PCA算法

    import pandas as pd

    import numpy as np

    from numpy import linalg as LA

    # 读取数据

    iris = pd.read_csv('iris.csv', usecols=range(4))

    # 定义主成分分析函数

    def pca(dataMat, n_components):

        

        # 数据中心化

        meanVals = np.mean(dataMat, axis=0)

        centered = dataMat - meanVals

        

        # 计算协方差矩阵,并进行特征值分解

        # 注意,协方差矩阵计算需指定rowvar参数为False,即表明每一列

        # 为每一个特征的不同取值

        covMat = np.cov(centered, rowvar=False)

        w, v = LA.eig(covMat)

        

        # 将特征值从大到小排序,并得到对应的索引值序列

        idxMin2Max = np.argsort(w)

        idxMax2Min = idxMin2Max[::-1]

        

        # 取前n_components个特征向量构成转换矩阵

        vidx = idxMax2Min[:n_components]

        tfMat = v[:, vidx]

        

        # 将原始数据转换到新的低维空间

        lowdMat = np.matmul(dataMat, tfMat)

        

        return lowdMat, tfMat

    # 使用自定义pca函数对鸢尾花数据进行降维

    irisMat = np.mat(iris)

    iris2d, _ = pca(irisMat, n_components=2)

     

  • 相关阅读:
    华为交换机配置NTP服务端/客户端
    利用shell简单监控网络设备的接口状态发出告警
    Linux下自动清理超过指定大小文件
    Kotlin进阶学习5
    Kotlin进阶学习4
    Kotlin进阶学习3
    大二暑假第一周学习总结
    Kotlin进阶学习2
    Kotlin进阶学习1
    Kotlin基础学习3
  • 原文地址:https://www.cnblogs.com/xueqiuxiang/p/14466958.html
Copyright © 2011-2022 走看看