This is a brief summary of ML course provided by Andrew Ng and Stanford in Coursera.
You can find the lecture video and additional materials in
https://www.coursera.org/learn/machine-learning/home/welcome
In Supervised Learning, we were told explicitly what is the so-called right answer, whether it's benign or malignant. In Unsupervised Learning, we are given data that does not have any label or all has the same label.
- We are given the data set and we are not told waht to do with it and we are not told what each data point is.
- Instead we are just told, here is a datazset. can you find some structure in the data?
- Given this data set, an unsupervised learning algorithm might decide that the data lives in two different clusters.
Clustering
We are not telling the algorithm in advance that these are type 1, those are type 2 ... and so on.
Instead what were saying is here's bunch of data.
I don't what is in this data. I don't know who's and what type. I don't even know what the different types of people are, but can you automatically find structure in the data from the you.
Can you automatically cluster the individuals into these types that i don't know in advance?
Becuase we are not giving the algorithm the right answer --> this is Unsupervised Learning.
- In google news, tens of thousands of news stories and automatically cluster them together.
- In understanding genomics, with DNA microarray data, you measure how much they do or do not have a certain gene.
Examples
- Large computer clusters: large computer clusters and trying to figure out which machines tend to work together and if you can put those machines together, you can make your data center work more efficiently.
Social network analysis: so given knowledge about which friends you email the most or given your facebook friends or your google+ circles, can we automatically identify which are cohesive groups of friends, also which are groups of people that all know each other?
- Market Segmentation: Huge databases of customer information. So, can you look at this customer data set and automatically discover market segments and automatically group your customers into different market segments so that you can automatically and more efficiently sell or market your different market segments together?
--> We have all this customer data, but we don't know in advance what are the market segments and for the customers in our data set, you know, we don't know in advance who is in market segment one, who is in market segment two, and so on.
But we have to let the algorithm discover all this just from the data.
- Astronomical data analysis
- Cocktail Party Problem: Image there is a party, room full of people, all sitting around, all talking at the same time and there are all these overlapping voices because everyone is talking at the same time, and it is almost hard to hear the person in fron of you. So maybe at a cocktail party with two people, two people talking at the same time, and it's a somewhat small cocktail party. And we are going to put two microphones in the room so there are microphones, and because these microphones are at two different distances from the speakers, each microphone records a different combination of these two speaker voice.
Maybe speaker one is a little louder in microphone one and maybe speaker two is a little bit louder on mic2 because the 2 mic are at different positions relative to the 2 speakers but each mic would cause an overlapping combination of both speakers' voices.
What the algorithm will do is listen to these audio recordings and say, you know it sounds like the two audio recordings are being added together or that have being summed together to produce these recordiings that we had. Moreover, what the cocktail party algorithm will do is separate out these two audio sources that were being added or being summed together to form other recordings.
It turns out the algorithm actcually can be done with one line of code.
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
--> svd: singular vector decomposition built in Octave.
Octave is good when prototyping.
Quiz: Of the following examples, which would you address using an unsupervised learning algorithm? (Check all that apply)
1. Given email labeled as spam/ not spam, learn a spam filter
2. Given a set of news articles found on the web, group them into sets of articles about the same stories
3. Given a database of customer data, automatically discover market segments and group customers into different market segments.
4. Given a dataset of patients diagnosed as either having diabetes or not, learn to classify new patients as having diabetes or not.
Answer: 2,3
Short Explanations: 1,4 is Supervised(classification) Learning as you put labels on it.
Lecturer's Note:
Unsupervised learning allows us to approach problems with little or no idea what our results should look like. We can derive structure from data where we don't necessarily know the effect of the variables.
We can derive this structure by clustering the data based on relationships among the variables in the data.
With unsupervised learning there is no feedback based on the prediction results.
Example:
Clustering: Take a collection of 1,000,000 different genes, and find a way to automatically group these genes into groups that are somehow similar or related by different variables, such as lifespan, location, roles, and so on.
Non-clustering: The "Cocktail Party Algorithm", allows you to find structure in a chaotic environment. (i.e. identifying individual voices and music from a mesh of sounds at a cocktail party).