资源简介
使用python编写了基于PCA的故障检测程序,输入训练数据和测试数据即可。代码中的数据是自行构造的测试数据,可导入自己需要的数据。
亲自编写,可以运行。
代码片段和文件信息
import numpy as np
import pandas as pd
from scipy import linalgstats
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
# 产生训练数据
num_sample = 100
a = 10*np.random.randn(num_sample1)
x1 = a+np.random.randn(num_sample1)
x2 = 1*np.sin(a)+np.random.randn(num_sample1)
x3 = 5*np.cos(5*a)+np.random.randn(num_sample1)
x4 = 0.8*x2+0.1*x3+np.random.randn(num_sample1)
x = np.hstack((x1x2x3x4))
xx_train = x
# 产生测试数据
a = 10*np.random.randn(num_sample1)
x1 = a+np.random.randn(num_sample1)
x2 = 1*np.sin(a)+np.random.randn(num_sample1)
x3 = 5*np.cos(5*a)+np.random.randn(num_sample1)
x4 = 0.8*x2+0.1*x3+np.random.randn(num_sample1)
xx_test = np.hstack((x1x2x3x4))
xx_test[50:1] = xx_test[50:1]+15*np.ones(50)
Xtrain = xx_train
Xtest = xx_test
# 标准化处理
X_mean = np.mean(Xtrain axis=0) #按列求Xtrain平均值
X_std = np.std(Xtrain axis=0) #求标准差
X_rowX_col = Xtrain.shape #求Xtrain行、列数
Xtrain = (Xtrain-np.tile(X_mean(X_row1)))/np.tile(X_std(X_row1))
# 求协方差矩阵
sigmaXtrain = np.cov(Xtrain rowvar=False)
#对协方差矩阵进行特征分解,lamda为特征值构成的对角阵,T的列为单位特征向量,且与lamda中的特征值一一对应:
lamdaT = linalg.eig(sigmaXtrain)
#取对角元素(结果为一列向量),即lamda值,并上下反转使其从大到小排列,主元个数初值为1,若累计贡献率小于90%则增加主元个数
# D = flipud(diag(lamda))
T = T[:lamda.argsort()] #将T的列按照lamda升序排列
lamda.sort() #将lamda按升序排列
D = -np.sort(-np.real(lamda)) #提取实数部分,按降序排列
num_pc = 1
while sum(D[0:num_pc])/sum(D) < 0.9:
num_pc += 1
#取与lamda相对应的特征向量
P = T[:X_col-num_pc:X_col]
TT = Xtrain.dot(T)
TT1 = Xtrain.dot(P)
# 求置信度为95%时的T2统计控制限
T2UCL1 = num_pc*(X_row-1)*(X_row+1)*stats.f.ppf(0.95num_pcX_row-num_pc)/(X_row*(X_row-num_pc))
# 置信度为95%的Q统计控制限
theta = []
for i in range(1 num_pc+1):
theta.append(sum((D[num_pc:])**i))
h0 = 1 - 2*theta[0]*theta[2]/(3*theta[1]**2)
ca = stats.norm.ppf(0.9501)
QUCL = theta[0]*(h0*ca*np.sqrt(2*theta[1])/theta[0] + 1 + theta[1]*h0*(h0 - 1)/theta[0]**2)**(1/h0)
# 在线监测:
# 标准化处理
# X_mean = np.mean(Xtest
- 上一篇:根据epsg代号进行坐标的批量投影转换
- 下一篇:Python 数据库编程入门教程
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论