Two questions! 1. Why is a perfect classifier usually considered wrong? 2. Whats the difference between supervised and unsupervised learning?
1. A classifier that gets every decision correct (such as determining whether a picture is a cat) is almost certainly victim to overfitting, which means the classifier is excellent at classifying pictures it's been trained to recognize, but generally quite bad at dealing with pictures it hasn't seen before. 2. Supervised learning is where the answers are known by the data scientist. The goal is generally to get the technology to become close to that "expert" level. An example is a classifier which determines whether a picture contains a cat. Certainly a scientist could check the work of the classifier. Unsupervised learning, however, is where the scientist doesn't know what the results should be, and use the technology to try to learn information about the data they're examining. An example of this would be if there were a pile of pictures, but with people the scientist doesn't recognize. The classifier could attempt to organize the pictures into piles based on who is in the picture.
Why are computer scientists so interested in solving whether or not P = NP?
A "P" problem can be solved in polynomial time (not too hard). NP means nondeterministic polynomial time (very hard problem). Computer scientists can't be sure whether all "hard" NP problems are really P problems in disguise. It is the most classical problem in computer science. Most scientists agree that P is not NP, but we can't prove it. If it happens to be true (P=NP), the world will immediately change. Banks wouldn't be able to keep money safe, most encryption would be broken easily, and lots of other hard problems that take a long time to solve would become trivial.
If ptr is a pointer with value 0x00008004, and it points to an array of integers (assume 4 byte integer), what is the value of ptr + 1?
Curiously, the answer is NOT 0x00008005! In C and C-type languages, a pointer + N is really pointer + (N * size of element). The reason for this is because the designers of the language wanted N + 1 to refer to the second element in the array, not the next memory location. If, however, the array was of characters, ptr + 1 would be 0x00008005, since a character is only one byte.