База примеров

Задача распознавания спама

Содержание

Цель исследования

Описание примера

1. Анализ с помощью МАР – сплайнов

2. Анализ с помощью растущих деревьев классификации и регрессии

Вывод


Цель исследования

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

Задача состоит в том, чтобы построить хорошую предиктивную (предсказательную) модель, на основе имеющихся данных.

Заметим, что нельзя дать точное определение спама и поэтому в каждом случае классификатор нужно настраивать индивидуально.

Для решения данной задачи мы используем 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

Столбчатая диаграмма для переменной Var 27- word_freq_george

 Рис. 1. Столбчатая диаграмма для переменной Var 27- word_freq_george 

 Var 25 – word_freq_hp

Столбчатая диаграмма для переменной 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%, при времени счета порядка нескольких минут и стандартных настройках.


В начало


Узнайте больше на курсах Академии Анализа Данных StatSoft

Список курсов    Календарь    Расписание групповых занятий

 

 





                info@statsoft.ru         +7 (495) 787-77-33      +7 (499) 674-06-15          STATISTICA 13.3 Trial

Авторские права на дизайн и материалы сайта принадлежат компании StatSoft Russia.
Все права защищены.

© StatSoft Russia
1999-2023

StatSoft Russia – компания, зарегистрированная и действующая в соответствии с законами России, которые могут отличаться от законов других стран, имеющих офисы StatSoft. Каждый офис StatSoft является самостоятельным юридическим лицом, имеет право предлагать услуги и разрабатывать приложения, которые могут быть, а могут и не быть представлены в офисах StatSoft других стран.

Лицензионное соглашение      Карта сайта