Regresja logistyczna – klasyfikacja

Regresja logistyczna jest algorytmem klasyfikacji binarnej, który służy do przewidywania prawdopodobieństwa przynależności obiektu do jednej z dwóch klas. Jest to jedna z najczęściej stosowanych metod klasyfikacji, szczególnie w sytuacjach, gdy mamy do czynienia z dwoma klasami odrębnymi, takimi jak “spam” i “nie spam”.

Algorytm regresji logistycznej działa tak, że najpierw przeprowadza się regresję liniową dla zmiennych objaśniających (czyli tych, które mogą mieć wpływ na przynależność do klasy), a następnie przekształca się wynik tej regresji za pomocą funkcji logistycznej.

Funkcja logistyczna zwraca wartość pomiędzy 0 a 1, która interpretowana jest jako prawdopodobieństwo przynależności do jednej z klas. Na przykład, jeśli funkcja logistyczna dla danego obiektu zwraca wartość 0,8, to oznacza, że istnieje 80% szans, że ten obiekt należy do klasy “1” (a 20% szans, że należy do klasy “0”).

Wartość progowa prawdopodobieństwa, powyżej której obiekt jest przypisywany do klasy “1”, może być dowolnie ustawiona. Zazwyczaj przyjmuje się wartość 0,5, co oznacza, że obiekt jest przypisywany do klasy “1”, jeśli prawdopodobieństwo przynależności do tej klasy jest większe niż 50%.

from sklearn.linear_model import LogisticRegression

# Przygotowanie danych - załóżmy, że mamy zbiór treningowy zawierający cechy dwóch klas oraz ich etykiety
X = [[1, 2], [2, 4], [3, 6], [4, 8]]  # cechy
y = [0, 0, 1, 1]  # etykiety

# Utworzenie modelu regresji logistycznej
model = LogisticRegression()

# Trenowanie modelu na danych treningowych
model.fit(X, y)

# Przewidywanie etykiet dla nowych danych
predictions = model.predict([[5, 10], [1, 3]])

# Wynik: predictions zawiera [1, 0] - czyli przewiduje, że pierwszy obiekt należy do klasy 1, a drugi do klasy 0

W tym przykładzie użyto prostego modelu regresji logistycznej do klasyfikacji dwóch klas na podstawie dwóch cech (które zostały przedstawione jako listy o długości 2). Następnie model został trenowany na danych treningowych (X i y) i wykorzystany do przewidywania etykiet dla nowych danych (w tym przypadku dwóch obiektów o cechach [5, 10] i [1, 3]).