NeuroFeel is a Streamlit-powered web application that classifies emotional states from EEG signal features. Upload a CSV file (like the emotions.csv
dataset from Kaggle), train different ML models, visualize performance, and even test real-time predictions from manual input.
- 📥 Upload EEG feature CSV
- 🧪 Choose between multiple classifiers:
- Random Forest
- SVM
- K-Nearest Neighbors
- Logistic Regression
- 🔁 5-Fold Cross-Validation
- 📊 Label Distribution Pie Chart
- ✅ Model Evaluation (Accuracy + Classification Report)
- 🔢 Confusion Matrix Heatmap
- 🔬 Feature Importance for Tree Models
- 🔎 Predict a Single Row
- 🎛️ Real-Time Input for Manual Predictions
- 💾 Download trained model (.pkl) and predictions (.csv)
NeuroFeel/
├── app.py # Main Streamlit app
├── requirements.txt # Python dependencies
├── README.md # Project info
git clone https://github.com/yourusername/NeuroFeel.git
cd NeuroFeel
pip install -r requirements.txt
streamlit run app.py
!pip install streamlit pandas scikit-learn matplotlib seaborn joblib
Ensure your CSV file:
- Has numerical EEG features
- Includes a label column for emotion names
Example:
alpha,beta,theta,gamma,label
0.1,0.2,0.3,0.4,happy
...
pandas
numpy
scikit-learn
matplotlib
seaborn
joblib
streamlit
- Add deep learning model options (LSTM/MLP)
- Add multi-model comparison feature
- Add time-series EEG support
This project is perfect for neuroscience, AI + mental health research, or as a student portfolio project exploring the intersection of brain signals and emotions.