Scikit-Learn od podstaw – pierwsze modele uczenia maszynowego w Pythonie

Poznaj Scikit-Learn od podstaw i stwórz swój pierwszy model uczenia maszynowego w Pythonie – krok po kroku, z praktycznymi przykładami.
05 stycznia 2026
blog
Poziom: Podstawowy

Artykuł przeznaczony dla osób początkujących i średnio zaawansowanych w Pythonie, które chcą poznać podstawowy workflow uczenia maszynowego w Scikit-Learn.

Z tego artykułu dowiesz się

  • Jakie zadania uczenia maszynowego (klasyfikacja, regresja, grupowanie, redukcja wymiarowości) można realizować w Scikit-Learn?
  • Jak przygotować środowisko, wczytać dane, przeprowadzić podstawową eksplorację i podzielić je na zbiory treningowy oraz testowy?
  • Jak wybrać, wytrenować i ocenić model w Scikit-Learn, korzystając z metryk dla klasyfikacji i regresji?

Wprowadzenie do Scikit-Learn

Scikit-Learn to jedna z najpopularniejszych bibliotek do uczenia maszynowego w języku Python. Została zaprojektowana z myślą o prostocie, czytelności kodu oraz łatwej integracji z innymi narzędziami ekosystemu Pythona, takimi jak NumPy, pandas czy Matplotlib. Dzięki temu Scikit-Learn jest świetnym wyborem zarówno dla początkujących, jak i bardziej zaawansowanych użytkowników, którzy chcą szybko tworzyć, testować i analizować modele uczenia maszynowego.

Biblioteka oferuje szeroki zakres gotowych do użycia algorytmów i narzędzi, które wspierają różne zadania związane z analizą danych. Obejmują one między innymi:

  • Klasyfikację – przewidywanie kategorii, do której należy dany przykład (np. rozpoznawanie cyfr, rozróżnianie e-maili jako spam lub nie-spam).
  • Regresję – przewidywanie wartości liczbowych na podstawie danych wejściowych (np. prognozowanie cen mieszkań).
  • Grupowanie – wykrywanie struktur i grup w danych bez etykiet (np. segmentacja klientów).
  • Redukcję wymiarowości – upraszczanie danych przez ograniczenie liczby cech przy zachowaniu ich istotnych właściwości.
  • Walidację modeli – ocena skuteczności modeli oraz dobór najlepszych parametrów.

Scikit-Learn wyróżnia się spójnym i intuicyjnym interfejsem programistycznym. Wszystkie modele, niezależnie od rodzaju, działają według wspólnego schematu: inicjalizacja, trenowanie na danych oraz wykonywanie predykcji. Takie podejście pozwala łatwo zamieniać i testować różne algorytmy bez konieczności zmiany struktury kodu.

Dzięki Scikit-Learn można szybko przejść od prostego eksperymentu do w pełni funkcjonalnego modelu predykcyjnego. Biblioteka ta jest powszechnie wykorzystywana zarówno w środowisku akademickim, jak i w przemyśle, co czyni ją doskonałym punktem wyjścia do nauki uczenia maszynowego w praktyce.

Przygotowanie środowiska i import bibliotek

Zanim rozpoczniemy pracę z biblioteką Scikit-Learn, musimy odpowiednio przygotować środowisko programistyczne. Najbardziej popularnym wyborem jest Python – język o szerokim zastosowaniu w analizie danych i uczeniu maszynowym. Aby móc w pełni korzystać z możliwości Scikit-Learn, warto zainstalować również inne, wspierające biblioteki, które ułatwią manipulację danymi i ich wizualizację.

Na potrzeby pracy z modelami uczenia maszynowego niezbędne będą przede wszystkim:

  • NumPy – biblioteka do obliczeń numerycznych, pozwalająca na wydajne operacje na tablicach wielowymiarowych;
  • Pandas – narzędzie do analizy danych, pomocne w ich wczytywaniu, filtrowaniu i przekształcaniu;
  • Matplotlib i Seaborn – biblioteki do tworzenia wizualizacji, pomocne w eksploracji danych i interpretacji wyników modeli;
  • Scikit-Learn – główna biblioteka, która dostarcza algorytmy uczenia maszynowego oraz narzędzia do przygotowywania i oceny danych.

