# -*- coding:utf-8 -*-
__author__ = 'yangxin_ryan'
from numpy import *
import matplotlib.pyplot as plt
class PCA(object):
def load_data_set(self, file_name, delim='\t'):
fr = open(file_name)
string_arr = [line.strip().split(delim) for line in fr.readlines()]
dat_arr = [list(map(float, line)) for line in string_arr]
return mat(dat_arr)
def pca(self, data_mat, top_n_feat=9999999):
mean_vals = mean(data_mat, axis=0)
mean_removed = data_mat - mean_vals
cov_mat = cov(mean_removed, rowvar=0)
eig_vals, eig_vects = linalg.eig(mat(cov_mat))
eig_val_ind = argsort(eig_vals)
eig_val_ind = eig_val_ind[:-(top_n_feat + 1): -1]
red_eig_vects = eig_vects[:, eig_
Python实现PCA简化数据
最新推荐文章于 2023-02-20 18:49:55 发布
