H2O - Ứng dụng Mẫu đang chạy

Nhấp vào liên kết Dòng Chậm trễ của Hãng hàng không trong danh sách các mẫu như thể hiện trong ảnh chụp màn hình bên dưới -

Sau khi bạn xác nhận, sổ ghi chép mới sẽ được tải.

Xóa tất cả đầu ra

Trước khi chúng tôi giải thích các câu lệnh mã trong sổ ghi chép, hãy xóa tất cả các kết quả đầu ra và sau đó chạy sổ ghi chép dần dần. Để xóa tất cả các đầu ra, hãy chọn tùy chọn menu sau:

Flow / Clear All Cell Contents

Điều này được hiển thị trong ảnh chụp màn hình sau:

Khi tất cả các đầu ra được xóa, chúng tôi sẽ chạy từng ô trong sổ ghi chép riêng lẻ và kiểm tra đầu ra của nó.

Chạy ô đầu tiên

Bấm vào ô đầu tiên. Một lá cờ đỏ xuất hiện ở bên trái cho biết rằng ô đã được chọn. Điều này được hiển thị trong ảnh chụp màn hình bên dưới -

Nội dung của ô này chỉ là chú thích chương trình được viết bằng ngôn ngữ MarkDown (MD). Nội dung mô tả chức năng của ứng dụng đã tải. Để chạy ô, hãy nhấp vào biểu tượng Run như được hiển thị trong ảnh chụp màn hình bên dưới -

Bạn sẽ không thấy bất kỳ đầu ra nào bên dưới ô vì không có mã thực thi nào trong ô hiện tại. Bây giờ con trỏ sẽ tự động di chuyển đến ô tiếp theo, ô này đã sẵn sàng để thực thi.

Nhập dữ liệu

Ô tiếp theo chứa câu lệnh Python sau:

importFiles ["https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv"]

Câu lệnh nhập tệp allyears2k.csv từ Amazon AWS vào hệ thống. Khi bạn chạy ô, nó sẽ nhập tệp và cung cấp cho bạn kết quả sau.

Thiết lập trình phân tích cú pháp dữ liệu

Bây giờ, chúng ta cần phân tích cú pháp dữ liệu và làm cho nó phù hợp với thuật toán ML của chúng ta. Điều này được thực hiện bằng cách sử dụng lệnh sau:

setupParse paths: [ "https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv" ]

Khi thực hiện câu lệnh trên, một hộp thoại cấu hình thiết lập sẽ xuất hiện. Hộp thoại cho phép bạn một số cài đặt để phân tích cú pháp tệp. Điều này được hiển thị trong ảnh chụp màn hình bên dưới -

Trong hộp thoại này, bạn có thể chọn trình phân tích cú pháp mong muốn từ danh sách thả xuống đã cho và đặt các tham số khác như dấu phân tách trường, v.v.

Phân tích dữ liệu

Câu lệnh tiếp theo, thực sự phân tích cú pháp tệp dữ liệu bằng cách sử dụng cấu hình trên, là một câu lệnh dài và như được hiển thị ở đây -

parseFiles
paths: ["https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv"]
destination_frame: "allyears2k.hex"
parse_type: "CSV"
separator: 44
number_columns: 31
single_quotes: false
column_names: ["Year","Month","DayofMonth","DayOfWeek","DepTime","CRSDepTime",
   "ArrTime","CRSArrTime","UniqueCarrier","FlightNum","TailNum",
   "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
   "Origin","Dest","Distance","TaxiIn","TaxiOut","Cancelled","CancellationCode",
   "Diverted","CarrierDelay","WeatherDelay","NASDelay","SecurityDelay",
   "LateAircraftDelay","IsArrDelayed","IsDepDelayed"]
column_types: ["Enum","Enum","Enum","Enum","Numeric","Numeric","Numeric"
   ,"Numeric","Enum","Enum","Enum","Numeric","Numeric","Numeric","Numeric",
   "Numeric","Enum","Enum","Numeric","Numeric","Numeric","Enum","Enum",
   "Numeric","Numeric","Numeric","Numeric","Numeric","Numeric","Enum","Enum"]
