Перепрыгнеть в содержание


* * * * * 1 голосов

Формула Байеса - модель ставок на футбол!


36 ответов в эту тему

#21 OFFLINE   Alliance87

    Новичок


  • Участник
  • Пип
  • 24 сообщения
0

Добавлено 24 September 2015 - 14:19

Bambuk, достаточно сложное изложение на одних формулах без примеров, можете прислать пример такой реализации в экселе?

#22 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 28 September 2015 - 06:27

СообщенияAlliance87, on 24 September 2015 - 14:19, сказал:

Bambuk, достаточно сложное изложение на одних формулах без примеров, можете прислать пример такой реализации в экселе?
Какие примеры? Я и так написал о направлении которое вообще ни где не освещено и ни чего похожего вы в нете не сыщете...развивайте сами направление...я же не мать-Тереза....
Если надо что-то то просто скопируйте встроенные функции в модуль VBA в екселе и потестите чё-нить сами на этих вот экспериментальных моделях.
В начале вычисляется номер кластера

в какую-то яч вводим

=CLASTG1G2_36(Таблица1[@[Г1]:[Г2]])
Или
=CLASTG1G2_36(O3:P3)

MOCORECT(адр1;адр2;адр3;адр4;адр5;адр6;адр7;адр8)
Адр
1—номер кластера
2—среднее забитых дом. ком. дома (за какое-то число последних игр допустим 12 домашних игр)
3—среднее пропущенных дома
4—среднее заб в гостях гостевой ком.
5—средн. пропущено гостевой в гост.
6—первыичнае оценки МО1 (Г1)
7—первичная МО2(Г2) по первичным определяется номер кластера
8—относителяная разность очков очки1/число игр1-очки2/числоигр2 (если число игр одинаково то это просто разность очков делённое на число игр)



Как вычислять первичные МО(Г1, Г2) читайте на пинке…www.pinnaclesports.com/ru/betting-articles/soccer/how-to-calculate-poisson-distribution но в качестве средних берите данные окон, которые потом и будете вставлять в функцию коррекции MOCORECT

Лиги берите--премьер англ, итал, франц, испания...так как по их данным строились модели (но можно попробовать что-то похожее на них так как они по идее все разные эти 4 лиги(особенно франц), а модель делалась по куче)

Отредактировано Bambuk, 28 September 2015 - 06:31.


#23 OFFLINE   yall

    Пунтер


  • Участник
  • ПипПип
  • 39 сообщения
1

Добавлено 29 September 2015 - 13:42

bambuk как обычно всегда с позиции науки , молодец , только вот вопросы всё равно остались , хотя и в целом модель понятна с кластеризацией

вот у меня есть определенные данные по лиге , определяю первоначальные модели МО1 МО2 по пуассону , это понятно , непонятно как определить МО из темы сектора , если это тема ТФМ , то я там не видел МО , видел дельты в зависимости от времени или это оно и есть ?

как вообще понять следующий текст -----Далее можно поступить так как описано в рейтинговой системе предложенной Сектором---коррекция по последним 3-5 играм (отталкиваемся от среднего за 3-5 прогнозного и реально наступившего --разность берётся для коррекции с некоторым положительным коэффициентом меньше 1 ну допустим 0.25...это можно подобрать по идее).....исключение только в том что тут лучше брать за прогнозные уже скорректированные значения на основе предыдущих расхождений (то есть модель что выше в двух строках плюс поправка 0.25*дельта с реаловом)...... ???

Далее , после того как определили МО , относим эти МО к соответствующему кластеру , тоже понятно
Кластеры получили путём подбора типа коридоров , на глаз , тоже понятно
А вот по поводу корректировки возникли вопросы , если в целом то понятно , МО начальное + дельта корректировки = МО приближ
Но вот как получить дельту корректировки я не понял совсем , можно поподробней пожалуйста по поводу корректировки ?Функцию MOCORECT я не понял вообще что откуда берётся что по какому алгоритму считается , откуда получили строки со значениями
Matr_1(0, 0) = -0.3098
Matr_1(1, 0) = 0.5529
Matr_1(2, 0) = 0.5902
Matr_1(3, 0) = 0.3022
Matr_1(4, 0) = -0.2612
Matr_1(5, 0) = 0.3059
Matr_1(6, 0) = -0.077
Matr_1(7, 0) = 0.2903
Matr_1(0, 1) = 0.6258
Matr_1(1, 1) = 1.3545
Matr_1(2, 1) = -0.7857
Matr_1(3, 1) = -1.2242
Matr_1(4, 1) = 0.9519
Matr_1(5, 1) = -0.937
Matr_1(6, 1) = 0.9159

