I believe socio-economic factors are a major contributor. Poverty rates are significantly higher for people of color in America.
Regarding over-policing, I think more the opposite is true. The police don't have a regular presence in neighborhoods because they are not staffed at a high enough level, so when you see them it's because they are responding to something. In the high profile cases recently the police were called to the location for relatively minor offenses.
Eric Garner - selling cigarettes - police called by the restaurant owner
Michael Brown - stealing a box of Swisher Sweets - police called by the store owner
George Floyd - passing a counterfeit bill - police called by the store owner
Jacob Blake - domestic dispute - police called by baby mama.
In each of these cases, the police would not have been there had they not been called to investigate a possible crime.