So after my post last week, I received some feedback saying that I should better explain what the concepts that I was talking about are and why / how we use them. So in this post I’m going to attempt to explain most of the concepts I used in my last post.
To start off I’m just gonna break things down and list out the terms I’ll be defining. In order to do machine learning you should usually have at least two sets of data, a learning set and a testing set of data. Machine learning is also usually broken down into two main forms, these are supervised and unsupervised learning. These then break out into the three common types of machine learning problems. Underneath supervised learning we have classification and regression problems. And underneath unsupervised learning we have clustering problems. There’s a handy infographic I found to represent this:As SciKit Learn puts it “Machine learning is about learning some properties of a data set and then testing those properties against another data set.” In this way, we can define our two data sets. Our training set is the dataset we are training the computer to recognize data properties off of, and our testing set is what we are trying to predict or classify based on the properties we found.
Now we can move on to the two main types of machine learning, supervised and unsupervised learning. Supervised learning is defined as a problem in which we feed the program some data as our training set, and that data has additional characteristics that we keep from it. We then feed it that hidden data as our testing set, and task it with predicting the characteristics.
Underneath supervised learning, we have classification and regression. Classification is when we feed the program a set of already labelled data, and use that as our training set. We then feed the program some unlabelled data, and have it predict what that data is based off of our labelled training set. In my previous post this is what I was doing with handwriting recognition. Regression is feeding a set of data that has one or more continuous variables to the program, and having it predict the relationship between the variables and the results observed. This task is a bit weird to envision but I find I can understand it better if I think of an example. The one that makes the most sense to me is inputting a set of data with three salmon variables, length, age, and weight. A regression problem using this data would be having the computer predict the length of a salmon based on its age and weight.
Unsupervised learning is defined as a problem in which our training set consists of an infinite amount of input values, but no corresponding target values. This means our program will be finding common factors in the data reacting based on the absence or presence of them. A common approach to this is clustering, in which you feed the computer a set of data, and it will separate this data into the common groups of data that share similar characteristics.
I hope this clarifies some of the things from my last post on classification that might be a bit unclear, and feel free to leave a comment if you would like any clarification or I made an error somewhere.
Thanks for reading and have a wonderful day!