Итак, я понимаю, что вопрос, который я задаю здесь, большой и сложный.
Потенциальное решение для разновидностей размеров
Во всех моих поисках через статистические форумы и сообщения я не сталкивался с научно обоснованным методом учета типа данных, с которыми я сталкиваюсь, но я придумал (новые?) потенциальные решения, чтобы прекрасно учитывать (на мой взгляд) большие и малые наборы данных в одной и той же модели.
Предлагаемый метод предполагает использование генетического алгоритма для изменения двух чисел, определяющих взаимосвязь между размером набора данных, составляющим скорость implied strike
, и
процент используемого implied strike
, при этом цель модели максимизирует гомологию числа 1
в двух столбцах следующих csv. (ультра упрощенная
но, надеюсь, демонстрирует принцип)
Примеры данных
Date,PupilName,Unique class,Achieved rank,x,y,x/y,Average xy
12/12/2012,PupilName1,UniqueClass1,1,3000,9610,0.312174818,0.08527
12/12/2012,PupilName2,UniqueClass1,2,300,961,0.312174818,0.08527
12/12/2012,PupilName3,UniqueClass1,3,1,3,0.333333333,0.08527
13/12/2012,PupilName1,UniqueClass2,1,2,3,0.666666667,0.08527
13/12/2012,PupilName2,UniqueClass2,2,0,1,0,0.08527
13/12/2012,PupilName3,UniqueClass2,3,0,5,0,0.08527
13/12/2012,PupilName4,UniqueClass2,4,0,2,0,0.08527
13/12/2012,PupilName5,UniqueClass2,5,0,17,0,0.08527
14/12/2012,PupilName1,UniqueClass3,1,1,2,0.5,0.08527
14/12/2012,PupilName2,UniqueClass3,2,0,1,0,0.08527
14/12/2012,PupilName3,UniqueClass3,3,0,5,0,0.08527
14/12/2012,PupilName4,UniqueClass3,4,0,6,0,0.08527
14/12/2012,PupilName5,UniqueClass3,5,0,12,0,0.08527
15/12/2012,PupilName1,UniqueClass4,1,0,0,0,0.08527
15/12/2012,PupilName2,UniqueClass4,2,1,25,0.04,0.08527
15/12/2012,PupilName3,UniqueClass4,3,1,29,0.034482759,0.08527
15/12/2012,PupilName4,UniqueClass4,4,1,38,0.026315789,0.08527
16/12/2012,PupilName1,UniqueClass5,1,12,24,0.5,0.08527
16/12/2012,PupilName2,UniqueClass5,2,1,2,0.5,0.08527
16/12/2012,PupilName3,UniqueClass5,3,13,59,0.220338983,0.08527
16/12/2012,PupilName4,UniqueClass5,4,28,359,0.077994429,0.08527
16/12/2012,PupilName5,UniqueClass5,5,0,0,0,0.08527
17/12/2012,PupilName1,UniqueClass6,1,0,0,0,0.08527
17/12/2012,PupilName2,UniqueClass6,2,2,200,0.01,0.08527
17/12/2012,PupilName3,UniqueClass6,3,2,254,0.007874016,0.08527
17/12/2012,PupilName4,UniqueClass6,4,2,278,0.007194245,0.08527
17/12/2012,PupilName5,UniqueClass6,5,1,279,0.003584229,0.08527
Итак, я создал крошечный набор данных модели, в котором содержатся некоторые хорошие примеры того, где мои текущие методы не оправдываются, и как я чувствую, что генетический алгоритм может быть использован для устранения этого. Если мы посмотрим в наборе данных выше, он содержит 6 уникальных классов, конечной целью алгоритма является создание максимально возможного соответствия между рангами скорректированных x/y
и achieved rank
в столбце 3 (нулевая привязка). В uniqueclass1
мы имеем два идентичных значения x/y
, теперь они являются сравнительно большими значениями x/y
, если вы сравниваете их со средним значением (обратите внимание, что среднее не вычисляется из этого набора данных), но было бы здравым смыслом ожидать, что 3000/9610 является более значительным и, следовательно, более вероятно, имеет achieved rank
of 1
, чем 300/961. Поэтому я хочу сделать adjusted x/y
для преодоления этих различий в размерах данных, используя логарифмическое отношение роста, определяемое уравнением:
adjusted xy = ((1-exp(-y*α)) * x/y)) + ((1-(1-exp(-y*α)))*Average xy)
Где α
- единственное динамическое число
Если я могу немного объяснить свою логику и открыть себя (надеюсь) конструктивных критиков. На приведенном ниже графике показана зависимость экспоненциального роста между размером набора данных и% x/y, вносимым в скорректированный x/y. По существу, как сказано выше, при увеличении набора данных увеличивается процент исходного x/y
, используемого в adjusted x/y
. Независимо от того, какой процент остался, получается среднее значение xy. Гипотетически может быть 75% x/y
и 25% average xy
для 300/961 и 95%/5% для 3000/9610, создавая скорректированный x/y, который наглядно демонстрирует
Для справки о понимании снижения α
будет создано следующее соотношение, в котором более крупный набор данных будет требоваться для достижения того же "% от внесенного в него"
Нарастающее увеличение α
приведет к следующему соотношению, когда меньший набор данных будет требоваться для достижения того же "% от xy Contributed"
Итак, я объяснил свою логику. Я также открыт для фрагментов кода, чтобы помочь мне преодолеть эту проблему. Я планирую сделать множество генетических/эволюционных алгоритмов в будущем и действительно смогу использовать рабочий пример, чтобы разобраться и поиграть, чтобы помочь понять, как использовать такие возможности python. Если требуется дополнительная информация или дальнейшее разъяснение проблемы или методов, пожалуйста, спросите, я действительно хочу решить эту проблему и будущие проблемы такого рода.
Итак, после долгих дискуссий о методах, доступных для преодоления представленной здесь проблемы, я пришел к выводу, что лучшим методом будет генетический алгоритм для итерации α, чтобы максимизировать гомологию/соответствие между рангами скорректированного x/y и достигнутый ранг в столбце 3. Было бы очень полезно, если кто-нибудь сможет помочь в этом отделе?
Итак, чтобы уточнить, этот пост больше не является дискуссией о методологии
Я надеюсь, что кто-то может помочь мне создать генетический алгоритм, чтобы максимизировать гомологию между результатами уравнения
adjusted xy = ((1-exp(-y*α)) * x/y)) + ((1-(1-exp(-y*α)))*Average xy)
Где adjusted xy
применяется к каждой строке csv. Максимизация гомологии может быть достигнута путем минимизации разницы между рангами adjusted xy
(где ранг - только для каждого Unique class
) и Achieved rank.
Сведение к минимуму этого значения позволило бы максимизировать гомологию и существенно решить проблему, представленную мне с различными наборами данных. Если вам нужна дополнительная информация, пожалуйста, спросите меня, я проверяю это сообщение примерно 20 раз в день на данный момент, поэтому должен отвечать довольно быстро. Большое спасибо НЕМЕДЛЕННО.