exponenta event banner

Автоматическое извлечение признаков с использованием сгенерированного кода MATLAB

В Diagnostic Feature Designer функции исследуются в интерактивном режиме с помощью инструментов для обработки сигналов, создания функций и ранжирования. После определения наиболее эффективных функций можно создать код, воспроизводящий интерактивные вычисления и позволяющий автоматизировать извлечение элементов на основе аналогичных входных данных. Выберите функции, вычисленные переменные и таблицы ранжирования, чтобы указать, что включает код.

Созданный код позволяет:

  • Примените код непосредственно к большему набору данных измерений, включающему больше элементов, и, следовательно, увеличьте число элементов в наборе элементов. Использование большего числа участников улучшает обучение модели в Classification Learner.

  • Измените функцию в соответствии с приложением. Например, можно добавить обработку сигналов или функции, недоступные в конструкторе диагностических функций.

  • Включите части функции в другой набор кода, который вы разрабатываете.

Создание функции для элементов

Самый простой способ создания кода для автоматического извлечения элементов - использовать кнопку Экспорт (Export) на вкладке Конструктор элементов (Feature Designer) и выбрать Генерировать функцию (Generate Function) для элементов (Features).

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 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.

Создание функции для определенных переменных, функций и таблиц ранжирования

Если вы хотите настроить выбор для создания кода, используйте команду Экспорт > Создать функцию для... вариант. С помощью этой опции можно:

  • Выберите генерацию кода для любых выходных данных, которые вычисляет приложение, включая вычисленные сигналы и спектры, статистику ансамбля и таблицы ранжирования.

  • Фильтрация выходных данных позволяет выбирать элементы с определенными характеристиками, например входной сигнал или текст с переменным именем.

Функцию для элементов можно создавать одновременно из одной таблицы элементов. При использовании обработки на основе кадров каждая таблица функций связана с одной политикой кадров или комбинацией размера кадра и частоты кадров. Поэтому, если требуется создать код для элементов, вычисленных с помощью двух различных политик кадров, или с помощью режима полного сигнала и режима на основе кадра, необходимо создать отдельную функцию для каждой таблицы элементов.

При создании кода для основанных на кадрах сигналов, которые зависят от полученных полных сигналов, вычисления для полных сигналов также появляются в сгенерированном коде.

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

На рисунке выбраны характеристики перекоса и среднеквадратичного значения, а также спектр мощности. На панели Подробно (Details) отображаются выходные данные и входные данные для последнего выбранного элемента. Панель «Код будет создан для» содержит выбранные параметры.

Вместе с окном выбора выберите Экспорт > Создать функцию для... открывает вкладку Создание кода, которая содержит параметры фильтрации.

Code Generation tab in Diagnostic Feature Designer for selecting filtering options

Например, чтобы выбрать только те элементы, которые вычисляются непосредственно из сигнала TSA, выберите Input > Vibration_tsa/Data, как показано на рисунке.

Selection for code generation input from TSA signal data only

Отфильтрованное окно выбора отображает три функции, которые основаны непосредственно на сигнале TSA, наряду со спектром мощности, который также основан непосредственно на сигнале 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

Можно также фильтровать выходные данные, метод и тип анализа. Например, если требуется создать код для таблицы ранжирования, выберите Тип анализа > Ранжирование.

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

Список выбора включает таблицы ранжирования T-Test и Bhattacharyya.

Filtered list of ranking tables for code generation

Чтобы очистить все фильтры, щелкните Сбросить фильтры (Reset Filters).

Reset Filters button

В каждом отфильтрованном представлении отображается подмножество доступных выходных данных. Чтобы отобразить все выбранные элементы вместе, нажмите кнопку Сортировать по выделенным элементам.

Sort by Selection button

Элементы, выбранные в отфильтрованных представлениях, отображаются в одной группе в верхней части списка выбора.

List of all possible outputs with selections grouped at the top

Чтобы создать код для этих элементов, щелкните Создать функцию.

Сохранить и использовать созданный код

Приложение назначает имя по умолчанию diagnosticFeatures к функции. Можно сохранить функцию как файл с таким именем или переименовать функцию и имя файла. Чтобы запустить функцию, следуйте синтаксису в строке функции кода. Например, предположим, что строка функции:

function [featureTable,outputTable] = diagnosticFeatures(inputData)
Двумя выходами этой функции являются таблица элементов, содержащая элементы и переменные условий, и таблица вывода, содержащая все переменные в ансамбле. Второй выходной аргумент необязателен. Эту функцию можно использовать для любых входных данных, имеющих те же входные переменные, что и данные, которые были первоначально импортированы в приложение. Например, предположим, что данные находятся в fullDataTable и вам нужна только таблица элементов features. Использовать:
features = diagnosticFeatures(fullDataTable)

Если первоначально импортированы отдельные таблицы с помощью команды Импортировать одноэлементные наборы данных (Import Single-Member Datasets) и требуется проверить код на соответствие исходным данным, необходимо объединить таблицы. Например, при импорте таблиц t1, t2, и t3, где каждая таблица представляет своего члена ансамбля, сначала объединяют таблицы в одну входную таблицу, а затем запускают сгенерированную функцию.

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

Пример создания кода и проверки кода с использованием исходных данных см. в разделе Создание функции MATLAB в конструкторе диагностических функций. Пример применения кода к новому набору данных см. в разделе Применение сгенерированной функции MATLAB к расширенному набору данных. Описание самого сгенерированного кода и его вычисления см. в разделе Анатомия кода MATLAB, созданного приложением.

Изменение параметров расчета для сгенерированного кода

Генерируемый код частично зависит от выбора в Опции вычисления (Computation Options). На рисунке ниже показаны варианты опций вычислений при импорте хранилища данных ансамбля.

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

В некоторых случаях может потребоваться, чтобы созданный код использовал опцию, отличную от той, которая использовалась для вычисления функций в приложении. Например, может потребоваться вызвать параллельные вычисления в коде, если этот параметр не использовался изначально. При первоначальном импорте данных из хранилища данных ансамбля в локальную память может потребоваться, чтобы код взаимодействовал непосредственно с внешними файлами.

Зеленое поле на рисунке «Параметры вычислений» указывает параметры, которые можно изменить непосредственно перед созданием кода.

  • Сохранить все результаты в локальном наборе данных или Записать результаты в ту же папку, что и исходные данные - можно переключаться между параметрами для создания кода. Эти параметры появляются только при импорте хранилища данных ансамбля.

  • Использовать параллельные вычисления - этот параметр можно изменить для создания кода. Параллельные вычисления можно использовать только в том случае, если установлены Toolbox™ параллельных вычислений.

При создании кода невозможно изменить режим обработки данных и политику кадров, с помощью которых рассчитывались определенные функции.

См. также

Связанные темы