и т.д ?
Если допустим строить нейросеть с 8 параметрами и на выходе два нейрона МО1 и МО2 каким то софтом , то понятно как корректировку получить , вы же корректировку сделали как то ручками на VBA , не могу разобраться в коде вашем , уважаемый Bambuk

Сейчас ещё раз посмотрел ваш код , и не понял как вы кластеризацию делали ? 36 кластеров ,вы сами создали эти коридоры ?

#24 OFFLINE   yall

    Пунтер


  • Участник
  • ПипПип
  • 39 сообщения
1

Добавлено 29 September 2015 - 13:52

вообщем вроде и понятно а вроде и непонятно , в стиле bambuk, мысль опережает на три шага пальцы , отсюда написанное понятно только тому кто это писал , идея очень хорошая , а как её развить если уже на начальном этапе возникают вопросы , вызванные неумением корректно выразить свою мысль чтобы понятно было всем или хотя бы многим.. Ничего против Bambuk'a не имею , отлично математически подкованный человек , спасибо ему за труд и идеи которые двигаются в массы , пусть и корявенько и понять дано немногим , но всё равно я очень много подчерпнул для себя из сообщений Bambuk

#25 OFFLINE   yall

    Пунтер


  • Участник
  • ПипПип
  • 39 сообщения
1

Добавлено 01 October 2015 - 07:48

Вопросы к Bambuk

Первичная кластеризация по каким критериям производится ? По МО1 и МО2 вместе или раздельно ?
Первичная корректировка производится уже после кластеризации внутри каждого кластера отдельно ? То есть например получили кластер например тот же что и вы приводили 0.50-0.58 , делаем корректировку , считая новые МО уже внутри этого кластера , а потом умножаем МО1(нач)*МО1(коррект.)=МО1? Правильно я думаю ?

MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) + _
Pro1.Value * Matr_1(2, Clast.Value) + _
Zab2.Value * Matr_1(3, Clast.Value) + _
Pro2.Value * Matr_1(4, Clast.Value) + _
G1.Value * Matr_1(5, Clast.Value) + _
G2.Value * Matr_1(6, Clast.Value) + _
Och12.Value * Matr_1(7, Clast.Value)

MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) + _ чем в данной строке является Matr_1(0, Clast.Value), Zab1.Value,Matr_1(1, Clast.Value)? и для чего перемножаются критерии Pro1.Value,Zab2.Value ...на Matr_1(2, Clast.Value),Matr_1(3, Clast.Value) соответственно ??

отталкиваемся от среднего за 3-5 прогнозного и реально наступившего---- это значит берём за последние 3-5 матчей высчитываем среднее МО которое прогнозировалось и считаем МО на основе реальных цифр затем из МОреал вычитаем МОпрогноз ?


эту коррекцию лучше даже проводить исходя не из средней оценки модели МО за 3-5 игр а по максимальной вероятности в распределении голов
которой соответствует некий счёт--вот его и надо брать...хотя тут можно разные варианты прогнать и по Рмакс(то есть суммируем вот эти счета и находим среднее потом ищем дельту) и по самим МО.


по максимальной вероятности в распределении голов
которой соответствует некий счёт--- что это значит ?

Задаю вопросы потому что хочу разобраться и развивать это направление
Надеюсь на адекватные понятные ответы
Спасибо Bambuk

#26 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 02 October 2015 - 06:15

Сообщенияyall, on 01 October 2015 - 07:48, сказал:

Вопросы к Bambuk