Instalacja wszystkich potrzebnych pakietów może być przeprowadzona za pomocą menedżera pakietów, takiego jak pip lub conda. Użytkownicy środowisk takich jak Jupyter Notebook czy Anaconda mają często te biblioteki już zainstalowane domyślnie.

Po zainstalowaniu bibliotek należy je zaimportować w swoim projekcie. Dzięki temu uzyskamy dostęp do funkcji i klas potrzebnych do pracy z danymi i budowania modeli uczenia maszynowego. Każda z wymienionych bibliotek pełni określoną rolę, a ich wspólne użycie tworzy solidny fundament do dalszych eksperymentów z danymi i algorytmami. Temat tego artykułu pojawia się w niemal każdej sesji szkoleniowej Cognity – czasem w formie pytania, czasem w formie frustracji.

Wczytywanie i eksploracja danych

Skuteczne tworzenie modeli uczenia maszynowego rozpoczyna się od odpowiedniego przygotowania danych. Scikit-Learn oferuje kilka sposobów wczytywania danych oraz narzędzia wspomagające ich eksplorację na wczesnym etapie analizy.

Źródła danych

Dane do analizy mogą pochodzić z różnych źródeł. W Scikit-Learn najczęściej spotykane są:

  • Wbudowane zbiory danych – dostępne bezpośrednio przez Scikit-Learn (np. load_iris(), load_diabetes()), idealne do nauki i testowania technik ML.
  • Pliki zewnętrzne – dane z plików CSV, Excel czy JSON, wczytywane np. za pomocą biblioteki pandas.
  • Zbiory zewnętrzne – importowane z serwisów takich jak UCI Machine Learning Repository czy Kaggle.

Przykład: Wczytanie danych z biblioteki Scikit-Learn

from sklearn.datasets import load_iris
import pandas as pd

iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target

Powyższy przykład przedstawia wczytanie klasycznego zbioru danych „iris” i jego przekształcenie do formatu DataFrame, który umożliwia łatwą eksplorację.

Podstawowe kroki eksploracji danych

Eksploracyjna analiza danych (ang. Exploratory Data Analysis, EDA) pozwala zrozumieć strukturę, zakres i potencjalne problemy w danych. Na tym etapie warto m.in.:

  • Sprawdzić podstawowe statystyki opisowe:
  • df.describe()
  • Ocenić rozkład klas w zmiennej docelowej (jeśli występuje):
  • df['target'].value_counts()
  • Zidentyfikować brakujące lub odstające wartości.
  • Przyjrzeć się zależnościom między cechami, np. za pomocą wykresów lub macierzy korelacji.

Porównanie metod wczytywania danych

Metoda Zalety Wady
Wbudowane zbiory Scikit-Learn Szybkie do testów, dobrze przygotowane Ograniczona liczba przypadków
CSV/Excel z pandas Elastyczność, możliwość pracy z rzeczywistymi danymi Wymaga samodzielnego czyszczenia i eksploracji

Wybór źródła danych zależy od celu analizy: nauka, prototypowanie czy praca z danymi produkcyjnymi. Eksploracja danych jest kluczowa, by już na wczesnym etapie wychwycić anomalie, brakujące wartości czy błędne etykiety, które mogą wpłynąć na jakość modelu. Jeśli chcesz pogłębić swoją wiedzę i przejść do bardziej zaawansowanych technik, sprawdź Kurs Machine Learning i Deep Learning w języku Python – modelowanie, optymalizacja, analiza danych.

Podział danych na zbiory treningowy i testowy

W procesie budowy modelu uczenia maszynowego jednym z kluczowych kroków jest podział dostępnych danych na dwa główne zbiory: treningowy i testowy. Taki podział pozwala ocenić, jak dobrze model generalizuje — czyli jak radzi sobie z danymi, których wcześniej nie widział. W czasie szkoleń Cognity ten temat bardzo często budzi ożywione dyskusje między uczestnikami.

