• 大小: 2KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-06-10
  • 语言: Python
  • 标签: PCA  python  立即下载  

资源简介

使用python编写了基于PCA的故障诊断程序,输入测试数据和训练数据即可

资源截图

代码片段和文件信息

from scipy import stats
import numpy as np
import math
import matplotlib.pyplot as plt
def PCA(NewXtran):
    size = np.shape(NewXtran)
    USV=np.linalg.svd(NewXtran/math.sqrt(size[0]-1))   
    eigVals=S**2
    arraySum=sum(eigVals)  
    tmpSum=0  
    n=0  
    for i in eigVals:
        tmpSum+=i    
        if tmpSum/arraySum<0.85:
            n+=1              
    lamda=eigVals[0:n+1]            
    n_eigVect=V[:0:n+1]
    f_eigVect=V[:n+1:size[1]]
    return nlamdan_eigVectf_eigVect

#离线训练
Xtran = np.genfromtxt(“d00_te.dat“)#导入训练数据
size = np.shape(Xtran)#读取数据尺寸
mean = np.mean(Xtranaxis=0)#平均值
std = np.std(Xtranaxis=0)#方差
NewXtran = np.zeros((size[0]size[1]))#数据标准化
for i in range(size[1]):
    NewXtran[:i] = (Xtran[:i]-mean[i])/std[i]
nlamdan_eigVectf_eigVect = PCA(NewXtran)#PCA处理
#计算T2控制线
T2UCL = n*(size[0]-1)*(size[0]+1)*stats.f.ppf(0.95nsize[0]-n)/(size[0]*(size[0]-n))  
#计算SPE控制线
theta = np.zeros((31))
for i in range (3):
    theta[i0] = sum(lamda**(2*i));
h0 = 1-(2*theta[00]*theta[20])/(

评论

共有 条评论