資源簡介
本資源介紹了兩種pca基于python的故障診斷實現,一種是針對數據維數冗余的降維診斷,另一種是小數據維數的診斷,包含代碼和數據集。
代碼片段和文件信息
from?scipy?import?stats
import?numpy?as?np
import?math
import?matplotlib.pyplot?as?plt
import?pandas?as?pd
def?PCA(NewXtran):
????size?=?np.shape(NewXtran)
????U?S?V?=?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?n?lamda?n_eigVect?f_eigVect
#?離線訓練
Xtran?=?np.genfromtxt(“d00_te.dat“)??#?導入訓練數據
#?print(Xtran)
size?=?np.shape(Xtran)??#?讀取數據尺寸
mean?=?np.mean(Xtran?axis=0)??#?平均值
std?=?np.std(Xtran?axis=0)??#?方差
NewXtran?=?np.zeros((size[0]?size[1]))??#?數據標準化
for?i?in?range(size[1]):
????NewXtran[:?i]?=?(Xtran[:?i]?-?mean[i])?/?std[i]
n?lamda?n_eigVect?f_eigVect?=?PCA(NewXtran)??#?PCA處理
#?計算T2控制線?@1
T2UCL?=?n?*?(size[0]?-?1)?*?(size[0]?+?1)?*?stats.f.ppf(0.99?n?s
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-08-09?13:51??pca\
?????目錄???????????0??2018-08-09?13:50??pca\方法一\
?????文件?????????127??2018-08-09?13:43??pca\方法一\label.csv
?????文件????????7225??2018-08-09?13:49??pca\方法一\PCA.Py
?????文件????????1742??2018-08-09?13:42??pca\方法一\test.csv
?????文件????????1449??2018-08-09?13:42??pca\方法一\train.csv
?????目錄???????????0??2018-08-09?13:53??pca\方法二\
?????文件??????799680??2018-07-02?15:33??pca\方法二\d00_te.dat
?????文件??????799680??2018-07-02?15:33??pca\方法二\d01_te.dat
?????文件????????2585??2018-08-09?13:53??pca\方法二\pca.py
評論
共有 條評論