This dataset contains weather data from 2 regions in Algeria over the period of 3 months and the goal is to predict if a fire occurred at any day within that period. To create a real-world scenario, we want to predict if there will be a fire in a future date as provided by the dataset. The fire prediction is based on weather data collected from the regions. Problem type: Classification.
# EE559_Project
- 2-class problem
- Dataset (# data pts.)
- training: 184
- Class 0: 69 (37.5%)
- Class 1: 115 (62.5%)
- test: 60
- Sequential Backward Selection
- Most contributing features:
- ISI > Rain > DMC > FFMC > DC > RH > BUI > Ws > Temperature
- Required reference systems
- Trivial system \
`python3 trivial.py`
- Test F1-score: 0.5
- Test Accuracy: 0.5
- Baseline system \
`python3 baseline.py`
- Drop "Date"
- Test F1-score: 0.6286
- Test Accuracy: 0.7833
- Technique 1: Perceptron Learning (Drop "Date")\
`python3 perceptron.py --M 4 --epoch 200 --plot_title perceptron` (M-fold cross-validation)
- Val F1-score: 0.9113
- Val Accuracy: 0.9076
- Test F1-score: 0.8846
- Test Accuracy: 0.9
`python3 perceptron.py --M 4 --epoch 200 --normalization --plot_title p_norm`
- Apply min-max normalization to all features
- Val F1-score: 0.9405
- Val Accuracy: 0.9457
- Test F1-score: 0.8679
- Test Accuracy: 0.8833
`python3 perceptron.py --M 4 --epoch 200 --standardization --plot_title p_std`
- Apply standardization to all features
- Val F1-score: 0.9368
- Val Accuracy: 0.9457
- Test F1-score: 0.92
- Test Accuracy: 0.93
`python3 perceptron.py --M 4 --epoch 200 --standardization --feat_reduction --plot_title p_feat_reduct`
- Four least contributing features: Temperature -> Ws -> BUI -> RH
- Drop (1,2,3,4) features
- Val F1-score: (0.9725, 0.9805, 0.9763, 0.9875)
- Val Accuracy: (0.9674, 0.9728, 0.9728, 0.9837)
- Test F1-score: (0.9583, 0.9787, 0.9388, 0.9583)
- Test Accuracy: (0.9667, 0.9833, 0.95, 0.9667)
`python3 perceptron.py --standardization --feat_reduction --extra_feat --plot_title p_add_1_feat`
- Val F1-score: 0.9882
- Val Accuracy: 0.9783
- Test F1-score: 0.9787
- Test Accuracy: 0.9833
- Technique 2: KNN Classifier (Drop "Date", with Standardization)\
`python3 kNN.py --M 4 --k 7 --plot_title kNN`
- The following results are for k = (2, 3, 4, 5, 6, 7, 8)
- Val F1-score: (0.8287, 0.8532, 0.8605, 0.8745, 0.886, 0.8678, 0.8739)
- Val Accuracy: (0.8478, 0.8641, 0 …