Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

MATLAB の生成コードを使用した自動特徴抽出

診断特徴デザイナーでは、信号処理、特徴生成、およびランク付けのためのツールを使用して、特徴を対話的に調査します。最適な特徴を特定したら、コードを生成することで、対話的な計算を再現し、類似する入力データに対する特徴抽出を自動化できます。特徴、計算された変数、およびランク付けの各 table から、コードに含めるものを選んで指定します。

生成コードでは、次のことが可能です。

  • より多くのメンバーが含まれる、より大規模な測定データセットにコードを直接適用することで、特徴セットのメンバー数を増やす。使用するメンバー数が多くなるほど、分類学習器でのモデル学習が向上します。

  • 用途に合わせて関数を変更する。たとえば、診断特徴デザイナーで利用できない信号処理や特徴を追加できます。

  • 関数の一部を、開発している別のコード セットに組み込む。

特徴の関数の生成

自動特徴抽出用のコードを生成する最も簡単な方法は、[特徴デザイナー] タブの [エクスポート] ボタンを使用して、[特徴の関数の生成] を選択することです。

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

選択することで一連のオプションが開かれ、選択した特徴テーブルから、含める特徴を指定することができます。一度に 1 つの特徴テーブルのコード生成のみが可能です。

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 features:
%  Vibration_stats/Data_ImpulseFactor
%  Vibration_stats/Data_Mean
%  Vibration_stats/Data_ShapeFactor
%  Vibration_stats/Data_Std
%  Vibration_tsa_rotmac/Data_RMS
%  Vibration_tsa_rotmac/Data_CrestFactor
%
% 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.

特定の変数、特徴、およびランク付けの各 table の関数の生成

コード生成の選択肢をカスタマイズするには、[エクスポート]、[次の関数を生成...] オプションを使用します。このオプションでは、次のことが可能です。

  • 計算された信号やスペクトル、アンサンブル統計値、ランク付けの各 table など、アプリで計算される任意の出力のコード生成を選択する。

  • 複数の特徴の中から、入力信号や変数名テキストなど、特定の特性をもつものを選択できるよう、出力をフィルター処理する。

一度に 1 つの特徴テーブルからの特徴の関数を生成できます。フレームベースの処理を使用している場合、各特徴テーブルは 1 つの "フレーム ポリシー" (フレーム サイズとフレーム レートの組み合わせ) に関連付けられています。そのため、2 つの異なるフレーム ポリシー、または全信号モードとフレームベース モードの両方を使用して計算された特徴のコードを生成する場合、特徴テーブルごとに個別の関数を生成しなければなりません。

抽出された信号全体に依存するフレームベース信号のコードを生成する場合、生成コードには信号全体の計算も記述されます。

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 信号に直接基づく 3 つの特徴と共に、これも TSA 信号に直接基づくパワー スペクトルが表示されます。

Filtered selection window of features and spectrum

特定の入力信号を指定した場合、[入力] フィルターには、その信号を直接使用する項目のみが返されます。たとえば、TSA 入力信号でフィルター処理されたリストには、TSA 信号スペクトルから抽出される特徴は含まれません。一連の計算の任意の場所で発生するテキストでフィルター処理する場合は、そのテキストをフィルターに入力します。たとえば、次の図に示すように、[入力] フィルターに tsa と入力した場合、フィルター処理されたリストには TSA スペクトルの特徴が含まれるようになります。テキストのマッチングでは大文字と小文字が区別されません。

Input filter set for all signals containing the tsa string

Filtered list of all features and spectra that contain the tsa string

[出力]、[メソッド]、および [解析タイプ] でフィルター処理することもできます。たとえば、ランク付け table のコードを生成する場合、[解析タイプ]、[ランク付け] を選択します。

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

選択リストには T 検定とバタチャリヤの各ランク付け table が含まれます。

Filtered list of ranking tables for code generation

すべてのフィルターをクリアするには、[フィルターのリセット] をクリックします。

Reset Filters button

各フィルター表示には、使用できる出力のサブセットが表示されます。すべての選択項目をまとめて表示するには、[選択した項目で並べ替え] をクリックします。

Sort by Selection button

フィルター表示で選択した項目は、選択リストの先頭にまとめて表示されます。

List of all possible outputs with selections grouped at the top

これらの項目のコードを生成するには、[関数の生成] をクリックします。

生成コードの保存および使用

アプリでは、diagnosticFeatures という既定の名前が関数に割り当てられます。関数をこの名前のファイルとして保存することも、関数とファイルの名前を変更することもできます。関数を実行するには、関数のコード行の構文に従います。たとえば、次のような関数行であるとします。

function [featureTable,outputTable] = diagnosticFeatures(inputData)
この関数の 2 つの出力は、特徴と状態変数が含まれる特徴テーブルと、アンサンブルのすべての変数が含まれる出力テーブルです。2 番目の出力引数はオプションです。この関数は、アプリにインポートした元のデータと同じ入力変数を持つ任意の入力データに対して使用できます。たとえば、データが fullDataTable に格納されているとしたら、特徴テーブル features のみが必要です。使用:
features = diagnosticFeatures(fullDataTable)

元々 [単一メンバーのデータセットのインポート] を使用して個々の table をインポートしており、元のデータに対してコードを検証する場合、table を連結しなければなりません。たとえば、table t1t2、および t3 (それぞれの table は異なるアンサンブル メンバーを表す) をインポートした場合、まずこれらの table を単一の入力 table に連結してから生成された関数を実行します。

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

コード生成と元のデータを使用したコード検証の例については、診断特徴デザイナーでの MATLAB 関数の生成を参照してください。コードを新しいデータセットに適用する例については、拡大されたデータセットへの生成された MATLAB 関数の適用を参照してください。生成されたコード自体の説明と、どのように計算が実行されるかについては、アプリで生成された MATLAB コードの構造を参照してください。

生成コードの計算オプションの変更

生成されるコードは、部分的に [計算オプション] での選択内容に依存します。次の図は、アンサンブル データストアをインポートする際の [計算オプション] の選択肢を示しています。

Computation options in Diagnostic Feature Designer with a green box around the options that you can change just before generating code.

場合によっては、アプリで特徴を計算するために使用したオプションとは異なるオプションを、生成コードで使用することがあります。たとえば、元々並列計算を使用していなかったものの、コードでは並列計算オプションを呼び出す場合があります。元々、アンサンブル データストアからローカル メモリにデータをインポートしていたものの、コードでは代わりに、外部ファイルを直接操作する場合があります。

[計算オプション] の図の緑の枠は、コードを生成する直前に変更できるオプションを示します。

  • [すべての結果をローカル データセット (InAppData) に保存する] または [結果を元のデータと同じフォルダーに書き出す] — コード生成で、オプションを切り替えることができます。これらのオプションはアンサンブル データストアをインポートした場合にのみ表示されます。

  • 並列計算の使用 — コード生成で、このオプションを変更できます。並列計算は、Parallel Computing Toolbox™ をインストールしている場合にのみ使用できます。

特定の特徴を計算する際に使用したデータ処理モードおよびフレーム ポリシーは、コード生成時に変更できません。

参考

関連するトピック