w sieci społecznej nic się nie ukryje. jak wypełniać luki w danych z facebooka?

17
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.

Upload: wojciech-walczak

Post on 14-Apr-2017

1.231 views

Category:

Social Media


0 download

TRANSCRIPT

Page 1: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

W sieci społecznej nic się nie ukryje.Jak wypełniać luki w danych z Facebooka?

Wojciech WalczakInstytut Socjologii UMK

Toruń, 14 maja 2014 r.

Page 2: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

brak danych = 999

Zbiory danych nie są idealne.

Im mniejsza kontrola nad powstawaniem zbioru danych – tym niższa jego jakość.

Page 3: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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

Page 4: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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.

Page 5: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

...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.

Page 6: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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

Page 7: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

Więcej sieci! Szukamy największychi najbardziej homogenicznych klik

20

23

?

115

25

25

25

24

46

Page 8: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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.

Page 9: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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

Page 10: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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!

Page 11: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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!

Page 12: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

Przewidywanie wiekuna 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!

Page 13: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

Przewidywanie wieku na podstawie lubianych stronFAZA 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

Page 14: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

Gdy wykorzystamy wiedzęo lubianych stronach...

Page 15: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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.

Page 16: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

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.

Page 17: W sieci społecznej nic się nie ukryje. Jak wypełniać luki w danych z Facebooka?

Dziękuję za uwagę!

Prezentacja i dodatkowe materiały dostępne na:

http://LaboratoriumDanych.pl