This is my first question here, I apologise if this is the wrong place or my formatting is not correct. My experience with machine learning and data science, in general, is a graduate-level survey course I took as an undergrad about a year ago. I decided to familiarise myself by starting to work on little projects. This is my first one, you may get the data (and other referenced code) here.
I downloaded some 1090 photos from Flickr that I might like as my wallpaper. Then I labelled them (with a score between 0-10, 10 being high), so now I have 1093 wallpapers with their respective scores. The final goal is to make a little program that downloads pictures off the internet and decides how much I will like them and if the score is above a certain threshold, it will set the picture as my wallpaper. For machine learning, I standardised them into 75 by 75 pixels. The pictures are RGB.
The file data.npy
is 1093×(75×75×3) NumPy matrix (array of arrays), meaning 1093 rows and 16875 columns. Each row is a photo and can be reshaped as (75, 75, 3) into a picture. The label.npy
is the parallel array of scores.
This makes every RGB pixel value a feature, so we have 16875 features (inspired by the features on MNSIT dataset). I thought of starting with Logistic Regression by scikit-learn and then Linear. I am using the usual NumPy, scikit-learn. I am getting an accuracy of about 0.5 (50%). I am guessing this is because of having a very small dataset compared to the number of features. I have thought of feature extraction but either I did not do it right or something else, but it did not work well.
UPDATE 0:
So by the feedback, I abandoned vanilla logistic/linear regression and tried to lower the number of features by resizing the file, data_50.npy
now has the matrix of shape (1093, (50503)) which makes my image of shape (50,50,3). I tried PCA feature extraction, revised neural networks, and built one on my own with an input, a hidden, and an output layer. Finally, I also implemented the Keras Mobilenet CNN.
UPDATE 1 (Final):
For now due to a lack of data and time, I have postponed this project indefinitely though since this question got some upvotes and discussion, I will not delete it.