How to improve accuracy of ethnicity prediction using name?
Feature engineering

The question you want to ask yourself is "When you look at a name how do you as a human deduce the community?" I would claim that this is possible by looking at the way the letters are grouped together. For example "aoui" and "wi" is very common in India and Arabic, whereas "Zh" would be very common in Chinese. So how can we extract these types of features?

n-grams

n-grams is a feature extraction technique for language based data. It segments the Strings such that roots of words can be found, ignoring verb endings, pluralities etc...

The segmentation works as follows: 

The String: Hello World

2-gram: "He", "el", "ll", "lo", "o ", " W", "Wo", "or", "rl", "ld" 
3-gram: "Hel", "ell", "llo", "lo ", "o W", " Wo", "Wor", "orl", "rld"
4-gram: "Hell", "ello", "llo ", "lo W", "o Wo", " Wor", "Worl", "orld"

This would capture the distribution of letter combinations which are present for each community.