В этом примере показано, как использовать маленький набор данных об измерении в 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')
Создайте подмножество этого набора данных, который содержит 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')
Все комбинации отказа представлены.
Откройте 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 так, чтобы можно было обучить модель классификации. Во вкладке Feature Ranking нажмите Export> Export Features к Classification Learner. Выберите все функции, которые имеют One-Way ANOVA
метрика, больше, чем 1. Этот выбор включает все функции от pressure_ps_spec/Data_Wn2
и.
Если вы нажимаете 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, с помощью feature240
на этот раз. Откройте новое окно сеанса используя следующую команду.
classificationLearner
В окне Classification Learner нажмите New Session> From Workspace. В окне New Session, в Наборе данных> Переменная Набора данных, выбирают feature240
.
Повторите шаги, которые вы выполнили с набором данных с 24 членами. Примите 5-кратную перекрестную проверку, запустите сеанс и обучите все модели.
Для этого сеанса, самой высокой точности модели, достигнутой обоими Bagged Trees
и RUSBoosted Trees
, приблизительно 80%. Снова, ваши результаты могут варьироваться, но они должны все еще отразить увеличение лучшей точности.