Содержание
Цель исследования
Построить автоматический распознаватель спама, т. е. устройство, которое бы предотвращало засорение электронного почтового ящика спамом, путем его распознавания и удаления.
Задача состоит в том, чтобы построить хорошую предиктивную (предсказательную) модель, на основе имеющихся данных.
Заметим, что нельзя дать точное определение спама и поэтому в каждом случае классификатор нужно настраивать индивидуально.
Для решения данной задачи мы используем 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%, при времени счета порядка нескольких минут и стандартных настройках.
В начало
Комментарии: