工業數據:基於統計和信號的特徵提取方法

2021-02-19 機器學習與複雜系統

在機械加工過程中,刀具銑削過程傳感器監控數據均為時序數據,如下圖所示,表現為一系列沒有固定規律的隨機離散值,不能有效識別數據特徵與磨損度的關係,因此需要進行特徵提取,把原有的低維時序數據映射到高維表示,挖掘和構造輸入數據的新特徵,進而找出最能幫助模型擬合的輸入(X)和輸出(Y)特徵。

在很多預測性維護的場景(如旋轉件、振動等)中,我們完全可以採用基於統計和信號的特徵提取方法就能得到一些較好的特徵。本文的特徵提取方法主要包含三個角度:

基於統計的時域特徵,就是使用統計學方法如均方根、方差、最大值、最小值、偏斜度、峰度、峰峰值等提取出的新數據。

1.1 均方根(Root Mean Square, RMS)

均方根(Root Mean Square, RMS),是信號有效值的反映:


方差(Variance),衡量隨機變量或一組數據離散程度,是源數據和期望值相差的度量:

最大值(Max)和最小值(Min),表示在一定時間範圍內數據的最強和最弱的程度:

1.4 偏度(Skewness)

偏度(Skewness)又稱偏態係數,度量數據的概率密度曲線分布偏斜的方向和程度,即與平均值相比數據的非對稱的程度特徵。

其中,

1.5 峰峰值(Peak to Peak, PP)

峰峰值(Peak to Peak, PP),即一個周期內數據最高值和最低值之間的差值,描述了數據的變化範圍的大小:

1.6 峰度(Kurtosis)

峰度(Kurtosis)又稱峰態係數,表示在平均值處數據的概率密度分布曲線的最大值大小。峰度直觀地反映了曲線的峰部尖度,峰度越高,說明曲線底部厚度越大,會導致方差越大,原因是數據存在一定數量的顯著比平均值大或小的差值。

其中,

頻域分析是信號領域中很重要的分析方法,具體包括了頻譜分析、能量譜分析、功率譜分析和倒頻譜分析等,其中以頻譜分析最為常用也最為重要。頻譜分析主要將信號數據通過傅立葉變換得到幅頻譜和相頻譜進行分析,有關傅立葉變換的內容網上有很多,就不贅述了。

通過計算機和傳感器採集得到的信號是離散信號,可以採用離散傅立葉變換:

信號的幅值

分別以幅值

2.1 譜偏態係數

譜偏態係數(Spectral Skewness):統計頻域上幅值的分布偏斜的方向和程度:

2.2 譜峰態係數

譜峰態係數(Spectral Kurtosis):表示頻域上幅值波形的尖銳程度:

2.3 譜功率

譜功率(Spectral Power):表示單位頻帶內的信號功率:

小波變換(wavelet transform,WT)是一種新的變換分析方法,它繼承和發展了短時傅立葉變換局部化的思想,同時又克服了窗口大小不隨頻率變化等缺點,能夠提供一個隨頻率改變的「時間-頻率」窗口,是進行信號時頻分析和處理的理想工具。

小波變換過程簡述如下:

原始輸入信號X通過一組小波函數基經低通濾波器低頻分量(又稱為近似子帶)和高頻分量(又稱為細節子帶),將低頻分量作為輸入信號,又進行小波分解,得到下一層的低頻分量和高頻分量,以此類推,可以得到

小波包分解(Wavelet Packet Decomposition)又稱為最優子帶樹結構(Optimal Subband Tree Structuring),如圖(b)所示,是對小波變換的進一步優化,具體為:在小波變換的基礎上,也對細節子帶進一步分解,最後通過最小化代價函數,計算出最優的信號分解路徑,並以此路徑對原始輸入信號進行分解。

選擇合適的小波函數基是進行信號分解的關鍵步驟。常用的小波函數基有哈爾小波函數基、多貝西小波和雙正交小波等。

多貝西小波作為稀疏基引入信號的光滑誤差不容易被察覺,因此具有較好的正則性,信號重構過程比較光滑,而且可以通過階次N的來控制頻域的局部化能力,使用較為靈活,因此本文的小波包分解過程採用多貝西小波函數基。

介紹完枯燥的原理後,我們通過實際操作來看看這麼常用的特徵提取方法最終的效果如何。

4.1 時域特徵提取效果

圖中展示了PHM2010刀具磨損預測數據集C1數據的X軸的振動信號在銑刀磨損周期內的6個統計學特徵與磨損度的關係圖。

4.2 頻域特徵提取效果

