Почтаи электронӣ як воситаи муҳими муошират дар ҷаҳони имрӯза мебошад; Бо вуҷуди ин, паёмҳои спам ҳамчун мушкилоти асосӣ пайдо шуданд. Ин паёмҳои номатлуб аз манбаъҳои номаълум аксар вақт паёмдонҳоро пур карда, иртибот ва маҳсулнокро халалдор мекунанд. Ин мақола истифодаи усулҳои гуногуни омӯзиши мошинро барои таснифи почтаи электронӣ ҳамчун "спам" ё "хом" (ғайриспам) таҳқиқ мекунад.
Моделҳои таснифот ба монанди 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 ((Миқдори умумии ҳуҷҷатҳо/Миқдори ҳуҷҷатҳо бо мӯҳлат)
Ин барои тарозуи истилоҳҳои муҳим нисбат ба истилоҳҳои хеле зуд-зуд ва аз ин рӯ камтар муҳим хизмат мекунад.
Ин дар маҷмӯъ 1,130 истилоҳро дар маҷмӯи маълумоти омӯзишӣ медиҳад.
Бояд қайд кард, ки стратегияи истифодаи TF-IDF бо маҷмӯаи санҷишӣ танҳо иҷрои таълими моделӣ дар таълими TF-IDF ва баъдан аз нав ҳисоб кардани TF-IDF бо маълумоти пурра барои дақиқии санҷиш иборат аст. Ин талаб карда мешавад, зеро TF-IDF аз басомади тамоми маҷмӯаи додаҳои истилоҳи муайян вобаста аст ва инчунин ба маълумоти санҷишӣ ҳангоми омӯзиш дохил намешавад.
Ниҳоят, дар маҷмӯи омӯзиш танҳо 1000 истилоҳи беҳтарин аз рӯи басомади умумии мӯҳлат интихоб карда мешаванд.
Рамзи қадамҳои коркарди пешакӣ -
#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)
Моделҳои истифодашуда
Модели мушаххаси оқилона, вале ҳассосияти бениҳоят паст ба даст меорад, яъне бисёре аз хамҳо ҳамчун спам бардурӯғ пешгӯӣ карда мешаванд. Аҳамият диҳед, ки дар ҳар яке аз натиҷаҳои дар поён овардашуда синфи мусбӣ "хом" аст. Ин дар ҳақиқат бадтарин натиҷаи имконпазир барои корбар аст, ки онҳо бисёр мактубҳои воқеиро, ки ҳамчун спам тасниф шудаанд, аз даст медиҳанд.
Рамзи модели 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"]
Пас аз ба даст овардани натиҷаҳои бад аз модели KNN, регрессияи логистикӣ модели навбатии истифодашуда буд.
Бо мақсади ин сенария,
Регрессияи логистикӣ бо гиперпараметрҳои зерин татбиқ карда шуд -
Ин модел натиҷаҳои зеринро дар маҷмӯаи маълумотҳои санҷишӣ таъмин мекунад, ки аллакай дар модели 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"]
Модели навбатии озмоишшуда модели Naive Bayes буд. Барои ин модел, тасдиқи салиб барои дарёфти гиперпараметрҳои оптималӣ бо равиши панҷкарата анҷом дода шуд. Ин ба параметрҳои зерин барои Naive-Bayes оварда мерасонад -
Ин модел инчунин аз рӯи хосият ва ҳассосият натиҷаҳои хуб ба даст меорад.
Рамзи модели 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 барои муайян кардани гиперпараметрҳои оптималӣ иҷро карда мешавад. Ин гиперпараметрҳо дар зер нишон дода шудаанд -
Натиҷаҳои ин модел ҳангоми татбиқ ба маҷмӯаи санҷиши гузаронидашуда дар зер нишон дода шудаанд -
Рамзи 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 низ натиҷаҳои умедбахш нишон медиҳанд.