There is no "best" — but classify-sklearn
in general performs better out of the box, and is our general recommendation for 16S and ITS sequences. All are very accurate at genus level, however, and reasonably accurate at species level (which is to say the defaults are optimized to NOT classify at species level if a confident hit cannot be determined).
See this article for a comparison of these and other classification methods, and some discussion of pros/cons and how to fiddle with the parameters.
Check out that article — look at the "high-recall" classifiers listed in Table 2. Note that minimizing unclassified and underclassified sequences with a "high-recall" classifier means that you are essentially increasing the likelihood of getting false positive hits.
If you are getting unclassified sequences with any of these methods, chances are you are either not using a good reference database, or that sequence has no hits against the current database.
Good plan. BLASTing against the NCBI database can help determine if, e.g., you have non-target hits (e.g., host DNA) present in your reads.
Thanks
I hope that helps!