delete_on_done: true
check_header: 1
chunk_size: 4194304

Quan sát rằng các thông số bạn đã thiết lập trong hộp cấu hình được liệt kê trong đoạn mã trên. Bây giờ, chạy ô này. Sau một lúc, quá trình phân tích cú pháp hoàn tất và bạn sẽ thấy kết quả sau:

Kiểm tra khung dữ liệu

Sau khi xử lý, nó tạo ra một khung dữ liệu, có thể được kiểm tra bằng cách sử dụng câu lệnh sau:

getFrameSummary "allyears2k.hex"

Khi thực hiện câu lệnh trên, bạn sẽ thấy kết quả sau:

Giờ đây, dữ liệu của bạn đã sẵn sàng để đưa vào thuật toán Học máy.

Câu lệnh tiếp theo là một nhận xét của chương trình cho biết chúng ta sẽ sử dụng mô hình hồi quy và chỉ định sự chính quy hóa đặt trước và các giá trị lambda.

Xây dựng mô hình

Tiếp theo, là tuyên bố quan trọng nhất và đó là xây dựng chính mô hình. Điều này được chỉ định trong câu lệnh sau:

buildModel 'glm', {
   "model_id":"glm_model","training_frame":"allyears2k.hex",
   "ignored_columns":[
      "DayofMonth","DepTime","CRSDepTime","ArrTime","CRSArrTime","TailNum",
      "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
      "TaxiIn","TaxiOut","Cancelled","CancellationCode","Diverted","CarrierDelay",
      "WeatherDelay","NASDelay","SecurityDelay","LateAircraftDelay","IsArrDelayed"],
   "ignore_const_cols":true,"response_column":"IsDepDelayed","family":"binomial",
   "solver":"IRLSM","alpha":[0.5],"lambda":[0.00001],"lambda_search":false,
   "standardize":true,"non_negative":false,"score_each_iteration":false,
   "max_iterations":-1,"link":"family_default","intercept":true,
   "objective_epsilon":0.00001,"beta_epsilon":0.0001,"gradient_epsilon":0.0001,
   "prior":-1,"max_active_predictors":-1
}

Chúng tôi sử dụng glm, là một bộ Mô hình Tuyến tính Tổng quát với kiểu gia đình được đặt thành nhị thức. Bạn có thể thấy những điều này được đánh dấu trong câu lệnh trên. Trong trường hợp của chúng ta, đầu ra mong đợi là nhị phân và đó là lý do tại sao chúng ta sử dụng kiểu nhị thức. Bạn có thể tự mình kiểm tra các thông số khác; ví dụ, hãy xem alpha và lambda mà chúng tôi đã chỉ định trước đó. Tham khảo tài liệu về mô hình GLM để biết giải thích về tất cả các thông số.

Bây giờ, hãy chạy câu lệnh này. Khi thực thi, kết quả sau sẽ được tạo:

Chắc chắn, thời gian thực hiện sẽ khác trên máy của bạn. Bây giờ, đến phần thú vị nhất của mã mẫu này.

Kiểm tra đầu ra

Chúng tôi chỉ cần xuất ra mô hình mà chúng tôi đã xây dựng bằng câu lệnh sau:

getModel "glm_model"

Lưu ý rằng glm_model là ID mô hình mà chúng tôi đã chỉ định làm tham số model_id trong khi xây dựng mô hình trong câu lệnh trước. Điều này cung cấp cho chúng tôi một đầu ra khổng lồ chi tiết kết quả với một số tham số khác nhau. Một phần đầu ra của báo cáo được hiển thị trong ảnh chụp màn hình bên dưới -

Như bạn có thể thấy trong đầu ra, nó nói rằng đây là kết quả của việc chạy thuật toán Mô hình hóa tuyến tính tổng quát trên tập dữ liệu của bạn.

Ngay phía trên LỊCH SỬ ĐIỂM YẾU, bạn nhìn thấy thẻ MÔ HÌNH THÔNG SỐ, hãy mở rộng nó và bạn sẽ thấy danh sách tất cả các thông số được sử dụng trong khi xây dựng mô hình. Điều này được hiển thị trong ảnh chụp màn hình bên dưới.

