Pavel Egorov (xoposhiy) wrote,
Pavel Egorov
xoposhiy

#ВыборыКС. Артефакты в протоколе голосования

Голосование закончилось. Протокол публичный, можно самостоятельно подводить итоги!

Расшифрованный файл с протоколом я выложил сюда: https://github.com/xoposhiy/cvk2012/tree/master/protocols/protocols (файл decrypted.csv)
Как его расшифровать самостоятельно, если вы программист, можно поглядеть тут: https://github.com/xoposhiy/cvk2012/blob/master/protocols/protocols/Program.cs

Если не очень, то можете попробовать тут: https://github.com/shipilev/cvk2012-decrypt
(там же кстати много милых слов разработчикам, так затейно зашифровавшим протокол ;)

UPD: оказывается расшифрованный протокол есть тут: https://election.cvk2012.ru/

Там есть ряд артефактов, пугающих и вводящих в ступор обычных людей. О них и речь. То что известно мне:

1.
Номера кандидатов в самом протоколе отличаются от номеров в файле options.csv на единичку. В options.csv все номера на единицу больше. Это какая-то странная техническая особенность платформы. :\ Если ее не учитывать, рождаются вопросы типа вот этого из твиттера:
@xILYAVIKINGx @leonidvolkov @xoposhiy Леонид, какому протоколу верить и что делать с тем что мои голоса не совпадают на 99%?


2.
Даты в файле с протоколом американские (месяц/день/год). Если открыть этот файл в Excel (csv-файл по умолчанию открывается именно им, если стоит Office), то часть дат интерпретируется неверно: 1 октября превращается в 10 января, например. Будьте осторожны! Это уже привело к серии постов вида "А-а-а-а! Они вбрасывали телефоны в базу ещё в январе!!!" Вот, например: http://roissiavperde.livejournal.com/909236.html — осторожно по ссылкам нашизм головного мозга! Судя по количеству нашистиков в комментах, не исключено, что статьи не по глупости, а по заказу.

3.
В протоколе есть какое-то количество дублей. Они возникли во время каких-то пертурбаций на серверах в процессе защиты от DDOS. Полагаю они возникали как-то так: у площадки голосования не получалось достучаться до api, она повторяла несколько раз запрос, а api из-за какой-то рассогласованности принимала все эти запросы. Есть около 100 человек, у которых голосов более 45, но у каждого уникальных голосов не более 45 (то есть все лишние голоса — это повтор того, за что он уже голосовал). SELECT DISTINCT или uniq спасет датамайнера, если вы понимаете о чем я.

4.
В протокол не вошли люди, которые не выбрали ни одной галочки, но при этом проголосовали (нажали кнопку голосовать) хотя бы по одному списку. Это тупо недоработка SQL запроса (в написании которого даже я немножко приложился). Ох уж эти OUTER/INNER/LEFT JOIN-ы, если вы понимаете о чем я.

5.
Итоговые результаты не включают голоса принужденных МММщиков. Принужденным МММщиком называется тот, кто был зарегистрирован позже 16 октября 2012 12:00 (где-то в это время Мавроди начал блокировать личные кабинеты, принуждая регистрироваться), и при этом проголосавали точно по финальному списку Мавроди из 38 кандидатов (и возможно ещё 7 голосов от себя). Все остальные голоса учитывались. Итоги без выкидывания МММщиков подвел Ден: http://users.livejournal.com/_denplusplus_/190505.html

Независимо повторенный итоговый протокол есть тут: https://github.com/xoposhiy/cvk2012/blob/master/protocols/results.txt
UPD: Добавил в тот же файл после первого списка ещё и второй — в котором очень жестко банятся все, кто похож на МММщика (все ответы из списка Мавро и ответов больше 10 ИЛИ более 15 совпадений со списком Мавро)
UPD: Оказывается я сам при построении итогового протокола не удалял дубли! Исправил. Спасибо товарищу DroNE за внимательность.

Код, который его повторяет с учетом всех артефактов тут: https://github.com/xoposhiy/cvk2012/blob/master/protocols/protocols/Program.cs

Расхождение с официальным минимально (все сохранили все свои места). Из-за чего — ещё не понял.
UPD: В твиттере говорят, что в официальном итоге таки забыли выкинуть ту сотню дублей из п.3 Поэтому расхождение.
Tags: datamining, politics
Subscribe
  • Post a new comment

    Error

    default userpic
  • 97 comments