O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Nowe usługi 2.0. Przewodnik po analizie zbiorów danych

Book Description

Wykorzystaj dane z sieci do własnych potrzeb! Internet to nic innego jak gigantyczny zbiór danych. Każdy, kto znajdzie sposób na ich umiejętne wykorzystanie, ma szansę zbudować aplikację, która odniesie światowy sukces. Serwisy randkowe, portale społecznościowe, porównywarki cen -- to tylko drobna część serwisów, które możesz wykorzystać przy tworzeniu nowej usługi. Jak analizować dane i wyciągnąć wnioski? Na wiele podobnych pytań odpowiada ta jedyna w swoim rodzaju książka. W trakcie lektury poznasz najlepsze sposoby filtrowania danych, tworzenia rekomendacji, wykrywania grup oraz wyszukiwania i klasyfikowania. Na kolejnych stronach znajdziesz bogaty zbiór informacji poświęconych algorytmom analizującym dane. Ponadto będziesz mieć możliwość zapoznania się z różnymi sposobami optymalizacji, modelowania przy użyciu drzew decyzyjnych oraz tworzenia modeli cenowych. Książka ta w rękach wprawnego programisty może stanowić niesamowite narzędzie. Otwiera wrota do świata pełnego danych i zależności pomiędzy nimi

