This is much harder and more time-consuming than it sounds, especially when you go from a small(ish) number of features to more general knowledge. Worse, it doesn't scale to arbitrary domains - you'll always need a human there to give meaning to the models and effectively train them.
Reinforcement learning is designed to get around this by letting an agent "learn" meaning on its own by interacting with the world and getting feedback from its current state and actions. https://en.wikipedia.org/wiki/Reinforcement_learning