paint-brush
Ҳом против Спам: Чӣ тавр муайян ва тасниф кардани почтаи электронии спамаз ҷониби@ramakadapala
Таърихи нав

Ҳом против Спам: Чӣ тавр муайян ва тасниф кардани почтаи электронии спам

аз ҷониби Rama7m2025/03/08
Read on Terminal Reader

Хеле дароз; Хондан

Дар ин лоиҳа, баъзе аз асбобҳои омӯзиши мошинсозӣ барои дидани он, ки чӣ гуна онҳо ҳамчун таснифкунандаи почтаи электронии Ҳем ва Спам кор мекунанд, истифода шуданд. Тавсифи ҳисобҳо ва инчунин муқоисаи иҷрои онҳо пешниҳод карда мешавад.
featured image - Ҳом против Спам: Чӣ тавр муайян ва тасниф кардани почтаи электронии спам
Rama HackerNoon profile picture

Реферат

Почтаи электронӣ як воситаи муҳими муошират дар ҷаҳони имрӯза мебошад; Бо вуҷуди ин, паёмҳои спам ҳамчун мушкилоти асосӣ пайдо шуданд. Ин паёмҳои номатлуб аз манбаъҳои номаълум аксар вақт паёмдонҳоро пур карда, иртибот ва маҳсулнокро халалдор мекунанд. Ин мақола истифодаи усулҳои гуногуни омӯзиши мошинро барои таснифи почтаи электронӣ ҳамчун "спам" ё "хом" (ғайриспам) таҳқиқ мекунад.


Моделҳои таснифот ба монанди K-Nearest Neighbours (KNN), Logistic Regression, Support Vector Machines (SVM) ва Naïve Bayes баҳо дода, самаранокии онҳоро дар таснифи почтаи электронӣ муқоиса мекунанд. Фаъолияти ҳар як модел дар асоси ченакҳо ба монанди дақиқ, дақиқ, бозхонд ва холҳои F1 баҳо дода мешавад, то муайян кунад, ки кадом равиш барои ин вазифа мувофиқтар аст.

Муқаддима

Дар соли 2023, ҳар рӯз 347,3 миллиард мактуб ирсол мешавад, ки аз онҳо 45% тамоми трафики почтаи электрониро спамҳо ташкил медиҳанд. Ин спамҳои почтаи электронӣ ҳар сол ба тиҷорат 20,5 миллиард доллар арзиш дорад. Бо назардошти ин, ҳамеша зарур аст, ки спам дуруст тасниф карда шавад ва ба трафики қонунии почтаи электронӣ халал нарасонад. Ин як роҳи муфид барои фаҳмидани потенсиал ва истифодаи омӯзиши мошинсозӣ мебошад.


Дар сурати ошкор кардани спам, корбари инсонии бо почтаи электронӣ ошношуда метавонад ба осонӣ спамро қариб дарҳол ҳангоми дидани он муайян кунад. Дар натиҷа, ман боварӣ дорам, ки ин кор тасдиқ мекунад, ки муайян кардани спам як барномаи муфид барои таснифгари омӯзиши мошин аст. Барои тасниф кардани почтаи электронӣ ҳамчун спам ё ветчина, бисёр қадамҳои коркарди пешакӣ мавҷуданд - омода кардани маълумот барои қабули таснифгари хатӣ, пас аломатгузорӣ ва ҷудо кардани ҳар як сатр барои табдил додан ба ҷадвали TF-IDF (Frequency Term - Frequency Inverse Document).


KNN бо K = 3 ҳамчун модели асосӣ интихоб карда шуд. Регрессияи логистикӣ бо танзими L1, модели Naïve Bayes ва моделҳои SVM низ пеш аз интихоби модели беҳтарин озмуда шуданд. Барои ин лоиҳа маҷмӯи додаҳо аз Kaggle истифода шудааст, ки дорои 2551 файли почтаи электронии "хам" ва 501 файли почтаи спам мебошад ва моделсозӣ бо забони барномасозии R анҷом дода шудааст.

Намоиши наздики калимаҳои хомНусхаи наздики калимаҳои спам Методология аз паи

Диаграммаи дар поён овардашуда барои фаҳмидани ҷараёни қадамҳои гуногуни зерин кӯмак хоҳад кард -

Тасвири қадамҳои лоиҳаро тасвир мекунад

Қадамҳои коркарди пешакӣ