Table of Contents

  1. Pochwały dotyczące książki
  2. Słowo wstępne
  3. Przedmowa
    1. Wymagania wstępne
    2. Styl przykładów
      1. Dlaczego język Python?
    3. Wskazówki związane z językiem Python
      1. Konstruktory list i słowników
      2. Znaczący znak odstępu
      3. Wyrażenia listowe
    4. Otwarte interfejsy API
    5. Przegląd rozdziałów
    6. Konwencje
    7. Użycie przykładów z kodem
    8. Podziękowania
  4. 1. Inteligencja zbiorowa — wprowadzenie
    1. Czym jest inteligencja zbiorowa?
    2. Czym jest uczenie maszynowe?
    3. Ograniczenia uczenia maszynowego
    4. Rzeczywiste przykłady
    5. Inne zastosowania algorytmów uczących
  5. 2. Tworzenie rekomendacji
    1. Filtrowanie grupowe
    2. Gromadzenie preferencji
    3. Znajdowanie podobnych użytkowników
      1. Miara odległości euklidesowej
      2. Miara korelacji Pearsona
      3. Jaka miara podobieństwa powinna zostać zastosowana?
      4. Ranking krytyków
    4. Rekomendowanie pozycji
    5. Dopasowywanie produktów
    6. Tworzenie systemu rekomendowania odnośników del.icio.us
      1. Interfejs API witryny del.icio.us
      2. Budowanie zbioru danych
      3. Rekomendowanie sąsiadów i odnośników
    7. Filtrowanie oparte na pozycjach
      1. Budowanie zbioru danych porównywania pozycji
      2. Uzyskiwanie rekomendacji
    8. Zastosowanie zbioru danych MovieLens
    9. Filtrowanie oparte na użytkownikach czy pozycjach?
    10. Ćwiczenia
  6. 3. Wykrywanie grup
    1. Porównanie uczenia nadzorowanego z nienadzorowanym
    2. Wektory wyrazów
      1. Sortowanie użytkowników blogów
      2. Liczenie wyrazów w kanale informacyjnym
    3. Grupowanie hierarchiczne
    4. Rysowanie dendrogramu
    5. Grupowanie kolumn
    6. Grupowanie k-średnich
    7. Klastry preferencji
      1. Uzyskiwanie i przygotowywanie danych
      2. Beautiful Soup
      3. Wyodrębnianie wyników witryny Zebo
      4. Definiowanie metryki odległości
      5. Grupowanie wyników
    8. Wyświetlanie danych w dwóch wymiarach
    9. Inne rzeczy, które mogą być grupowane
    10. Ćwiczenia
  7. 4. Wyszukiwanie i klasyfikowanie
    1. Co znajduje się w wyszukiwarce?
    2. Prosty przeszukiwacz
      1. Użycie biblioteki urllib2
      2. Kod przeszukiwacza
    3. Budowanie indeksu
      1. Konfigurowanie schematu
      2. Znajdowanie wyrazów na stronie
      3. Dodawanie do indeksu
    4. Odpytywanie
    5. Klasyfikacja oparta na treści
      1. Funkcja normalizacji
      2. Częstość występowania wyrazów
      3. Lokalizacja w dokumencie
      4. Odległość wyrazów
    6. Użycie odnośników zewnętrznych
      1. Proste liczenie
      2. Algorytm PageRank
      3. Użycie tekstu odnośników
    7. Uczenie na podstawie kliknięć
      1. Projekt sieci śledzącej kliknięcia
      2. Konfigurowanie bazy danych
      3. Sprzężenie wyprzedzające
      4. Uczenie przy użyciu algorytmu backpropagation
      5. Test uczenia
      6. Łączenie z wyszukiwarką
    8. Ćwiczenia
  8. 5. Optymalizacja
    1. Podróż grupy osób
    2. Reprezentowanie rozwiązań
    3. Funkcja kosztu
    4. Wyszukiwanie losowe
    5. Metoda największego wzrostu
    6. Symulowane wyżarzanie
    7. Algorytmy genetyczne
    8. Wyszukiwania rzeczywistych lotów
      1. Interfejs API serwisu Kayak
      2. Pakiet minidom
      3. Wyszukiwanie lotów
    9. Optymalizowanie pod kątem preferencji
      1. Optymalizacja dotycząca studenckiego akademika
      2. Funkcja kosztu
      3. Rozpoczynanie optymalizacji
    10. Wizualizacja sieci
      1. Problem z układem
      2. Określanie liczby krzyżujących się linii
      3. Rysowanie sieci
    11. Inne możliwości
    12. Ćwiczenia
  9. 6. Filtrowanie dokumentów
    1. Filtrowanie spamu
    2. Dokumenty i wyrazy
    3. Trenowanie klasyfikatora
    4. Obliczanie prawdopodobieństw
      1. Rozpoczęcie od rozsądnego przypuszczenia
    5. Naiwny klasyfikator
      1. Prawdopodobieństwo całego dokumentu
      2. Krótkie wprowadzenie do twierdzenia Bayesa
      3. Wybór kategorii
    6. Metoda Fishera
      1. Prawdopodobieństwa kategorii dla właściwości
      2. Łączenie prawdopodobieństw
      3. Klasyfikowanie elementów
    7. Utrwalanie klasyfikatorów po przeprowadzonym treningu
      1. Zastosowanie bazy danych SQLite
    8. Filtrowanie kanałów informacyjnych blogów
    9. Poprawianie wykrywania właściwości
    10. Użycie interfejsu Akismet
    11. Alternatywne metody
    12. Ćwiczenia
  10. 7. Modelowanie przy użyciu drzew decyzyjnych
    1. Przewidywanie rejestracji
    2. Wprowadzenie do drzew decyzyjnych
    3. Uczenie drzewa
    4. Wybór najlepszego podziału
      1. Niejednorodność Giniego
      2. Entropia
    5. Budowanie drzewa rekurencyjnego
    6. Wyświetlanie drzewa
      1. Wyświetlanie w postaci graficznej
    7. Klasyfikowanie nowych obserwacji
    8. Przycinanie drzewa
    9. Radzenie sobie z brakującymi danymi
    10. Radzenie sobie z wynikami liczbowymi
    11. Modelowanie cen domów
      1. Interfejs API usługi Zillow
    12. Modelowanie „atrakcyjności”
    13. Kiedy stosować drzewa decyzyjne?
    14. Ćwiczenia
  11. 8. Budowanie modelu cen
    1. Budowanie przykładowego zbioru danych
    2. Metoda k-najbliższych sąsiadów
      1. Liczba sąsiadów
      2. Definiowanie podobieństwa
      3. Kod algorytmu k-najbliższych sąsiadów
    3. Sąsiednie elementy z określoną wagą
      1. Funkcja odwrotna
      2. Funkcja odejmowania
      3. Funkcja Gaussa
      4. Ważona funkcja kNN
    4. Walidacja krzyżowa
    5. Zmienne heterogeniczne
      1. Dodawanie zmiennych do zbioru danych
      2. Skalowanie wymiarów
    6. Optymalizowanie skali
    7. Rozkłady niejednolite
      1. Szacowanie gęstości prawdopodobieństwa
      2. Graficzna reprezentacja prawdopodobieństw
    8. Użycie rzeczywistych danych — interfejs API serwisu eBay
      1. Uzyskanie klucza programisty
      2. Konfigurowanie połączenia
      3. Wykonywanie operacji wyszukiwania
      4. Uzyskiwanie szczegółów pozycji
      5. Tworzenie predyktora cen
    9. Kiedy używać metody k-najbliższych sąsiadów?
    10. Ćwiczenia
  12. 9. Zaawansowane klasyfikowanie: metody jądrowe i maszyny wektorów nośnych
    1. Zbiór danych swatki
    2. Trudności związane z danymi
      1. Klasyfikator drzew decyzyjnych
    3. Podstawowa klasyfikacja liniowa
    4. Właściwości skategoryzowane
      1. Pytania z odpowiedziami „tak” lub „nie”
      2. Listy zainteresowań
      3. Tworzenie nowego zbioru danych
    5. Skalowanie danych
    6. Metody jądrowe
      1. „Trik jądrowy”
    7. Maszyny wektorów nośnych
    8. Zastosowanie biblioteki LIBSVM
      1. Pobieranie biblioteki LIBSVM
      2. Przykładowa sesja
      3. Zastosowanie maszyny wektorów nośnych do zbioru danych swatki
    9. Dopasowywanie w serwisie Facebook
      1. Uzyskiwanie klucza programisty
      2. Tworzenie sesji
      3. Pobieranie danych o znajomych
      4. Budowanie zbioru danych pasujących do siebie osób
      5. Tworzenie modelu maszyny wektorów nośnych
    10. Ćwiczenia
  13. 10. Znajdowanie niezależnych właściwości
    1. Zbiór artykułów
      1. Wybieranie źródeł
      2. Pobieranie źródeł
      3. Przekształcanie do postaci macierzy
    2. Wcześniejsze rozwiązania
      1. Klasyfikowanie bayesowskie
      2. Grupowanie
    3. Nieujemna faktoryzacja macierzy
      1. Krótkie wprowadzenie do matematyki macierzowej
      2. Co to ma wspólnego z macierzą artykułów?
      3. Użycie pakietu NumPy
      4. Algorytm
    4. Wyświetlanie wyników
      1. Wyświetlanie artykułu
    5. Użycie danych rynku giełdowego
      1. Czym jest wolumen obrotów?
      2. Pobieranie danych z serwisu Yahoo! Finance
      3. Przygotowanie macierzy
      4. Uruchamianie algorytmu NMF
      5. Wyświetlanie wyników
    6. Ćwiczenia
  14. 11. Inteligencja rozwojowa
    1. Czym jest programowanie genetyczne?
      1. Porównanie programowania genetycznego z algorytmami genetycznymi
    2. Programy w postaci drzew
      1. Reprezentowanie drzew w języku Python
      2. Budowanie i ocenianie drzew
      3. Wyświetlanie programu
    3. Tworzenie populacji początkowej
    4. Testowanie rozwiązania
      1. Prosty test matematyczny
      2. Określanie miary sukcesu
      3. Mutowanie programów
    5. Krzyżowanie
    6. Budowanie środowiska
      1. Ważność różnorodności
    7. Prosta gra
      1. Turniej rozgrywany systemem „każdy z każdym”
      2. Prowadzenie gry z ludźmi
    8. Dalsze możliwości
      1. Więcej funkcji liczbowych
      2. Pamięć
      3. Różne typy danych
    9. Ćwiczenia
  15. 12. Algorytmy — podsumowanie
    1. Klasyfikator bayesowski
      1. Uczenie
      2. Klasyfikowanie
      3. Zastosowanie własnego kodu
      4. Mocne i słabe strony
    2. Klasyfikator drzew decyzyjnych
      1. Uczenie
      2. Użycie własnego klasyfikatora drzewa decyzyjnego
      3. Mocne i słabe strony
    3. Sieci neuronowe
      1. Uczenie sieci neuronowej
      2. Użycie własnego kodu sieci neuronowej
      3. Mocne i słabe strony
    4. Maszyny wektorów nośnych
      1. „Trik jądrowy”
      2. Użycie biblioteki LIBSVM
      3. Mocne i słabe strony
    5. Metoda k-najbliższych sąsiadów
      1. Skalowanie i zbędne zmienne
      2. Użycie własnego kodu algorytmu kNN
      3. Mocne i słabe strony
    6. Grupowanie
      1. Grupowanie hierarchiczne
      2. Grupowanie k-średnich
      3. Użycie własnego kodu grupowania
    7. Skalowanie wielowymiarowe
      1. Użycie własnego kodu skalowania wielowymiarowego
    8. Nieujemna faktoryzacja macierzy
      1. Użycie własnego kodu algorytmu NMF
    9. Optymalizacja
      1. Funkcja kosztu
      2. Symulowane wyżarzanie
      3. Algorytmy genetyczne
      4. Użycie własnego kodu optymalizacji
  16. A. Zewnętrzne biblioteki
    1. Universal Feed Parser
      1. Instalacja na wszystkich platformach
    2. Python Imaging Library
      1. Instalacja w systemie Windows
      2. Instalacja na innych platformach
      3. Prosty przykład użycia
    3. Beautiful Soup
      1. Instalacja na wszystkich platformach
      2. Prosty przykład użycia
    4. pysqlite
      1. Instalacja w systemie Windows
      2. Instalacja na innych platformach
      3. Prosty przykład użycia
    5. NumPy
      1. Instalacja w systemie Windows
      2. Instalacja na innych platformach
      3. Prosty przykład użycia
    6. matplotlib
      1. Instalacja
      2. Prosty przykład użycia
    7. pydelicious
      1. Instalacja dla wszystkich platform
      2. Prosty przykład użycia
  17. B. Formuły matematyczne
    1. Odległość euklidesowa
    2. Współczynnik korelacji Pearsona
    3. Średnia ważona
    4. Współczynnik Tanimoto
    5. Prawdopodobieństwo warunkowe
    6. Niejednorodność Giniego
    7. Entropia
    8. Wariancja
    9. Funkcja Gaussa
    10. Iloczyny skalarne
  18. C. O autorze
  19. Indeks
  20. Kolofon
  21. Copyright