Procedure by which computer systems acquire knowledge independently and can expand their knowledge, allowing them to be better able to solve a given problem than previously. The system extracts the most important patterns and characteristics from large data volumes, and can make predictions based on them.