# Finding the usage percent to perform predictive analysis for new users

Problem Statement- I have to find the average feature usage all the users and the usage of user X to suggest if he should use the feature.

Example - On google home page out of all the user's avg 85% of times uses the search button. If a user X comes on the home page and based on his activity we calculate that if only 35% of the time he click on the search button. We want to notify him about the benefits of the search button.

Data We have-

User | Landed on home page | used search button
1        1000                  100
2        100                   10
3        1                     1
4        10                    10
5        10000                 1


Issues-

1. How to eliminate user 5 as this is exceptionally making the data skewed. Median might be a solution for the use case. Is there any better suggestion?

2. How to find the Average usage, I mean 1/1 (User 3) and 10/10 (User 4) are not the same i.e. 10/10 (User 4) should have more value than 1/1 (User 3)

3. If these users(USER 1-5) stopped coming on the home page from 1 month, still the usage average would be the same- which is wrong. Since it was getting used earlier but not recently so the usage average should get decayed.

So my question in addition to above is that, am I approaching in the right direction? Is there any build-in algorithm or tool available for the problem statement? Any new approach is most welcome.

Create a new column containing the % of times each user used the search bar (i'll call it chance)

1. You could eliminate all users outside of 'n' standard deviations of the new column eliminate both high and low values or you could manually set a threshold
2. calculate the logarithm of each landed on home page ($$landed_i$$) count with the base as the max landed on home page value ($$landed_{max}$$) $$log_{landed_{max}}(landed_i) = weight$$, then multiply every weight by it's chance to create chanceWeighted. This weighted chance ensures that more frequent users have more weight attributed to them. You can now find whatever average you wish off this data
3. if you wanted to decay users depending on last visit you would need to record the users last visited date and them perform another function on them similar to the weighted average