The thing is, I agree with both sides. It shouldn't be up to the women to defend themselves, it should be up to men to stop being assholes. But, it's not a zero sum problem - you can do both.
I look at it this way. If you walk out into a crosswalk without looking, you might get hit by a car. Is it your fault? No. Is it something you could have prevented? Possibly. So in addition to training drivers not to be dicks, why not also train pedestrians to be careful?