ݺߣ

ݺߣShare a Scribd company logo
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.
brak danych = 999
 Zbiory danych nie są idealne.
 Im mniejsza kontrola nad powstawaniem
zbioru danych – tym niższa jego jakość.
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
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.
...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.
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
Więcej sieci! Szukamy największych
i najbardziej homogenicznych klik
20
23
?
115
25
25
25
24
46
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.
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
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!
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!
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!
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
Gdy wykorzystamy wiedzę
o lubianych stronach...
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.
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.
Dziękuję za uwagę!
Prezentacja i dodatkowe materiały dostępne na:
http://LaboratoriumDanych.pl

More Related Content

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
  • 14. Gdy wykorzystamy wiedzę o lubianych stronach...
  • 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.
  • 17. Dziękuję za uwagę! Prezentacja i dodatkowe materiały dostępne na: http://LaboratoriumDanych.pl