0

Báo cáo đồ án Decision Tree Regression

17 4 0
  • Báo cáo đồ án Decision Tree Regression

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Tài liệu liên quan

Thông tin tài liệu

Ngày đăng: 15/01/2022, 14:58

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN □&□ Báo cáo đồ án Decision Tree Regression Giảng viên: Ts.Nguyễn Vinh Tiệp Thành viên nhóm: Lê Văn Nhân - 19521935 Trương Minh Tuấn - 19522485 Lê Dương Khánh Việt – 19522515 Tháng 11, năm 2021 LỜI CẢM ƠN Sau trình học tập rèn luyện Trường Đại học Công Nghệ Thông Tin, chúng em trang bị kiến thức bản, kỹ thực tế để hồn thành đồ án mơn học Chúng em xin gửi lời cảm ơn chân thành đến thầy TS Nguyễn Vinh Tiệp – Giảng viên phụ trách lớp CS116.M11 – Mơn Lập trình python cho Máy học tận tâm hướng dẫn, truyền đạt kiến thức kinh nghiệm cho chúng em suốt thời gian học tập Trong trình làm đồ án mơn học, nhóm chúng em cố gắng chắn không tránh sai sót khơng đáng có Mong nhận góp ý kinh nghiệm quý báu các thầy bạn sinh viên để hoàn thiện rút kinh nghiệm cho môn học sau Chúng em xin chân thành cảm ơn! TP.Hồ Chí Minh, tháng 12, năm 2021 MỤC LỤC I Giới thiệu toán a) Giới thiệu chung b) Cây định c) Các công đoạn khác mơ hình d) Ưu nhược điểm mơ hình e) Ví dụ đơn giản Decision Tree II Mục tiêu, ứng dụng mơ hình III So sánh với mơ hình hồi quy khác .8 IV Các đặc điểm Decision Tree Regression a) Entropy .8 b) Information Gain .9 c) Chỉ số Gini d) Điều kiện dừng 10 e) Pruning (cắt tỉa) 10 V Siêu tham số, tuning siêu tham số 10 VI Các thuật toán phổ biến 12 a) ID3 12 b) C4.5 13 c) Kết luận .13 VII Thực nghiệm 13 a) Giới thiệu liệu 13 b) Phân tích liệu 14 c) Huấn luyện mô hình 15 c) Điều chỉnh tham số 16 VIII Tài liệu tham khảo 17 I Giới thiệu toán a) Giới thiệu chung Cây định thuật toán dựa cấu trúc sử dụng để giải vấn đề hồi quy (Regression) phân loại (Classification), hữu ích cho liệu phức tạp Cây định thuộc mơ hình thuật tốn học có giảm sát (Supervised learning), hoạt động cách quan sát đặc điểm, tính đối tượng đào tạo mơ hình cấu trúc cây, chia nhỏ tập liệu thành tập ngày nhỏ sau đưa dự đốn liệu tương lai dựa tập Hình 1.1: Cấu trúc Decision Tree b) Cây định Cây định phân cấp có cấu trúc dùng để phân lớp đối tượng dựa vào dãy luật Các thuộc tính đối tượng thuộc kiểu liệu khác Nhị phân (Binary) , Định danh (Nominal), Thứ tự (Ordinal), Số lượng (Quantitative) thuộc tính phân lớp phải có kiểu liệu Binary Ordinal Nói chung, cho liệu đối tượng gồm thuộc tính với lớp (classes) nó, định sinh luật để dự đoán lớp liệu chưa biết Nhìn chung Decision Tree thường áp dụng vào toán: Phân loại (Classification) Hồi quy (Regression) Dạng phân loại kết thường rời rạc khơng có thứ tự (Ví dụ: mơ hình dự đốn thời tiết dự đốn có hay khơng mưa vào ngày cụ thể), dạng hồi quy liệu có vector đặc trưng bao gồm thuộc tính dạng categorical liên tục, có ý nghĩa (Ví dụ: mơ hình dự đốn lợi nhuận cho biết lợi nhuận tạo từ việc bán sản phẩm) Trong phạm vi đồ án nhóm em tập trung vào mơ hình hồi quy định (Decision Tree Regression) Hình 1.2: Ví dụ Decision Tree c) Các công đoạn khác mơ hình Về cốt lõi, định bao gồm phần:  Nút định: Đại diện cho định  Nút hội: Đại diện cho xác suất không chắn  Nút kết thúc: Đại diện cho kết Kết nối nút nhánh Các nút nhánh sử dụng lặp lặp lại với nhiều cách kết hợp khác để tạo có độ phức tạp khác Hình 1.3: Ví dụ kết nối nút nhánh Về chất, phân loại hay hồi quy hoạt động dựa theo mô hình Điểm khác chúng đầu Nếu mục tiêu dự đoán phân loại phân loại, cịn số thực hồi quy d) Ưu nhược điểm mơ hình Ưu điểm Decision Tree:  Cây định thuật toán đơn giản phổ biến Mơ hình sinh quy tắc dễ hiểu cho người đọc, tạo luật với nhánh luật Cây trực quan hóa  Dữ liệu cần chuẩn bị nhỏ Dữ liệu đầu vào là liệu trống, khơng cần chuẩn hóa tạo biến giả  Có thể làm việc với liệu số liệu phân loại  Có khả xử lý vấn đề yêu cầu đa đầu  Sử dụng mơ hình hộp màu trắng Nếu tình định quan sát mơ hình, lời giải thích cho điều kiện dễ dàng giải thích logic boolean  Có thể xác thực mơ hình cách sử dụng kiểm tra thống kê  Có khả việc với liệu lớn Nhược điểm Decision Tree:  Mơ hình định phụ thuộc lớn vào liệu bạn Thậm chí, với thay đổi nhỏ liệu, cấu trúc mơ hình định thay đổi hồn tồn  Mơ hình định trở thành thiên vị số lớp chiếm ưu Do đó, nên cân liệu trước fitting  Mơ hình định tạo phức tạp, khiến cho việc tổng quan hóa liệu không tốt Vấn đề gọi overfitting Để tránh vấn đề này, chế pruning, thiết lập số lượng mẫu tối thiểu nút thiết lập độ sâu tối đa cần thiết e) Ví dụ đơn giản Decision Tree Xét ví dụ đơn giản thơng qua mơ hình sau: Hình 1.4: Ví dụ minh họa Ở đây, tùy thuộc vào điều kiện mà ta định xem công việc thực tiếp theo, ta đến kết luận cuối Trọng tâm thể rõ ràng (ăn hay khơng ăn, ăn gì), khơng có thơng tin khơng liên quan khơng cần thiết, tránh trường hợp bị overfitting II Mục tiêu, ứng dụng mơ hình Từ ưu, nhược điểm kể trên, định trở thành công cụ mạnh mẽ phổ biến Chúng thường dùng phân tích dự đốn Chúng cơng cụ phổ biến cho máy học trí tuệ nhân tạo, sử dụng làm thuật toán đào tạo cho việc học có giám sát Nhìn chung, định sử dụng nhiều ngành công nghiệp khác (Công nghệ, y tế, tài chính), để giải nhiều vấn đề khác Ví dụ như:  Doanh nghiệp đánh giá hội mở rộng, phát triển dựa việc phân tích liệu bán hàng từ khứ  Công ty định chi tiêu cho ngân sách quảng cáo dựa sức mua khách hàng  Ngân hàng sử dụng liệu khách hàng cung cấp để dự đốn xem khách hàng tốn khoảng vay hay không III So sánh với mô hình hồi quy khác  Đối với Linear Regression: o Cây định hỗ trợ tính khơng tuyến tính, hồi quy tuyến tính chi hỗ trợ giải pháp tuyến tính o Khi có số lượng lớn feature với tập liệu(với độ nhiễu thấp), hồi quy tuyến tính tốt định Trong trường hợp chung, định có độ xác trung bình tốt o Đối với biến phân loại độc lập, định tốt so với hồi quy tuyến tính o Cây định xử lý cột tốt hồi quy tuyến tính  Đối với Logistic Regression: o Cây định xử lý cột tốt o Cây định suy tầm quan trọng tính năng, Logistic Regression có o Cây định tốt cho giá trị phân loại so với LR IV Các đặc điểm Decision Tree Regression a) Entropy Entropy dùng để đo tính tập liệu, thể mức độ hỗn loạn hay độ nhiễu liệu Entropy cao độ tinh khiết (purity) thấp tạp chất cao, dùng thuật toán ID3, C4.5 C5.0 Công thức cho Entropy: N S=−∑ pi lo g pi i=1 Trong pi xác suất trạng thái thứ i xuất hiện, S tập b) Information Gain Information Gain đại lượng dùng để đo tính hiệu thuộc tính lựa chọn cho việc phân lớp, yếu tố định thuộc tính nên chọn làm Root Node Công thức: Information Gain=E ( Y ) −E(Y ∨ X ) Để hiểu sâu ta làm ví dụ tìm Root Node cây: Có 30 người chung chung cư có ý định tập gym vào buổi chiều Giả sử có 16 người 14 người cịn lại khơng tập gym Chúng ta có thuộc tính định họ có đến tập gym hay khơng, bao gồm: Energy có hai giá trị high low, Motivation có hai giá trị low high Trước hết tính tốn entropy Energy: Sau ta có kết Information Gain là: Information Gain=E ( parent )−E ( parent|energy ) =0.99−0.62=0.37 Tương tự ta có kết Information Gain thuộc tính Motivation 0.13 Vì kết thuộc tính Energy lớn nên ta chọn Energy làm Root Node c) Chỉ số Gini Gini số thể mức độ phân loại sai ta chọn ngẫu nhiên phần tử từ tập data, sử dụng để đo lường mức độ bất bình đẳng phân phối lớp, tính cách lấy trừ tổng bình phương tỷ lệ phần trăm lớp Công thức Gini: C Gini=1−∑ p 21 i=1 Trong đó: i số lớp có tập data, pilà xác suất mà phần tử ngẫu nhiên thuộc lớp i Gini dùng biến rời rạc có số lượng trường hợp lớn có tốc độ tính tốn nhanh so với hàm Entropy nên sử dụng thuật toán CART thay cho Entropy d) Điều kiện dừng Để không xảy tượng khớp tiết kiệm chi phí tính tốn, dừng việc phân chia đạt điều kiện như:  Độ sâu chạm ngưỡng tối thiểu (sử dụng tham số max_depth để điều chỉnh độ sâu)  Số lượng mẫu tối thiểucho mot node đạt ngưỡng tối thiểu ( dùng tham số min_samples_split để điều chỉnh)  Node hoàn toàn thuộc nhóm Tức node phân chia hồn tồn tinh khiết (purity)  Số lượng node phân chia đạt ngưỡng  Số lượng node đạt ngưỡng Số lượng node nhiều mơ hình trở nên phức tạp e) Pruning (cắt tỉa) Pruning phương pháp giúp tránh bị overfitting Nó giúp cải thiện hiệu suất cách loại bỏ nút không quan trọng, loại bỏ nhánh có tầm quan trọng thấp Chủ yếu có cách để Pruning:  Pre-pruning: ta loại bỏ nút có tầm quan trọng thấp phát triển  Post-pruning: xây dựng đến độ sâu định, ta bắt đầu loại bỏ nút dựa ý nghĩa chúng V Siêu tham số, tuning siêu tham số Siêu tham số Decision Tree Regression bao gồm:  criterion: {“squared_error”, “friedman_mse”, “absolute_error”, “poisson”}, default = “squared_error”: có chức đo lường chất lượng lần tách (split) o “squared_error” cho sai số bình phương trung bình(mean squared error) với giảm phương sai làm tiêu chí lựa chọn tính giảm thiểu tổn thất L2 cách sử dụng giá trị trung bình nút đầu cuối o “Friedman_mse”, sử dụng sai số bình phương trung bình với điểm cải thiện Friedman cho tiềm phân chia o “absolute_error” cho sai số tuyệt đối trung bình, giảm thiểu tổn thất L1 cách sử dụng giá trị trung bình nút đầu cuối o “poisson” sử dụng giảm độ lệch Poisson để tìm phân tách  splitter: {“best”, “ramdom”} default = “best”: Chiến lược sử dụng để chọn phần tách từ nút o “best” để chọn phần tách tốt o “ramdom” để chọn phần tách ngẫu nhiên tốt  max_depth: int, default = None: Chiều sâu tối đa Nếu None, nút mở rộng tất thêm tất chứa số lượng min_samples_split Đối với mơ hình bị q khớp cần gia tăng max_depth (độ sâu) 10  min_samples_split: Số lượng mẫu tối thiểu cần thiết để tách nút nội Được sử dụng để tránh kích thước node nhỏ nhằm giảm thiểu tượng khớp o Nếu số nguyên, coi min_samples_split số nhỏ o Nếu số thực, min_samples_split phân số ceil (min_samples_split * n_samples) số lượng mẫu tối thiểu lần tách  min_weight_fraction_leaf: float, default = 0.0: Phần có trọng số tối thiểu tổng trọng số (của tất mẫu đầu vào) cần có nút Các mẫu có trọng lượng sample_weight không cung cấp  max_features: int, float {“auto”, “sqrt”, “log2”}, default = None: Số lượng tính cần xem xét tìm phân chia tốt lượt phân chia o Nếu int, xem xét số max_features tính lần phân chia o Nếu float, max_features phân số số nguyên tính (max_features * n_features) xem xét lần tách o Nếu “auto”, max_features = n_features o Nếu “sqrt”, max_features = sqrt(n_features) o Nếu “log2”, max_features = log2(n_features) o Nếu None, max_features = n_features  random_state: int, RamdomState instance None, default = None: Kiểm sốt tính ngẫu nhiên cơng cụ ước tính Các tính ln hoán vị ngẫu nhiên lần tách, splitter đặt “best” Khi max_features < n_features, thuật toán chọn max_features ngẫu nhiên lần tách trước tìm phần tách tốt số chúng Nhưng phân chia tốt tìm thấy khác lần chạy khác nhau, max_features = n_features Đó trường hợp, cải tiến tiêu chí giống hệt số phần tách phần tách phải chọn ngẫu nhiên Để có hành vi xác định điều chỉnh, random_state phải cố định thành số nguyên  max_leaf_nodes: int, default = None: Số lượng node tối đa định, dùng muốn kiểm soát tượng khớp Các nút tốt định nghĩa giảm tạp chất tương đối Nếu None khơng giới hạn số nút  min_impurity_decrease: float, default = 0.0: Một nút bị tách phân tách làm giảm tạp chất lớn giá trị này, sử dụng để tránh tượng khớp Phương trình giảm tạp chất có dạng: N_t / N * (impurity – N_t_R / N_t * right_impurity - N_t_L / N_t * left_imputiry) Trong 11 o N tổng số mẫu, N_t số mẫu nút tại, N_t_L số mẫu nút bên trái N_t_R số mẫu nút bên phải o N, N_t, N_t_R N_t_L tham chiếu đến tổng có trọng số, sample_weight thơng qua  ccp_alpha: non-negative float, default = 0.0: Tham số độ phức tạp dùng cho Minimal Cost-Complexity Pruning Cây có chi phí độ phức tạp lớn nhỏ ccp_alpha chọn Nếu default, khơng có thao tác cắt tỉa thực Những tham số sử dụng để tuning bao gồm: Criterion, splitter, max_depth, min_samples_split, min_samples_leaf, max_features, max_leaf_nodes, min_impurity_decrease, min_impurity_split VI Các thuật toán phổ biến a) ID3 Thuật toán ID3 (Iterative Dichotomiser 3) giải thuật lâu đời tạo Ross Quinlan nhằm xây dựng định phù hợp từ liệu, áp dụng cho tốn Phân loại (Classification) mà tất các thuộc tính để dạng category Thuật toán ID3 dùng Entropу function ᴠà Information gain để kiểm tra kết quả, tóm tắt bước làm ID3 sau:  Lấy tất thuộc tính chưa sử dụng đếm entropy liên quan đến mẫu thử thuộc tính  Chọn thuộc tính có entropy lớn  Nối node với thuộc tính b) C4.5 C4.5 thuật toán cải tiến so với ID3, phân lớp liệu dựa định, hiệu phổ biến ứng dụng khai phá sở liệu có kích thước nhỏ C4.5 xây dựng định từ tập training data tương tự ID3 có số ưu điểm như:  Sử dụng Gain Ratio (thay dùng Information Gain) để chọn thuộc tính phân chia q trình xây dựng  Xử lý tốt hai dạng thuộc tính: rời rạc, liên tục Xử lý liệu không đầy đủ (thiếu số giá trị số thuộc tính), thuộc tính - giá trị bị thiếu thay dấu hỏi (?) không xem xét tính tốn Gain Radio  Cắt tỉa sau hoàn thành việc xây dựng cây: Loại bỏ nhánh không quan trọng c) Kết luận Việc chọn thuật tốn để có hiệu phân lớp cao tùy thuộc vào nhiều yếu tố, cấu trúc liệu ảnh hưởng lớn đến kết thuật toán Chẳng hạn thuật toán ID3 CART (Classification And Regression 12 Tree) cho hiệu phân lớp cao trường liệu số (quantitative value) thuật tốn C4.5 có hiệu liệu Qualititive value (ordinal, Binary, nominal) VII Thực nghiệm a) Giới thiệu liệu Nhóm em sử dụng dataset Boston Housing cho ví dụ hồi quy Đây dataset phổ biến chứa thông tin nhà ngoại ô Boston Bộ liệu bao gồm 506 mẫu 14 thuộc tính, bao gồm:               CRIM: Tỷ lệ tội phạm theo thị trấn ZN: Tỷ lệ đất quy hoạch cho lô 25,000 feet vuông INDUS: Tỷ lệ diện tích kinh doanh phi bán lẻ thị trấn CHAS: Biến giả Charles River (= đường giới hạn sông, = ngược lại) NOX: Nồng độ oxit nitric RM: Số lượng phịng trung bình nhà AGE: Tỷ lệ hộ xây dựng trước năm 1940 DIS: Khoảng cách trọng số đến trung tâm việc làm Boston RAD: Chỉ số khả tiếp cận đường cao tốc hướng tâm TAX: Thuế suất tài sản toàn giá trị 10,000$ PTRATIO: Tỷ lệ học sinh - giáo viên theo thị trấn B: 1,000(Bk – 0.63)2, Bk tỷ lệ người Mỹ gốc Phi theo thị trấn LSTAT: Tỷ lệ dân số có mức sống thấp MEDV: giá trị trung bình ngơi nhà (đơn vị 1,000$) Link liệu: https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html b) Phân tích liệu Vì mục đích đơn giản dễ hình dung, chúng em sử dụng thuộc tính MEDV - giá trị trung bình ngơi nhà(đơn vị 1,000$), làm target LSTAT Tỷ lệ dân số có mức sống thấp, làm feature Đầu tiên, nhóm em import thư viện cần thiết, đồng thời load dataset từ sklearn 13 Tiếp theo, vẽ biểu đồ phân phối biến mục tiêu MEDV: Biểu đồ phân phối biến mục tiêu MEDV: Có thể thấy giá trị MEDV phân phối bình thường có giá trị ngoại lệ 14 c) Huấn luyện mơ hình Bộ liệu chia với tỷ lệ 8:2 Trong 80% dataset dùng để huấn luyện 20% dùng để đánh giá Nhóm em sử dụng mơ hình DecisionTreeRegressor thuộc thư viện scikit-learn để đào tạo hồi quy.Ở đây, chúng em sử dụng thơng số mặc định, ngồi max_depth = để vẽ đọc Tiếp theo, chúng em trực quan hóa mối quan hệ MEDV LSTAT hồi quy Nhìn vào biểu đồ, thấy định với độ sâu depth = nắm bắt xu hướng chung liệu c) Điều chỉnh tham số Ở đây, nhóm em điều chỉnh tham số GridSearchCV Chi tiết sau: 15 Sau điều chỉnh tham số, kết mơ hình khơng có khác biệt q lớn Mơ hình có kết tốt có tham số max_depth = 3, min_samples_leaf = 10 Trực quan hóa mơ sau: Source code nhóm: https://colab.research.google.com/drive/1uTxPK43WPWIhFDYMV3x9fPDzfhV9Mgv?usp=sharing 16 VIII Tài liệu tham khảo 1) https://towardsdatascience.com/https-medium-com-lorrli-classification-andregression-analysis-with-decision-trees-c43cdbc58054 2) https://trituenhantao.io/kien-thuc/decision-tree/ 3) https://scikitlearn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html 4) https://bigdatauni.com/tin-tuc/thuat-toan-cay-quyet-dinh-p-2-cart-giniindex.html 5) https://ichi.pro/vi/cay-quyet-dinh-22696944857751 6) https://lichgo.vn/cay-quyet-dinh-la-gi/ 7) https://cafedev.vn/tu-hoc-ml-hoi-quy-cay-quyet-dinh-su-dung-sklearn/ 8) https://www.geeksforgeeks.org/python-decision-tree-regression-using-sklearn/ 17 ... cho biết lợi nhuận tạo từ việc bán sản phẩm) Trong phạm vi đồ án nhóm em tập trung vào mơ hình hồi quy định (Decision Tree Regression) Hình 1.2: Ví dụ Decision Tree c) Các cơng đoạn khác mơ hình... https://towardsdatascience.com/https-medium-com-lorrli-classification-andregression-analysis-with -decision- trees-c43cdbc58054 2) https://trituenhantao.io/kien-thuc /decision- tree/ 3) https://scikitlearn.org/stable/modules/generated/sklearn .tree. DecisionTreeRegressor.html... e) Ví dụ đơn giản Decision Tree II Mục tiêu, ứng dụng mơ hình III So sánh với mơ hình hồi quy khác .8 IV Các đặc điểm Decision Tree Regression a)
- Xem thêm -

Xem thêm: Báo cáo đồ án Decision Tree Regression, Báo cáo đồ án Decision Tree Regression