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

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

Со сгенерированным кодом вы можете:

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

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

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

Сгенерируйте функцию для функций

Самый простой способ сгенерировать код для автоматического извлечения признаков состоит в том, чтобы использовать кнопку Export во вкладке Feature Designer и выбрать Generate Function for 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

Можно сгенерировать код для всех функций или, если вы выполнили рейтинг, можно выбрать количество находящихся на вершине рейтинга функций, чтобы включать. Если вы выполнили рейтинг, можно также сгенерировать функцию с помощью кнопки Export во вкладке Feature Ranking. Сгенерированный код включает вычисления для любых вычисленных сигналов или спектров, которых требует функция. Код включает преамбулу, которая обобщает расчеты, которые выполняет код.

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

Сгенерируйте функцию для определенных переменных, функций и занимающих место таблиц

Если вы хотите настроить свои выборы для генерации кода, используйте опцию Export > Generate Function for.... При использовании этой опции вы можете:

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

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

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

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

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

Когда вы выбираете Export > Generate Function for... и выбираете источник функции, окно, содержащее выбор кандидата, выходные параметры открываются. Каждая выходная строка включает дополнительную информацию о том, как выход был вычислен.

Window in Diagnostic Feature Designer for selecting code generation outputs

На рисунке выбраны скошенность и функции RMS и спектр мощности. Панель Details отображает вывод и вход для последнего выбранного элемента. Панель Code Will Be Generated For содержит ваши выборы.

Наряду с окном выбора, выбор Export > Generate Function for... открывает вкладку Code Generation, которая содержит опции фильтрации.

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

Можно также отфильтровать на выходе, методе и аналитическом типе. Например, если вы хотите сгенерировать код для занимающей место таблицы, выберите Analysis Type > Ranking.

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, когда следующие рисунки показывают, отфильтрованный список теперь включает спектральные функции пиковой амплитудной и пиковой частоты. Текст, соответствующий, является нечувствительным к регистру.

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.

Reset Filters button

Каждое отфильтрованное представление отображает подмножество доступных выходных параметров. Чтобы отобразить все ваши выборы вместе, нажмите Sort by Selection.

Sort by Selection button

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

List of all possible outputs with selections grouped at the top

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

%
% 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)

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

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

Для примера генерации кода и проверки кода с исходными данными, смотрите, Генерируют функцию MATLAB в Diagnostic Feature Designer. Для примера, который применяет код к новому набору данных, смотрите, Применяют Сгенерированную функцию MATLAB к Расширенному Набору данных. Для описания самого сгенерированного кода и как это выполняет свои расчеты, смотрите Анатомию Сгенерированного Приложением кода MATLAB.

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

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

List of all possible outputs with selections grouped at the top

В разделе Options следующие опции доступны при следующих условиях:

  • Append Data to File Ensemble — Доступный, если ваш источник данных является a fileEnsembleDatastore или a simulationEnsembleDatastore

  • Use Parallel Computing — Доступный, если у вас есть лицензия на Parallel Computing Toolbox™

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте