|
21.06.2007, 14:05 | #1 |
Участник
|
|
|
21.06.2007, 19:13 | #2 |
Moderator
|
UPDATE! Версия 3
Добавлены запросы 07 и 08. Запрос 07 - все встречающиеся в таблице репутаций пары "одобряемый-одобряющий" и суммарные репутации каждой такой пары. Открыв этот запроc, удобно установить курсор либо в колонку username ("одобряЕМЫЙ"), либо в колонку whoaddedname ("одобряЮЩИЙ"), после чего щелкнуть по кнопке "Фильтр по выделению" для получения соответственно расклада: либо "из чьих суммарных вкладов других складывается общая репутация текущего участника", либо "как текущий участник одобряет других своими суммарными вкладами" (см. первый рисунок в этом посте). Если в паре участников "username <- whoaddedname" были взаимные респекты (в обоих направлениях), то для такой строки заполнены поля правых колонок (с цифрой "2" на конце наименования колонок) - это встречные репутации, где username2 = whoaddedname, а whoaddedname2 = username. Также в такой "взаимной" строке заполнено поле "score", которое содержит "счёт", напоминающий результат спортивной игры. Например, есть такая строка [username, whoaddedname, score] = ["Lemming", "mazzy", "12 : 2"]. Эту строку следует воспринимать так: Lemming получил от mazzy 12 очков репутации, а mazzy получил от Lemming 2 очка репутации. При этом в таблице также присутствует и "зеркальная" строка [username, whoaddedname, score] = ["mazzy", "Lemming", "2 : 12"] Запрос 08 - шахматка взаимных суммарных респектов (а-ля "турнирная таблица"). Односторонние респекты, пусть даже увесистые и многократные, в эту таблицу не включались. Т.е. критерий отбора записей из запроса 07, который лежит в основе запроса 08 - "score is not null". Интерпретировать результаты следует аналогично. Значение "12 : 2" на пересечении строки "Lemming" (поле "username") и колонки "mazzy" (да-да, именно такое поле - "mazzy" !) следует воспринимать по тому же принципу: Lemming получил от mazzy 12 очков репутации, а mazzy получил от Lemming 2 очка репутации. Т.е. тот, чья строка, получает от того, чей столбец, то, что ПЕРЕД двоеточием в этой строке; а тот, чей столбец, получает от того, чья строка, то, что ПОСЛЕ двоеточия в этой строке. Симметрично относительно диагонали из крестиков "XXXXXXXXX" расположено обратное значение: "2 : 12" (см. второй рисунок в этом посте). |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
21.06.2007, 19:41 | #3 |
Участник
|
Цитата:
Сообщение от Gustav
Например, есть такая строка [username, whoaddedname, score] = ["Lemming", "mazzy", "12 : 2"]. Эту строку следует воспринимать так: Lemming получил от mazzy 12 очков репутации, а mazzy получил от Lemming 2 очка репутации. При этом в таблице также присутствует и "зеркальная" строка [username, whoaddedname, score] = ["mazzy", "Lemming", "2 : 12"]
А можно показать и количество одобрений? (в скобках например) |
|
21.06.2007, 19:46 | #4 |
Участник
|
и еще.
а можно ли как-то на основании этой шахматки определить группировки? группировка: несколько участников неравнодушных друг к другу. неравнодушный: дает положительную или отрицательную репутацию. помнится давным-давно в универе что-то такое мы про матрицы проходили... помнится там было достаточно как-то хитро пересортировать строки и колонки. |
|
21.06.2007, 19:49 | #5 |
Moderator
|
|
|
21.06.2007, 19:55 | #6 |
Участник
|
Наверное.
И еще. Насколько я вижу, безответных репутаций очень мало. А можно ли получить процент безответных? Как это сделать? Еще раз огромное спасибо. |
|
21.06.2007, 19:59 | #7 |
Участник
|
Ага. Я тормоз.
Цитата:
А как все-таки получить процент безответных? |
|
21.06.2007, 20:15 | #8 |
Moderator
|
Эта пара со счетом -3:0 есть потому, что Kamill_A трижды давал по -1, а Aleck -1 и +1, т.е. в сумме 0, но оборот (turnover) был. Это можно увидеть в "01 Query", т.е. фактически в исходной таблице, там где еще нет группировок (т.е. в исходной "Бьюти" ). Можно их поочередно найти, сделать по очереди "Фильтр по выделению" и это увидеть.
Самый простой способ оценить количество сейчас такой: открыть "07 Query". Там 2610 записей. Отсортировать по УБЫВАНИЮ колонку "score" - непустые значения встанут вверх. Прошуршать ПейджДауном вниз. На строке 440 будет последнее непустое значение. Таким образом процент безответных по количеству такой: (2610-440)/2610 = 83 %. Как-то так... |
|
21.06.2007, 20:20 | #9 |
Участник
|
Ага. Понял, протормозил.
Цитата:
Т.е. можно утверждать, что взаимных относительно немного. Это хорошо. Значит репутация - игра с ненулевой суммой Вот бы еще "группировки" выявить... |
|
22.06.2007, 10:28 | #10 |
Moderator
|
Пошарился по интернету, следы ведут в теорию групп с тягомотными формулами...всякие там абелевы группы (это я для красного словца, чтобы было видно, что шарился )...
Попробовал полуинтуитивно вручную погруппировать в Excel'е, начиная с mazzy, как имеющего наибольшее кол-во взаимных репутаций. Ну, можно нашинковать различные кластеры-лепестки вокруг него (см. примеры на рисунке). Алгоритм никакой пока не сложился. Первую группу создавал практически стихийно. При формировании второй сначала отсортировал шахматку по убыванию кол-ва взаимных реп по строкам, а затем стал переставлять столбцы (вручную в Excel). Но даже эти две группы можно варьировать, убирая одного участника и подставляя другого, который с убранным не стыкуется, но стыкуется со всеми остальными членами группы. О том, чтобы поделить всех на абсолютно неперекрывающиеся группы, речи быть не может. И это вряд ли имеет физический смысл... Нужен алгоритм формирования... ммм... максимально больших, что ли, перекрывающихся групп (тривиальные пары, конечно, не рассматриваются, ибо они и так составляют смысл шахматки). В общем, кто хочет поломать голову или уже обладает сим тайным комбинаторным знанием - присоединяйтесь! |
|
22.06.2007, 17:51 | #11 |
Участник
|
Цитата:
Сообщение от Gustav
Пошарился по интернету, следы ведут в теорию групп с тягомотными формулами...всякие там абелевы группы (это я для красного словца, чтобы было видно, что шарился )...
Попробовал полуинтуитивно вручную погруппировать в Excel'е, начиная с mazzy, как имеющего наибольшее кол-во взаимных репутаций. Ну, можно нашинковать различные кластеры-лепестки вокруг него (см. примеры на рисунке). Алгоритм никакой пока не сложился. Первую группу создавал практически стихийно. При формировании второй сначала отсортировал шахматку по убыванию кол-ва взаимных реп по строкам, а затем стал переставлять столбцы (вручную в Excel). Но даже эти две группы можно варьировать, убирая одного участника и подставляя другого, который с убранным не стыкуется, но стыкуется со всеми остальными членами группы. О том, чтобы поделить всех на абсолютно неперекрывающиеся группы, речи быть не может. И это вряд ли имеет физический смысл... Нужен алгоритм формирования... ммм... максимально больших, что ли, перекрывающихся групп (тривиальные пары, конечно, не рассматриваются, ибо они и так составляют смысл шахматки). В общем, кто хочет поломать голову или уже обладает сим тайным комбинаторным знанием - присоединяйтесь! Можно попробовать подключить MS SQL 2005 с его Data Mining. Честно говоря, ветку не читал подробно и не совсем уловил, что нужно сгруппировать (пишу по последнему сообщению , но знаю что в MS SQL 2005 есть алгоритмы кластеризации и др. полезные вещи. Завтра посмотрю всю ветку, может чем помогу.
__________________
С уважением Шатохин Святослав. |
|
21.06.2007, 20:22 | #12 |
Участник
|
У меня Access 2007.
Там я не вижу 07 Query, а qryRepsHandByHand_07_CrossChess - это шахматка. Можешь сказать внутреннее название? |
|
21.06.2007, 20:29 | #13 |
Moderator
|
Цитата:
А что в 2007 групп нету? Только объекты? Надо смотреть не на панели "Objects" и далее закладка "Queries", а ниже - на панели "Groups" и далее закладка "Interface". Я ее сделал, чтобы вытягивать на нее линки на нужные объекты с более-менее человеческими именами, скрывая страшные названия самих запросов (правда, эти страшные названия все равно высвечиваются в заголовке грида ) |
|
21.06.2007, 20:37 | #14 |
Участник
|
группы есть. хитрых названий нет
|
|