Rajusunnam commited on
Commit
1b15407
·
verified ·
1 Parent(s): 4af4c4d

Upload raju.py

Browse files
Files changed (1) hide show
  1. raju.py +61 -0
raju.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import sklearn
5
+ from sklearn.model_selection import train_test_split
6
+ from sklearn.feature_extraction.text import CountVectorizer
7
+ from sklearn.neighbors import KNeighborsClassifier
8
+ from sklearn.naive_bayes import MultinomialNB
9
+ from sklearn.tree import DecisionTreeClassifier
10
+ from sklearn.linear_model import LogisticRegression
11
+ from sklearn.svm import SVC
12
+ from sklearn.metrics import accuracy_score
13
+
14
+ df = pd.read_csv(r"C:\Users\rajus\Downloads\spam.csv")
15
+
16
+
17
+ st.title("Identifying Spam and Ham Emails")
18
+
19
+ x = df["Message"]
20
+ y = df["Category"]
21
+
22
+ bow = CountVectorizer(stop_words="english")
23
+ final_data = pd.DataFrame(bow.fit_transform(x).toarray(), columns=bow.get_feature_names_out())
24
+
25
+ x_train, x_test, y_train, y_test = train_test_split(final_data, y, test_size=0.2, random_state=20)
26
+
27
+
28
+ models = {
29
+ "Naive Bayes": MultinomialNB(),
30
+ "KNN": KNeighborsClassifier(),
31
+ "Logistic Regression": LogisticRegression(),
32
+ "Decision Tree": DecisionTreeClassifier(),
33
+ "SVM": SVC()
34
+ }
35
+
36
+ model_choice = st.selectbox("Choose a Classification Algorithm", list(models.keys()))
37
+
38
+
39
+ obj = models[model_choice]
40
+ obj.fit(x_train, y_train)
41
+ y_pred = obj.predict(x_test)
42
+ accuracy = accuracy_score(y_test, y_pred)
43
+
44
+
45
+ if st.button("Show Accuracy"):
46
+ st.write(f"Accuracy of {model_choice}: {accuracy:.4f}")
47
+
48
+ email_input = st.text_input("Enter an Email for Prediction")
49
+
50
+
51
+ def predict_email(email):
52
+ data = bow.transform([email]).toarray()
53
+ prediction = obj.predict(data)[0]
54
+ st.write(f"Prediction: {prediction}")
55
+
56
+
57
+ if st.button("Predict Email"):
58
+ if email_input:
59
+ predict_email(email_input)
60
+ else:
61
+ st.write(":red[Please enter an email to classify]")