頻域特徵首先對預處理後的原始數據進行FFT處理,得到幅值譜圖,然後分別計算譜偏態係數、譜峰態係數和譜功率,獲得銑刀磨損度預測的頻域特徵。圖中(a)展示的是C1數據的X軸振動信號預處理後的數據經過快速傅立葉變換得到的幅值譜圖,圖中(b)(c)(d)分別是譜偏態係數、譜峰態係數、譜功率與磨損度的關係圖。

4.3 時頻聯合域特徵提取效果

在小波包分解過程中,小波函數基採用多貝西小波函數,採用分解層數

至此,原始輸入數據的基於統計的時域特徵、基於頻譜的頻域特徵和基於小波能量的時頻域特徵被提取出來,原來7個通道的數據擴展到70個通道,在更高維的數值空間表徵了更多的過程數據信息,為銑刀磨損度預測提供了豐富的樣本數據。

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport scipy.stats as stsimport timefrom pywt._wavelet_packets import WaveletPacket
start_time = time.time()
def rms_fea(a): return np.sqrt(np.mean(np.square(a)))

def var_fea(a): return np.var(a)

def max_fea(a): return np.max(a)

def skew_fea(a): return sts.skew(a)

def kurt_fea(a): return sts.kurtosis(a)

def pp_fea(a): return np.max(a) - np.min(a)

def wave_fea(a): wp = WaveletPacket(a, 'db1', maxlevel=8) nodes = wp.get_level(8, 'freq') return np.linalg.norm(np.array([n.data for n in nodes]), 2)

