Formula modelului

Modele Liniare Generalizate în Python

Ita Cirovic Donev

Data Science Consultant

Formulă și matrice model

Începutul diagramei cu sursele de date X și Y.

Modele Liniare Generalizate în Python

Formulă și matrice model

Diagramă formulă

Modele Liniare Generalizate în Python

Formulă și matrice model

Diagramă matrice model

Modele Liniare Generalizate în Python

Formulă și matrice model

Diagramă a intrărilor în clasa glm.

Modele Liniare Generalizate în Python

Matricea model

  • Matricea model: $y \sim \bold{X}$

  • Formula modelului

    'y ~ x1 + x2'
    
  • Verificarea structurii matricei model
    from patsy import dmatrix
    dmatrix('x1 + x2')
    
  Intercept  x1  x2
          1   1   4
          1   2   5
          1   3   6
Modele Liniare Generalizate în Python

Transformarea variabilelor

import numpy as np
'y ~ x1 + np.log(x2)'
dmatrix('x1 + np.log(x2)')
DesignMatrix with shape (3, 3)
  Intercept  x1  np.log(x2)
          1   1     1.38629
          1   2     1.60944
          1   3     1.79176
Modele Liniare Generalizate în Python

Centrare și standardizare

  • Transformări cu stare
'y ~ center(x1) + standardize(x2)'
dmatrix('center(x1) + standardize(x2)')
DesignMatrix with shape (3, 3)
  Intercept  center(x1)  standardize(x2)
          1          -1         -1.22474
          1           0          0.00000
          1           1          1.22474
Modele Liniare Generalizate în Python

Transformare personalizată

def my_transformation(x):
  return 4 * x
dmatrix('x1 + x2 + my_transformation(x2)')
DesignMatrix with shape (3, 4)
  Intercept  x1  x2  my_transformation(x2)
          1   1   4                     16
          1   2   5                     20
          1   3   6                     24
Modele Liniare Generalizate în Python

Operații aritmetice

x1 = np.array([1, 2, 3])
x2 = np.array([4,5,6])

dmatrix('I(x1 + x2'))
DesignMatrix with shape (3, 2)
  Intercept  I(x1 + x2)
          1           5
          1           7
          1           9
x1 = [1, 2, 3]
x2 = [4,5,6]

dmatrix('I(x1 + x2)')
DesignMatrix with shape (6, 2)
  Intercept  I(x1 + x2)
          1           1
          1           2
          1           3
          1           4
          1           5
          1           6
Modele Liniare Generalizate în Python

Codificarea datelor categoriale

Tip culoare: roșu, verde, albastru

Modele Liniare Generalizate în Python

Codificarea datelor categoriale

Diagramă cu tipul culorii: roșu, verde, albastru și observații de culoare în date

Modele Liniare Generalizate în Python

Codificarea datelor categoriale

Diagramă de codificare one-hot folosind culorile roșu, verde și albastru.

Modele Liniare Generalizate în Python

Codificare în Patsy

  • Șirurile și valorile booleene sunt codificate automat
  • Numeric $\rightarrow$ categorial
    • Funcția C()
  • Grupul de referință
    • Implicit: primul grup
    • Treatment
    • levels
Modele Liniare Generalizate în Python

Funcția C()

  • Variabilă numerică
    dmatrix('color', data = crab)
    
DesignMatrix with shape (173, 2)
  Intercept  color
          1      2
          1      3
          1      1
  [... rows omitted]
  • Câte niveluri?
    crab['color'].value_counts()
    
2    95
3    44
4    22
1    12
Modele Liniare Generalizate în Python

Funcția C()

  • Variabilă categorială
    dmatrix('C(color)', data = crab)
    
DesignMatrix with shape (173, 4)
  Intercept  C(color)[T.2]  C(color)[T.3]  C(color)[T.4]
          1              1              0              0
          1              0              1              0
          1              0              0              0
  [... rows omitted]
Modele Liniare Generalizate în Python

Schimbarea grupului de referință

dmatrix('C(color, Treatment(4))', data = crab)
DesignMatrix with shape (173, 4)
  Intercept  C(color)[T.1]  C(color)[T.2]  C(color)[T.3]  
          1              0              1              0 
          1              0              0              1 
          1              1              0              0 
  [... rows omitted]
Modele Liniare Generalizate în Python

Schimbarea grupului de referință

l = [1, 2, 3,4]
dmatrix('C(color, levels = l)', data = crab)
DesignMatrix with shape (173, 4)
  Intercept  C(color)[T.2]  C(color)[T.3]   C(color)[T.4] 
          1               1            0               0     
          1               0            1               0
          1               0            0               0 
  [... rows omitted]
Modele Liniare Generalizate în Python

Intercepturi multiple

'y ~ C(color)-1'
dmatrix('C(color)-1', data = crab)
DesignMatrix with shape (173, 4)
  C(color)[1]  C(color)[2]  C(color)[3]  C(color)[4]
            0            1            0            0
            0            0            1            0
            1            0            0            0
  [... rows omitted]
Modele Liniare Generalizate în Python

Să exersăm!

Modele Liniare Generalizate în Python

Preparing Video For Download...