Výpočet a interpretace předpovědí

Zobecněné lineární modely v Pythonu

Ita Cirovic Donev

Data Science Consultant

Výpočet předpovědí

Po získání modelu

  1. Vyrovnané hodnoty pro původní hodnoty $x$

Diagram procesu fitování modelu.

Zobecněné lineární modely v Pythonu

Výpočet předpovědí

Po získání modelu

  1. Vyrovnané hodnoty pro původní hodnoty $x$

  2. Nové hodnoty $x$ pro predikované hodnoty

Diagram procesu fitování modelu a výpočtu předpovědí.

Zobecněné lineární modely v Pythonu

Výpočet předpovědí

  • Model podkovy y ~ weight $$ \mu = \frac{\exp(-3.6947+1.8151 \times weight)}{1+\exp(-3.6947+1.8151 \times weight)} $$

  • Nové měření: weight = 2.85

$$ \mu = \frac{\exp(-3.6947+1.8151 \times \color{blue}{2.85})}{1+\exp(-3.6947+1.8151 \times \color{blue}{2.85})} = 0.814 $$

Zobecněné lineární modely v Pythonu

Předpovědi v Pythonu

  • Výpočet předpovědí modelu pro datovou sadu new_data
    # Compute model predictions
    model_GLM.predict(exog = new_data)
    
Zobecněné lineární modely v Pythonu

Z pravděpodobností ke třídám

Oddělení výstupu modelu podle zvolené prahové hodnoty pravděpodobnosti.

Zobecněné lineární modely v Pythonu

Výpočet předpovědí tříd

# Extract fitted probabilities from model
crab['fitted'] = model.fittedvalues.values
# Define cut-off value
cut_off = 0.4
# Compute class predictions
crab['pred_class'] = np.where(crab['fitted'] > cut_off, 1, 0)
Zobecněné lineární modely v Pythonu

Výpočet předpovědí tříd

# Count occurences for each class
crab['pred_class'].value_counts()
1    151
0     22
Cut-off $\hat y=1$ $\hat y=0$
$\mu = 0.4$ 151 22
$\mu = 0.5$ 126 47
Zobecněné lineární modely v Pythonu

Matice záměn

Prázdná matice záměn.

Zobecněné lineární modely v Pythonu

Matice záměn – skutečně negativní

Zobrazení skutečně negativních hodnot v matici záměn.

Zobecněné lineární modely v Pythonu

Matice záměn – skutečně pozitivní

Zobrazení skutečně negativních a skutečně pozitivních hodnot v matici záměn.

Zobecněné lineární modely v Pythonu

Matice záměn – falešně pozitivní

Zobrazení skutečně negativních, skutečně pozitivních a falešně pozitivních hodnot v matici záměn.

Zobecněné lineární modely v Pythonu

Matice záměn – falešně negativní

Zobrazení skutečně negativních, skutečně pozitivních, falešně pozitivních a falešně negativních hodnot v matici záměn.

Zobecněné lineární modely v Pythonu

Matice záměn v Pythonu

print(pd.crosstab(y_actual, y_predicted, 
            rownames=['Actual'], colnames=['Predicted'], 
            margins = True))
Predicted   0    1  All
Actual                 
0          15   47   62
1           7  104  111
All        22  151  173
Zobecněné lineární modely v Pythonu

Pojďme si procvičit!

Zobecněné lineární modely v Pythonu

Preparing Video For Download...