Logistická regrese

Základy pravděpodobnosti v Pythonu

Alexander A. Ramírez M.

CEO @ Synergy Vision

Původní data

Data: počet hodin studia vs. skóre

Základy pravděpodobnosti v Pythonu

Nová data

Graf testu: složil/nesložil

Základy pravděpodobnosti v Pythonu

Kde by jste nakreslili hranici?

Animace: kde by jste nakreslili hranici?

Základy pravděpodobnosti v Pythonu

Řešení na základě pravděpodobnosti

Výpočet pravděpodobnosti pomocí modelu

Základy pravděpodobnosti v Pythonu

Logistická funkce

Graf logistické funkce

$$ logistic(t) = logistic(slope*x + intercept) $$

Základy pravděpodobnosti v Pythonu

Změna sklonu

Animace strmější sigmoidní funkce při změně parametru sklonu

Základy pravděpodobnosti v Pythonu

Změna průsečíku

Graf sigmoidní funkce s parametrem průsečíku

Základy pravděpodobnosti v Pythonu

Od dat k pravděpodobnosti

Výpočet pravděpodobnosti pomocí logistického modelu

Základy pravděpodobnosti v Pythonu

Výstupy

Graf výstupů logistického modelu

Základy pravděpodobnosti v Pythonu

Chybná klasifikace

Výpočet pravděpodobnosti a chybná klasifikace

Základy pravděpodobnosti v Pythonu

Logistická regrese

# Import LogisticRegression
from sklearn.linear_model import LogisticRegression
# sklearn logistic model
model = LogisticRegression(C=1e9)
model.fit(hours_of_study, outcomes)
# Get parameters
beta1 = model.coef_[0][0]
beta0 = model.intercept_[0]
# Print parameters
print(beta1, beta0)
(1.3406531235010786, -15.05906237996095)
Základy pravděpodobnosti v Pythonu

Predikce výsledků na základě hodin studia

hours_of_study_test = [[10]]
outcome = model.predict(hours_of_study_test)
print(outcome)
array([False])
Základy pravděpodobnosti v Pythonu

Výpočet pravděpodobnosti

$$ $$

# Put value in an array
value = np.asarray(9).reshape(-1,1)
# Calculate the probability for 9 hours of study
print(model.predict_proba(value)[:,1])
array([0.04773474])
Základy pravděpodobnosti v Pythonu

Pojďme si procvičit!

Základy pravděpodobnosti v Pythonu

Preparing Video For Download...