Erkennung von Spam-Nachrichten – End-to-End-Projekt für maschinelles Lernen | von Adiaturb | Juni 2023

0
28


Der nächste Schritt bestand darin, Merkmale aus den vorverarbeiteten Daten zu extrahieren, die zum Trainieren des maschinellen Lernmodells verwendet werden konnten. Dabei wurden Techniken wie „Bag of Phrases“ und „Time period Frequency-Inverse Doc Frequency“ (TF-IDF) verwendet. TF-IDF schneidet in diesem Fall besser ab.

Dieser Schritt umfasste:

  • Aufteilen von Daten in Trainings- und Testsatz

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 2)
  • Der nächste Schritt bestand darin, ein geeignetes Modell für maschinelles Lernen auszuwählen, das die Nachrichten genau als Spam oder Ham klassifizieren konnte. Ich habe mit verschiedenen Algorithmen experimentiert, darunter Naive Bayes, Help Vector Machines (SVM) und Random Forest Classifiers.
svc = SVC(kernel = 'sigmoid')
knc = KNeighborsClassifier()
mnb = MultinomialNB()
bnb = BernoulliNB()
rfc = RandomForestClassifier(random_state = 2)
xgb = XGBClassifier(random_state = 2)
gbdt = GradientBoostingClassifier(random_state = 2)
dtc = DecisionTreeClassifier(max_depth = 5)
lrc = LogisticRegression()

classifiers = {
'SVC' : svc,
'KNeighbors' : knc,
'Multinomial Naive Bayes' : mnb,
'Bernoulli Naive Bayes' : bnb,
'Random Forest' : rfc,
'XGBoost' : xgb,
'Gradient Boosted Choice Tree' : gbdt,
'Choice Tree' : dtc,
'Logistic Regression' : lrc
}

Nachdem das Modell trainiert warfare, bestand der nächste Schritt darin, seine Leistung anhand eines durchgehaltenen Testsatzes zu bewerten.

Ich habe verschiedene Bewertungsmetriken wie Genauigkeit, Präzision, Erinnerung und F1-Rating verwendet, um die Leistung des Modells zu bewerten.

Modellleistungen

Um Vorhersagen zu den neuen Textnachrichten zu treffen, müssen wir die folgenden Schritte ausführen:

  • Führen Sie eine Vorverarbeitung für Textdaten durch
  • Vektorisieren Sie den Textual content
  • Wenden Sie das Modell an, um eine Vorhersage zu treffen
#create a pickle (byte) file to save lots of the vectorizer object for later use 
pickle.dump(tfidf, open('vectorizer.pkl', 'wb'))

#save the Beroulli Naive Bayes Classifier Mannequin Object as pickle file
pickle.dump(bnb, open('classification_model.pkl', 'wb'))

Nach Abschluss dieser Schritte konnte ich ein äußerst genaues Spam-Erkennungsmodell erstellen. Das endgültige Modell erreichte eine Genauigkeit von 98,4 %, was bedeutet, dass es 98,4 % der Nachrichten korrekt als Spam oder Ham klassifizierte.

Mit einer Präzision von 99,1 %, einem Recall von 88 % und einem F1-Rating von 93,4 %

Insgesamt warfare der Abschluss des Projekts zur Klassifizierung von Textual content-Spam-Erkennung mithilfe des SMS-Spam-Datensatzes eine hervorragende Lernerfahrung. Dadurch konnte ich praktische Erfahrungen mit maschinellen Lernalgorithmen, Datenvorverarbeitungstechniken und Modellbewertungsmethoden sammeln. Ich ermutige jeden, der sich für maschinelles Lernen interessiert, dieses Projekt auszuprobieren, da es eine hervorragende Möglichkeit ist, praktische Erfahrungen auf diesem Gebiet zu sammeln.

Vielen Dank für Ihre Zeit. Wenn Ihnen mein Ansatz gefallen hat, vergessen Sie nicht, ihm zu folgen. 😊✨



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here