Автоматическое извлечение признаков Используя сгенерированный код 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 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.

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

Если вы хотите настроить свои выборы для генерации кода, используйте опцию 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

Когда вы задаете определенный входной сигнал, фильтр Input возвращает только элементы, которые используют тот сигнал непосредственно. Например, список, отфильтрованный на входном сигнале TSA, не содержит функций, которые выведены из спектра сигнала TSA. Если вы хотите отфильтровать для текста, который происходит где угодно в цепи расчета, введите текст в фильтр. Например, если вы вводите tsa в фильтр Input, когда следующие рисунки показывают, отфильтрованный список теперь включает TSA спектральные функции. Текст, соответствующий, является нечувствительным к регистру.

Input filter set for all signals containing the tsa string

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

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

Чтобы очистить все фильтры, нажмите 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.

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

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

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

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

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

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

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

Код, который вы генерируете, зависит частично от ваших выборов в Computation Options. Фигура ниже показов выбор Computation Options, когда вы импортируете datastore ансамбля.

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

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

Зеленое поле на рисунке Computation Options указывает на опции, которые можно изменить сразу прежде, чем сгенерировать код.

  • Store all results in a local dataset или Write results to the same folder as the original data — Можно переключиться между опциями для генерации кода. Эти опции появляются только, когда вы импортируете datastore ансамбля.

  • Use parallel computing — Можно изменить эту опцию для генерации кода. Можно использовать параллельные вычисления, только если вам установили Parallel Computing Toolbox™.

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

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

Похожие темы

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