中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

python中PCA的實例過程講解

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

成都創(chuàng)新互聯(lián)專注于下城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供下城營銷型網(wǎng)站建設(shè),下城網(wǎng)站制作、下城網(wǎng)頁設(shè)計、下城網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造下城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供下城網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

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

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

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

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

實例

#/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ù),此部分為從存儲列表或單元中讀取分析數(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è)置,因為后續(xù)要進行可視化分析                
    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)         #對特征值進行排序處理,默認為升序
    eigVaInd = eigVaInd[-1:-(topNfeat):-1] #根據(jù)指定數(shù)目進行逆序處理
    redEigVects = eigVects[:,eigVaInd]     #選取對應(yīng)特征向量
    lowDataMat = meanRemoved * redEigVects #數(shù)據(jù)降維X*P
    recontMat = (lowDataMat * redEigVects.T) + meanVals #c處理進行了數(shù)據(jù)重構(gòu),非必須選項
    return lowDataMat, recontMat, eigVals  #返回數(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('累計方差百分比')
 
    ax2 = fig.add_subplot(212)
    ax2.plot(X.T, (dataset[0:numFeat].T)*100, 'b-*')
    plt.xlabel('主成分數(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()

到此,關(guān)于“python中PCA的實例過程講解”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)頁標(biāo)題:python中PCA的實例過程講解
文章起源:http://www.rwnh.cn/article40/jsceho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、定制開發(fā)App設(shè)計營銷型網(wǎng)站建設(shè)、搜索引擎優(yōu)化、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
多伦县| 兴业县| 盐山县| 和田市| 登封市| 中卫市| 孝义市| 美姑县| 平潭县| 新龙县| 邹平县| 盘山县| 阆中市| 泽库县| 唐海县| 桦南县| 千阳县| 贵阳市| 余干县| 淳安县| 光山县| 商河县| 化州市| 漳浦县| 潞城市| 马关县| 阿克苏市| 湘潭县| 桦南县| 临桂县| 思茅市| 三门峡市| 景泰县| 休宁县| 潮州市| 沭阳县| 乌拉特前旗| 铜陵市| 长垣县| 冷水江市| 平泉县|