@ashleychoy: my main experience lies in deep learning so I will address that and will leave the rest of the community members to address machine learning algorithms, which I have not really ventured into thus far.
Usually, you should follow the universal machine learning workflow:
- Define the problem : What data is available, and what are you trying to predict? Will you need to collect more data or hire people to manually label a dataset?
- Identify a way to reliably measure success on your goal.
- Prepare the validation process that you will use to evaluate your models. In particular, you should define a training set, a validation set, and a test set.
Vectorize the data by turning it into vectors and preprocessing it in a way that makes it more easily approachable by a neural network.
- Develop a first model that beats a trivial common-sense baseline .
- Gradually refine your model architecture by tuning Hyperparameter and adding regularization.
- Be aware of validation-set overfitting when tuning hyperparameters (i.e. overspecialized to the validation set).
So based on what you want to predict: if its a binary/categorical classification of images of animals or food, for instance you would use a Convolutional Neural Network. If there is a small dataset, you may choose to do data augmentation. However, when dealing with sequence data like text or audio for NLP, you may instead choose to use a Recurrent Neural Network to predict, say the next word in a phrase, given the first few words.
Next is to find a way to measure success and often at times, this is the accuracy of the model, or sometimes the mean squared or mean absolute error.
Your inputs and weights into the neural network could be somewhat random at first and based on the loss score the model will adjust the weights and biases. You could perhaps plot a graph of validation/training accuracy/loss to determine at which epoch the model has overfitted and then you may need to then tune hyperparameters such as the activation function at each layer, number of epochs, adding droupout layers etc. Repeat these steps until you are satisfied that the model has reached the best possible accuracy.
Hope this helps!