Моя задача здесь - найти способ получить предлагаемое значение наиболее важной функции или возможностей.Изменяя предложенные значения функций, я хочу, чтобы также изменился результат классификации.
Снимок набора данных
Ниже приведены процедуры, которые я пробовална данный момент:
- Импорт набора данных (форма: 1162 на 22)
- Создание простой нейронной сети (2 скрытых слоя)
- Поскольку зависимая переменная просто0 или 1 (проблема классификации), я однозначно закодировал переменную.Так что это либо [0, 1], либо [1,0]
- После разделения на данные обучения и испытаний я обучаю свою модель NN и получаю точность 77,8%
- Чтобы узнать, какая функция (из 21) является наиболее важным при определении 0 или 1, я обучил данные с использованием классификатора Random Forest (scikit-learn), а также получил точность 77,8%, а затем использовал «feature_importances_», предложенный классификатором случайных лесов.
- В результате я обнаружил, что функция с именем 'a_L4' занимает наивысшую позицию с точки зрения относительной важности функции.
- Для функции 'a_L4' разрешено иметь значение от 0до 360, так как это означает угол.В исходном наборе данных «a_L4» содержит только 12 значений, которые [5, 50, 95, 120, 140, 160, 185, 230, 235, 275, 320, 345].
- Я увеличилисходный набор данных путем непосредственного добавления всех возможных 12 значений для каждого случая, получая новый набор данных формы (1162x12 на 22).
- Я импортировал расширенный набор данных и протестировал его на ранее обученной модели NN.Результатом стал провал.В классификации почти не было изменений, означающих, что «1» не переключился на «0».
- Мой вывод состоял в том, что изменения значений «a_L4» было недостаточно для внесения изменений в классификацию.Поэтому я дополнительно проделал ту же процедуру еще раз для второй по важности функции, которая в данном случае была 'b_L7_p1'.
- Итак, записывая все возможные значения, которые могут иметь две наиболее важные функции, теперь новый набор данных становитсяформа (1162x12x6 на 22).'b_L7_p1' может иметь только 6 различных значений, таким образом, умножение на 6.
- Снова результатом был отказ.
Итак, мой вопрос: что я мог сделать?неправильно в процедуре, описанной выше?Нужно ли продолжать поиск более важных функций и дополнять данные всеми возможными значениями, которые они могут иметь?Но так как это утомительная задача с несколькими процедурами, выполняемыми вручную, и приводит к огромному размеру набора данных, я бы хотел, чтобы был способ построить модель NN, основанную на логическом выводе, которая могла бы напрямую выдвигать предложенные значения определенной функцииили особенности.
Я относительно новичок в этой области исследований, поэтому кто-нибудь может сказать мне несколько ключевых слов, которые я должен искать?Я не могу найти какие-либо работы или документы по этому вопросу в Google.
Заранее спасибо.