16.1. Trenowanie klasyfikatora binarnego

# Wczytanie bibliotek.
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.preprocessing import StandardScaler

# Wczytanie danych zawierających tylko dwie klasy.
iris = datasets.load_iris()
features = iris.data[:100,:]
target = iris.target[:100]

# Standaryzowanie cech.
scaler = StandardScaler()
features_standardized = scaler.fit_transform(features)

# Utworzenie obiektu regresji logistycznej.
logistic_regression = LogisticRegression(random_state=0)

# Wytrenowanie modelu.
model = logistic_regression.fit(features_standardized, target)





# Utworzenie nowej obserwacji.
new_observation = [[.5, .5, .5, .5]]

# Prognozowanie klasy.
model.predict(new_observation)

array([1])





# Sprawdzenie prawdopodobieństwa prognozy.
model.predict_proba(new_observation)

array([[0.17738424, 0.82261576]])





16.2. Trenowanie klasyfikatora wieloklasowego

# Wczytanie bibliotek.
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.preprocessing import StandardScaler

# Wczytanie danych.
iris = datasets.load_iris()
features = iris.data
target = iris.target

# Standaryzowanie cech.
scaler = StandardScaler()
features_standardized = scaler.fit_transform(features)

# Utworzenie obiektu regresji logistycznej wykorzystującej technikę typu jeden przeciwko reszcie.
logistic_regression = LogisticRegression(random_state=0, multi_class="ovr")

# Wytrenowanie modelu.
model = logistic_regression.fit(features_standardized, target)





16.3. Redukcja wariancji poprzez regularyzację

# Wczytanie bibliotek.
from sklearn.linear_model import LogisticRegressionCV
from sklearn import datasets
from sklearn.preprocessing import StandardScaler

# Wczytanie danych.
iris = datasets.load_iris()
features = iris.data
target = iris.target

# Standaryzowanie cech.
scaler = StandardScaler()
features_standardized = scaler.fit_transform(features)

# Utworzenie obiektu klasyfikatora drzewa decyzyjnego.
logistic_regression = LogisticRegressionCV(
    penalty='l2', Cs=10, random_state=0, n_jobs=-1)

# Wytrenowanie modelu.
model = logistic_regression.fit(features_standardized, target)





16.4. Trenowanie klasyfikatora na bardzo dużych danych

# Wczytanie bibliotek.
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.preprocessing import StandardScaler

# Wczytanie danych.
iris = datasets.load_iris()
features = iris.data
target = iris.target

# Standaryzowanie cech.
scaler = StandardScaler()
features_standardized = scaler.fit_transform(features)

# Utworzenie obiektu regresji logistycznej.
logistic_regression = LogisticRegression(random_state=0, solver="sag")

# Wytrenowanie modelu.
model = logistic_regression.fit(features_standardized, target)





16.5. Obsługa niezrównoważonych klas

# Wczytanie bibliotek.
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.preprocessing import StandardScaler

# Wczytanie danych.
iris = datasets.load_iris()
features = iris.data
target = iris.target

# Utworzenie wysoce niezrównoważonej klasy przez usunięcie pierwszych 40 obserwacji.
features = features[40:,:]
target = target[40:]

# Utworzenie wektora docelowego wskazującego, czy element jest klasy 0, czy 1.
target = np.where((target == 0), 0, 1)

# Standaryzowanie cech.
scaler = StandardScaler()
features_standardized = scaler.fit_transform(features)

# Utworzenie obiektu klasyfikatora drzewa decyzyjnego.
logistic_regression = LogisticRegression(random_state=0, class_weight="balanced")

# Wytrenowanie modelu.
model = logistic_regression.fit(features_standardized, target)
