W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?
1. W sieci społecznej nic się nie ukryje.
Jak wypełniać luki w danych z Facebooka?
Wojciech Walczak
Instytut Socjologii UMK
Toruń, 14 maja 2014 r.
2. brak danych = 999
Zbiory danych nie są idealne.
Im mniejsza kontrola nad powstawaniem
zbioru danych – tym niższa jego jakość.
3. Przykład: wiek użytkowników FB
45,64% użytkowników nie podało wieku
92 użytkowników zadeklarowało,
że mają 90 lat lub więcej
4. Jak wypełniać luki w danych?
Standardowe metody:
● Brakujące wartości danej zmiennej możemy
wypełnić wybraną stałą, wskazaną przez
eksperta.
● Możemy zastąpić luki w danych średnią,
medianą lub wartością modalną, obliczoną
na podstawie dostępnych danych.
● Możemy określić rozkład dostępnych
wartości zmiennej, a następnie na tej
podstawie wygenerować losowo wartości i
przypisać je do poszczególnych rekordów.
5. ...a może coś bardziej wyrafinowanego?
● Analiza sieciowa – szacujemy cechę rekordu X
na podstawie danych o „węzłach” połączonych z
tym rekordem.
PRZYKŁAD: szacujemy wiek użytkownika X na
podstawie wieku jego znajomych.
● Uczenie maszynowe (nadzorowane) – na
podstawie pełnych rekordów tworzymy
klasyfikator, który następnie szacuje wartości
zmiennej celu dla niepełnych rekordów.
PRZYKŁAD: szacujemy wiek użytkownika
(„zmienna celu”) przy pomocy klasyfikatora
wytrenowanego do określania wieku na
podstawie lubianych stron.
6. Analiza sieciowa: szacowanie wieku na
podstawie wieku znajomych
20
23
?
115
25
25
25
24
46
Średnia: 37,87
Średnia (bez > 75): 26.86
Mediana: 25
Moda: 25
Średnia najdłuższego ciągu
kolejnych wartości: 24.4
(23 + 24 + 25 + 25 + 25) / 5 = 24.4
7. Więcej sieci! Szukamy największych
i najbardziej homogenicznych klik
20
23
?
115
25
25
25
24
46
8. Walidacja krzyżowa – sprawdzamy,
które rozwiązanie działa najlepiej
Procedura:
● Ze zbioru danych wyodrębniamy zbiór
danych pełnych (tylko te rekordy, dla
których znamy wiek użytkownika);
● Losowo usuwamy część danych dla
zmiennej celu (tj. „wiek”);
● Próbujemy oszacować usunięte wartości,
a uzyskane wartości porównujemy z
usuniętymi.
9. Wyniki walidacji krzyżowej
(dla średniej najdłuższego ciągu kolejnych wartości)
Błąd
(+/-)
Model słaby (szacowanie nawet na
podstawie jednego węzła)
Model silny (minimum 5 węzłów i
odchylenie standardowe <= 5)
Liczba
jednostek
% próby %
skumulowany
Liczba
jednostek
% próby %
skumulowany
0 3577 27 27 2618 34 34
1 3533 27 54 2497 32 66
2 1701 13 67 1061 14 80
3 1025 8 75 538 7 87
4 629 5 80 282 4 91
5 444 3 83 148 2 93
... ... ... ... ... ... ...
Dla 75% użytkowników mylimy się
o nie więcej niż 3 lata
Dla 87% użytkowników mylimy się
o nie więcej niż 3 lata
Model słaby robi WIĘCEJ błędów,
ale uwzględnia WIĘCEJ jednostek
Model silny robi MNIEJ błędów,
ale uwzględnia MNIEJ jednostek
10. Uaktualniony histogram rozkładu wieku
użytkowników FB (model silny)
Udało się oszacować wiek dla 3529 użytkowników.
Poprzednio wartość ta była nieokreślona dla 12800 użytkowników
Dla osób, które zadeklarowały
wiek powyżej 70 lat przyjęliśmy
wartości oszacowane.
Stulatkowie zniknęli!
11. Inne podejście:
uczenie maszynowe
Uczenie maszynowe jest wszędzie:
● Bankowość: ocena zdolności kredytowej, wykrywanie
anomalii w transakcjach.
● Medycyna: stawianie diagnoz na podstawie danych o
objawach i prawidłowych diagnozach postawionych w
przeszłości.
● Marketing: systemy rekomendacyjne, analiza
koszykowa (klient, który kupił drogi ser kupuje też wino).
● Astronomia: wykrywanie ciał niebieskich.
● Produkcja silników do samolotów: wykrywanie
wadliwych silników.
...a więc nauczmy komputer, co lubią ludzie, gdy mają X lat!
12. Przewidywanie wieku
na podstawie lubianych stron
(uczenie maszynowe)
ID Wiek Justin
Biber
Selena
Gomez
Kings
of Leon
Coldplay Anna
Jantar
Irena
Santor
IS UMK ...
1. 16 1 1 0 0 0 0 0 ...
2. 25 0 0 1 1 0 0 1 ...
3. 53 0 0 0 1 1 1 1 ...
... ... ... ... ... ... ... ... ... ...
FAZA 1: Przygotowujemy dane i trenujemy klasyfikator(y)
Klasyfikator trenujemy tylko na podstawie rekordów
(„przykładów”), dla których znamy wartość zmiennej celu!
Dane wejściowe („cechy”) w postaci
binarnej (1=”lubi”; 0=”nie lubi”)
Liczba cech jest znacznie większa.
Nawet kilkadziesiąt tysięcy cech.
Liczba przykładów jest znacznie większa.
FAZA 2: Testujemy klasyfikator(y) – walidacja krzyżowa!
13. Przewidywanie wieku na
podstawie lubianych stron
FAZA 3: Wybrany klasyfikator wykorzystujemy do
szacowania nieznanych wartości zmiennej celu
Klasyfikator
lubiane_strony = { 0, 0, 0, 0, 1, 1, 0, ... }
wiek = 53
Nie znamy wieku tego użytkownika, ale wiemy,
jakie strony lubi (Anna Jantar=1; Irena Santor=1).
Nie znamy wieku tego użytkownika, ale wiemy,
jakie strony lubi (Anna Jantar=1; Irena Santor=1, ...).
Wytrenowany klasyfikator szacuje
wiek na podstawie modelu
stworzonego na danych uczących
15. Od czego zacząć?
Teoria
● Odkrywanie wiedzy z danych Daniel T. Larose.
● Później: Metody i modele eksploracji danych tego
samego autora.
● Eksploracja danych Tadeusz Morzy.
● Coursera.org – specjalistyczne kursy on-line.
16. Od czego zacząć?
Praktyka
Praktyka:
● R – język programowania służący do analiz
statystycznych i wizualizacji wyników. Szeroki wybór
książek po polsku („Programowanie w języku R” - Marek
Gągolewski; „Podstawy statystyki z przykładami w R” -
Tomasz Górecki; a także książki Przemysława Biecka).
● Python – język programowania ogólnego przeznaczenia.
Doskonały do przetwarzania i analizy danych. Mnóstwo
świetnych materiałów w internecie.