Use the three inputs videos_watched, quiz_score and days_active, a 0/1 answer paid_flag (1 = paid), and train_test_split with test_size=0.25, random_state=42 and stratify on the answer. Train LogisticRegression(max_iter=1000) on the training part.
Calls are cheap, missing a buyer is not. Flag a user as a likely buyer when the probability of paying is 0.3 or more (not 0.5). Store how many test users get flagged in result.
import io
import pandas as pd
trials = pd.read_csv(io.StringIO("""user_id,videos_watched,quiz_score,days_active,city_tier,paid
1,4,59,3,3,No
2,11,62,10,2,No
3,7,45,4,3,No
4,5,68,5,2,No
5,10,92,6,3,No
6,3,74,5,2,No
7,6,75,2,2,No
8,19,61,10,2,Yes
9,19,61,14,2,Yes
10,9,44,6,1,No
11,10,58,8,1,No
12,3,26,2,1,No
13,12,64,8,3,No
14,9,56,9,3,No
15,17,36,9,1,No
16,13,57,10,2,No
17,8,56,9,3,No
18,5,54,4,3,No
19,18,46,13,2,No
20,13,34,7,1,Yes
21,2,50,2,2,Yes
22,9,15,8,1,No
23,3,64,1,1,No
24,13,48,12,1,No
25,10,52,14,1,No
26,0,76,1,1,No
27,13,42,12,1,Yes
28,5,62,4,1,No
29,20,46,14,2,Yes
30,1,60,1,2,No
31,14,66,11,1,No
32,6,41,11,3,No
33,13,56,12,1,Yes
34,1,52,1,1,No
35,6,85,9,3,No
36,6,60,5,1,No
37,14,33,10,2,No
38,1,43,4,3,No
39,15,48,13,1,No
40,7,38,6,3,No
41,14,43,13,2,No
42,4,37,4,2,No
43,7,64,11,1,No
44,20,47,11,2,No
45,2,41,1,1,No
46,12,83,12,2,No
47,3,56,2,2,No
48,15,41,11,3,No
49,9,39,9,2,No
50,19,50,13,1,Yes
51,9,53,14,1,Yes
52,7,95,13,1,Yes
53,16,29,8,2,No
54,8,71,9,1,No
55,13,38,11,2,No
56,2,67,1,1,No
57,6,71,6,2,No
58,6,40,4,3,No
59,2,65,2,1,No
60,14,58,11,1,No
61,2,47,3,2,No
62,2,37,1,1,No
63,5,84,4,2,No
64,2,67,2,1,No
65,0,27,2,1,No
66,9,49,8,2,No
67,6,73,13,1,No
68,8,55,9,1,No
69,4,94,3,2,No
70,6,62,6,1,No
71,5,73,1,1,No
72,14,37,12,3,No
73,9,78,7,2,No
74,20,53,13,2,Yes
75,12,67,7,1,Yes
76,11,57,9,2,No
77,10,64,6,1,Yes
78,4,39,8,3,No
79,5,64,4,1,No
80,2,56,3,2,No
81,3,68,5,1,No
82,15,49,8,3,No
83,10,58,6,2,No
84,22,35,14,2,No
85,6,33,8,3,No
86,3,60,2,2,No
87,2,100,10,2,No
88,12,54,10,1,No
89,11,54,12,2,Yes
90,3,46,5,3,No
91,16,96,14,1,Yes
92,5,68,9,3,No
93,16,49,10,1,Yes
94,14,26,12,3,No
95,17,79,11,2,No
96,6,52,6,2,No
97,2,38,1,3,No
98,11,42,10,1,No
99,6,57,8,1,Yes
100,7,58,9,2,No
101,19,63,14,2,Yes
102,11,46,9,2,Yes
103,1,48,5,1,No
104,4,26,2,1,No
105,0,38,1,3,No
106,12,65,13,1,No
107,6,63,5,2,No
108,8,23,12,3,No
109,10,43,10,2,No
110,12,45,7,1,No
111,16,88,11,2,Yes
112,10,63,14,1,No
113,17,72,14,3,Yes
114,11,57,7,3,No
115,12,61,10,1,No
116,22,45,14,3,Yes
117,6,82,9,1,No
118,21,58,12,1,Yes
119,5,80,9,3,No
120,1,59,6,1,No
121,9,48,9,2,No
122,2,44,9,1,No
123,10,57,10,2,No
124,2,78,2,3,No
125,3,88,2,2,No
126,13,93,14,1,Yes
127,18,42,12,2,Yes
128,7,80,7,3,No
129,14,66,13,2,No
130,5,36,7,2,No
131,10,81,6,1,No
132,8,37,9,2,No
133,10,70,7,1,No
134,11,53,7,2,No
135,8,72,10,3,No
136,13,79,8,2,No
137,14,42,12,3,No
138,16,55,9,1,No
139,9,38,13,1,No
140,14,84,9,1,Yes
141,6,48,4,3,No
142,9,11,7,3,No
143,7,62,10,2,No
144,4,74,3,2,No
145,3,47,11,3,No
146,5,36,3,2,No
147,8,62,10,1,No
148,15,31,10,2,No
149,8,46,5,2,Yes
150,4,91,3,2,No
151,12,84,8,1,Yes
152,1,56,5,1,No
153,16,26,8,3,No
154,7,60,11,3,No
155,8,38,8,1,No
156,19,57,14,1,No
157,4,68,5,2,No
158,9,53,14,1,No
159,2,54,5,2,No
160,8,88,6,1,No
161,8,76,14,2,Yes
162,16,61,13,2,No
163,2,40,3,3,No
164,4,70,1,1,No
165,23,48,14,1,Yes
166,7,48,5,2,No
167,5,54,1,1,No
168,10,60,13,2,No
169,14,56,11,1,No
170,7,59,6,3,No
171,0,80,1,1,No
172,3,40,1,1,No
173,5,50,2,2,No
174,20,63,13,1,Yes
175,5,26,6,2,No
176,7,47,14,1,Yes
177,8,74,10,1,No
178,2,14,11,1,No
179,20,90,11,1,Yes
180,6,67,7,1,No
181,13,66,10,2,Yes
182,5,39,6,2,No
183,25,67,14,1,Yes
184,13,44,13,1,No
185,8,47,6,1,Yes
186,3,51,1,2,No
187,8,72,6,3,No
188,12,77,6,1,No
189,6,52,8,1,No
190,10,32,12,1,No
191,14,47,8,1,No
192,2,44,1,1,No
193,6,71,7,1,No
194,8,46,11,2,No
195,20,70,12,1,Yes
196,14,13,11,2,Yes
197,3,36,12,2,No
198,3,72,2,1,No
199,15,51,10,2,No
200,1,66,4,1,No"""))Store your final answer in a variable named result.
Each hint gives a little more help. Try on your own first.
Run your code to see the output here.