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

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

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

Пример, на основе Анализируют и Выбирают Features for Pump Diagnostics, использует данные об отказе насоса из того примера и вычисляет те же функции. Для более подробной информации о шагах и объяснении для операций разработки комплекта с помощью данных отказа насоса в этом примере, смотрите, Анализируют и Выбирают Features for Pump Diagnostics. Этот пример принимает, что вы знакомы с размещением и операциями в приложении. Для получения дополнительной информации о работе с приложением смотрите, что пример, состоящий из трёх шагов в Идентифицирует Индикаторы состояния для Прогнозирующего Проекта Алгоритма Обслуживания.

Загрузите данные и создайте уменьшаемый набор данных

Загрузите набор данных 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 object. The axes object with title Fault Code Distribution for Full Pump Data Set contains an object of type categoricalhistogram.

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

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 object. The axes object with title Fault Code Distribution for Reduced Pump Data Set contains an object of type categoricalhistogram.

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

Импортируйте уменьшаемый набор данных в Diagnostic Feature Designer

Откройте Diagnostic Feature Designer при помощи diagnosticFeatureDesigner команда. Импортируйте pdSub в приложение как ансамбль мультичлена.

Извлеките функции временного интервала

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

Извлеките функции частотного диапазона

Как Анализируют и Выбирают Features for Pump Diagnostics, описывает, вычисление спектра частоты потока подсвечивает циклическую природу сигнала потока. Оцените спектр частоты со Спектральной Оценкой> Спектр мощности при помощи вариантов, показавших и для потока и для давления.

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

Отранжируйте признаки

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

Экспортируйте признаки к Classification Learner

Экспортируйте набор функций в Classification Learner так, чтобы можно было обучить модель классификации. Во вкладке Feature Ranking нажмите Export> Export Features к Classification Learner. Выберите все функции, которые имеют One-Way ANOVA метрика, больше, чем 1. Этот выбор включает все функции от pressure_ps_spec/Data_Wn2 и.

Обучите модели в Classification Learner

Если вы нажимаете Export, Classification Learner открывает новый сеанс. Примите 5-кратную перекрестную проверку и нажмите Start Session.

Обучите все доступные модели путем нажатия на All во вкладке Classification Learner, и затем Обучайтесь.

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

Сгенерируйте код, чтобы вычислить набор функций

Теперь, когда вы завершились, ваша интерактивная функция работают с небольшим набором данных, можно применить те же расчеты к полному набору данных с помощью сгенерированного кода. В Diagnostic Feature Designer сгенерируйте функцию, чтобы вычислить функции. Для этого во Вкладке Рейтинга Функции, выберите Export> Generate Function for Features. Выберите те же 50 признаков, которые вы экспортировали к Classification Learner.

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

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

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

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

feature240 = diagnosticFeatures(pumpData);

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

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

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

classificationLearner

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

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

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