From what I've seen, parents make the difference in both situations.
Public schools are terrible due to lack of teacher resources, crowding, discipline issues, etc. Parents who care end up spending 30 min to an hour with their children helping them with homework and ensuring they are learning.
Home schools can be terrible if the parents are wack jobs who are fighting the system but don't actually have the ability or motivation to educate their children. Conversely, home schooled parents who care and have the aptitude to teach, can accomplish much more in 2-3 hours than public school can in a day with similar or superior learning outcomes.
Public schools can be a cesspool of socialization. Home schools can be a weird bubble of no socialization. Ultimately it falls on the parent to ensure that a child is getting properly socialized regardless of home/public school.