Выявление основных переменных влияющих на параметр

Последнее сообщение
PetroleumEng 146 2
Дек 18

Вопрос состоит как выявить основные переменные влияющий на параметер?

Условие следующее, есть замеренныая данная. Есть условия замера. Задача выявить какие условия наибольше влияют на эту данную.

Я думал использовать нейронные сети на подобии Decision Tree кластеризации. Но так как опыта нет не знаю с чего начать.

 

Гоша 1162 12
Дек 18 #1

Наверное, начать с простых тестов гипотез, если "условия" можно определить дискретно - "делаю так" и "делаю по-другому". Или с анализа чувствительности, учитывая, что могут быть смешанные эффекты (interaction effects). Есть модный термин global sensitivity analysis.

eRU 2 7
Дек 18 #2

Я думаю градиентного бустинга в любой из реализаций для оценки будет достаточно ) Но лучше иметь скилл хорошего feature engineering, в том числе для уменьшения interaction effects.

PS Но только не надо мешать нейронки, деревья решений и кластеризацию без учителя . Все для разных целей и под различный набор данных. Хотя как говорится в машинном обучении: "No free lunch".

volvlad 2110 12
Дек 18 #3

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

Гоша 1162 12
Дек 18 #4

eRU пишет:

Я думаю градиентного бустинга в любой из реализаций для оценки будет достаточно ) Но лучше иметь скилл хорошего feature engineering, в том числе для уменьшения interaction effects.

PS Но только не надо мешать нейронки, деревья решений и кластеризацию без учителя . Все для разных целей и под различный набор данных. Хотя как говорится в машинном обучении: "No free lunch".

О,точно! Еще один термин хороший, плюсую: http://www.feat.engineering/

 

Гоша 1162 12
Дек 18 #5

volvlad пишет:

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

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

volvlad 2110 12
Дек 18 #6

Все может быть, но просто если там всего с десяток переменных, то может и Excel-я хватит

PetroleumEng 146 2
Дек 18 #7

Максимум переменных доходит до 40 при условии что все данные есть. Не все замеры имеют 40 значений, в основном если у одних данных есть одно то у других нет но есть другие в замен.

Причина почему пал выбор на Decision Tree из за того что позволяет кластеризовать данные так как мне надо. Но сейчас понимаю что для этого данные должны быть дискретными в то время как у меня в основном они не дискретные.

Боюсь анализ чувствительности не подходит так как нет самого уровнения. Если было бы можно весь факторный анализ использовать. Хотя можно наверное сделать какую нибудь прокси модель (надо подумать).

"градиентного бустинга" не знаю что такое, но спасибо за наводку постараюсь почитать. 

"PS Но только не надо мешать нейронки, деревья решений и кластеризацию без учителя . Все для разных целей и под различный набор данных. Хотя как говорится в машинном обучении: "No free lunch".

Спасибо за совет, буду знать.

PetroleumEng 146 2
Дек 18 #8

Вспомнил, еще одна из причин почему пал выбор на алгоритм деревья решений это выявить не правильные (ошибочные) замеры. 

Гоша 1162 12
Дек 18 #9

PetroleumEng пишет:

Не все замеры имеют 40 значений, в основном если у одних данных есть одно то у других нет но есть другие в замен.

Missing data imputation пригодится

PetroleumEng 146 2
Дек 18 #10

Гоша пишет:

Missing data imputation пригодится

Спасибо! У меня предчувствие, что скорее всего придется избавиться от тех переменных у которых не превышает 3х значений и не пытаться заполнить/востановить все остальные данные.

Что бы было более ясное представления проблемы приведу пример (пример похож на сущестующий случай).

Замер устьевого давления по скважинам. Переменные которые идут с замером можно примерно сказать такими - 

  • тип скважин (горизонтальная, боковая, вертикальная)
  • глубина скважин
  • температура воздуха
  • время замера
  • человек замерявший
  • пол замерявшего человека
  • дебит скважины
  • накопленая добыча
  • и т.д.

Список можно продолжить. Цель выявить не правильные замеры и по ходу параметры влиящющие больше всего на замеры. Кто знает может полнолуние или новолуние влияет наибольше на замеры :)

 

helgibh 62 7
Дек 18 #11

Возможно это как-то поможет:

http://statsoft.ru/solutions/ExamplesBase/tasks/detail.php?ELEMENT_ID=702

http://statsoft.ru/solutions/ExamplesBase/tasks/detail.php?ELEMENT_ID=258

деревья тоже могут помочь теоретически, но это сложнее анализировать.

Рушан 554 12
Дек 18 #12

Попробуй может на kaggle найти схожую тему типа такой https://www.kaggle.com/learn/embeddings

Krichevsky 482 9
Дек 18 #13

PetroleumEng пишет:

  • пол замерявшего человека

denfromufa 89 7
Дек 18 #14

For supervised learning approach, if you add L1 regularization, then predictive model would be penalized to provide sparse features - i.e. remove certain features by forcing their weights to zero.

For unsupervised learning approach (no target variable), try autoencoder (encoder-decoder) which would learn to compress the data into lower dimensional representation. Either the compressed layer or the outputs of the network can be used for anomaly detection.

Like some people suggested above, certain machine learning algorithms provide feature importance as part of predictor, particularly random forests.

Finally things like LIME or SHAP can reveal the importance of features if you build a predictive model.

For time-dependency things are much harder, particularly data has to be post-processed carefully for algorithms such as LSTM, CNN, transformer etc.

Recently on one dataset I just discovered few categories of events that correlate with the failed devices. No machine learning was applied at all!

Sorry for English - no Russian keyboard with me right now.

P.S.: Be careful with gender and personalities - you may get a biased model due to statistically skewed representation.

Dorzhi 894 12
Дек 18 #15

https://habr.com/post/172043/ 

PetroleumEng 146 2
Янв 19 #16

Спасибо всем кто ответил и дал дельные советы. Мне потребуются некоторое время что бы переварить всю информацию.

Но я надеюсь я сумел довести смысл своих действий. "Пол" добавил для наглядности :)

Go to top