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,)