Przetwarzanie wstępne w Sklearn

Przetwarzanie wstępne w Sklearn
Przedstawienie danych, kluczowa faza w eksploracji danych, można zdefiniować jako zmianę lub upuszczanie danych przed wykorzystaniem, aby zapewnić lub zwiększyć wydajność. Przygotowanie danych obejmuje kilka procedur, takich jak analiza danych eksploracyjnych, usunięcie niepotrzebnych informacji i dodanie niezbędnych informacji. W tym artykule porozmawiamy o wstępnym przetwarzaniu danych i o tym.

Co to jest przetwarzanie danych?

Przedrożenie danych jest kluczowym etapem uczenia maszynowego, który poprawia jakość danych, aby zachęcić do wyodrębnienia cennych informacji z danych. Przygotowanie danych w uczeniu maszynowym to proces przygotowania surowych danych (czyszczenie i organizowanie ich) do tworzenia i szkolenia modeli uczenia maszynowego. Przedstawienie danych w uczeniu maszynowym jest, mówiąc prosto, podejście do eksploracji danych, które przekształca surowe dane w format, który jest czytelny i zrozumiały.

Dlaczego potrzebujemy wstępnego przetwarzania danych?

Dane rzeczywistych często nie mają konkretnych wartości lub trendów atrybutów i są często niespójne, błędne (zawiera błędy lub wartości odstające) i niekompletne. Przygotowanie danych pojawia się w tej sytuacji, ponieważ pomaga wyczyścić, formatować i organizować surowe dane, przygotowując je do użycia przez modele uczenia maszynowego.

Przetwarzanie danych dotyczących danych dotyczy następujących:

  • Brakujące dane: usuń, popraw i przypisuj
  • Funkcje inżynieryjne: ekstrapolowanie nowych funkcji z surowych danych.
  • Formatowanie danych: dane mogą nie być dostępne w żądanym formacie. Na przykład jest to prosty plik tekstowy, który musimy przekonwertować na ramkę danych.
  • Normalizacja danych: Nie wszystkie dane mogą być w postaci znormalizowanej. Dlatego skalujemy go do danego zakresu do celów wydajności
  • Rozkład: usuwanie zbędnych danych w celu zwiększenia wydajności

Standardy dla API scikit-learn

Istnieje kilka specyfikacji rodzaju danych, które przetworzy Sklearn.

  • Stałe wartości (bez zmiennych kategorycznych).
  • Brakuje żadnych wartości.
  • Każda kolumna powinna zawierać inną zmienną predykcyjną.
  • Każdy wiersz powinien zawierać obserwację cech.
  • Musi być tyle etykiet dla każdej funkcji, ile jest jej obserwacje.

Wdrażanie sklearn przed przetwarzaniem

Importowanie bibliotek i danych

# Importowanie bibliotek i klas
Z SKLEARN Import SVM, zestawów danych
importować pandy jako PD
ze Sklearn.Zakładaj import SimpleMputer
ze Sklearn.Przedrożenie standardów importu
ze Sklearn.Przedrożenie do importu OneHotencoder
# Ładowanie zestawu danych IRIS
Data = Zestawy danych.load_iris ()
df = pd.DataFrame (dane = dane.dane, kolumny = dane.Feature_names)

Ładowanie pierwszych 5 wierszy danych

df.głowa()

Wyjście

Długość sepalu (cm) Szerokość sepalowa (cm) długość płatków (cm) szerokość płatków (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Uzyskanie informacji o rodzajach i wartości zerowych

df.informacje ()

Wyjście

RangeIndex: 150 wpisów, od 0 do 149
Kolumny danych (łącznie 4 kolumny):
# Kolumna non-null Count Dtype
--- ------ -------------- -----
0 Sepal Długość (cm) 150 Non-null Float64
1 szerokość sepalowa (cm) 150 nie-null float64
2 długość płatków (cm) 150 Non-null Float64
3 Szerokość płatków (cm) 150 Non-null Float64
Dtypes: Float64 (4)

Wypełnianie brakujących wartości danych za pomocą Sklearn:

Imputer = SimpleMimputer (strategia = „Mean”)
df ['sepal szerokość (cm)'] = imputer.fit_transform (df [['sepal szerokość (cm)']])

Możemy iterować wszystkie kolumny do wykonywania tego zadania we wszystkich kolumnach.

Skalowanie danych za pomocą standardowego skalera

scaller = standardCaler ()
skaler.Fit (DF)
# przekształcanie danych
skaler.Transform (DF) [: 10]

Wyjście

tablica ([[-0.90068117, 1.01900435, -1.34022653, -1.3154443],
[-1.14301691, -0.13197948, -1.34022653, -1.3154443],
[-1.38535265, 0.32841405, -1.39706395, -1.3154443],
[-1.50652052, 0.09821729, -1.2833891, -1.3154443],
[-1.02184904, 1.24920112, -1.34022653, -1.3154443],
[-0.53717756, 1.93979142, -1.16971425, -1.05217993],
[-1.50652052, 0.78880759, -1.34022653, -1.18381211],
[-1.02184904, 0.78880759, -1.2833891, -1.3154443],
[-1.74885626, -0.36217625, -1.34022653, -1.3154443],
[-1.14301691, 0.09821729, -1.2833891, -1.44707648]])

Jedno gorące kodowanie

encoder = onehotencoder (uchwyt_inknown = 'ignor')
X = [['a', 1], ['b', 3], ['b', 2]]
enkoder.Fit (x)
Drukuj (enkoder.kategorie_)
enkoder.Transform (x).toarray ()

Wyjście

[array (['a', 'b'], dtype = obiekt), tablica ([1, 2, 3], dtype = obiekt)]]
tablica [[[1., 0., 1., 0., 0.],
[0., 1., 0., 0., 1.],
[0., 1., 0., 1., 0.]])

Wniosek

W tym artykule omówiliśmy wstępne przetwarzanie i jego wdrożenie w bibliotece Sklearn Python. Aby ułatwić ekstrakcję użytecznych spostrzeżeń z danych, przetwarzanie danych jest kluczowym krokiem w uczeniu maszynowym. Podnosi jakość danych. Następnie omówiliśmy wdrożenie w Sklearn. Najpierw odzyskaliśmy informacje o danych, w tym brakujące wartości i danych, a następnie wypełniliśmy brakujące wartości. Pracowaliśmy również nad skalowaniem danych i jednym kodowaniem gorącym.