SlideShare a Scribd company logo
1 of 17
Download to read offline
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

Viewers also liked

Crafting a Successful Social Media Strategy
Crafting a Successful Social Media StrategyCrafting a Successful Social Media Strategy
Crafting a Successful Social Media StrategyPerficient
 
Leveraging the B2B Social Web
Leveraging the B2B Social WebLeveraging the B2B Social Web
Leveraging the B2B Social WebPerficient
 
Dom Offices | Lancamento Imobiliário Patrimóvel
Dom Offices | Lancamento Imobiliário PatrimóvelDom Offices | Lancamento Imobiliário Patrimóvel
Dom Offices | Lancamento Imobiliário PatrimóvelImóveis Lançamentos
 
Insightera overview presentation 2012
Insightera overview presentation 2012Insightera overview presentation 2012
Insightera overview presentation 2012Mike Telem
 
Active insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloudActive insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloudMike Telem
 
Connecting the Dots Between Twitter & The Sale
Connecting the Dots Between Twitter & The SaleConnecting the Dots Between Twitter & The Sale
Connecting the Dots Between Twitter & The SalePerficient
 
Pending Building Energy Standards
Pending Building Energy StandardsPending Building Energy Standards
Pending Building Energy Standardsjimfreiberg
 
Bolos de casamento no kuwait
Bolos de casamento no kuwaitBolos de casamento no kuwait
Bolos de casamento no kuwaitLuiz Carlos Dias
 
Project Management 2.0
Project Management 2.0Project Management 2.0
Project Management 2.0Antonio Volpon
 
Steve Bridger Aquent Thirdsectorforum May09
Steve Bridger Aquent Thirdsectorforum May09Steve Bridger Aquent Thirdsectorforum May09
Steve Bridger Aquent Thirdsectorforum May09gillarnold
 
Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6
Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6
Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6SirNeo
 
Ibm &amp; Microsoft Announce Emea Merger 2010
Ibm &amp; Microsoft Announce Emea Merger 2010Ibm &amp; Microsoft Announce Emea Merger 2010
Ibm &amp; Microsoft Announce Emea Merger 2010brzaaap
 
Volta pela Ásia em 8 minutos
Volta pela Ásia em 8 minutosVolta pela Ásia em 8 minutos
Volta pela Ásia em 8 minutosLuiz Carlos Dias
 
CE Marking: What Can Legal Metrology Learn From Intellectual Property?
CE Marking: What Can Legal Metrology Learn From Intellectual Property?CE Marking: What Can Legal Metrology Learn From Intellectual Property?
CE Marking: What Can Legal Metrology Learn From Intellectual Property?cbock
 
Growth hacking 2014 abm presentation
Growth hacking 2014 abm presentationGrowth hacking 2014 abm presentation
Growth hacking 2014 abm presentationMike Telem
 

Viewers also liked (18)

Crafting a Successful Social Media Strategy
Crafting a Successful Social Media StrategyCrafting a Successful Social Media Strategy
Crafting a Successful Social Media Strategy
 
Leveraging the B2B Social Web
Leveraging the B2B Social WebLeveraging the B2B Social Web
Leveraging the B2B Social Web
 
Aircraft pictures
Aircraft picturesAircraft pictures
Aircraft pictures
 
Dom Offices | Lancamento Imobiliário Patrimóvel
Dom Offices | Lancamento Imobiliário PatrimóvelDom Offices | Lancamento Imobiliário Patrimóvel
Dom Offices | Lancamento Imobiliário Patrimóvel
 
Cabo Frio
Cabo FrioCabo Frio
Cabo Frio
 
Insightera overview presentation 2012
Insightera overview presentation 2012Insightera overview presentation 2012
Insightera overview presentation 2012
 
Active insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloudActive insight behavioral targeting in the cloud
Active insight behavioral targeting in the cloud
 
Connecting the Dots Between Twitter & The Sale
Connecting the Dots Between Twitter & The SaleConnecting the Dots Between Twitter & The Sale
Connecting the Dots Between Twitter & The Sale
 
Pending Building Energy Standards
Pending Building Energy StandardsPending Building Energy Standards
Pending Building Energy Standards
 
Bolos de casamento no kuwait
Bolos de casamento no kuwaitBolos de casamento no kuwait
Bolos de casamento no kuwait
 
Project Management 2.0
Project Management 2.0Project Management 2.0
Project Management 2.0
 
Steve Bridger Aquent Thirdsectorforum May09
Steve Bridger Aquent Thirdsectorforum May09Steve Bridger Aquent Thirdsectorforum May09
Steve Bridger Aquent Thirdsectorforum May09
 
Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6
Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6
Mecanismele De Control Al Reactivitatii Pentru Reactoarele CANDU6
 
Ibm &amp; Microsoft Announce Emea Merger 2010
Ibm &amp; Microsoft Announce Emea Merger 2010Ibm &amp; Microsoft Announce Emea Merger 2010
Ibm &amp; Microsoft Announce Emea Merger 2010
 
Volta pela Ásia em 8 minutos
Volta pela Ásia em 8 minutosVolta pela Ásia em 8 minutos
Volta pela Ásia em 8 minutos
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
CE Marking: What Can Legal Metrology Learn From Intellectual Property?
CE Marking: What Can Legal Metrology Learn From Intellectual Property?CE Marking: What Can Legal Metrology Learn From Intellectual Property?
CE Marking: What Can Legal Metrology Learn From Intellectual Property?
 
Growth hacking 2014 abm presentation
Growth hacking 2014 abm presentationGrowth hacking 2014 abm presentation
Growth hacking 2014 abm presentation
 

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