# how to deal with two high correlations feature which both has a low correlation with target

I am doing a prediction of house trade money.
Here is the correlation matrix of features whose correlations are larger than 0.3 as follows:

train_corr_full.unstack().sort_values(kind='quicksort', ascending=False).reset_index()
corr = corr[(corr['level_0'] != corr['level_1'])]
corr

level_0             level_1              0
13  pv                  uv                   0.911879
14  uv                  pv                   0.911879
15  area                bathroom             0.721935
16  bathroom            area                 0.721935
17  area                tradeMoney           0.687447
18  tradeMoney          area                 0.687447
19  bathroom            tradeMoney           0.580745
20  tradeMoney          bathroom             0.580745
21  bathroom            room                 0.421762
22  room                bathroom             0.421762
23  remainNewNum        totalNewTradeMoney   0.417114
24  totalNewTradeMoney  remainNewNum         0.417114
25  buildYear           totalFloor           0.393571
26  totalFloor          buildYear            0.393571
27  remainNewNum        tradeMeanPrice       0.314611
28  tradeMeanPrice      remainNewNum         0.314611

level_0     level_1             0
18  tradeMoney  area                0.687447
20  tradeMoney  bathroom            0.580745
45  tradeMoney  totalFloor          0.249755
55  tradeMoney  room                0.215041
79  tradeMoney  buildYear           0.123065
95  tradeMoney  remainNewNum        0.100921
116 tradeMoney  pv                  0.072919
134 tradeMoney  uv                  0.040452


Features descriptions:
area: the area of the house.
room: the number of the room in this house.
bathroom: the number of the bathroom in this house.
totalFloor: total number of floors of this building.
tradeMeanPrice: the mean price of second-hand housing transaction price this month.
tradeNewMeanPrice: the mean price of new housing transaction price this month.
buildYear: the age of this house.
totalTradeMoney: the total price of second-hand housing transaction price this month.
totalNewTradeMoney: the total price of the new housing transaction price this month.
remainNewNum: the number of houses that haven't been sold this month.
pv: the number of times that the website was viewed by tenants.
uv: the number of tenants that viewed the website.

It shows that there is a high correlation with pv and uv but both of which has a low correlation with the target.
What I did before is that I would drop the features whose correlation is lower than about 0.15 and do more EDAs and feature engineerings in those high correlations feature.
And even if consider context I also think the pv and uv is not good enough for the prediction.

Could anyone give some hints on it?

• Are you trying to do statistical inference or are you purely looking for improving predictive performance? If it is the latter, I question why you seem to care so much about correlation between features. Correlation can affect the stability of your model (leading to large fitted coefficients and high variance predictions) if you are using a typical linear regression (glm). However, most other algorithms are fairly indifferent to collinearity between variables. Instead of removing variables based off some arbitrary threshold (and therefore, also committing yourself... May 16, 2019 at 2:22
• ...to using zero information from a variable), why not try an algorithm that controls for colinearity? Algorithms like ridge regression/partial least squares, support vector machines, tree based learners, etc. May 16, 2019 at 2:24