exponenta event banner

Применение сгенерированной функции MATLAB к расширенному набору данных

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

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

В примере, основанном на анализе и выборе элементов для диагностики насоса, используются данные об отказах насоса из этого примера и вычисляются те же самые элементы. Дополнительные сведения о шагах и обосновании операций разработки элементов с использованием данных о сбое насоса в этом примере см. в разделе Анализ и выбор элементов для диагностики насоса. В этом примере предполагается, что вы знакомы с макетом и операциями приложения. Дополнительные сведения о работе с приложением см. в трех разделах учебного пособия «Определение индикаторов условий для проектирования алгоритмов предиктивного обслуживания».

Загрузка данных и создание сокращенного набора данных

Загрузить набор данных pumpData. pumpData представляет собой ансамблевую таблицу из 240 элементов, которая содержит смоделированные измерения расхода и давления. pumpData также содержит категориальные коды отказов, представляющие комбинации трех независимых отказов. Например, код отказа 0 представляет данные из системы без сбоев. Код отказа 111 представляет данные из системы со всеми тремя ошибками.

load savedPumpData pumpData

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

fcCat = pumpData{:,3};
histogram(fcCat)
title('Fault Code Distribution for Full Pump Data Set')
xlabel('Fault Codes')
ylabel('Number of Members')

Figure contains an axes. The axes with title Fault Code Distribution for Full Pump Data Set contains an object of type categoricalhistogram.

Создайте подмножество этого набора данных, которое содержит 10% данных или 24 члена. Поскольку данные моделирования часто группируются, создайте рандомизированный индекс для выбора членов. Для целей этого примера сначала используйте rng для создания повторяемого случайного начального числа.

rng('default')

Вычисление рандомизированного 24-элементного вектора индекса idx. Сортируйте вектор так, чтобы индексы были в порядке.

pdh = height(pumpData);
nsel = 24;
idx = randi(pdh,nsel,1);
idx = sort(idx);

Использовать idx для выбора строк элементов из pumpData.

pdSub = pumpData(idx,:);

Просмотрите гистограмму кодов отказов в уменьшенном наборе данных.

fcCatSub = pdSub{:,3};
histogram(fcCatSub)
title('Fault Code Distribution for Reduced Pump Data Set')
xlabel('Fault Codes')
ylabel('Number of Members')

Figure contains an axes. The axes with title Fault Code Distribution for Reduced Pump Data Set contains an object of type categoricalhistogram.

Представлены все комбинации отказов.

Импорт уменьшенного набора данных в конструктор диагностических функций

Откройте конструктор диагностических функций с помощью diagnosticFeatureDesigner команда. Импорт pdSub в приложение как многомандатный ансамбль.

Извлечение функций временной области

Извлеките признаки сигнала временной области из сигнала потока и сигнала давления. На вкладке Feature Designer щелкните Time Domain Features > Signal Features и выберите все функции.

Извлечение функций частотной области

Как описано в разделе Анализ и выбор функций для диагностики насоса, вычисление частотного спектра потока подчеркивает циклическую природу сигнала потока. Оцените частотный спектр с помощью команды Спектральная оценка (Spectral Estimation) > Спектр мощности (Power Spectrum), используя опции, показанные как для потока, так и для давления.

Вычислите спектральные характеристики в диапазоне 25-250 Гц, используя показанные опции, как для спектров потока, так и для спектров давления.

Ранговые характеристики

Ранжируйте функции с помощью команды Ранжировать функции > FeatureTable1. Поскольку faultCode содержит несколько возможных значений, приложение по умолчанию One-Way ANOVA способ ранжирования.

Экспорт элементов в классификатор

Экспортируйте элементы, заданные в Classification Learner, чтобы можно было обучить классификационную модель. На вкладке «Ранжирование элементов» выберите «Экспорт» > «Экспорт элементов в классификатор». Выберите все элементы, которые имеют One-Way ANOVA метрика больше 1. Этот выбор включает все функции из pressure_ps_spec/Data_Wn2 и вверх.

Обучение моделей в классификаторе

После нажатия кнопки «Экспорт» программа Classification Learner открывает новый сеанс. Примите пятикратную перекрестную проверку и щелкните Начать сессию (Start Session).

Обучите все доступные модели, щелкнув Все (All) на вкладке Ученик по классификации (Classification Learner), а затем щелкните Обучить (Train).

Для этого сеанса модель с наивысшим баллом, Boosted Trees, имеет точность около 63%. Ваши результаты могут отличаться.

Создание кода для вычисления набора элементов

После завершения интерактивной работы с небольшим набором данных можно применить те же вычисления к полному набору данных с помощью созданного кода. В конструкторе диагностических элементов создайте функцию для вычисления элементов. Для этого на вкладке «Ранг элементов» выберите «Экспорт» > «Создать функцию для элементов». Выберите те же 50 элементов, которые были экспортированы в Classification Learner.

При нажатии кнопки ОК в редакторе появляется функция.

Сохраните функцию в локальной папке как diagnosticFeatures.

Применение функции к полному набору данных

Выполнить diagnosticFeatures с полным pumpData ансамбль, чтобы получить набор функций из 240 элементов. Используйте следующую команду.

feature240 = diagnosticFeatures(pumpData);

feature240 является таблицей 240 на 51. Таблица включает переменную условия. faultCode и 50 функций.

Обучайте модели в классификационной таблице с большей таблицей характеристик

Снова обучайте модели классификации в Classification Learner, используя feature240 на этот раз. Откройте новое окно сеанса с помощью следующей команды.

classificationLearner

В окне «Classification Learner» выберите «New Session» > «From Workspace». В окне Новый сеанс в меню Набор данных > Переменная набора данных выберите feature240.

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

Для этого сеанса наивысшая точность модели, достигнутая обоими Bagged Trees и RUSBoosted Trees, составляет около 80%. Опять же, ваши результаты могут отличаться, но они все равно должны отражать увеличение наилучшей точности.