Манипуляции с наборами данных - PullRequest
2 голосов
/ 18 февраля 2011

Мне нужно восстановить исходный вид набора данных.Исходный набор данных был получен в результате процесса, в котором несколько пользователей, которые имеют несколько характеристик, входят в комнату, а некоторые нажимают на кнопку.Переменные столбца представлены в виде индикатора, поэтому, когда пользователь нажимает кнопку или имеет определенную характеристику, она записывается как единица, а там, где ее нет, она обозначается нулем.Этот набор данных затем преобразуется в форму, в которой характерные типы представляют собой наблюдения, представленные двумя характеристическими переменными.Этот новый набор данных показывает пользователей, у которых есть две характеристики, количество их и их нажатие кнопок.это также охватывает всех пользователей.моё объяснение может быть не самым ясным, поэтому вот изображение, которое может помочь, может объяснить

enter image description here

Я думаю об использовании некоторого типа алгоритма поискачтобы решить это, но это не может быть слишком эффективным.

Ответы [ 3 ]

1 голос
/ 18 февраля 2011

К сожалению, в общем случае вы не сможете однозначно проанализировать ваш набор данных. На данный момент игнорируем столбец действия, рассмотрим следующие два набора данных:

Набор данных 1:

A B C
1 1 1
1 1 0
0 1 1
1 0 1
1 0 0
1 0 0
0 1 0
0 1 0
0 0 1
0 0 1

Набор данных 2:

A B C
1 1 0
1 1 0
1 0 1
1 0 1
0 1 1
0 1 1
1 0 0
0 1 0
0 0 1

Если я не ошибаюсь, эти два набора данных будут показывать одинаковое количество пользователей в каждой паре характеристик:

A A 5
A B 2
A C 2
B B 5
B C 2
C C 5

Теперь у вас может возникнуть искушение подумать: «Эй, в первом наборе данных 10 пользователей, а во втором - только 9. Если я смогу получить общее количество пользователей, решит ли это мою проблему? " Ответ в основном нет. Если у вас три или меньше характеристик, тогда ответ положительный (см .: Принцип исключения-включения ). Однако, если у вас более трех характеристик, ответ будет отрицательным. Вы можете построить аналогично неоднозначные примеры, где общее количество пользователей одинаково.

0 голосов
/ 18 февраля 2011

Как упоминалось в предыдущих постерах, набор данных не будет уникальным, но у вас может быть другая проблема: каков размер набора данных?Интуитивно понятно, что это проблема NP-сложная.Если мы сводим задачу к простому нахождению любой матрицы n by k (первая сетка: n участников, k характеристики), которая удовлетворяет ограничениям (вторая сетка), грубое принуждение потребует от васпопробовать все возможные комбинации.Мы можем немного ограничить это, только попробовав решения, которые имеют определенное количество людей на характеристику, но в худшем случае это все равно будет (n choose n/2)^k комбинаций в худшем случае.

0 голосов
/ 18 февраля 2011

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

  • Сначала я могусоздать структуру данных с теми же измерениями, что и у исходного, но со всеми наблюдениями, равными нулю
  • Поиск данного набора данных для пользователей и действий с характеристикой A
  • Просмотр данного набора данных дляпользователи и действия с характеристиками B и A и B и соответственно корректируют набор данных
  • "" "" "" "с характеристиками C и A & C и B & C и корректируют набор данных соответствующим образом.

Я сделал это только до A, B и C, но, судя по всему, все усложняется, когда я перехожу к другим характеристикам, потому что мне придется искать пересечения в основном всех их.данный набор данных может быть уменьшен, поскольку многие записи являются дубликатами, например, CA совпадает с A C.

sol image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...