Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Статистический анализ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
828.93 Кб
Скачать

Задание.

Источником данных является файл с анонимыми данными о посещениях сайта msnbc.com (американский кабельный телеканал) за один день 28.09.1999.

Данные представлены в виде текстового файла msnbc990928.seq.

Каждая строка (последовательность) в файле соответсвует отдельному пользователю и описывает разделы, посещённые этим пользователем.

Разделов 17:

  1. frontpage,

  2. news,

  3. tech,

  4. local,

  5. opinion,

  6. on-air,

  7. misc,

  8. weather,

  9. health,

  10. living,

  11. business,

  12. sports,

  13. summary,

  14. bulletin board service,

  15. travel,

  16. msn-news,

  17. msn-sports

В качестве примера начало файла и комментарий к первым трём строкам:

1 1 – дважды посетил главную страницу

2 – посетил раздел «новости»

3 2 2 4 2 2 2 3 3 – трижды посетил «технологии», пять раз «новости» и один раз местный раздел.

5

1

6

1 1

6

6 7 7 7 6 6 8 8 8 8

6 9 4 4 4 10 3 10 5 10 4 4 4

1 1 1 11 1 1 1

12 12

1 1

8 8 8 8 8 8

6

2

9 12

3

9

3

12

5

13 13 13

6 9 9 9 9 9 9

План работы.

Разделим работу на три части:

  1. Общие данные о файле.

  2. Анализ глубины просмотра по всему сайту в целом и по каждому разделу в отдельности. Глубина просмотра – количество страниц, которые посетил пользователь, одна из ключевых характеристик для веб-данных.

Здесь же построим регрессионные модели для глубины просмотра.

Данные по сайту в целом можно представить в виде массива длины N (количество строк в исходном файле), заполненного длинами соответствующих строк. Для примера выше данные примут вид:

2,

1,

9.

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

Для примера выше данные примут вид:

{"1": 2},

{"2": 1},

{"2": 5, "3": 3, "4": 1}

  1. Анализ корреляции в посещении разных разделов сайта.

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

Для примера выше данные примут вид:

[1]

[2]

[2, 3, 4]

На основе этого можно посчитать связь между посещением каждого из разделов.

О реализации.

Вычисления производятся с помощью программы на языке Python 3.4 с использованием библиотеки math.

Программа выгружает из файла msnbc990928.seq все строки и преобразует их к виду, указанному выше.

Итоги вычислений дублируются в стандартный консольный вывод и в файлы в папке results.

Исходный код программы и пример одного из таких файлов – в приложении.

Совокупное время вычисления всех заданий ниже:

93.426779985427856 seconds

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

Общие данные.

Количество пользователей:

989 818

Количество просмотренных страниц:

4 698 794

Список всех категорий:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17

Количество пользователей в каждой категории:

1: 313 181

2: 175 286

3: 121 948

4: 121 719

5: 24 987

6: 217 101

7: 80 514

8: 95 615

9: 90 192

10: 50 606

11: 57 597

12: 112 183

13: 76 948

14: 119 138

15: 29 200

16: 2 082

17: 11 006

Количество просмотренных страниц в каждой категории:

1: 940 469,

2: 452 387,

3: 207 479,

4: 386 217,

5: 151 409,

6: 414 928,

7: 305 615,

8: 439 398,

9: 196 614,

10: 131 760,

11: 96 817,

12: 264 899,

13: 216 125,

14: 395 880,

15: 56 576,

16: 25 249,

17: 16 972