Усі три рівні робляться на одній таблиці — тій самій дошці оголошень із практики. Скопіюй перші три клітинки зошита (побудова таблиці) в новий файл і працюй далі там.
Головне правило домашнього завдання те саме, що й теми: нічого не виправляй. Розвідка не чинить дані — вона вирішує, що саме доведеться чинити.
рівень 1Рівень 1 — База
Пройди повну розвідку по стовпцю вік_акаунта — так само, як у лекції її пройшли
по ціні.
Що зробити:
describe()і три пари, які в ньому читають:countпроти кількості рядків,minіmaxпроти здорового глузду,meanпроти50 %;- гістограму з трьома різними кількостями кошиків (мало / нормально / забагато);
- середнє й медіану, і частку рядків, менших за середнє;
- межі за правилом 1.5·IQR і кількість викидів угорі та внизу.
Зроблено, якщо: названі чотири числа — середнє, медіана, верхня межа за правилом 1.5·IQR і кількість викидів; побудовано три гістограми; і в тексті є одне речення про те, чому середнє більше за медіану, і одне — про те, чи варто ці викиди прибирати й чому.
рівень 2Рівень 2 — Плюс
У лекції ми перевірили пропуск у стовпці стан за таргетом і зробили висновок, що
він випадковий. Це неповна перевірка: пропуск може бути повʼязаний не з таргетом, а з
іншими стовпцями.
Перевір пропуск у стан за трьома іншими стовпцями:
рік— чи не забувають вказати стан частіше для старих телефонів;ціна— чи не зникає стан у дорогих оголошеннях (числовий стовпець розбий на кошики черезpd.qcut, інакше порівнювати нема з чим);модель— чи немає моделі, у якої стан пропущено помітно частіше.
Для кожного стовпця побудуй ту саму таблицю, що в клітинці 9 практики: частка пропусків стану окремо в кожній групі.
Зроблено, якщо: для всіх трьох стовпців є таблиця з часткою пропусків по групах, і є висновок словами — випадковий цей пропуск чи ні, з посиланням на конкретні числа (наприклад: «у найдешевшій десятій частині стан пропущено в X %, у найдорожчій — у Y %, різниця в межах шуму»).
Підказка щодо чесності: на групі з 40 рядків різниця у 5 відсоткових пунктів — це приблизно два рядки. Перш ніж називати різницю знахідкою, подивись, скільки рядків у найменшій групі.
рівень 3Рівень 3 — Виклик
Кореляція Пірсона не бачить нелінійного звʼязку — ми переконались у цьому на парі
ціна → шахрайське, де кореляція −0.012, а частка шахрайських гуляє від 2.7 % до 42.9 %.
Є проста міра, яка бачить будь-який звʼязок, не лише прямий, — кореляційне відношення (correlation ratio). Ідея: якщо, знаючи кошик за ознакою, ми краще вгадуємо таргет, то звʼязок є. Формально це частка розкиду таргета, яку пояснює розбиття на кошики:
η² = 1 − (середня дисперсія всередині кошиків) / (загальна дисперсія)
Що зробити:
- напиши функцію
кореляційне_відношення(ознака, таргет, кошиків=10), яка розбиває ознаку на кошики рівної наповненості черезpd.qcutі рахує формулу вище (зважуй внутрішні дисперсії кількістю рядків у кошику); - порахуй її для трьох пар:
ціна → шахрайське,вік_акаунта → шахрайське,рік → шахрайське; - поруч для тих самих пар порахуй кореляцію Пірсона й склади таблицю з двох колонок;
- подивись, як твоя міра поводиться при
кошиків = 2,10і100.
Зроблено, якщо:
- для пари
ціна → шахрайськекореляція Пірсона близька до нуля (|r| < 0.05), а кореляційне відношення при 10 кошиках помітно більше за нуль; - складено таблицю «пара → Пірсон → кореляційне відношення» для трьох пар;
- у тексті пояснено, чому при
кошиків = 2міра близька до нуля, а прикошиків = 100вона зростає для будь-якої ознаки, навіть для чистого шуму — і що з цього випливає про вибір кількості кошиків.
Підказки
-
Перевірка «пропуск випадковий чи ні» — це завжди порівняння двох груп. Не шукай складнішого інструмента:
groupbyплюсmeanпо булевій колонці дає готову частку. -
Дисперсію рахуй з одним і тим самим
ddofу чисельнику й знаменнику формули третього рівня, інакше при малих кошиках вилізе відʼємне значення й буде здаватись, що щось зламано. -
Якщо кореляційне відношення при 100 кошиках виходить велике для всіх ознак поспіль — це не помилка коду. Подумай, скільки рядків лишається в кошику й що станеться, якщо кошиків стане стільки ж, скільки рядків.