Main Content

생성된 MATLAB 코드를 사용한 자동 특징 추출

진단 특징 디자이너에서는 신호 처리, 특징 생성, 순위 지정 툴을 사용하여 대화형 방식으로 특징을 탐색합니다. 가장 좋은 성능을 보이는 특징이 결정되면 본인이 수행했던 대화형 방식 계산을 재현하고 유사한 입력 데이터에서 특징 추출을 자동화하는 코드를 생성할 수 있습니다. 특징, 계산된 변수 및 순위 지정 테이블 중에서 선택하여 코드에 포함할 내용을 지정합니다.

생성된 코드를 사용하여 다음을 수행할 수 있습니다.

  • 이 코드를 더 많은 멤버를 포함하는 더 큰 측정 데이터 세트에 직접 적용하여 특징 세트의 멤버 개수를 늘립니다. 더 많은 멤버를 사용하면 분류 학습기에서의 모델 훈련이 향상됩니다.

  • 응용 사례에 맞게 함수를 수정합니다. 예를 들어 진단 특징 디자이너에서 사용할 수 없는 신호 처리 또는 특징을 추가할 수 있습니다.

  • 함수의 일부를 개발 중인 다른 코드 세트에 통합합니다.

특징에 대한 함수 생성하기

자동 특징 추출을 위한 코드를 생성하는 가장 간단한 방법은 특징 디자이너 탭의 내보내기 버튼을 사용하여 특징에 대한 함수 생성을 선택하는 것입니다.

Export button in Diagnostic Feature Designer showing menu for feature and data export and for code generation

선택한 특징 테이블에서 포함시킬 특징을 지정할 수 있는 옵션 세트가 열립니다. 코드 생성은 한 번에 하나의 특징 테이블에 대해서만 가능합니다.

Options on Diagnostic Feature Designer for specifying features to include in code generation

모든 특징에 대한 코드를 생성하거나 또는 포함시킬 최상위 순위 특징 개수를 선택할 수 있습니다(순위 지정을 수행한 경우). 순위 지정을 수행한 경우 특징 순위 지정 탭의 내보내기 버튼을 사용하여 함수를 생성할 수도 있습니다. 생성된 코드에는 특징에 필요한 모든 계산된 신호 또는 스펙트럼에 대한 계산이 포함됩니다. 코드에는 코드가 수행하는 계산을 요약하는 프리앰블이 포함되어 있습니다.

%DIAGNOSTICFEATURES recreates results in Diagnostic Feature Designer.
%
% Input:
%  inputData: A table or a cell array of tables/matrices containing the
%  data as those imported into the app.
%
% Output:
%  featureTable: A table containing all features and condition variables.
%  outputTable: A table containing the computation results.
%
% This function computes signals:
%  Vibration_tsa/Data
%
% This function computes spectra:
%  Vibration_ps/SpectrumData
%
% This function computes features:
%  Vibration_sigstats/Mean
%  Vibration_tsa_rotmac/RMS
%  Vibration_tsa_rotmac/CrestFactor
%  Vibration_ps_spec/PeakAmp1
%  Vibration_ps_spec/PeakFreq1
%  Vibration_ps_spec/BandPower
%
% Organization of the function:
% 1. Compute signals/spectra/features
% 2. Extract computed features into a table
%
% Modify the function to add or remove data processing, feature generation
% or ranking operations.

특정 변수, 특징 및 순위 지정 테이블에 대한 함수 생성하기

코드 생성을 위해 선택 사항을 사용자 지정하려면 내보내기 > 다음에 대한 함수 생성... 옵션을 사용합니다. 이 옵션을 사용하여 다음을 수행할 수 있습니다.

  • 계산된 신호 및 스펙트럼, 앙상블 통계량 및 순위 지정 테이블을 포함하여 앱이 계산하는 모든 출력값에 대한 코드 생성을 선택합니다.

  • 입력 신호 또는 변수 이름 텍스트와 같은 특정 특성이 있는 특징 중에서 선택할 수 있도록 출력값을 필터링합니다.

한 번에 하나의 특징 테이블에서 특징에 대한 함수를 생성할 수 있습니다. 프레임 기반 처리를 사용하는 경우, 각 특징 테이블은 하나의 프레임 정책 또는 프레임 크기와 프레임 속도의 조합과 연결됩니다. 따라서 두 개의 서로 다른 프레임 정책을 사용하거나 또는 전체 신호 모드와 프레임 기반 모드를 모두 사용하여 계산된 특징에 대한 코드를 생성하려는 경우 각 특징 테이블에 대해 별도의 함수를 생성해야 합니다.

도출된 전체 신호에 종속되는 프레임 기반 신호에 대한 코드를 생성할 경우 전체 신호에 대한 계산이 생성된 코드에도 나타납니다

Function generation option with selections for full signal mode and for a frame-based mode

내보내기 > 다음에 대한 함수 생성...을 선택하고 특징 소스를 선택하면 후보로 선택된 출력값이 포함된 창이 열립니다. 각 출력 행에는 출력값이 계산된 방법에 대한 추가 정보가 포함됩니다.

Window in Diagnostic Feature Designer for selecting code generation outputs

이 그림에서는 왜도, RMS 특징, 파워 스펙트럼이 선택되었습니다. 세부 정보 창에는 가장 최근에 선택한 항목의 출력값과 입력값이 표시됩니다. 다음에 대해 코드가 생성됨 창에는 선택 항목이 포함되어 있습니다.

선택 창과 함께 내보내기 > 다음에 대한 함수 생성...을 선택하면 필터링 옵션이 포함된 코드 생성 탭이 열립니다.

Code Generation tab in Diagnostic Feature Designer for selecting filtering options

