Personally, I change the oil not based on the mileage reading but also on the condition of the oil itself. I also monitor the kind of riding I had during the last 1,000 or so kms. Using synthetics versus mineral is also a factor. Greater intervals when using the former. I use mineral because of cost concerns. I change every 1,000 - 1,500.
You change oil of a small engine more often than a bigger engine, say a car, because there is more stress on oil in a small engine than in a big engine and also there is more oil in a big engine. When the oil circulates in a big engine, the oil has more time to "rest" and cool before going back again to circulation. In a small engine, the oil is really beaten-up hard.