What self defense would be best?

So I'm a 17 year old female who's moving to a different state soon. I'm hoping for a fresh start with new people and new friends so that means I want to go out on my own. I've always been tiny and it frustrates because I hate feeling vulnerable. People think that because I'm small I'm an easy target and it infuriates me. I've nearly been raped by a "friend" and the best I could do was push him away and pull up my underwear until my friend unlocked the door. I've been followed home from school when i was 11 by a guy asking inappropriate questions and the best I could do was run and hide until I felt it was safe to come out.

What do you think would help me out the most? (Sorry if this isn't the right place for this post )