def spectral_skw(a): n = a.shape[0] mag = np.abs(np.fft.fft(a)) mag = mag[1:n//2]*2.00/n return sts.skew(mag)

def spectral_kurt(a): n = a.shape[0] mag = np.abs(np.fft.fft(a)) mag = mag[1:n//2]*2.00/n return sts.kurtosis(mag)

def spectral_pow(a): n = a.shape[0] mag = np.abs(np.fft.fft(a)) mag = mag[1:n//2]*2.00/n return np.mean(np.power(mag, 3))

def extract_fea(data, num_stat=10): data_fea = [] dim_feature = 1 for i in range(dim_feature): data_slice = data data_fea.append(rms_fea(data_slice)) data_fea.append(var_fea(data_slice)) data_fea.append(max_fea(data_slice)) data_fea.append(pp_fea(data_slice)) data_fea.append(skew_fea(data_slice)) data_fea.append(kurt_fea(data_slice)) data_fea.append(wave_fea(data_slice)) data_fea.append(spectral_kurt(data_slice)) data_fea.append(spectral_skw(data_slice)) data_fea.append(spectral_pow(data_slice)) data_fea = np.array(data_fea) return data_fea.reshape((1, dim_feature*num_stat))

sample_num = 315sensor_num = 7feature_num = 70
print()print('-' * 30)print(' 正在提取數據 ')print('-' * 30)print()
data = np.zeros((sample_num, feature_num), dtype=np.float32)for sample_index in range(0, sample_num): print("Processing C1 set:" + str(sample_index + 1))
for m in range(0, sensor_num): str1 = "%03d" % (sample_index + 1) str2 = m + 1        read_path = 'C:/Users/Kaifeng Guan/Desktop/My Tool Wear rediction/Code/new_data/dataset1/c1/c_1_' \ + str(str1) + '/f' + str(str2) + '.csv' pre_data = np.array(pd.read_csv(read_path)) pre_data = np.reshape(pre_data, (len(pre_data),))
data[sample_index, m*10:(m+1)*10] = extract_fea(pre_data)C1_normal = data

data = np.zeros((sample_num, feature_num), dtype=np.float32)for sample_index in range(0, sample_num): print("Processing C4 set:" + str(sample_index + 1))
for m in range(0, sensor_num): str1 = "%03d" % (sample_index + 1) str2 = m + 1        read_path = 'C:/Users/Kaifeng Guan/Desktop/My Tool Wear rediction/Code/new_data/dataset1/c4/c_4_' \ + str(str1) + '/f' + str(str2) + '.csv' pre_data = np.array(pd.read_csv(read_path)) pre_data = np.reshape(pre_data, (len(pre_data),))
data[sample_index, m*10:(m+1)*10] = extract_fea(pre_data)C4_normal = data

data = np.zeros((sample_num, feature_num), dtype=np.float32)for sample_index in range(0, sample_num): print("Processing C6 set:" + str(sample_index + 1))
for m in range(0, sensor_num): str1 = "%03d" % (sample_index + 1) str2 = m + 1        read_path = 'C:/Users/Kaifeng Guan/Desktop/My Tool Wear rediction/Code/new_data/dataset1/c6/c_6_' \ + str(str1) + '/f' + str(str2) + '.csv' pre_data = np.array(pd.read_csv(read_path)) pre_data = np.reshape(pre_data, (len(pre_data),))
data[sample_index, m*10:(m+1)*10] = extract_fea(pre_data)C6_normal = data



點亮 ,是對我們最大的讚賞

相關焦點

  • 基於深度學習的文本數據特徵提取方法之Glove和FastText
    像LSA這樣的方法可以有效地利用統計信息,但在單詞類比任務上,比如我們如何發現語義相似的單詞,它們的表現相對較差。像skip-gram這樣的方法可能在類比任務上做得更好,但是它們在全局水平上沒有很好地利用語料庫的統計數據。
  • 南京航空航天大學崔江等:一種基於改進堆棧自動編碼器的航空發電機旋轉整流器故障特徵提取方法
    圖4  空載條件下4種典型故障模式勵磁電流波形圖  特徵提取及診斷:分別採用專家領域知識(方法I)、單隱層神經網絡結構(方法II)和兩個4層的SAE網絡結構(方法III)所提取的故障特徵和基於GRA-SAE的特徵提取方法(方法IV)提取的特徵值進行比較(分別考慮提取3、4和5維特徵等三種情況進行驗證,見表1—3)。
  • Hilbert 變換提取信號特徵的 Python 實現
    好的,這是Hilbert變換的定義,我們這裡討論它的一個具體用途,提取信號特徵值,提取信號特徵值有什麼用呢?設 A 是n階方陣,如果存在數m和非零n維列向量 x,使得 Ax=mx 成立,則稱 m 是A的一個特徵值或本徵值。
  • 基於地基雷射雷達的活立木材積提取算法
    目前國內外學者開展了利用地基雷射雷達提取單木參數的一系列研究。·Thies等、Astrup等提出了一種基於立木的地面雷射掃描數據重建樹幹三維表面的方法和算法。·Tansey等根據地面雷射掃描儀數據估算了科西嘉島松林地的樹木材積。
  • 機器視覺之HOG特徵提取(附python和c++代碼)
    HOG是一個特徵描述符,與SIFT、SURF和ORB屬於同一類型。不同的是,HOG不是基於顏色值而是基於梯度來計算直方圖的。
  • ORB-SLAM中的ORB特徵(提取)
    ,長為 這個問題的解決是使用了學習的方法,利用了大量的數據,選擇出了效果最好的256個點對位置。以後每次提取特徵點都使用這256個位置。4.4 抗噪能力的提高在計算BRIEF描述子的時候,ORB使用的不是每個點的灰度,而是周圍5×5的patch的灰度。因此起到了低通濾過的效果,對噪聲有更強的魯棒性。5.
  • 【論文推薦】基於深度殘差網絡的水下通信調製信號分類
    傳統的機器學習方法主要包括決策樹(DT),隨機森林(RF),K-最近鄰(KNN)和支持向量機(SVM)[4]。這些方法在進行調製識別時都需要進行適當的數據集的特徵提取。在識別各種數據集方面更優勢的深度學習方法在許多領域已經獲得了超過其他機器學習方法的壓倒性的優勢[5]。
  • 基於yolo5工地安全帽和禁入危險區域識別系統,附數據集
    關於增加數據集分類的方法:SHWD 數據集裡面沒有 person 的類別,先將現有的自己的數據集執行腳本生成 yolov5 需要的標籤文件 .txt,之後再用 yolov5x.pt 加上 yolov5x.yaml ,使用指令檢測出人體python detect.py --save-txt --source .
  • 【技術實戰】安卓模擬器數據提取分析方法
    目前比較常見的安卓模擬器有「Android SDK」、「BlueStacks」和「逍遙安卓模擬器」等。由於安卓模擬器操作簡單,成本低,故一些不法分子就選擇利用安卓模擬器進行詐騙等違法犯罪行為。本文將主要介紹基於逍遙安卓模擬器的數據提取分析方法。
  • 使用NLP和ML來提取和構造Web數據
    對於每個文檔,我要提取標題、發布日期、人名、地名和其他各種信息。我們還將增強文檔中已經存在的信息—例如,我們將使用文檔中的地名來獲取相關的坐標,這對於以後可視化數據非常有用。重複的名字如果出現了重複的情況,該函數將使用前面用於國家/地區函數的相同統計數據。它將測量一個名字被提及的次數,並將其作為最有可能的名字。例如:喬·拜登和他的兒子亨特·拜登都是受歡迎的美國政治家。喬·拜登是前副總統。拜登現在正在與現任總統唐納·川普競選總統」。根據文本的統計重點,這篇文章顯然是關於喬·拜登,而不是亨特·拜登。
  • 基於深度模型的Out of Distribution(OOD)檢測相關方法介紹
    傳統的機器學習方法通常的假設是模型訓練和測試的數據是獨立同分布的(IID, Independent Identical Distribution),這裡訓練和測試的數據都可以說是In Distribution(ID)。
  • 情感分析:基於算法的分析方法(模型訓練部分)
    一個完整的監督式分析模型一般分為以下步驟:1.訓練庫構建,監督式過程必須通過訓練集幫助模型識別特徵;2.特徵提取及模型構建,有時候在構建模型之前,為了減少模型的複雜度,可能使用其他方法識別一些特徵或特徵詞,比如TFIDF算法,但也許會出現幫倒忙的現象,反而使模型準確度大幅下降,儘管減少了建模的複雜度,但卻增加了整個分析過程的複雜度;3.k層交叉檢驗進行結果評價。
  • 模板識別:使用OpenCV實現基於特徵的圖像對齊
    我們將使用的技術通常被稱為「基於特徵圖像對齊」,因為在該技術中,在一個圖像中檢測稀疏的特徵集並且在另一圖像中進行特徵匹配。然後基於這些匹配特徵將原圖像映射到另一個圖像,實現圖像對齊。>《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼《深度學習之pytorch》pdf+附書源碼PyTorch深度學習快速實戰入門《pytorch-handbook》【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》《Python數據分析與挖掘實戰
  • 使用Python進行數據降維|線性降維
    直觀地好處是維度降低了,便於計算和可視化,其深層次的意義在於有效信息的提取綜合及無用信息的擯棄,並且數據降維保留了原始數據的信息,我們就可以用降維的數據進行機器學習模型的訓練和預測,但將有效提高訓練和預測的時間與效率。
  • 基於林火特徵分類模型的森林火情等級製圖
    以雲南省普洱市為研究區,首先,利用機載LiDAR數據生產的樹冠高度模型進行面向對象分割,與森林資源二類清查數據疊加分析確定分割單元,並根據可燃物的可燃性將研究區內的可燃物分為針葉林、闊葉林、竹林和灌木林等4種類型,在此基礎上採用分層隨機抽樣形成驗證數據集; 然後,提取LiDAR變量因子,採用多元逐步回歸法反演不同可燃物的森林參數; 最後,將森林參數連同氣象和地形因子作為FCCS模型的輸入,完成各個分割單元的火情等級評價
  • 好文推薦|全球尺度MSI影像中飛行飛機提取:基於視差與混合計算技術
    基於以上特徵,在單景尺度上飛行飛機提取難度不大。但應用至全球尺度,勢必面臨PB級遙感數據的海量存儲、並行處理、任務調度等一系列瓶頸。這些也是基於全球尺度中分影像地物精細提取所面臨的痛點。Google Earth Engine (GEE)是為全球尺度遙感分析而搭建的雲計算平臺,儲存了海量的遙感影像與地理空間數據集,並提供全球尺度數據計算資源,已被廣泛應用於地球表面變化檢測、趨勢製圖和量化分析等領域。
  • 【深度學習】基於TensorFlow + LabVIEW的工業缺陷檢測
    比如本文討論的缺陷檢測, 上面的很多網絡的特點,以及方法都給了我們很多的啟發,我們在設計網絡結構的時候,配合自己在產線部署的硬體性能,設計適合項目的網絡結構。當然,深度學習的方法用來檢測,也有自己的很多缺點。例如:數據量要求大,工業數據收集成本高。但是隨著數據增強技術,無監督學習的不斷進步,在某些應用場景上,這些缺點漸漸被隱藏了。
  • 特徵提取、特徵描述、特徵匹配的通俗解釋
    人工智慧AI與大數據技術實戰  公眾號: weic2c
  • 特徵選擇及基於Sklearn的實現
    sklearn.feature_selection模塊被廣泛應用於樣本數據集的特徵選擇和特徵降維,以減少特徵數量,增強對特徵和特徵值之間的理解,提高預測準確性或提高在高維數據集上的性能。本文將依據官方文檔對sklearn.feature_selection模塊進行介紹。
  • 基於NSL-KDD數據集的網絡入侵檢測分析
    基於混合的IDS通過分析應用程式日誌,系統調用,文件系統修改(密碼文件,二進位文件,訪問控制列表和功能資料庫等)以及其他主機狀態和活動來檢測入侵。 入侵檢測系統通常與其他技術(例如路由器和防火牆)一起使用,如此可以將來自每個設備的數據關聯起來,並根據這些IDS監視的內容做出相應決策。入侵檢測方法有三種,包括基於籤名的檢測(也稱為誤用檢測),基於異常的檢測和混合入侵檢測。