• 大小: 31KB
    文件类型: .rar
    金币: 2
    下载: 3 次
    发布日期: 2021-11-16
  • 语言: Python
  • 标签: PCA  

资源简介

主成分分析(PCA)python实现(含数据集),结构清晰,适合初学者

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Fri Dec  1 21:29:57 2017

@author: Q
“““

import numpy as np
import matplotlib.pyplot as plt
def loadData(filenamedelim = ‘\t‘):
    with open(filename) as fr:
        stringArr = [line.strip().split(delim) for line in fr.readlines()]
        dataArr = [list(map(floatline)) for line in stringArr]
    return np.mat(dataArr)
def pca(dataSettopNfeat = 99999999):
    dataMean = np.mean(dataSetaxis = 0)
    meanRemoved = dataSet - dataMean
    covMat = np.cov(meanRemovedrowvar=0)
    eigValseigVec = np.linalg.eig(np.mat(covMat))
    eigValInd = np.argsort(eigVals)
    eigValInd = eigValInd[:-(topNfeat+1):-1]
    redEigVects = eigVec[:eigValInd]
    lowDDataMat = meanRemoved * np.mat(redEigVects)
    reconMat = lowDDataMat * redEigVects.T + dataMean
    return lowDDataMatreconMat
    

    
    
    
    
#data = loadData(‘testSet.txt‘)
#lowdatarecondta = pca(data1)
#fig = plt.figure(0)
#ax = fig.add_subplot(111)
#ax.scatter(data[:0]data[:1]s=90marker=‘^‘c=‘r‘)
#ax.scatter(recondta[:0]recondta[:1]s=30marker=‘o‘c=‘b‘)
#plt.show()

def svd(dataSetN = 1):
    UsigmaVT = np.linalg.svd(dataSet)
    sig = np.mat(np.eye(N)*sigma[:N])
    new = U[::N] * sig * VT[:N:]
    return new

    
data = loadData(‘testSet.txt‘)
recondta = svd(data1)
fig = plt.figure(0)
ax = fig.add_subplot(111)
ax.scatter(data[:0]data[:1]s=90marker=‘^‘c=‘r‘)
ax.scatter(recondta[:0]recondta[:1]s=30marker=‘o‘c=‘b‘)
plt.show()



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          4  2017-12-03 18:38  PCA\.git\COMMIT_EDITMSG

     文件        295  2017-12-03 18:39  PCA\.git\config

     文件         73  2017-12-03 18:37  PCA\.git\description

     文件         23  2017-12-03 18:37  PCA\.git\HEAD

     文件        478  2017-12-03 18:37  PCA\.git\hooks\applypatch-msg.sample

     文件        896  2017-12-03 18:37  PCA\.git\hooks\commit-msg.sample

     文件        189  2017-12-03 18:37  PCA\.git\hooks\post-update.sample

     文件        424  2017-12-03 18:37  PCA\.git\hooks\pre-applypatch.sample

     文件       1642  2017-12-03 18:37  PCA\.git\hooks\pre-commit.sample

     文件       1348  2017-12-03 18:37  PCA\.git\hooks\pre-push.sample

     文件       4898  2017-12-03 18:37  PCA\.git\hooks\pre-rebase.sample

     文件        544  2017-12-03 18:37  PCA\.git\hooks\pre-receive.sample

     文件       1239  2017-12-03 18:37  PCA\.git\hooks\prepare-commit-msg.sample

     文件       3610  2017-12-03 18:37  PCA\.git\hooks\update.sample

     文件        217  2017-12-03 18:38  PCA\.git\index

     文件        240  2017-12-03 18:37  PCA\.git\info\exclude

     文件        150  2017-12-03 18:38  PCA\.git\logs\HEAD

     文件        150  2017-12-03 18:38  PCA\.git\logs\refs\heads\master

     文件        143  2017-12-03 18:39  PCA\.git\logs\refs\remotes\origin\master

     文件         85  2017-12-03 18:38  PCA\.git\objects\23\b850066978b8698f56d8f11706562033b08db9

     文件        128  2017-12-03 18:38  PCA\.git\objects\4e\a1e0a5f931af9114ed8019472a8450f3b9a2f1

     文件       9403  2017-12-03 18:37  PCA\.git\objects\d7\18f1465950378e0a477a5f90513e1f7c2802ab

     文件        694  2017-12-03 18:37  PCA\.git\objects\db\3e1c786ef71fd59451f1eb0fddde72d37723cb

     文件         41  2017-12-03 18:38  PCA\.git\refs\heads\master

     文件         41  2017-12-03 18:39  PCA\.git\refs\remotes\origin\master

     文件       1543  2017-12-03 16:37  PCA\PCA.py

     文件      19472  2011-06-04 12:43  PCA\testSet.txt

     目录          0  2017-12-03 18:39  PCA\.git\logs\refs\remotes\origin

     目录          0  2017-12-03 18:38  PCA\.git\logs\refs\heads

     目录          0  2017-12-03 18:39  PCA\.git\logs\refs\remotes

............此处省略21个文件信息

评论

共有 条评论