You might try increasing your query cache size. Don’t forget that if the content of any of the tables referenced changes, any queries referencing those tables are dropped. So the query cache is only useful for tables that don’t change much. If you’re tables are always changing, the overhead might not be worth it.
Yes, you’re getting an 18% hit ratio.
You might experiment with setting query_cache_type=2 in your configuration file, and using SELECT SQL_CACHE for the queries you wish to cache.