Первичная кластеризация по каким критериям производится ? По МО1 и МО2 вместе или раздельно ?
Первичная корректировка производится уже после кластеризации внутри каждого кластера отдельно ? То есть например получили кластер например тот же что и вы приводили 0.50-0.58 , делаем корректировку , считая новые МО уже внутри этого кластера , а потом умножаем МО1(нач)*МО1(коррект.)=МО1? Правильно я думаю ?
Для кластеризации первично используем рассчитанные по модели пинки МО1 МО2 , кластеризация проводилась методом К-средних, но чтоб Вам это не делать то я унифицировал
это дело и ввёл центры кластеризации---это по смыслу точка в 2-ух мерном пространстве МО1 МО2 а потом алглритм просто перебирает Евклидовы расстояния от нашей точки до этих центров и берёт минимальное за соответствие кластеру (и возвращает номер кластера) таким образом мы первично разбиваем кучу на 36 составных частей и вот для каждой части строим свою модель (я взял простейший вариант---линейную регрессионную модель с параметрами ниже)
MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) + _
Pro1.Value * Matr_1(2, Clast.Value) + _
Zab2.Value * Matr_1(3, Clast.Value) + _
Pro2.Value * Matr_1(4, Clast.Value) + _
G1.Value * Matr_1(5, Clast.Value) + _
G2.Value * Matr_1(6, Clast.Value) + _
Och12.Value * Matr_1(7, Clast.Value)

MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) + _ чем в данной строке является Matr_1(0, Clast.Value), Zab1.Value,Matr_1(1, Clast.Value)? и для чего перемножаются критерии Pro1.Value,Zab2.Value ...на Matr_1(2, Clast.Value),Matr_1(3, Clast.Value) соответственно ??

отталкиваемся от среднего за 3-5 прогнозного и реально наступившего---- это значит берём за последние 3-5 матчей высчитываем среднее МО которое прогнозировалось и считаем МО на основе реальных цифр затем из МОреал вычитаем МОпрогноз ?


эту коррекцию лучше даже проводить исходя не из средней оценки модели МО за 3-5 игр а по максимальной вероятности в распределении голов
которой соответствует некий счёт--вот его и надо брать...хотя тут можно разные варианты прогнать и по Рмакс(то есть суммируем вот эти счета и находим среднее потом ищем дельту) и по самим МО.


по максимальной вероятности в распределении голов
которой соответствует некий счёт--- что это значит ?


Когда Вы получаете скорректированные МО по ним по распределению Пуассона (или по биномиальному распр.) можно найти вероятности для команд забить 0-голов 1-гол 2-гола и так далее......так вот за счёт можно взять значение соответствующее максимальной Р в распределении для каждой команды.
Далее встаёт вопрос--как скорректировать? Я предложил опять простейший вариант---суммировать значения (они сами по идее уже результат двух коррекций) модели за 5 игр(соответствующие мах Р и потом скорректированные по аналогии что сейчас пишу) допустим и реальных резов команды и брать среднее (делим на 5 эти данные)
потом находить дельту между средним реальных и прогнозных и брать долю(например 0.25 от дельты между средними) для коррекции для команды (то есть следующий прогноз мы получаем из модели + эта вычисленная коррекция и заносим его в базу дан.)
Но вот эту вторую коррекцию можно попробовать и не делать на начальной стадии а попробовать поискать процедуры принятия решений по первичной коррекции---ну допустим вот так (это пример) находим вероятности выигрыша дом ком Р1 потом смотрим К1*Р1-1 допустим ставим П1 если К1 меньше 2 а К1*Р1-1 больше 0,15 и ставим Х если К1*Р1-1<-0,17
ну и так далее, но тут могут и другие характеристики команд подключаться ВНП, тоталы итд итп...(какие-то последние данные за 3-5 последних игр....и прочее)
Задаю вопросы потому что хочу разобраться и развивать это направление
Надеюсь на адекватные понятные ответы
Спасибо Bambuk


#27 OFFLINE   sakheli

    Пунтер


  • Участник II
  • ПипПип
  • 96 сообщения
13

Добавлено 03 October 2015 - 20:59

Сообщенияsaakyan.vg, on 22 September 2015 - 18:05, сказал:

чесслово лень. писать о написаном
Sert обоснуй минус. тебе же даже прокомментировать лень

#28 OFFLINE   sakheli

    Пунтер


  • Участник II
  • ПипПип
  • 96 сообщения
13

Добавлено 04 October 2015 - 19:52

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

#29 OFFLINE   yall

    Пунтер


  • Участник
  • ПипПип
  • 39 сообщения
1

Добавлено 06 October 2015 - 19:59

Bambuk
Первая корректировка происходит по тому же принципу определения МО (Пуассон ) только внутри данного кластера ? Для чего вводятся те самые 8 критериев и как они задействуются ?

#30 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 06 October 2015 - 23:31

Сообщенияyall, on 06 October 2015 - 19:59, сказал:

