StatSoft Russia
   главная       о компании       продукты       консалтинг       отрасли       ресурсы       порталы       VIP   

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

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

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

4word_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.

12word_freq_will:         continuous.

13word_freq_people:       continuous.

14word_freq_report:       continuous.

15word_freq_addresses:    continuous.

16word_freq_free:         continuous.

17word_freq_business:     continuous.

18word_freq_email:        continuous.

19word_freq_you:          continuous.

20word_freq_credit:       continuous.

21word_freq_your:         continuous.

22word_freq_font:         continuous.

23word_freq_000:          continuous.

24word_freq_money:        continuous.

25word_freq_hp:           continuous.

26word_freq_hpl:          continuous.

27word_freq_george:       continuous.

28word_freq_650:          continuous.

29word_freq_lab:          continuous.

30word_freq_labs:         continuous.

31word_freq_telnet:       continuous.

32word_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

Var 25 – word_freq_hp

Столбчатая диаграмма
Столбчатая диаграмма для переменной 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.

Позвоните нам, и мы подберем для Вас программу курсов.

 


e-mail    контакты контакты   обратная связь   карта сайта © StatSoft Russia 2010