Rajusunnam commited on
Commit
e9ab3e1
·
verified ·
1 Parent(s): f3b9374

Update raju.py

Browse files
Files changed (1) hide show
  1. raju.py +60 -60
raju.py CHANGED
@@ -1,61 +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]")
 
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"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]")