Содержание
Цель исследования
Построить автоматический распознаватель спама, т. е. устройство, которое бы предотвращало засорение электронного почтового ящика спамом, путем его распознавания и удаления.
Задача состоит в том, чтобы построить хорошую предиктивную (предсказательную) модель, на основе имеющихся данных.
Заметим, что нельзя дать точное определение спама и поэтому в каждом случае классификатор нужно настраивать индивидуально.
Для решения данной задачи мы используем STATISTICA Data Miner.
Данные для примера были собраны администраторами Hewlett-Packard Support.
Описание примера
Описание таблицы исходных данных
Число наблюдений 4601, из которых спам составлял 39.4% (1813 сообщений было спамом)
Общее число переменных: 58, из которых 57 непрерывных предикторов, и одна – категориальная (индикатор того, является сообщение спамом или нет).
Предикторы показывают, как часто появляется данное слово или символ в электронном письме. Переменные 55-57 показывают характеристики длины последовательности непрерывных последовательностей заглавных букв.
Описание переменных
Эти предикторные переменные характеризуют спам. Очевидно, можно использовать другие параметры.
48 непрерывных вещественных [1, 100] переменных типа word_freq_WORD = процентному отношению слов WORD в письме, т. е. 100*(число появлений слова WORD в данном письме к общему числу слов).
6 непрерывных вещественных [1, 100] переменных типа char_freq_CHAR= процентному отношению появления символов CHAR в письме, к общему количеству символов в письме.
1 непрерывная вещественная [1, …] переменная типа capital_run_length_average= средней длине непрерывной последовательности заглавных букв.
1 непрерывная целая [1, …] переменная типа capital_run_length_longest= наибольшей длине непрерывной последовательности заглавных букв
1 непрерывная целая [1, …] переменная типа capital_run_length_total= суммарное число заглавных букв в письме.
Описательные статистики
№
|
Min
|
Max
|
Average
|
Std.Dev
|
Coeff.Var_%
|
1
|
0
|
4.54
|
0.10455
|
0.30536
|
292
|
2
|
0
|
14.28
|
0.21301
|
1.2906
|
606
|
3
|
0
|
5.1
|
0.28066
|
0.50414
|
180
|
4
|
0
|
42.81
|
0.065425
|
1.3952
|
2130
|
5
|
0
|
10
|
0.31222
|
0.67251
|
215
|
6
|
0
|
5.88
|
0.095901
|
0.27382
|
286
|
7
|
0
|
7.27
|
0.11421
|
0.39144
|
343
|
8
|
0
|
11.11
|
0.10529
|
0.40107
|
381
|
9
|
0
|
5.26
|
0.090067
|
0.27862
|
309
|
10
|
0
|
18.18
|
0.23941
|
0.64476
|
269
|
11
|
0
|
2.61
|
0.059824
|
0.20154
|
337
|
12
|
0
|
9.67
|
0.5417
|
0.8617
|
159
|
13
|
0
|
5.55
|
0.09393
|
0.30104
|
320
|
14
|
0
|
10
|
0.058626
|
0.33518
|
572
|
15
|
0
|
4.41
|
0.049205
|
0.25884
|
526
|
16
|
0
|
20
|
0.24885
|
0.82579
|
332
|
17
|
0
|
7.14
|
0.14259
|
0.44406
|
311
|
18
|
0
|
9.09
|
0.18474
|
0.53112
|
287
|
19
|
0
|
18.75
|
1.6621
|
1.7755
|
107
|
20
|
0
|
18.18
|
0.085577
|
0.50977
|
596
|
21
|
0
|
11.11
|
0.80976
|
1.2008
|
148
|
22
|
0
|
17.1
|
0.1212
|
1.0258
|
846
|
23
|
0
|
5.45
|
0.10165
|
0.35029
|
345
|
24
|
0
|
12.5
|
0.094269
|
0.44264
|
470
|
25
|
0
|
20.83
|
0.5495
|
1.6713
|
304
|
26
|
0
|
16.66
|
0.26538
|
0.88696
|
334
|
27
|
0
|
33.33
|
0.7673
|
3.3673
|
439
|
28
|
0
|
9.09
|
0.12484
|
0.53858
|
431
|
29
|
0
|
14.28
|
0.098915
|
0.59333
|
600
|
30
|
0
|
5.88
|
0.10285
|
0.45668
|
444
|
31
|
0
|
12.5
|
0.064753
|
0.40339
|
623
|
32
|
0
|
4.76
|
0.047048
|
0.32856
|
698
|
33
|
0
|
18.18
|
0.097229
|
0.55591
|
572
|
34
|
0
|
4.76
|
0.047835
|
0.32945
|
689
|
35
|
0
|
20
|
0.10541
|
0.53226
|
505
|
36
|
0
|
7.69
|
0.097477
|
0.40262
|
413
|
37
|
0
|
6.89
|
0.13695
|
0.42345
|
309
|
38
|
0
|
8.33
|
0.013201
|
0.22065
|
1670
|
39
|
0
|
11.11
|
0.078629
|
0.43467
|
553
|
40
|
0
|
4.76
|
0.064834
|
0.34992
|
540
|
41
|
0
|
7.14
|
0.043667
|
0.3612
|
827
|
42
|
0
|
14.28
|
0.13234
|
0.76682
|
579
|
43
|
0
|
3.57
|
0.046099
|
0.22381
|
486
|
44
|
0
|
20
|
0.079196
|
0.62198
|
785
|
45
|
0
|
21.42
|
0.30122
|
1.0117
|
336
|
46
|
0
|
22.05
|
0.17982
|
0.91112
|
507
|
47
|
00
|
2.17
|
0.0054445
|
0.076274
|
1400
|
48
|
0
|
10
|
0.031869
|
0.28573
|
897
|
49
|
0
|
4.385
|
0.038575
|
0.24347
|
631
|
50
|
0
|
9.752
|
0.13903
|
0.27036
|
194
|
51
|
0
|
4.081
|
0.016976
|
0.10939
|
644
|
52
|
0
|
32.478
|
0.26907
|
0.81567
|
303
|
53
|
0
|
6.003
|
0.075811
|
0.24588
|
324
|
54
|
0
|
19.829
|
0.044238
|
0.42934
|
971
|
55
|
1
|
1102.5
|
5.1915
|
31.729
|
611
|
56
|
1
|
9989
|
52.173
|
194.89
|
374
|
57
|
1
|
15841
|
283.29
|
606.35
|
214
|
58
|
0
|
1
|
0.39404
|
0.4887
|
124
|
Имена переменных
- 1 word_freq_make: continuous.
- 2 word_freq_address: continuous.
- 3 word_freq_all: continuous.
- 4 word_freq_3d: continuous.
- 5 word_freq_our: continuous.
- 6 word_freq_over: continuous.
- 7 word_freq_remove: continuous.
- 8 word_freq_internet: continuous.
- 9 word_freq_order: continuous.
- 10 word_freq_mail: continuous.
- 11 word_freq_receive: continuous.
- 12 word_freq_will: continuous.
- 13 word_freq_people: continuous.
- 14 word_freq_report: continuous.
- 15 word_freq_addresses: continuous.
- 16 word_freq_free: continuous.
- 17 word_freq_business: continuous.
- 18 word_freq_email: continuous.
- 19 word_freq_you: continuous.
- 20 word_freq_credit: continuous.
- 21 word_freq_your: continuous.
- 22 word_freq_font: continuous.
- 23 word_freq_000: continuous.
- 24 word_freq_money: continuous.
- 25 word_freq_hp: continuous.
- 26 word_freq_hpl: continuous.
- 27 word_freq_george: continuous.
- 28 word_freq_650: continuous.
- 29 word_freq_lab: continuous.
- 30 word_freq_labs: continuous.
- 31 word_freq_telnet: continuous.
- 32 word_freq_857: continuous.
- 33 word_freq_data: continuous.
- 34 word_freq_415: continuous.
- 35 word_freq_85: continuous.
- 36 word_freq_technology: continuous. <
- 37 word_freq_1999: continuous.
- 38 word_freq_parts: continuous.
- 39 word_freq_pm: continuous.
- 40 word_freq_direct: continuous.
- 41 word_freq_cs: continuous.
- 42 word_freq_meeting: continuous.
- 43 word_freq_original: continuous.
- 44 word_freq_project: continuous.
- 45 word_freq_re: continuous.
- 46 word_freq_edu: continuous.
- 47 word_freq_table: continuous.
- 48 word_freq_conference: continuous.
- 49 char_freq_;: continuous.
- 50 char_freq_(: continuous.
- 51 char_freq_[: continuous.
- 52 char_freq_!: continuous.
- 53 char_freq_$: continuous.
- 54 char_freq_#: continuous.
- 55 capital_run_length_average: continuous.
- 56 capital_run_length_longest: continuous.
- 57 capital_run_length_total: continuous.
Следующая таблица показывает предикторы, значения которых наиболее сильно различаются в группах spam и email; в каждой ячейке указано среднее значение соответствующего предиктора в соответствующей группе.
|
george
|
you
|
your
|
hp
|
free
|
hpl
|
!
|
our
|
re
|
edu
|
remove
|
spam
|
0
|
2,26
|
1,38
|
0,02
|
0,52
|
0,01
|
0,51
|
0,51
|
0,13
|
0,01
|
0,28
|
email
|
1,27
|
1,27
|
0,44
|
0,90
|
0,07
|
0,43
|
0,11
|
0,18
|
0,42
|
0,29
|
0,01
|
Приведем столбчатые диаграммы для некоторых переменных:
Var 27- word_freq_george

Рис. 1. Столбчатая диаграмма для переменной Var 27- word_freq_george
Var 25 – word_freq_hp
Рис. 2. Столбчатая диаграмма для переменной Var 25 – word_freq_hp
Построим предиктивную модель с помощью двух подходов: МАР – сплайнов и растущих деревьев классификации и регрессии.
1. Анализ с помощью МАР – сплайнов
Здесь мы покажем, что варьируя параметры модели мы достигаем большей точности. Расчеты проводятся для двух наборов параметров.
Шаг 1. Зайдите в меню Анализ/Добыча данных/ МАР, задайте переменные для анализа.

Шаг 2. Задайте параметры модели и выполните анализ.

В параметры модели входит число базисных функций, порядок взаимодействий, штраф, порог. За подробным разъяснением этих параметров обращайтесь к технической документации.
Шаг 3. Теперь просмотрим результаты анализа.
При следующих значениях параметров модели:
Макс. число базисных функций = 30
Порядок взаимодействий = 10
Штраф = 2
Порог = 0.0005
Матрица классификаций имеет вид:
Предсказанные/Наблюдаемые
|
Non spam
|
spam
|
email
|
2670
|
191
|
spam
|
118
|
1622
|
Качественно можно посмотреть на гистограмме:

При других значениях параметров модели:
Макс. число базисных функций = 70
Порядок взаимодействий = 40
Штраф = 2
Порог = 0.0005
Матрица классификаций имеет вид:
Предсказанные/Наблюдаемые
|
Non spam
|
spam
|
email
|
2671
|
136
|
spam
|
117
|
1677
|

2. Анализ с помощью растущих деревьев классификации и регрессии
Теперь просмотрим результаты анализа классификации для данного метода.
Предсказанные/Наблюдаемые
|
Non spam
|
spam
|
email
|
2664
|
124
|
spam
|
111
|
1702
|
Вывод
Для МАР–сплайнов, в первом случае, точность предсказания (число правильно предсказанных наблюдений к общему числу наблюдений) равна 93,3%, а во втором – 94,5%.
Нужно отметить, что время счета различалось на порядок: в первом случае, мы получаем время выполнения порядка нескольких минут, а во втором – несколько десятков минут, т. е. мы сталкиваемся с известной проблемой увеличения на порядки вычислительных ресурсов при повышении точности вычислений на проценты. Таким образом, в нашем случае точность расчетов при разумном времени примерно равна 93%.
Для растущих деревьев классификации мы получаем точность предсказания примерно равную 5%, при времени счета порядка нескольких минут и стандартных настройках.
В начало
Комментарии: