Công thức mô hình

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ita Cirovic Donev

Data Science Consultant

Công thức và ma trận mô hình

Bắt đầu sơ đồ với nguồn dữ liệu X và Y.

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Công thức và ma trận mô hình

Sơ đồ công thức

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Công thức và ma trận mô hình

Sơ đồ ma trận mô hình

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Công thức và ma trận mô hình

Sơ đồ đầu vào cho lớp glm.

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ma trận mô hình

  • Ma trận mô hình: y ~ X đậm

  • Công thức mô hình

    'y ~ x1 + x2'
    
  • Kiểm tra cấu trúc ma trận mô hình
    from patsy import dmatrix
    dmatrix('x1 + x2')
    
  Intercept  x1  x2
          1   1   4
          1   2   5
          1   3   6
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Biến đổi biến

import numpy as np
'y ~ x1 + np.log(x2)'
dmatrix('x1 + np.log(x2)')
DesignMatrix với kích thước (3, 3)
  Intercept  x1  np.log(x2)
          1   1     1.38629
          1   2     1.60944
          1   3     1.79176
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Chuẩn hóa và lấy tâm

  • Biến đổi có trạng thái
'y ~ center(x1) + standardize(x2)'
dmatrix('center(x1) + standardize(x2)')
DesignMatrix với kích thước (3, 3)
  Intercept  center(x1)  standardize(x2)
          1          -1         -1.22474
          1           0          0.00000
          1           1          1.22474
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Tự xây dựng phép biến đổi

def my_transformation(x):
  return 4 * x
dmatrix('x1 + x2 + my_transformation(x2)')
DesignMatrix với kích thước (3, 4)
  Intercept  x1  x2  my_transformation(x2)
          1   1   4                     16
          1   2   5                     20
          1   3   6                     24
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Phép toán số học

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

dmatrix('I(x1 + x2'))
DesignMatrix với kích thước (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 với kích thước (6, 2)
  Intercept  I(x1 + x2)
          1           1
          1           2
          1           3
          1           4
          1           5
          1           6
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mã hóa dữ liệu phân loại

Loại màu: đỏ, lục, lam

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mã hóa dữ liệu phân loại

Sơ đồ loại màu: đỏ, lục, lam và quan sát màu trong dữ liệu

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mã hóa dữ liệu phân loại

Sơ đồ one-hot encoding với màu đỏ, lục, lam.

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Mã hóa trong Patsy

  • Chuỗi và boolean được mã hóa tự động
  • Số học → phân loại
    • Hàm C()
  • Nhóm tham chiếu
    • Mặc định: nhóm đầu
    • Treatment
    • levels
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Hàm C()

  • Biến số
    dmatrix('color', data = crab)
    
DesignMatrix với kích thước (173, 2)
  Intercept  color
          1      2
          1      3
          1      1
  [... bỏ qua các hàng]
  • Có bao nhiêu mức?
    crab['color'].value_counts()
    
2    95
3    44
4    22
1    12
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Hàm C()

  • Biến phân loại
    dmatrix('C(color)', data = crab)
    
DesignMatrix với kích thước (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
  [... bỏ qua các hàng]
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Thay đổi nhóm tham chiếu

dmatrix('C(color, Treatment(4))', data = crab)
DesignMatrix với kích thước (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 
  [... bỏ qua các hàng]
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Thay đổi nhóm tham chiếu

l = [1, 2, 3,4]
dmatrix('C(color, levels = l)', data = crab)
DesignMatrix với kích thước (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 
  [... bỏ qua các hàng]
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Nhiều hệ số chặn

'y ~ C(color)-1'
dmatrix('C(color)-1', data = crab)
DesignMatrix với kích thước (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
  [... bỏ qua các hàng]
Mô hình Tuyến tính Tổng quát (GLM) trong Python

Ayo berlatih!

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Preparing Video For Download...