It's hard to deal with spam on freemail systems like Yahoo. They have built in Spam filtering options that do some good, but don't allow enough customization.
I used Outlook, and what I've found to work very well is I set up custom rules to send a variety of things to the junk folder. Any sort of tag line that is commonly in spam: "click here to un-subscribe", "ADV:", etc. - gets thrown in the junk folder.
I set up all my legitimate mailing lists with sperate rules that sort them into folders and then stop processing rules, so they don't get junked if they have un-subscribe info on the bottom of the message. When I sign up for a new list, I make a new rule.
This gets 90% of my junk mail, though it does require tweaking the rules over time. I get about 60 spam messages a day, so it alleviates a lot of my frustration.
I personally don't choose to have it delete them automatically, just in case something falls through the cracks. A quick scan of my Junk Mail folder can usually find legitimate emails that have fallen through.
Of course none of this applies to Yahoo, which is your situation; I just thought I'd share. Spam is a scourge on the Internet - I wish there were more direct ways to tackle it.