Tương tự như vậy, mỗi thẻ cung cấp đầu ra chi tiết của một loại cụ thể. Tự mở rộng các thẻ khác nhau để nghiên cứu kết quả đầu ra của các loại khác nhau.

Xây dựng một mô hình khác

Tiếp theo, chúng tôi sẽ xây dựng mô hình Học sâu trên khung dữ liệu của mình. Câu lệnh tiếp theo trong mã mẫu chỉ là một nhận xét chương trình. Câu lệnh sau đây thực sự là một lệnh xây dựng mô hình. Nó được hiển thị ở đây -

buildModel 'deeplearning', {
   "model_id":"deeplearning_model","training_frame":"allyear
   s2k.hex","ignored_columns":[
      "DepTime","CRSDepTime","ArrTime","CRSArrTime","FlightNum","TailNum",
      "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
      "TaxiIn","TaxiOut","Cancelled","CancellationCode","Diverted",
      "CarrierDelay","WeatherDelay","NASDelay","SecurityDelay",
      "LateAircraftDelay","IsArrDelayed"],
   "ignore_const_cols":true,"res   ponse_column":"IsDepDelayed",
   "activation":"Rectifier","hidden":[200,200],"epochs":"100",
   "variable_importances":false,"balance_classes":false,
   "checkpoint":"","use_all_factor_levels":true,
   "train_samples_per_iteration":-2,"adaptive_rate":true,
   "input_dropout_ratio":0,"l1":0,"l2":0,"loss":"Automatic","score_interval":5,
   "score_training_samples":10000,"score_duty_cycle":0.1,"autoencoder":false,
   "overwrite_with_best_model":true,"target_ratio_comm_to_comp":0.02,
   "seed":6765686131094811000,"rho":0.99,"epsilon":1e-8,"max_w2":"Infinity",
   "initial_weight_distribution":"UniformAdaptive","classification_stop":0,
   "diagnostics":true,"fast_mode":true,"force_load_balance":true,
   "single_node_mode":false,"shuffle_training_data":false,"missing_values_handling":
   "MeanImputation","quiet_mode":false,"sparse":false,"col_major":false,
   "average_activation":0,"sparsity_beta":0,"max_categorical_features":2147483647,
   "reproducible":false,"export_weights_and_biases":false
}

Như bạn có thể thấy trong đoạn mã trên, chúng tôi chỉ định đào sâu để xây dựng mô hình với một số tham số được đặt thành các giá trị thích hợp như được chỉ định trong tài liệu về mô hình đào sâu. Khi bạn chạy câu lệnh này, sẽ mất nhiều thời gian hơn so với việc xây dựng mô hình GLM. Bạn sẽ thấy kết quả sau khi xây dựng mô hình hoàn thành, mặc dù với thời gian khác nhau.

Kiểm tra đầu ra của mô hình học sâu

Điều này tạo ra loại đầu ra, có thể được kiểm tra bằng cách sử dụng câu lệnh sau như trong trường hợp trước.

getModel "deeplearning_model"

Chúng tôi sẽ xem xét đầu ra đường cong ROC như hình dưới đây để tham khảo nhanh.

Giống như trong trường hợp trước, hãy mở rộng các tab khác nhau và nghiên cứu các kết quả đầu ra khác nhau.

Lưu mô hình

Sau khi bạn đã nghiên cứu đầu ra của các mô hình khác nhau, bạn quyết định sử dụng một trong những mô hình đó trong môi trường sản xuất của mình. H20 cho phép bạn lưu mô hình này dưới dạng POJO (Đối tượng Java cũ thuần túy).

Mở rộng thẻ cuối cùng PREVIEW POJO trong đầu ra và bạn sẽ thấy mã Java cho mô hình đã tinh chỉnh của mình. Sử dụng điều này trong môi trường sản xuất của bạn.

Tiếp theo, chúng ta sẽ tìm hiểu về một tính năng rất thú vị của H2O. Chúng ta sẽ học cách sử dụng AutoML để kiểm tra và xếp hạng các thuật toán khác nhau dựa trên hiệu suất của chúng.