Недавно я узнал, что одним из способов найти лучшее решение проблем ОД является создание функций. Это можно сделать, например, суммируя две особенности.
Например, мы обладаем двумя функциями «атака» и «защита» какого-то героя. Затем мы создаем дополнительную функцию под названием «общее», которая представляет собой сумму «атаки» и «защиты». Теперь, что мне кажется странным, это то, что даже жесткие «атаки» и «защита» почти идеально соотносятся с «итогом», мы все равно получаем полезную информацию.
Что за математика стоит за этим? Или я не так рассуждаю?
Кроме того, не является ли это проблемой для классификаторов, таких как kNN, что «общее» всегда будет больше, чем «атака» или «защита»? Таким образом, даже после стандартизации у нас будут объекты, содержащие значения из разных диапазонов?
источник
Ответы:
Вы задаете вопрос названию, и содержание кажется мне не соответствующим. Если вы используете линейную модель, добавьте общую функцию в дополнение к атаке, и защита ухудшит ситуацию.
Сначала я бы ответил, почему вообще работают инженерные работы.
Одна картинка стоит тысячи слов. Эта фигура может рассказать вам некоторые идеи о разработке функций и почему она работает ( источник изображения ):
Данные в декартовых координатах более сложны, и относительно сложно написать правило / построить модель для классификации двух типов.
Данные в полярных координатах очень просты: мы можем написать простое правило для чтобы классифицировать два типа.р
Это говорит нам о том, что представление данных имеет большое значение. В определенном пространстве гораздо проще выполнять определенные задачи, чем в других.
Здесь я отвечаю на вопрос, упомянутый в вашем примере (всего по атаке и защите)
Фактически, разработка функций, упомянутая в этом примере суммы атак и защиты, не будет работать хорошо для многих моделей, таких как линейная модель, и вызовет некоторые проблемы. См. Мультиколлинеарность . С другой стороны, такая разработка функций может работать на других моделях, таких как дерево решений / случайный лес. Смотрите @ Имран ответ для деталей.
Таким образом, ответ заключается в том, что в зависимости от используемой модели, некоторые функции разработки помогут в некоторых моделях, но не в других моделях.
источник
Тип используемой нами модели может быть не очень эффективным при изучении определенных комбинаций существующих функций.
a
d
Поскольку деревья решений могут разбиваться только по осям отдельных объектов, наша модель в итоге попытается построить лестницу, чтобы соответствовать линии, которая будет выглядеть примерно так:
Как вы можете видеть, это не будет обобщать совершенно новые данные. У нас могут быть круги над истинной линией принятия решения, которые находятся под нашей границей принятия решения и наоборот для пересечений.
Однако, если мы добавим
a+d
в качестве функции, проблема становится тривиальной для дерева решений. Он может игнорировать индивидуальностьa
иd
особенности и решить проблему однимa+d<0
пнем решения.Однако, если бы вы использовали линейную регрессию, то ваша модель была бы вполне способна к обучениюа + д без добавления дополнительной функции.
Таким образом, некоторые дополнительные функции могут помочь в зависимости от типа используемой модели, и вы должны быть осторожны, чтобы учитывать как данные, так и модель при разработке функций.
источник
a
и этогоd
будет достаточно, и добавлениеa+d
в качестве функции не будет иметь значения.Построенная особенность как17 ,
total
can still be predictively useful if it isn't strongly correlated with other features in the same model.total
in particular need not be strongly correlated withattack
ordefense
. For example, ifattack
is (8, 0, 4) anddefense
is (1, 9, 6), then the correlation oftotal
withattack
is 0 and the correlation oftotal
withdefense
isЕсли вы хотите стандартизировать свои предикторы, вы должны сделать это после того, как они все были построены.
источник
[attack, defense, total]
конечно, имеет ранг 2. Я мог бы представить себе что-то вроде штрафной линейной модели, которая может иметь значение, но она основана на интуиции, а не на полной ее проработке. Можете ли вы объяснить, почему, еслиattack
иdefense
не сильно связаны сtotal
(что происходит, когдаattack
иdefense
сильно отрицательно коррелируют), почемуtotal
может быть полезным?total
нет необходимости в сильной корреляции сattack
илиdefense
, но вы никогда не будете использовать два предиктора и их сумму в одной модели из-за линейной зависимость, с подразумевает сильную корреляцию между некоторыми двумя из трех.Чтобы дать общий ответ, разработка функций в большинстве случаев заключается в извлечении значимых функций из ваших данных, поэтому, если вы дадите больше информации своей модели, она, очевидно, должна вести себя лучше. Скажите, что ваши данные состоят из адресов электронной почты в форме «name.surname@domain.country-code». Если бы вы использовали их как есть в своей модели, каждый человек будет характеризоваться уникальным электронным письмом, так что это мало что нам скажет. Это говорит нам только о том, что одно электронное письмо может принадлежать другому человеку, а не другому. С помощью функциональной инженерии, с таких адресов вы можете извлечь информацию о возможном поле (имя), происхождении семьи и этнической принадлежности (фамилия), национальности (домен) и многом другом - это дает вам довольно много информации, не так ли?
источник
Что вы пытаетесь достичь с помощью общего количества функций ? Если вы просто сравниваете героев, атака и защита могут быть более полезными. Если бы вы сочли полезным тип сборки (насколько атакующий или оборонительный), возможно, атака / защита была бы более полезной. Или, может быть, MyAttack - YourDefense более полезен.
Это действительно зависит от вашей цели и сводится к тому, что вы вкладываете дополнительные знания в проблему, чтобы получить лучшие ответы. Вы , возможно, слышали люди бросали вокруг входа и квадрат , и отношение и все виды способов , которыми Вы могли бы сделать особенности, но суть в том , что «полезно» , зависит от поставленной задачи и включает в себя преобразование данных вы имеете в область , где решение проще.
источник