日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python中PCA的處理過程

1、輸入矩陣歸一化處理。

2、計(jì)算樣本協(xié)方差矩陣。

3、求解協(xié)方差矩陣指定的特征值對(duì)應(yīng)特征向量。

4、確定轉(zhuǎn)換矩陣,求解降維數(shù)據(jù)。

實(shí)例

#/usr/nom/env python
# _*_coding:utf-8_*_
# @Time      :2021/9/3 10:04
# @Author    :A bigfish
# @FileName  :maindemo13.py
# @Software  :PyCharm
 
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
 
# 首先導(dǎo)入數(shù)據(jù),此部分為從存儲(chǔ)列表或單元中讀取分析數(shù)據(jù)
def loadDataSet(filename, delim='\t'):    #此處的'\t'表示不同變量間的分隔符,t表示tab鍵鍵入的空格
    fr = open(filename)
    stringArr = [line.strip().split(delim) for line in fr.readlines()]
    dataArr = [list(map(float, line)) for line in stringArr]
    return np.mat(dataArr)
 
 
# 定義PCA分析函數(shù)
def pca(dataset, topNfeat = 99999):        #topNfeat特征值數(shù)目,通常不用設(shè)置,因?yàn)楹罄m(xù)要進(jìn)行可視化分析                
    meanVals = np.mean(dataset, axis=0)    #求均值
    meanRemoved = dataset - meanVals       #預(yù)處理
    covMat = np.cov(meanRemoved, rowvar=0) #求解輸入數(shù)據(jù)協(xié)方差矩陣
    eigVals, eigVects = np.linalg.eig(np.mat(covMat))    #求解特征值,特征向量
    eigVaInd = np.argsort(eigVals)         #對(duì)特征值進(jìn)行排序處理,默認(rèn)為升序
    eigVaInd = eigVaInd[-1:-(topNfeat):-1] #根據(jù)指定數(shù)目進(jìn)行逆序處理
    redEigVects = eigVects[:,eigVaInd]     #選取對(duì)應(yīng)特征向量
    lowDataMat = meanRemoved * redEigVects #數(shù)據(jù)降維X*P
    recontMat = (lowDataMat * redEigVects.T) + meanVals #c處理進(jìn)行了數(shù)據(jù)重構(gòu),非必須選項(xiàng)
    return lowDataMat, recontMat, eigVals  #返回?cái)?shù)據(jù)
 
# 定義特值值繪制函數(shù)
def plotEig(dataset, numFeat=20):            
    mpl.rcParams['font.sans-serif'] = ['Times NewRoman']
    sumData = np.zeros((1, numFeat))
    dataset = dataset / sum(dataset)
    for i in range(numFeat):
        sumData[0, i] = sum(dataset[0:i])
 
    X = np.linspace(1, numFeat, numFeat)
    fig = plt.figure()
    ax = fig.add_subplot(211)
    ax.plot(X, (sumData*100).T, 'r-+')
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    plt.ylabel('累計(jì)方差百分比')
 
    ax2 = fig.add_subplot(212)
    ax2.plot(X.T, (dataset[0:numFeat].T)*100, 'b-*')
    plt.xlabel('主成分?jǐn)?shù)')
    plt.ylabel('方差百分比')
    plt.show()
 
# 定義原始數(shù)據(jù)及第一主成分繪制函數(shù)
def plotData(OrigData, recData):
    import matplotlib.pyplot as plt
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.scatter(OrigData[:,0].flatten().A[0], OrigData[:, 1].flatten().A[0], c='blue',marker='^', s=90)
    ax.scatter(recData[:, 0].flatten().A[0], recData[:, 1].flatten().A[0], c='red', marker='o',s=90)
plt.show()

以上就是python中PCA的處理過程,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。


網(wǎng)頁標(biāo)題:創(chuàng)新互聯(lián)Python教程:python中PCA的處理過程
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/djdcssd.html