Bambuk
Первая корректировка происходит по тому же принципу определения МО (Пуассон ) только внутри данного кластера ? Для чего вводятся те самые 8 критериев и как они задействуются ?
Вы на Пинакле почитайте как расчитывают МО(но их можно и иначе брать, но смысла нет усложнять, так как всё равно потом коррекция будет) а дальше там ни чего нового не вводится в качестве характеристик за исключением ОЧ12 (разности очков команд приведённых к числу игр)
А дальше просто в каждом класторе корректируют МО1 и МО2(на каждый кластер две регрессионных модели...но их по идее можно заменить нейросетевой моделью и добавить ещё чего-то кроме уже введённых параметров)....дело в том что в одной лиге так невозможно сделать так как данных мало для такой модели (сами посудите---8 туров мы выкинем примерно а в остатке за сезон получим мало пар для 36 кластеров...даже если тупо по 10 взять то уже 360 надо...а этого мало и 3-4 сезона тоже не выход так как некоторые кластеры по численности меньше а некоторые больше...).....

Смысл в целом в том что все модели в основном которые в нете есть они отталкиваются от однозначных показателей сил нападения и защиты (ну это типа параметры модели)...а на самом деле при детальном изучении этого можно прийти к выводам что так описать не получается и команды играют по разному с разными группами (имеют уже персональные показатели в зависимости от групп....по идее можно лигу раздербанить на 4 группировки, но там нет возможности иметь представительные выборки для определения этих вот параметров и поэтому я предложил немного нестандартный подход---через сваливания лиг в кучу но более детально делить их по начальным Г1 Г2 вычисленным традиционными методами(которые в целом достаточно подробно освещены.....но я могу конечно и более сложные алгоритмы предложить определения этих начальных МО...но просто это излишество будет и в базу заносить долго---так как если вот сейчас начать с нуля формировать базу то там быстродействие желательно а если в екселе делать...то это 100% тормоза начнутся....
это вот когда допустим систематически там чёта вносить в базу лет пять то это ещё не так напряжно а если с нуля то заморочек много со скоростью обработки (базу можно недели две воять чтоб просто начать строить модель).....

То что я там выложил это просто у меня уже были просчитанные лиги за 5 лет, но их тока 4 было полностью с данными(а остальные там хер чё)... сейчас вот начал на 22 лиги считать...но это долго просто (часа полтора-два в день уделяю и так вот может в конце месяца чёта там насчитаю ...хз напрягает рутинная работа---тыкаешь одно и тоже по формулам потом формулы надо удалять и оставлять циферы...а то ексель ни хрена не тянет большие объёмы (хотя там всего около 50000 игр)....

Отредактировано Bambuk, 06 October 2015 - 23:33.


#31 OFFLINE   yall

    Пунтер


  • Участник
  • ПипПип
  • 39 сообщения
1

Добавлено 07 October 2015 - 09:07

Какой большой ответ..Но по факту практически ничего

Я знаю как считаются МО по Пуассону , я хотел узнать как производится корректировка первичная после разделения на кластеры , с десятого раза я понял что вы скопировали так что пришлось гадать что и как.. Вот к каким выводам пришёл я , ниже код первичной корректировки , до этого момента не мог понять что за +_ в конце , а это как оказалось перенос строки просто , верно ?

MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) + _
Pro1.Value * Matr_1(2, Clast.Value) + _
Zab2.Value * Matr_1(3, Clast.Value) + _
Pro2.Value * Matr_1(4, Clast.Value) + _
G1.Value * Matr_1(5, Clast.Value) + _
G2.Value * Matr_1(6, Clast.Value) + _
Och12.Value * Matr_1(7, Clast.Value)

и это можно выразить как
MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) +Pro1.Value * Matr_1(2, Clast.Value) + Zab2.Value * Matr_1(3, Clast.Value) + Pro2.Value * Matr_1(4, Clast.Value) + G1.Value * Matr_1(5, Clast.Value) + G2.Value * Matr_1(6, Clast.Value) + Och12.Value * Matr_1(7, Clast.Value), критерии перемножаются на центры кластера которые Вы уже посчитали за нас , верно ?

Кластеризацию вы производили по какому количеству критериев ?

Vxod(0, 0) = 1.4274
Vxod(1, 0) = 1.0934
Vxod(2, 0) = 1.4247
Vxod(3, 0) = 2.1741
Vxod(4, 0) = 2.8308
Vxod(5, 0) = 1.3542
Vxod(6, 0) = 0.7009
Vxod(7, 0) = 0.8444
Vxod(8, 0) = 1.7555
Vxod(9, 0) = 2.1137
Vxod(10, 0) = 2.4477
Vxod(11, 0) = 1.4136
Vxod(12, 0) = 1.7481
Vxod(13, 0) = 0.7401
Vxod(14, 0) = 2.6148
Vxod(15, 0) = 1.1481
Vxod(16, 0) = 1.0668
Vxod(17, 0) = 2.676
Vxod(18, 0) = 3.4578
Vxod(19, 0) = 1.77
Vxod(20, 0) = 4.4713
Vxod(21, 0) = 1.7486
Vxod(22, 0) = 2.1195
Vxod(23, 0) = 1.7294
Vxod(24, 0) = 1.2661
Vxod(25, 0) = 0.8534
Vxod(26, 0) = 1.2886
Vxod(27, 0) = 0.7999
Vxod(28, 0) = 0.671
Vxod(29, 0) = 2.087
Vxod(30, 0) = 0.8173
Vxod(31, 0) = 1.61595
Vxod(32, 0) = 1.10118
Vxod(33, 0) = 1.0401
Vxod(34, 0) = 2.2259
Vxod(35, 0) = 3.422

Vxod(0, 1) = 0.9598
Vxod(1, 1) = 1.4498
Vxod(2, 1) = 1.2298
Vxod(3, 1) = 1.0525
Vxod(4, 1) = 0.4222
Vxod(5, 1) = 2.2127
Vxod(6, 1) = 0.8088
Vxod(7, 1) = 2.7019
Vxod(8, 1) = 1.1315
Vxod(9, 1) = 2.3403
Vxod(10, 1) = 1.6433
Vxod(11, 1) = 0.7243
Vxod(12, 1) = 0.3485
Vxod(13, 1) = 1.7113
Vxod(14, 1) = 0.814
Vxod(15, 1) = 1.1415
Vxod(16, 1) = 0.6902
Vxod(17, 1) = 1.1718
Vxod(18, 1) = 1.4686
Vxod(19, 1) = 0.8443
Vxod(20, 1) = 0.7854
Vxod(21, 1) = 1.8102
Vxod(22, 1) = 0.7581
Vxod(23, 1) = 0.5888
Vxod(24, 1) = 1.7355
Vxod(25, 1) = 0.4623
Vxod(26, 1) = 0.44935
Vxod(27, 1) = 2.0855
Vxod(28, 1) = 1.3163
Vxod(29, 1) = 1.3572
Vxod(30, 1) = 1.0765
Vxod(31, 1) = 1.44936
Vxod(32, 1) = 0.9149
Vxod(33, 1) = 3.4977
Vxod(34, 1) = 0.4913
Vxod(35, 1) = 0.7352
Это я так понимаю указаны те самые расстояния до центра кластера для МО1 и МО2 соответственно ?

Далее корректировка
Matr_1(0, 0) = -0.3098 , расшифрую как я понял что есть что , Matr1 матрица с двумя столбцами для МО1 , в скобках первое число это номер критерия , всего их 8 ,от 0 до 7: второе число это номер кластера , после знака равно число , что оно значит и как вы его вычислили ? если это расстояние до центра то получается вы ещё раз кластеризовали по каждому критерию отдельно , как бы подкластер получается или что это за число -0.3098?

Я конечно извиняюсь что такой занудный , но я не желаю пользоваться вашими готовыми цифрами , я хочу понять основу механизма , как и что вычисляется , а потом уже создавать свои модели и прочее

#32 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 07 October 2015 - 14:21

Всё не так!!!!

Вот центр допустим (точка по Мо1 Мо2 ..на плоскости Х-У) Vxod(35, 0) = 3.422 и Vxod(35, 1) = 0.7352 если наша точка (допустим 3,2(мо1) и 0,7(мо2) ) ближе к именно этому центру то и выдаст 35 класт.
а если к другому то его (просто перебираем расстояния до центров и берём тот где минимум).Далее строится линейная регрессия в кластере для каждого МО (формально 2 регрессии --мы по признакам хотим найти истинное значение голов....читайте про регрессию---это просто линейная комбинация признаков которая наилучшим образом в смысле среднеквадратичного отклонения от реза(истинного значения голов забитых командой) приближает расчётное значение...нам надо кефы регрессии подобрать...но де факто они не все значимы в общепринятом смысле...но я предлагаю брать все значения...так как там коэффициенты корреляции очень малы и непонятно---рационален ли общепризнанный подход....по идее надо исключать менее значимые параметры но там остаются как правило какие-то 2-3 параметра в регрессии (причём разные для разных кластеров)...но так я считаю будет хуже...хотя и врде более "научно"...но тут вся научность летит в ЖО...У...так как не работает как выясняется.....а вот этот метод он по идее работает при правильном механизме принятия решения(как вариант я привёл пример такой процедуры через КР-1)...но там можно другие критерии потом добавить (их можно много напридумывать---допустим баланс в окне по ставкам на П1 или П2 итд Фора как разность Мо1-Мо2 или реально набранный средний тотал за некоторое число игр и так далее....в том числе и какие-то характеристики последних 3-5 игр--через очки ли или через ВНП или ещё там как-то---хозяин--барин...).....

Ну может сложно понять алгоритм так как он не совсем стандартный...давайте попробуем на "алкобетинге"---вот есть у Вас много пузырей со спиртным...давайте их кластеризуем по крепкости 6% 9% 12% 35% 40% 50% 96% (7 кластеров) а дальше вы просто строите регрессию для степени опьянения в зависимости от литров выпитого ...пусть степень опьянения (если допустим встретится 9.5% то его отнесём к центру 9%...ну итд)

имеет 4 градации 1 2 3 4 (4--это в "муку", в "хлам"....) (так вот градации---типа истинные голы (но тут просто один параметр-Х который суть признак---литры).....
так вот ваша регрессионная модель будет У=К*Х К--какой-то кефф который для каждого кластера будет свой.....(а у нас просто не один признак а много...и поэтому тут множественная регрессия.... там можно по идее брать и попарные произведения и квадраты и кубы признаков и так далее.....и вообще чё угодно (функции какие-то от всех или части параметров)....

Надо читать теорию этой хрени иначе я просто не могу пояснить (на самом деле всё очень просто)....

Отредактировано Bambuk, 07 October 2015 - 14:29.


#33 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 07 October 2015 - 16:14

Неплохо понимать---что такое функциональный анализ и тот факт что мы по идее пытаемся построить приближённую функцию от нескольких переменных(признаков-критериев)....
и самое главное что ---любую функцию нескольких переменных (допустим вот для 3-ёх Y=F(X1,X2,X3) Xi--признаки-критерии) можно представить линейной комбинацией более простых функций f1(X1) f2(X2) f3(X3)......
общее представление можно составить(не вдаваясь в детали) просмотрев бегло например тут ievbras.ru/ecostat/Kiril/Article/A16/Volgabas6/VolgaBas6.htm

#34 OFFLINE   yall

    Пунтер


  • Участник
  • ПипПип
  • 39 сообщения
1

Добавлено 08 October 2015 - 14:45

Вот последний пост могу назвать полезным , хотя в принципе ничего нового не узнал , с регрессией знаком поверхностно , с кластеризацией тоже познакомился , но алгоритмы мне не так важны , так как много софта которые и регрессию сделают и кластеризацию..

В принципе вашу модель в общем понял , но остаются моменты некоторые , которые хочется уточнить
Который раз задаю этот вопрос , так ответа и не получил , кластеризацию проводили отдельно для МО1 и отдельно для МО2 или же парно , вместе ?
Далее по регресии

MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) +Pro1.Value * Matr_1(2, Clast.Value) + Zab2.Value * Matr_1(3, Clast.Value) + Pro2.Value * Matr_1(4, Clast.Value) + G1.Value * Matr_1(5, Clast.Value) + G2.Value * Matr_1(6, Clast.Value) + Och12.Value * Matr_1(7, Clast.Value), Matr_1(0, Clast.Value) Matr_1(1, Clast.Value), Matr_1(3, Clast.Value) и т.д. это коэффициенты регрессии , то самое К из уравнения У=К*Х ? ну соответственно это уравнение для получения МО(0) корректирующее ?

То есть как я понял нужно по каждому критерию для каждого кластера найти коэффициент регрессии , определить влияние критерия на итоговое число забитых голов команды1 и команды2 соответственно , верно? Если так то можно сделать вывод что из моего прошлого поста Matr_1(0, 0) = -0.3098 это влияние посчитанного значения для первичного МО1 по Пуассону на количество голов забитых домашней командой ,а цифра -0.3098 ни что иное как коэффициент регрессии ? А что значит тогда КР-1 , КР - коэффициент регрессии , если да то для чего единицу вычитаем ? Если я не ошибаюсь то линейная регрессия это y=a+bx , а вы пишете что y=bx , куда свободный член девается ? y- реальные голы первой команды ,x - какой то критерий , ну и соответственно b это коэффициент коррекции , как я понял

Спасибо за то что достойно отвечаете

#35 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 08 October 2015 - 18:12

Сообщенияyall, on 08 October 2015 - 14:45, сказал:

Вот последний пост могу назвать полезным , хотя в принципе ничего нового не узнал , с регрессией знаком поверхностно , с кластеризацией тоже познакомился , но алгоритмы мне не так важны , так как много софта которые и регрессию сделают и кластеризацию..

В принципе вашу модель в общем понял , но остаются моменты некоторые , которые хочется уточнить
Который раз задаю этот вопрос , так ответа и не получил , кластеризацию проводили отдельно для МО1 и отдельно для МО2 или же парно , вместе ?
Далее по регресии

MO(0) = Matr_1(0, Clast.Value) + Zab1.Value * Matr_1(1, Clast.Value) +Pro1.Value * Matr_1(2, Clast.Value) + Zab2.Value * Matr_1(3, Clast.Value) + Pro2.Value * Matr_1(4, Clast.Value) + G1.Value * Matr_1(5, Clast.Value) + G2.Value * Matr_1(6, Clast.Value) + Och12.Value * Matr_1(7, Clast.Value), Matr_1(0, Clast.Value) Matr_1(1, Clast.Value), Matr_1(3, Clast.Value) и т.д. это коэффициенты регрессии , то самое К из уравнения У=К*Х ? ну соответственно это уравнение для получения МО(0) корректирующее ?

То есть как я понял нужно по каждому критерию для каждого кластера найти коэффициент регрессии , определить влияние критерия на итоговое число забитых голов команды1 и команды2 соответственно , верно? Если так то можно сделать вывод что из моего прошлого поста Matr_1(0, 0) = -0.3098 это влияние посчитанного значения для первичного МО1 по Пуассону на количество голов забитых домашней командой ,а цифра -0.3098 ни что иное как коэффициент регрессии ? А что значит тогда КР-1 , КР - коэффициент регрессии , если да то для чего единицу вычитаем ? Если я не ошибаюсь то линейная регрессия это y=a+bx , а вы пишете что y=bx , куда свободный член девается ? y- реальные голы первой команды ,x - какой то критерий , ну и соответственно b это коэффициент коррекции , как я понял

Спасибо за то что достойно отвечаете
В целом процедура сводится к тому что Вы должны ставить именно в этих лигах на которые рассчитали модель. Мо1 Мо2 попарно вместе----это типа точка в двухмерном пространстве...но нахрена Вам это вообще надо...? Я задал функцию которая Вам всё раздербанит на кластеры....получите 36 куч...далее для кааждой кучи тупо стройте свою модель---регрессию ли или нейросетевую или ХЗ.... это похоже некким образом на нейросетевые модели которые используют предварительное обучение без учителя ...а потом уже делают приближение (экстраполяцию)..... это обычно обзывают---радиальными базисными функциями....но это всё заумности которые нам нах...не надо.....вся фишка в том что в одной лиге невозможно построить похожую модель из-за ограниченнности даннных и по идее первичная корррекция она может использоваться без дальнейших замесов о которых я писал (вторая коррекция) ибо просто надо понять как играют команды с группировками(это можно примерно поять поделив одну лигу на 3-4 группы и прокинуть их распределения с кучей----просчитать сколько забито--пропущено 0,1,2,3,4......итд голов...то есть распределения голов..........бля на форуме это невозможно пояснить.......... это надо мозгами дойти......
У вас основная модель вот такая среднее заб1*средн. проп 2/среднее заб лига ну итд...... так вот на самом деле поймите например то что если команда больше атакует то разумеется она крадёт время другой команды на атаку(ну хот б вот это)...ну итд...тогда у Вас функция более сложная чем предполагается априорно а именно она зависит от всех параметров (их 4 шт в простейшем)...так вот в рамках одной лиги эту беду разрулить невозможно....поэтому как вариант можно пробовать кучу лиг.

Вам не надо заморачиваться на кластеризацию---берите то что я написал а модель можете строить уже потом по Вашим лигам (но Вы тогда и их должны бить).....
тогда вот тупо представьте что Вы выделили кластер с номером 20 у Вас есть резы по голам для ком 1 и ком 2 и характеристики ком. (Х1 Х2 Х3...итд хоть 100 параметров) вот и стройте модель гол1=функция от параметров...гол2=функция2 от параметров.......(вы пытаесь приблизить значения заб. мячей для ком1 и ком 2 двумя моделями.....).......

Ну похерьте на крайняк всё и туп берите чё написано ---протестируйте хоть и поймите что это может работать допустим при КП1меньше 2 и перевес больше 0,2 (это с запасом и число пар будет не очень велико но Вы будете в ++++ 100%.....).......

Блин-клинтон но не могу я пояснить всё на форруме и вообще не могу пояснить....я могу пояснить тока одно---если всё делать по уму то БК обыграть----говно вопрос.....

Отредактировано Bambuk, 08 October 2015 - 18:13.


#36 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 13 October 2015 - 12:22

Более ценной инфой чем первый пост этой темы будет пожалуй вот это...для тех кто разбирается в программировании и немного в байесовских сетях доверия.
можно попробовать чё-нить поконструировать с помощью функций приложения (за бабки функционал можно расширить)..... Так как я в программировании не секу то вот делюсь нарытой инфой по БСД...... может кто-то чё-то напридумывает для беттинга......

www.norsys.com/download.html
  • After downloading, simply double-click the file icon and it will self-extract. It will ask you what directory to place the files into.
  • Double-click on the Netica icon of Netica.exe in the directory you indicated above.
  • To use the free version of Netica, leave the password dialog box empty and click on Limited Mode. Otherwise, enter the password issued to you when you placed your order.
www.norsys.com/netica_vb_api.htm#howto
(модуль Visual Basic программистов)

Netica-В.Б. API позволяет программировать Netica приложение через COM-интерфейс (также известный как "ActiveX" или "Автоматика"). В.Б. API является полностью функционирует продукт, который вы можете загрузить в суд. Мы очень рады узнать ваше мнение.
Netica-В.Б. API является одним членом семьи Netica API,, в том числе для C, C ++, Java и.

Примечание: В.Б. API делает прямое использование двигателя Netica внутриNetica заявки через интерфейс COM. Его метод звонки похожи на те, в C API, так что вы хотите документация C API, чтобы направлять вас.
Для использования VB API, выполните следующие действия:
  • Скачать последнюю версию Netica заявки (по крайней мере, версия 3.18).
  • Выполнить Netica приложений и выберите Помощь -> Содержание / Список из верхнего меню. На вкладке Index, посмотреть 'Visual Basic программирования ".
  • Для получения более подробной информации о каждой функции, используйте документацию С-API, так как функции работают таким же образом.

www.norsys.com/onLineAPIManual/index.html --тут мануал по функциям


VB API Особенности

Этот список описывает возможности, специфичные к VB API. Для общими чертами всеми API, Netica, пожалуйста, см страницу Netica API.
  • Предоставляет графический интерфейс для вашей программы. Ваша программа может взаимодействовать с сетями Байеса в то же время, как пользователь взаимодействует с ними посредством регулярного Netica приложение с графическим интерфейсом.
  • Аналогичная конструкция для продуктов MS Office. Визуальные программисты Основные знакомые с программных продуктов Microsoft Office будет чувствовать себя как дома.
  • Хорошо объектно-ориентированного дизайна..
  • Гибкие параметры. Параметры функции могут быть переданы в различных формах (числовых индексов, строк имя, объектных ссылок, и т.д.).
  • На экране документация. Каждая функция и класс имеет краткое описание доступных для просмотра в среде разработки VB.
  • Несколько языков программирования. Это могут быть запрограммированы на любом языке, которые могут получить доступ к COM-интерфейс (Visual Basic, C #, COM-включен Java, C ++, и т.д.).

Отредактировано Bambuk, 13 October 2015 - 12:24.


#37 OFFLINE   Bambuk

    Специалист


  • mp
  • 6322 сообщения
602

Добавлено 07 November 2015 - 15:31

выкладывал Ссылка Здесь деление на 36 кластеров вот тут визуализация по Г1 Г2 (Г1--ось Х Г2--ось У) 0.99--кластер 0

https://yadi.sk/i/JX8Fso-SkHyZz (это центры кластеризации)

Отредактировано Bambuk, 07 November 2015 - 15:38.