1.1 Struktura zbioru danych

Najpopularniejszym obecnie źródłem zbiorów danych jest repozytorium UCI ML. Założyli je, początkowo jako serwer FTP, jeszcze pod koniec lat 80. absolwenci Uniwersytetu Kalifornijskiego w Irvine.

Skorzystamy więc z niego, aby zdobyć zbiór Iris. Znajdziemy go na stronie głównej jako pierwszą na liście najczęściej odwiedzanych zbiorów danych.

Po odwiedzeniu strony zbioru zobaczymy jego opis, zadania w których jest przydatny, liczbę cech, instancji, opis parametrów i (zaznaczone na czerwono) łącze do pobrania.

Sam zbiór, w postaci pliku CSV, znajdziemy pod łączem do pliku iris.data. Nie ściągajmy go na dysk, a tylko skopiujmy hiperłącze do niego.

Tak przygotowani możemy wczytać zbiór w skrypcie w języku Python.

W pierwszej linijce importujemy moduł pandas, ułatwiający operacje na zbiorach danych, następnie odkładamy do zmiennej url znalezioną na UCI ML ścieżkę do pliku csv i wreszcie wczytujemy ramkę danych do zmiennej pd.

Tak wczytany zbiór możemy wyświetlić na ekranie.

Jak widać, we wczytanym zbiorze znajduje się sto pięćdziesiąt wierszy (wzorców, obiektów), każdy po pięć kolumn. Wyświetlmy pojedynczy wzorzec.

Zgodnie z opisem zbioru na stronie UCI, Pierwsze cztery elementy naszego obiektu są wektorem cech wzorca, a ostatni jego etykietą, którą będziemy mogli posłużyć się później w procesie uczenia naszego algorytmu rozpoznawania wzorców.

Cały zbiór danych możemy zatem podzielić na:

  • przestrzeń cech — zbiór wszystkich wektorów cech obiektów znajdujących się w zbiorze (zwyczajowo oznaczamy go przez X),

  • zbiór etykiet — zawierający etykiety dla obiektów znajdujących się w zbiorze (zwyczajowo oznaczamy go przez y).

Zwróć uwagę, że X jest wielkie, a y małe.

Dokonajmy więc podziału wczytanego zbioru danych na X i y. Zapiszemy je już nie jako ramki danych (tak nazywamy struktury obsługiwane przez pandas), a jako tablice numpy.

Do zmiennej data odkładamy za pośrednictwem atrybutu values tablicę numpy ze wszystkimi wartościami z ramki df. Tablice tego typu adresujemy podobnie jak robiliśmy to w języku Matlab. Adres podajemy w nawiasie kwadratowym, a po przecinkach wymieniamy pozycje w kolejnych wymiarach tablicy. Do zmiennej X przypisujemy więc wszystkie wiersze (:) i wszystkie kolumny poza ostatnią (:-1). Z kolei do zmiennej y przypisujemy wszystkie wiersze (:) ale tylko ostatnią kolumnę (-1).

Wyświetlmy jeszcze naszą przestrzeń cech X i zbiór etykiet y.

Warto zapamiętać, że każda tablica numpy zawiera parametr shape, który pozwala nam poznać jej wymiary przestrzenne. Widzimy dzięki temu, że nasza przestrzeń cech ma 150 wierszy po 4 kolumny, a zbiór etykiet, po prostu 150 elementów.

Last updated