Kỹ thuật đặc trưng

Mô hình hóa với tidymodels trong R

David Svancer

Data Scientist

Kỹ thuật đặc trưng với gói recipes

Quy trình kỹ thuật đặc trưng với recipes

Mô hình hóa với tidymodels trong R

Chỉ định kiểu và vai trò biến

 

Định nghĩa vai trò cột

  • Gán vai trò outcome hoặc predictor cho mọi biến

Xác định kiểu dữ liệu biến

  • Dữ liệu số
  • Dữ liệu phân loại

 

Thực hiện bằng hàm recipe()

 

Khai báo một recipe với hàm recipe

Mô hình hóa với tidymodels trong R

Các bước tiền xử lý dữ liệu

Thêm các bước tiền xử lý cần thiết

  • Bù khuyết dữ liệu thiếu
  • Biến đổi dữ liệu
    • Chuẩn hóa và chuẩn biên biến số
  • Tạo biến mới
    • Tính tỷ lệ giữa các biến
  • Và còn nhiều nữa...

Mỗi bước được thêm bằng một hàm step_*() riêng

 

Thêm biến đổi dữ liệu với các hàm step

1 https://recipes.tidymodels.org/reference/index.html
Mô hình hóa với tidymodels trong R

Huấn luyện các bước tiền xử lý

Đối tượng recipe được huấn luyện trên một nguồn dữ liệu, thường là tập huấn luyện

  • Ước lượng các phép biến đổi dữ liệu
    • Tính trung bình và độ lệch chuẩn của cột số để chuẩn hóa/chuẩn biên
    • Lưu công thức tạo cột mới để áp dụng cho dữ liệu mới

 

Huấn luyện recipe bằng hàm prep()

 

Hàm prep sẽ huấn luyện các bước kỹ thuật đặc trưng bằng tập huấn luyện

Mô hình hóa với tidymodels trong R

Áp dụng recipe cho dữ liệu mới

Áp dụng mọi biến đổi tiền xử lý đã huấn luyện

  • Cho tập huấn luyện và kiểm tra để mô hình hóa
  • Cho nguồn dữ liệu mới để dự đoán sau này
    • Thuật toán ML yêu cầu cùng định dạng dữ liệu như khi huấn luyện để dự đoán giá trị mới

 

Áp dụng recipe bằng hàm bake()

 

Hàm bake sẽ áp dụng một recipe đã huấn luyện cho dữ liệu mới

Mô hình hóa với tidymodels trong R

Pipeline kỹ thuật đặc trưng đơn giản

Log-transform total_time trong dữ liệu chấm điểm lead

  • Biến đổi phổ biến cho giá trị lớn
  • Nén phạm vi giá trị và giảm biến thiên
leads_training
# A tibble: 996 x 7
   purchased  total_visits  total_time  pages_per_visit  total_clicks  lead_source    us_location
   <fct>          <dbl>       <dbl>           <dbl>          <dbl>         <fct>          <fct>      
 1 yes             7          1148            7              59        direct_traffic     west       
 2 no              5           228            2.5            25        email              southeast  
 3 no              7           481            2.33           21        organic_search     west       
 4 no              4           177            4              37        direct_traffic     west       
 5 no              2          1273            2              26        email              midwest         
# ... with 991 more rows
Mô hình hóa với tidymodels trong R

Xây dựng đối tượng recipe

Hàm recipe()

  • Công thức mô hình
    • Gán vai trò biến
  • Tham số data
    • Xác định kiểu dữ liệu của biến

 

Truyền đối tượng recipe vào step_log() để thêm bước logarit

  • Chọn biến cần biến đổi, total_time, và chỉ định cơ số log
leads_log_rec <- recipe(purchased ~ ., 
                       data = leads_training) %>% 

step_log(total_time, base = 10)
leads_log_rec
Data Recipe
Inputs:
      role #variables
   outcome          1
 predictor          6

Operations:

Log transformation on total_time
Mô hình hóa với tidymodels trong R

Khám phá vai trò và kiểu biến

Truyền một đối tượng recipe vào summary()

  • Tạo một tibble với thông tin biến
  • Cột type
    • Ghi nhận kiểu dữ liệu của biến
    • 'nominal' là biến phân loại
  • Cột role
    • Ghi nhận vai trò biến cho mô hình hóa
    • Gán dựa trên công thức mô hình đầu vào
leads_log_rec %>% 
  summary()
# A tibble: 7 x 4
  variable        type     role       source  
  <chr>           <chr>    <chr>      <chr>   
1 total_visits    numeric  predictor  original
2 total_time      numeric  predictor  original
3 pages_per_visit numeric  predictor  original
4 total_clicks    numeric  predictor  original
5 lead_source     nominal  predictor  original
6 us_location     nominal  predictor  original
7 purchased       nominal  outcome    original
Mô hình hóa với tidymodels trong R

Huấn luyện đối tượng recipe

Hàm prep()

  • Nhận một đối tượng recipe làm đối số đầu
  • Đối số training
    • Chỉ định dữ liệu dùng để huấn luyện các bước tiền xử lý

 

In một đối tượng recipe đã huấn luyện

  • Bước đã huấn luyện được đánh dấu [trained]
leads_log_rec_prep <- leads_log_rec %>% 
  prep(training = leads_training)
leads_log_rec_prep
Data Recipe
Inputs:
      role #variables
   outcome          1
 predictor          6

Training data contained 996 data points and 
no missing data.

Operations:
Log transformation on total_time [trained]
Mô hình hóa với tidymodels trong R

Biến đổi dữ liệu huấn luyện

Hàm bake()

  • Đối số đầu là recipe đã huấn luyện
  • Đối số new_data
    • Dữ liệu để áp dụng recipe đã huấn luyện
  • Dữ liệu huấn luyện
    • leads_training dùng để huấn luyện recipe
    • Mặc định, dữ liệu đã biến đổi được giữ trong prep()
    • Truyền NULL vào new_data để trích xuất
  • Trả về một tibble dữ liệu đã biến đổi
leads_log_rec_prep %>% 
  bake(new_data = NULL)
# A tibble: 996 x 7
  total_visits total_time ... us_location  purchased
    <dbl>       <dbl>     ...   <fct>       <fct>
 1     7        3.06      ...   west         yes
 2     5        2.36      ...   southeast    no
 3     7        2.68      ...   west         no
 4     4        2.25      ...   west         no
 5     2        3.10      ...   midwest      no
# ... with 991 more rows
Mô hình hóa với tidymodels trong R

Biến đổi dữ liệu mới

Biến đổi tập dữ liệu không dùng khi huấn luyện recipe

  • Truyền tập dữ liệu vào đối số new_data
  • recipe đã huấn luyện sẽ áp dụng mọi bước cho dữ liệu mới
leads_log_rec_prep %>% 
  bake(new_data = leads_test)
# A tibble: 332 x 7
 total_visits  total_time ... us_location  purchased
     <dbl>       <dbl>    ...  <fct>       <fct>
 1     8          2       ...  west         no
 2     4          3.13    ...  northeast    yes
 3     3          2.25    ...  west         no
 4     2          1.20    ...  midwest      no
 5     9          3.01    ...  west         yes
# ... with 327 more rows
Mô hình hóa với tidymodels trong R

Hãy bắt đầu bake!

Mô hình hóa với tidymodels trong R

Preparing Video For Download...