Python 3, 52 bytes
lambda l:max(l,key=lambda n:bin(n%2**31).count("1"))
n%2**31
- since in python integers are infinite, have to change negative numbers. for example -4
becomes 2147483644
bin(...)
- translate to binary format
count("1")
- count the number of units
Python 3, 50 bytes
lambda n:n and n%2+z(n//b)
f=lambda l:max(l,key=z)
two bytes shorter, but doesn't work with negative numbers