Podstawowe różnice między tymi zbiorami przedstawia poniższa tabela:

Zbiór Zastosowanie
Treningowy Używany do nauczenia modelu na podstawie dostępnych danych i znalezienia wzorców
Testowy Służy do sprawdzenia, jak dobrze wytrenowany model radzi sobie z nowymi, niewidzianymi wcześniej danymi

W praktyce często stosuje się podział danych w proporcji 80% do 20% lub 70% do 30%, gdzie większa część trafia do zbioru treningowego. W bibliotece scikit-learn możemy to łatwo osiągnąć za pomocą funkcji train_test_split:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Parametr test_size=0.2 oznacza, że 20% danych zostanie przeznaczone na testy, a random_state zapewnia powtarzalność wyników. Podział ten jest niezbędny, by uniknąć tzw. przeuczenia (overfittingu), czyli sytuacji, w której model zbyt dokładnie dopasowuje się do danych treningowych, tracąc zdolność generalizacji.

Wybór i inicjalizacja modelu

W Scikit-Learn dostępna jest szeroka gama algorytmów uczenia maszynowego, które możemy wykorzystać zależnie od charakterystyki problemu. Niezależnie od tego, czy chcemy klasyfikować dane, przewidywać wartości liczbowe, czy przeprowadzać analizę skupień – Scikit-Learn oferuje gotowe implementacje popularnych modeli, które można łatwo zaimportować i skonfigurować.

W tej sekcji przyjrzymy się ogólnemu podziałowi modeli w Scikit-Learn oraz podstawowej składni ich inicjalizacji.

Podstawowe typy modeli w Scikit-Learn

Rodzaj modelu Zastosowanie Przykład klasy w Scikit-Learn
Klasyfikacja Przypisywanie danych do kategorii (np. spam/nie-spam) LogisticRegression, RandomForestClassifier
Regresja Przewidywanie wartości ciągłych (np. cena domu) LinearRegression, DecisionTreeRegressor
Klasteryzacja Grupowanie danych bez etykiet (np. segmentacja klientów) KMeans
Redukcja wymiarowości Upraszczanie danych przy zachowaniu istotnych informacji PCA (Principal Component Analysis)

Inicjalizacja modelu – przykład

Po wybraniu odpowiedniego typu algorytmu, możemy łatwo zainicjalizować model w Scikit-Learn. Przykładowo, aby utworzyć model regresji liniowej, wystarczy zaimportować odpowiednią klasę i utworzyć jej instancję:

from sklearn.linear_model import LinearRegression

model = LinearRegression()

W przypadku modeli, które oferują więcej opcji dostosowania, możemy przekazać parametry już w momencie inicjalizacji:

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=42)

Parametry przekazywane do konstruktora pozwalają na kontrolę m.in. nad złożonością modelu, liczbą iteracji czy sposobem losowania danych.

Dobór odpowiedniego modelu oraz jego parametrów to kluczowy etap pracy z uczeniem maszynowym – zależy od jakości danych, rodzaju problemu oraz oczekiwanej interpretowalności wyników. Jeśli chcesz pogłębić swoją wiedzę i poznać praktyczne zastosowania omawianych technik, sprawdź Kurs Machine Learning dla programistów.

Trenowanie modelu

Trenowanie modelu w Scikit-Learn to proces dostosowywania wybranego algorytmu uczenia maszynowego do danych treningowych. W tym etapie model „uczy się” wzorców i relacji występujących w danych, które umożliwią mu przewidywanie lub klasyfikowanie nowych, nieznanych przypadków.

W przypadku większości modeli w Scikit-Learn proces ten sprowadza się do wywołania metody fit() na wcześniej zainicjalizowanym obiekcie modelu. Przykład:

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)

W zależności od rodzaju algorytmu, „uczenie się” może oznaczać:

  • dobór współczynników (np. regresja liniowa),
  • podział przestrzeni cech (np. drzewa decyzyjne),
  • iteracyjne dopasowywanie wag (np. sieci neuronowe).

Poniższa tabela przedstawia wybrane algorytmy i ich typowe zastosowania:

Model Typ Zastosowanie
LogisticRegression Klasyfikacja Przewidywanie kategorii, np. spam/niespam
LinearRegression Regresja Szacowanie wartości liczbowych, np. ceny mieszkań
DecisionTreeClassifier Klasyfikacja Ustalanie reguł decyzyjnych na podstawie danych
KNeighborsRegressor Regresja Przewidywanie wartości na podstawie bliskich obserwacji

Warto pamiętać, że efektywne trenowanie modelu wymaga nie tylko odpowiedniego wyboru algorytmu, ale także właściwego przygotowania danych oraz dostosowania parametrów modelu (tzw. hiperparametry). Na tym etapie jednak kluczowe jest zrozumienie, że model uczy się na podstawie danych dostarczonych podczas wywołania metody fit().

Ocena jakości modelu

Po zbudowaniu i wytrenowaniu modelu uczenia maszynowego kluczowym etapem jest jego ocena. Tylko dzięki odpowiedniej analizie możemy określić, czy model działa poprawnie i czy można go zastosować w praktyce.

W zależności od rodzaju problemu – klasyfikacji lub regresji – stosuje się różne metryki oceny.

  • W przypadku problemów klasyfikacyjnych (np. przewidywanie kategorii, takich jak „tak” lub „nie”) wykorzystuje się takie miary jak dokładność (accuracy), precyzja, czułość (recall) czy F1-score. Każda z tych miar pokazuje inny aspekt działania modelu – np. jak często przewidywana klasa była zgodna z rzeczywistością albo jak dobrze model radzi sobie z wykrywaniem rzadkich przypadków.
  • Dla problemów regresyjnych (czyli takich, w których przewidujemy wartości liczbowe, np. cenę mieszkania), najczęściej analizuje się błąd średniokwadratowy (MSE), błąd średni bezwzględny (MAE) lub współczynnik determinacji R², który wskazuje, jak dobrze model tłumaczy zmienność danych.

Poza samymi liczbami, przydatne może być również wizualne porównanie prognoz modelu z rzeczywistymi wynikami – na przykład za pomocą wykresów rozrzutu lub macierzy pomyłek. Wszystko to pozwala lepiej zrozumieć mocne i słabe strony modelu oraz podjąć decyzję o jego dalszym wykorzystaniu lub konieczności jego udoskonalenia.

Podsumowanie i dalsze kroki

Scikit-Learn to jedna z najpopularniejszych bibliotek w ekosystemie Pythona, umożliwiająca szybkie i przejrzyste tworzenie modeli uczenia maszynowego. Dzięki spójnemu interfejsowi i bogatemu zestawowi narzędzi, pozwala użytkownikom na łatwe przechodzenie od podstawowej analizy danych do bardziej zaawansowanych zastosowań.

W ramach pierwszych kroków warto zrozumieć, że Scikit-Learn wspiera zarówno modele regresyjne (przewidywanie wartości liczbowych), jak i klasyfikacyjne (przypisywanie etykiet do danych). Oferuje również narzędzia do przetwarzania danych, selekcji cech, walidacji krzyżowej czy strojenia hiperparametrów.

Korzyścią płynącą z pracy z tą biblioteką jest jej modularność – pozwalająca na łatwe łączenie różnych komponentów, takich jak modele, transformatory czy metody walidacji. Dzięki temu możliwe jest tworzenie elastycznych i powtarzalnych pipeline’ów, co znacząco ułatwia wdrażanie modeli maszynowego uczenia w praktyce.

W kolejnych etapach nauki zaleca się eksperymentowanie z różnymi typami modeli, eksplorację dostępnych metryk oceny oraz poznawanie technik optymalizacji. Ważne jest też nabycie umiejętności krytycznej analizy wyników i dostosowywania rozwiązań do specyfiki danego problemu.

Opanowanie Scikit-Learn stanowi solidny fundament do dalszego rozwijania kompetencji w obszarze data science i sztucznej inteligencji – zarówno w projektach badawczych, jak i komercyjnych. W Cognity łączymy teorię z praktyką – dlatego ten temat rozwijamy także w formie ćwiczeń na szkoleniach.

icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments