I'm terrible at this game but in my experience if you mash armies against each other it does tend to come down to raw numbers. As you get better at the game though you can start to actually turn the odds in your favour in a big way.
For example, I used to just choose the commanders with the highest Marital skill, then I realised that if you hover over the shield and crossed weapons you can actually see their overall net bonus/penalty. Having a guy with 21 Martial is nothing if he is also Craven and Paranoid. Now I choose by net bonus, with gross Martial skill a deciding factor.
Second, you can put different commanders on different flanks to go with their bonuses, eg flank commander, Aggressive etc.
Third, the terrain you choose to fight on can have a HUGE impact - try forcing the enemy to cross a river to fight you in crap terrain and watch them die big time. In general defence is easier than offense so setting a up a good defensive position and letting them come to you is usually best (that is, if they take the bait).
Fourth, unit types have different capabilities against each other. As mentioned, Heavy Infantry will slaughter Light Infantry multiple times over, so building up a retinue/city guard of HI is great for smashing up enemy raiders. There are many matches like this - Heavy Cavalry vs Light etc.
Finally, the best trick I ever learned was tricking the AI into attacking you. Have one small stack of strong defensive infantry with a good leader with the main army sitting in reserve behind it. The odds are that the AI will grab the bai8t and attack your small force - while they are deeply engaged simply march in the rest of your army and overwhelm them. Great fun !
So yeah, the game is basically raw odds in the beginning, the better you get at the game the more you can swing the odds in your favour.