Scikit Learn - reprezentacja danych
Jak wiemy, uczenie maszynowe ma zamiar stworzyć model z danych. W tym celu komputer musi najpierw zrozumieć dane. Następnie omówimy różne sposoby przedstawiania danych w celu ich zrozumienia przez komputer -
Dane w formie tabeli
Najlepszym sposobem reprezentacji danych w Scikit-learn są tabele. Tabela reprezentuje dwuwymiarową siatkę danych, w której wiersze reprezentują poszczególne elementy zbioru danych, a kolumny reprezentują wielkości związane z tymi pojedynczymi elementami.
Przykład
Z poniższego przykładu możemy pobrać iris dataset w postaci Pandas DataFrame przy pomocy Pythona seaborn biblioteka.
import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()
Wynik
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
Z powyższych wyników widać, że każdy wiersz danych reprezentuje pojedynczy obserwowany kwiat, a liczba rzędów reprezentuje całkowitą liczbę kwiatów w zbiorze danych. Zazwyczaj wiersze macierzy nazywamy próbkami.
Z drugiej strony każda kolumna danych przedstawia informacje ilościowe opisujące każdą próbkę. Generalnie nazywamy kolumny macierzy cechami.
Dane jako macierz funkcji
Macierz funkcji można zdefiniować jako układ tabeli, w którym informacje można traktować jako macierz 2D. Jest przechowywany w zmiennej o nazwieXi założono, że jest dwuwymiarowy i ma kształt [n_samples, n_features]. Przeważnie jest zawarty w tablicy NumPy lub Pandas DataFrame. Jak powiedziano wcześniej, próbki zawsze reprezentują indywidualne obiekty opisane przez zbiór danych, a cechy reprezentują odrębne obserwacje, które opisują każdą próbkę w sposób ilościowy.
Dane jako tablica docelowa
Wraz z macierzą cech, oznaczoną X, mamy również tablicę docelową. Nazywa się to również etykietą. Jest oznaczony przez y. Tablica etykiety lub celu jest zwykle jednowymiarowa i ma długość n_samples. Zwykle jest zawarty w NumPyarray lub Pandy Series. Tablica docelowa może mieć zarówno wartości, ciągłe wartości liczbowe, jak i wartości dyskretne.
Czym tablica docelowa różni się od kolumn funkcji?
Możemy rozróżnić jednym punktem, że tablica docelowa jest zwykle wielkością, którą chcemy przewidzieć z danych, czyli w kategoriach statystycznych jest to zmienna zależna.
Przykład
W poniższym przykładzie na podstawie zbioru danych tęczówki przewidujemy gatunek kwiatu na podstawie innych pomiarów. W takim przypadku kolumna Gatunek byłaby uznawana za cechę.
import seaborn as sns
iris = sns.load_dataset('iris')
%matplotlib inline
import seaborn as sns; sns.set()
sns.pairplot(iris, hue='species', height=3);
Wynik
X_iris = iris.drop('species', axis=1)
X_iris.shape
y_iris = iris['species']
y_iris.shape
Wynik
(150,4)
(150,)