예를 들어, TSA 신호에서 직접 계산된 특징만 선택하려면 아래 그림과 같이 입력값 > Vibration_tsa/Data를 선택하십시오.

Selection for code generation input from TSA signal data only

필터링된 선택 창에는 TSA 신호에 직접 기반하는 파워 스펙트럼과 함께, 역시 TSA 신호에 직접 기반하는 세 가지 특징이 표시됩니다.

Filtered selection window of features and spectrum

출력값, 방법 및 분석 유형으로 필터링할 수도 있습니다. 예를 들어, 순위 지정 테이블에 대한 코드를 생성하려면 분석 유형 > 순위 지정을 선택합니다.

Code Generation tab in Diagnostic Feature Designer with Analysis Type filter set to the ranking option

선택 목록에는 T-검정 및 바타차리야 순위 지정 테이블이 포함됩니다.

Filtered list of ranking tables for code generation

필터 목록 외에도, 필터에 텍스트를 입력하여 변수 이름 내의 텍스트를 필터링할 수 있습니다. 예를 들어, 다음 그림과 같이 출력값 필터에 peak를 입력하면 필터링된 목록에 피크 진폭 및 피크 주파수에 대한 스펙트럼 특징이 포함됩니다. 텍스트 일치는 대/소문자를 구분하지 않습니다.

Output filter set for all signal names that include the word peak

Filtered list of all features and spectra with names containing the word peak

모든 필터를 지우려면 필터 재설정을 클릭합니다.

Reset Filters button

필터링된 각 보기에는 사용 가능한 출력값의 서브셋이 표시됩니다. 모든 선택 항목을 함께 표시하려면 선택 항목별 정렬을 클릭합니다.

Sort by Selection button

필터링된 보기에서 선택한 항목은 선택 목록의 맨 위에 한 그룹으로 표시됩니다.

List of all possible outputs with selections grouped at the top

이러한 항목에 대한 코드를 생성하려면 함수 생성을 클릭합니다. 그러면 다음 정보를 포함하는 프리앰블이 있는 함수가 생성됩니다.

%
% This function computes signals:
%  Vibration_tsa/Data
%
% This function computes spectra:
%  Vibration_ps/SpectrumData
%
% This function computes features:
%  Vibration_sigstats/Skewness
%  Vibration_tsa_rotmac/RMS
%  Vibration_ps_spec/PeakAmp1
%
% This function ranks computed feautres using algorithms:
%  Bhattacharyya
%

정렬된 필터 보기에서 Vibration_tsa/Data가 선택되지 않은 경우에도, 선택된 다른 신호에 필요하므로 이 함수는 이 신호를 계산합니다.

생성된 코드 저장 및 사용하기

앱은 함수에 diagnosticFeatures의 디폴트 이름을 할당합니다. 이 이름을 사용하여 함수를 파일로 저장하거나 함수 및 파일 이름을 바꿀 수 있습니다. 함수를 실행하려면 코드의 함수 라인에 있는 구문을 따르십시오. 예를 들어, 함수 라인이 다음과 같다고 가정하겠습니다.

function [featureTable,outputTable] = diagnosticFeatures(inputData)
이 함수의 두 출력값은 특징과 상태 변수를 포함하는 특징 테이블 그리고 앙상블의 모든 변수를 포함하는 출력 테이블입니다. 두 번째 출력 인수는 선택 사항입니다. 처음 앱으로 가져왔던 데이터와 동일한 입력 변수를 가진 입력 데이터라면 이 함수를 사용할 수 있습니다. 예를 들어, 데이터가 fullDataTable에 있으며 사용자에게 특징 테이블 features만 필요하다고 가정하겠습니다. 다음을 사용하십시오.
features = diagnosticFeatures(fullDataTable)

처음 개별 테이블을 가져올 때 이 원본 데이터에 대해 코드를 검증하려면 테이블을 결합해야 합니다. 예를 들어, 테이블 t1, t2, t3을 가져왔고 각 테이블이 서로 다른 앙상블 멤버를 나타낸다면 먼저 이들 테이블을 하나의 입력 테이블로 결합한 다음 생성된 함수를 실행합니다.

inputData = {t1,t2,t3};
features = diagnosticFeatures(inputData);

코드를 생성하고 원본 데이터를 사용하여 해당 코드를 검증하는 예제는 진단 특징 디자이너에서 MATLAB 함수 생성하기 항목을 참조하십시오. 새 데이터셋에 코드를 적용하는 예제는 생성된 MATLAB 함수를 확장된 데이터 세트에 적용하기 항목을 참조하십시오. 생성된 코드에 대한 설명과 코드가 계산을 수행하는 방법에 대한 설명은 앱에서 생성한 MATLAB 코드 분석하기 항목을 참조하십시오.

생성된 코드에 대한 옵션 변경하기

특징을 개발할 때는 병렬 연산을 사용할지 여부와 가져오기 과정 중에 앙상블 데이터저장소를 처리하는 방법에 대한 옵션이 주워집니다. 경우에 따라 생성된 코드에서는 앱에서 특징을 계산할 때 사용한 것과 다른 옵션을 사용하고자 할 수 있습니다. 예를 들어, 원래는 병렬 연산을 호출하는 옵션을 사용하지 않았지만 코드에서는 이 옵션을 사용하고 싶을 수 있습니다. 앙상블 데이터저장소를 가져올 때 계산 결과를 로컬 메모리에 저장하도록 선택한 경우, 코드 실행 시 코드에서 결과를 직접 외부 파일에 추가하도록 하고 싶을 수 있습니다. 코드 생성 탭에서 코드 생성에 대해 이러한 옵션을 설정할 수 있습니다.

List of all possible outputs with selections grouped at the top

옵션 섹션에서, 다음과 같은 경우에 다음 옵션을 사용할 수 있습니다.

참고 항목

관련 항목