Бо назардошти он, ки ҳаҷми зиёди додаҳои матнӣ истифода мешавад, зарурати коркарди пешакии маълумот барои тоза кардани он ва ба формате дастрас кардани он ба миён омад, ки онро моделҳои таснифот истифода баранд. Дар зер раванди зина ба зина шарҳ дода мешавад, ки ҳамчун як қисми коркарди пешакии додаҳо ба амал омад -

  • Маълумоти матнӣ бояд барои таснифгари хатӣ қобили қабул бошад. Ин маънои онро дорад, ки маҷмӯи додаҳо бояд бо истифода аз усулҳои истихроҷи хусусиятҳои матн ба хусусиятҳои рақамӣ табдил дода шаванд.

  • Аввалан, ҳар як сатри матн аломатгузорӣ карда мешавад ва ба шакли зерин асос ёфтааст. Раванди бунёдӣ калимаҳоро бо бартараф кардани пасвандҳои тобиш кӯтоҳ мекунад. Масалан, дар мисоли зерин коргарон коргар мешаванд.

    Калимаҳо ва калимаҳои аслии онҳо

  • Баъдан, маълумоти нишонашуда ба ҷадвали TF-IDF табдил дода мешавад (басомади мӯҳлат - басомади ҳуҷҷати баръакс). TF-IDF равиши таҳлили матн аст, ки ҳар як n-грами ҳуҷҷатро аз рӯи истилоҳи басомади ҳуҷҷати баръакс баён мекунад. Басомади мӯҳлат танҳо басомади истилоҳи додашуда дар дохили ҳуҷҷат аст (дар ин ҳолат, почтаи электронӣ). Басомади ҳуҷҷати баръакс одатан чунин ифода карда мешавад:

    log ((Миқдори умумии ҳуҷҷатҳо/Миқдори ҳуҷҷатҳо бо мӯҳлат)


Ин барои тарозуи истилоҳҳои муҳим нисбат ба истилоҳҳои хеле зуд-зуд ва аз ин рӯ камтар муҳим хизмат мекунад.

  • Баъдан, шартҳо танҳо бо интихоби он истилоҳоте, ки дар на камтар аз 2 фоизи ҳуҷҷатҳо, вале на бештар аз 95 фоизи ҳуҷҷатҳо пайдо шудаанд, ихтисор карда мешаванд. Ин раванд аз ҳад зиёд мувофиқат карданро пешгирӣ мекунад, бо кафолат додани он, ки истилоҳоте, ки дар маҷмӯаи омӯзиш хеле беназир ё аз ҳад зиёд паҳн шудаанд, хориҷ карда шаванд.


  • Ин дар маҷмӯъ 1,130 истилоҳро дар маҷмӯи маълумоти омӯзишӣ медиҳад.


Бояд қайд кард, ки стратегияи истифодаи TF-IDF бо маҷмӯаи санҷишӣ танҳо иҷрои таълими моделӣ дар таълими TF-IDF ва баъдан аз нав ҳисоб кардани TF-IDF бо маълумоти пурра барои дақиқии санҷиш иборат аст. Ин талаб карда мешавад, зеро TF-IDF аз басомади тамоми маҷмӯаи додаҳои истилоҳи муайян вобаста аст ва инчунин ба маълумоти санҷишӣ ҳангоми омӯзиш дохил намешавад.


Ниҳоят, дар маҷмӯи омӯзиш танҳо 1000 истилоҳи беҳтарин аз рӯи басомади умумии мӯҳлат интихоб карда мешаванд.


ҷадвали tf-idf

Рамзи қадамҳои коркарди пешакӣ -

 #tokenize word_tokens <- complete_tbl %>% unnest_tokens(word,content) #stemming word_tokens<-word_tokens %>% mutate(word_stem=SnowballC::wordStem(word)) #remove any words with numbers word_tokens <- word_tokens[-grep('^\\d+$', word_tokens$word_stem),] #remove any words with . word_tokens <- word_tokens[-grep('[.]', word_tokens$word_stem),] #remove any single character words word_tokens <- word_tokens[-grep('.\\b[az]\\b.', word_tokens$word_stem),] #remove tokens which match stop words word_tokens <- word_tokens %>% filter(!word %in% stopWords) word_tokens <- word_tokens %>% filter(!word_stem %in% stopWords) #split into training and test word_tokens_train <- word_tokens %>% filter(document %in% ind) #create tfidf for training and then a complete tfidf for testing tfidf_train<-word_tokens_train %>% count(document,word_stem,sort=TRUE) %>% bind_tf_idf(word_stem,document,n) tfidf_complete<-word_tokens %>% count(document,word_stem,sort=TRUE) %>% bind_tf_idf(word_stem,document,n)

Моделҳои истифодашуда

  1. K-Neighbours Nearest (KNN) - модели базавӣ

Модели мушаххаси оқилона, вале ҳассосияти бениҳоят паст ба даст меорад, яъне бисёре аз хамҳо ҳамчун спам бардурӯғ пешгӯӣ карда мешаванд. Аҳамият диҳед, ки дар ҳар яке аз натиҷаҳои дар поён овардашуда синфи мусбӣ "хом" аст. Ин дар ҳақиқат бадтарин натиҷаи имконпазир барои корбар аст, ки онҳо бисёр мактубҳои воқеиро, ки ҳамчун спам тасниф шудаанд, аз даст медиҳанд.


Матритсаи иштибоҳ барои KNN бо K=3
Рамзи модели KNN -

 ##train a model library(e1071) library(caret) library(class) library(LiblineaR) ##remove document number since this is indicative of spam or ham wide_feat_train<-subset(wide_feat_train, select=-c(document)) wide_feat_test<-subset(wide_feat_test,select=-c(document)) #Base model is a knn attempt knn_pred<-knn(train=wide_feat_train,test=wide_feat_test,cl=labels_train$label,k=3) knn_results<-confusionMatrix(knn_pred,labels_test$label) knn_results knn_results$byClass["F1"] knn_results$byClass["Precision"] knn_results$byClass["Recall"]
  1. Регрессияи логистикӣ

Пас аз ба даст овардани натиҷаҳои бад аз модели KNN, регрессияи логистикӣ модели навбатии истифодашуда буд.


Бо мақсади ин сенария,

Формулаҳои эҳтимолияти почтаи электронӣ ва спам

Регрессияи логистикӣ бо гиперпараметрҳои зерин татбиқ карда шуд -

  • талаф = "L1"
  • арзиши = 2
  • эпсилон = 0,1


Ин модел натиҷаҳои зеринро дар маҷмӯаи маълумотҳои санҷишӣ таъмин мекунад, ки аллакай дар модели KNN беҳбудии назаррас аст. Аниқии умумӣ хеле баланд аст, аммо мушаххасот нишон медиҳад, ки ҳанӯз барои такмил додани он ҷой вуҷуд дорад. Истифодабарандаи ин модел метавонад якчанд Хамсро ҳамчун спам пешгӯӣ кунад.
Матритсаи нофаҳмиҳо барои регрессияи логистикӣ Рамзи модели регрессияи логистикӣ -

 #Next is a logistic regression usin the below hyperparameters grid_logit <- expand.grid(loss="L1",cost=2,epsilon=0.1) lr <- train(x=wide_feat_train,y=labels_train$label,method="regLogistic",tuneGrid=grid_logit) lr_results<-confusionMatrix(as.factor(predict(lr,wide_feat_test)),labels_test$label) lr_results p_lr = predict(lr,wide_feat_test) prednum_lr<-ifelse(p_lr=="spam",0,1) roc_lr<-roc(labels_test$label,prednum_lr) plot(roc_lr) roc_lr$auc p1_lr<- prediction(as.numeric(p_lr),as.numeric(labels_test$label)) pr_lr <- performance(p1_lr, "prec", "rec") plot(pr_lr) lr_results$byClass["F1"] lr_results$byClass["Precision"] lr_results$byClass["Recall"]
  1. Модели Наиве Байес

Модели навбатии озмоишшуда модели Naive Bayes буд. Барои ин модел, тасдиқи салиб барои дарёфти гиперпараметрҳои оптималӣ бо равиши панҷкарата анҷом дода шуд. Ин ба параметрҳои зерин барои Naive-Bayes оварда мерасонад -


  • Лаплас = 0
  • истифодабарӣ = FALSE
  • танзим = 1


Ин модел инчунин аз рӯи хосият ва ҳассосият натиҷаҳои хуб ба даст меорад.

Матритсаи нофаҳмиҳо барои модели Наиве Байес Рамзи модели Naive Bayes -

 ##naive bayes main model nb_cv <- train( x=wide_feat_train, y=labels_train$label, method = "naive_bayes", trControl = train_control, tuneGrid = grid ) nb <- naiveBayes(wide_feat_train,labels_train$label,adjust=1,laplace=0,usekernel=FALSE) nb_results<-confusionMatrix(as.factor(predict(nb,wide_feat_test)),labels_test$label) nb_results p = predict(nb,wide_feat_test) prednum<-ifelse(p=="spam",0,1) roc_nb<-roc(labels_test$label,prednum) plot(roc_nb) roc_nb$auc p1<- prediction(as.numeric(p),as.numeric(labels_test$label)) pr <- performance(p1, "prec", "rec") plot(pr) nb_results$byClass["F1"] nb_results$byClass["Precision"] nb_results$byClass["Recall"]


4. Дастгирии мошини векторӣ (SVM)

Модели ниҳоӣ як тасдиқи салиб SVM бо ядрои хатӣ мебошад. Мошинҳои вектории дастгирӣ кӯшиш мекунанд, ки гиперплани ҳадди аксар ҷудошавандаро барои ҷудо кардани маълумот байни ду синф ба таври оптималӣ пайдо кунанд.


Дар ин ҷо, CV-и 5-карата бо истифода аз карети китобхонаи R барои муайян кардани гиперпараметрҳои оптималӣ иҷро карда мешавад. Ин гиперпараметрҳо дар зер нишон дода шудаанд -

  • арзиши = 1
  • талафот = L2
  • вазн = 3


Натиҷаҳои ин модел ҳангоми татбиқ ба маҷмӯаи санҷиши гузаронидашуда дар зер нишон дода шудаанд -

Матритсаи нофаҳмиҳо барои SVM

Рамзи SVM -

 #svm train_control <- trainControl( method = "cv", number = 5 ) svm <- train(x=wide_feat_train,y=labels_train$label,method="svmLinearWeights2",trControl=train_control) svm$bestTune svm_results<-confusionMatrix(as.factor(predict(svm,wide_feat_test)),labels_test$label) svm_results p_svm = predict(svm,wide_feat_test) prednum_svm<-ifelse(p_svm=="spam",0,1) roc_svm<-roc(labels_test$label,prednum_svm) plot(roc_svm,colorize=T,lwd=3, main=" ROC curve for SVM model") roc_svm$auc p1_svm<- prediction(as.numeric(p_svm),as.numeric(labels_test$label)) pr <- performance(p1_svm, "prec", "rec") plot(pr) svm_results$byClass["F1"] svm_results$byClass["Precision"] svm_results$byClass["Recall"]

Натиҷаҳо

Дар ҷадвали зерин тадбирҳое оварда шудаанд, ки барои интихоби модели беҳтарин ба назар гирифта шудаанд –

Модели

Дақиқӣ

Ҳисоби F1

Дақиқӣ

Ба ёд оред

КНН

0,252

0,2293

0,8947

0,1315

Регрессияи логистикӣ

0,9624

0,9781

0,9591

0,998

Наиве Бейс

0,9722

0,9834

0,9882

0,9787

SVM

0,9885

0,9932

0,9886

1

Аз ҷадвали дар боло овардашуда дида мешавад, ки SVM дар муқоиса бо дигар моделҳо беҳтарин кор мекунад.


Барои тасдиқи минбаъда, хатҳои ROC кашида шуданд ва арзишҳои AUC ҳисоб карда шуданд.

Модели

КНН

Регрессияи логистикӣ

Наиве Бейс

SVM

AUC

.5232

.882

.9574

.9628

Расм: арзишҳои AUC барои 4 модел

Аз ченакҳои дар боло зикршуда ба хулосае омадан мумкин аст, ки SVM бо 5-каратаи тасдиқи салоҳиятдор дар маҷмӯи додаҳо дар таснифи паёмҳои электронӣ ҳамчун ветчина ва спам беҳтарин кор мекунад.

Хулоса

Филтри спам ҳамеша як майдони таҳаввулоти пайваста хоҳад буд, зеро спаммерҳо пайваста усулҳои нав ва инноватсионии ирсоли паёмҳои спамро пайдо мекунанд. Ягон ҳалли ягонаи зидди спам дуруст буда наметавонад. Дар ин лоиҳа, баъзе аз асбобҳои омӯзиши мошинсозӣ барои дидани он, ки чӣ гуна онҳо ҳамчун таснифот барои мактубҳои Ҳем ва Спам кор мекунанд, истифода шуданд. Тавсифи ҳисобҳо ва инчунин муқоисаи иҷрои онҳо пешниҳод карда мешавад.


Аз чаҳор модели омӯзиши мошинсозӣ, ки санҷида шудаанд, SVM аз ҷиҳати самаранокӣ беҳтарин дониста шуд. Моделҳои регрессионии Logistic ва Naïve Bayes низ натиҷаҳои умедбахш нишон медиҳанд.

L O A D I N G
. . . comments & more!

About Author

Rama HackerNoon profile picture
I am a highly accomplished data science and analytics professional with over 11 years of expertise in financial services

ТЕГИ овезон кунед

ИН МАКОЛА ДАР...