I would check/clean the idle air control valve on the EFI. It might be worn, dirty or malfunctioning. If I remember correctly, it's on the passenger side rear of the EFI, and it controls the fuel mixture at idle by controlling the amount of air coming in.
They get pretty crudded up, and the passage it dumps into as well.
Once you clean it, it will idle high on the first start, then shut it off and restart, and it calibrates itself after that. Hopefully, that will help, if not, I would change out that O2 sensor if you are getting any 02 codes.
If that doesn't do it, check your injectors and see if there is a mist coming out or a dribble or uneven pattern. Could be clogged injector(s) (or weak fuel pump -or intake gasket leak check as a last resort) ..but I think I would start with that IAC valve and some good carb cleaner, both on the IAC setup, and on the injectors and in the gas tank, just to try and rule that out. I like the Chevron Techron. IMO, works better than most cleaners.