Tạo grid
Tiếp theo, bạn cần tạo một lưới giá trị để tìm kiếm khi xác định các siêu tham số tối ưu. Tiểu mô-đun pyspark.ml.tuning có một lớp tên là ParamGridBuilder làm đúng việc đó (có lẽ bạn bắt đầu thấy một mô típ: PySpark có tiểu mô-đun cho hầu như mọi thứ!).
Bạn sẽ cần dùng các phương thức .addGrid() và .build() để tạo một lưới dùng cho cross validation. Phương thức .addGrid() nhận một tham số của mô hình (một thuộc tính của Estimator mô hình, lr, mà bạn đã tạo vài bài trước) và một danh sách các giá trị bạn muốn thử.
Phương thức .build() không nhận đối số nào; nó chỉ trả về lưới mà bạn sẽ dùng sau đó.
Bài tập này là một phần của khóa học
Nền tảng về PySpark
Hướng dẫn bài tập
- Import tiểu mô-đun
pyspark.ml.tuningvới bí danhtune. - Gọi bộ khởi tạo lớp
ParamGridBuilder()không có đối số. Lưu thànhgrid. - Gọi phương thức
.addGrid()trêngridvớilr.regParamlà đối số thứ nhất vànp.arange(0, .1, .01)là đối số thứ hai. Lời gọi thứ hai này là một hàm từ mô-đunnumpy(đã importas np) tạo ra một danh sách số từ 0 đến .1, tăng mỗi lần .01. Ghi đègridbằng kết quả. - Cập nhật
gridlần nữa bằng cách gọi.addGrid()lần thứ hai để tạo lưới cholr.elasticNetParamchỉ gồm các giá trị[0, 1]. - Gọi phương thức
.build()trêngridvà ghi đè nó bằng đầu ra.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Import the tuning submodule
import ____ as ____
# Create the parameter grid
grid = tune.____
# Add the hyperparameter
grid = grid.addGrid(____, np.arange(0, .1, .01))
grid = grid.addGrid(____, ____)
# Build the grid
grid = grid.build()