We have actually used it to compete on Kaggle without having to perform manual feature engineering with success.
One simple one is missing data. Missing data is rarely a null, I've seen (on one field, in one dataset):
N/A
NA
" "
Blank # literally the string "Blank"
NULL # Again, the string
No data
No! Data
No data was entered for this field
No data is known
The data is not known
There is no data
And many, many more. None can be clearly identified automatically, but some processes like:Pull out the most common items, manually mark some as "equivalent to blank" and remove.
Identify common substrings with known text (N/A, NULL, etc) and bring up those examples.
Are useful, I'd like to extend with more clustering and analysis to bring out other common general issues but rare specific issues. Lots of similar things with encodings, etc. too.
Other things that might be good are clearer ways I could supply general conditions I expect to hold true, then bring the most egregious ones to my attention so I can either clear out / deal with them in some way. A good way of recording issues that have already been analysed and found to be OK would be great too.
As an example of a tool: Trifacta (disclaimer I work here) https://www.trifacta.com/products/wrangler/. We're trying to improve data cleaning with features such as suggesting transforms the user might want, integrating data profiling through all stages to discover and understand, and transform previews so the user can understand the impact.
I think there's a huge opportunity for better tools in the problem space.
So statements like "getting data ready for the algorithms" seem kind of meaningless to me, in the sense of general methodologies. How could you possibly "get the data ready" without considering what it is, how it will be used, etc. How can it possibly be generalized to anything beyond the specific requirements of each problem instance?
I'm just really curious what you are imagining when you say that better tools are needed here.