中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中PCA的實例過程講解

發布時間:2021-09-07 13:49:41 來源:億速云 閱讀:123 作者:chen 欄目:編程語言

這篇文章主要介紹“python中PCA的實例過程講解”,在日常操作中,相信很多人在python中PCA的實例過程講解問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python中PCA的實例過程講解”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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

2、計算樣本協方差矩陣。

3、求解協方差矩陣指定的最大特征值對應特征向量。

4、確定轉換矩陣,求解降維數據。

實例

#/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 *
 
# 首先導入數據,此部分為從存儲列表或單元中讀取分析數據
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分析函數
def pca(dataset, topNfeat = 99999):        #topNfeat最大特征值數目,通常不用設置,因為后續要進行可視化分析                
    meanVals = np.mean(dataset, axis=0)    #求均值
    meanRemoved = dataset - meanVals       #預處理
    covMat = np.cov(meanRemoved, rowvar=0) #求解輸入數據協方差矩陣
    eigVals, eigVects = np.linalg.eig(np.mat(covMat))    #求解特征值,特征向量
    eigVaInd = np.argsort(eigVals)         #對特征值進行排序處理,默認為升序
    eigVaInd = eigVaInd[-1:-(topNfeat):-1] #根據指定數目進行逆序處理
    redEigVects = eigVects[:,eigVaInd]     #選取對應特征向量
    lowDataMat = meanRemoved * redEigVects #數據降維X*P
    recontMat = (lowDataMat * redEigVects.T) + meanVals #c處理進行了數據重構,非必須選項
    return lowDataMat, recontMat, eigVals  #返回數據
 
# 定義特值值繪制函數
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('累計方差百分比')
 
    ax2 = fig.add_subplot(212)
    ax2.plot(X.T, (dataset[0:numFeat].T)*100, 'b-*')
    plt.xlabel('主成分數')
    plt.ylabel('方差百分比')
    plt.show()
 
# 定義原始數據及第一主成分繪制函數
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的實例過程講解”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双鸭山市| 张家口市| 建始县| 广丰县| 龙井市| 西城区| 定南县| 普兰县| 家居| 松阳县| 崇义县| 泸溪县| 黄梅县| 浦北县| 中方县| 金川县| 石嘴山市| 京山县| 山丹县| 巧家县| 延长县| 马山县| 含山县| 图片| 岑巩县| 庆云县| 临漳县| 潼南县| 太仓市| 噶尔县| 泰来县| 崇左市| 轮台县| 灵台县| 汝州市| 祁连县| 廉江市| 金沙县| 辛集市| 无极县| 石家庄市|