The goal of this project was to develop accurate predictive models to solve a binary classification problem: detecting fraudulent banknotes. I figured that learning to write decision tree algorithms from scratch could serve as an effective technical exercise. Unexpectedly, this from-scratch implementation ended up outperforming the default trees from Scikit-learn.
The data was downloaded from this source.
Extracted from images were taken from genuine and forged banknote-like specimens. For digitization, an industrial camera usually used for print inspection was used. The final images have 400 x 400 pixels. Due to the object lens and distance to the investigated object, gray-scale pictures with a resolution of about 660 dpi were gained. Wavelet Transform tools were used to extract features from images.
- Variance of Wavelet Transformed image (continuous)
- Skewn of Wavelet Transformed image (continuous)
- Curtosis of Wavelet Transformed image (continuous)
- Entropy of image (continuous)
- Class (integer): Whether or not the banknote is real or fake.