Live Evaluation
Model, Dataset & Results
All numbers below are computed live in the browser by re-training the same pipeline used in the Python implementation: text cleaning → TF-IDF vectorization → Logistic Regression, evaluated on a held-out 20% test split.
Accuracy
90%
Precision
100%
Recall
83.3%
F1-score
90.9%
Performance metrics
Algorithm comparison (reference runs on full dataset)
Confusion matrix (test set)
Predicted REAL
Predicted FAKE
Actual REAL
8
TN
0
FP
Actual FAKE
2
FN
10
TP
Test samples: 20 · Training samples: 80 · Vocabulary: 591 TF-IDF features
Most informative features
Pushes towards FAKE
- secret1.74
- leak1.71
- every1.68
- shock1.58
- cur1.17
- truth1.15
- hid1.15
- now1.12
- man1.11
- government1.06
- famou1.06
- video1.05
Pushes towards REAL
- ministry-1.28
- last-1.18
- week-1.03
- district-1.02
- report-1.00
- state-0.91
- launch-0.89
- said-0.85
- company-0.84
- area-0.81
- twelve-0.81
- rate-0.79
Dataset
- Name
- Fake and Real News Dataset (sampled)
- Source
- Kaggle — clmentbisaillon/fake-and-real-news-dataset
- Full size
- 44,898 articles (True.csv + Fake.csv)
- Demo sample
- 100 balanced articles used in this browser demo
- Columns
- title, text, subject, date, label
- Classes
- REAL (0) · FAKE (1)
- Split
- 80% training / 20% testing (stratified, random_state = 42)
Pipeline hyper-parameters
- Cleaning
- lowercase, URL/HTML/punctuation removal, stop-word removal, stemming
- Vectorizer
- TfidfVectorizer(stop_words='english', max_df=0.7)
- Classifier
- LogisticRegression(max_iter=1000)
- Threshold
- 0.50 on P(fake)
- Persistence
- joblib.dump → model.pkl + vectorizer.pkl
- Serving
- Flask REST API POST /api/predict