This question is very broad to answer from the info you provided but I think, first you need to conduct some explanatory analysis to understand if your dataset can represent your class well. Before this analysis you need to convert this data into a tabular form.
I would represent each color group as "one hot encoded like" form so one row from your dataset looks like:
accent_color_R : 0.6901960784313725
accent_color_G : 0.14901960784313725
accent_color_B : 0.10588235294117647
dominant_colors_first_group_R : 0.6470588235294118
dominant_colors_first_group_G : 0.16470588235294117
dominant_colors_first_group_B : 0.16470588235294117
dominant_colors_second_group_R : 0.0
dominant_colors_second_group_G : 0.0
dominant_colors_second_group_B : 0.0
dominant_colors_third_group_R : 1.0
dominant_colors_third_group_G : 1.0
dominant_colors_third_group_B : 1.0
bg_color_R : 0.6470588235294118
bg_color_G : 0.16470588235294117
bg_color_B : 0.16470588235294117
fore_color_R : 0.0
fore_color_G : 0.0
fore_color_B : 0.0
class_label : (0 or 1) OR a continuous value that represent probability
So it is going to be 18 columns(features) table. Depends on what kind of dataset you have, It can be a liked / not_liked binary classification problem or can be a regression problem, for the regression your label is going to be a continuous value and it represents the probability so your class label is going to be in
[0,1] = {0<= class_label <= 1}
You can use neural network to implement regression. You can find plenty of informations if you type "implementing regression with neural networks" to Google.