1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

17 263 2

Đang tải... (xem toàn văn)

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 705,57 KB

Nội dung

Giới thiệu bài toána Giới thiệu chung Cây quyết định là một thuật toán dựa trên cấu trúc cây được sử dụng để giải quyết vấn đề hồi quy Regression hoặc phân loại Classification, và rất hữ

Trang 1

ĐẠ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

Trang 2

LỜI CẢM ƠN

Sau quá trình học tập và rèn luyện tại Trường Đại học Công Nghệ Thông Tin, chúng em đã được trang bị các kiến thức cơ bản, các kỹ năng thực tế để có thể hoàn thành đồ án môn học của mình

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 những kiến thức cũng như kinh nghiệm cho chúng em trong suốt thời gian học tập

Trong quá trình làm đồ án môn học, mặc dù nhóm chúng em đã cố gắng nhưng chắc chắn sẽ không tránh được những sai sót không đáng có Mong nhận được sự góp

ý cũng như kinh nghiệm quý báu của các các thầy và các bạn sinh viên để được hoàn thiện hơn và rút kinh nghiệm cho những 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

Trang 3

MỤC LỤC

I. Giới thiệu bài toán 3

a) Giới thiệu chung 3

b) Cây quyết định 4

c) Các công đoạn khác nhau của mô hình 5

d) Ưu và nhược điểm của mô hình 6

e) Ví dụ đơn giản về Decision Tree 6

II Mục tiêu, ứng dụng của mô hình 7

III So sánh với các mô hình hồi quy khác 8

IV Các đặc điểm trong Decision Tree Regression 8

a) Entropy 8

b) Information Gain 9

c) Chỉ số Gini 9

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 bộ dữ liệu 13

b) Phân tích dữ 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

Trang 4

I Giới thiệu bài toán

a) Giới thiệu chung

Cây quyết định là một thuật toán dựa trên cấu trúc cây được sử dụng để giải quyết vấn đề hồi quy (Regression) hoặc phân loại (Classification), và rất hữu ích cho các bộ dữ liệu phức tạp Cây quyết định thuộc mô hình thuật toán học có giảm sát (Supervised learning), nó hoạt động bằng cách quan sát các đặc điểm, tính năng của một đối tượng và đào tạo một mô hình trong cấu trúc của cây, chia nhỏ tập dữ liệu thành các tập con ngày càng nhỏ hơn và sau đó đưa ra các dự đoán dữ liệu trong tương lai dựa trên tập con

Hình 1.1: Cấu trúc của Decision Tree

b) Cây quyết định

Cây quyết định là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật Các thuộc tính của đối tượng có thể thuộc các kiểu dữ liệu khác nhau như Nhị phân (Binary) , Định danh (Nominal), Thứ tự (Ordinal), Số lượng (Quantitative) trong khi đó thuộc tính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal Nói chung, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các dữ liệu chưa biết

Nhìn chung Decision Tree thường áp dụng vào cả 2 bài toán: Phân loại

(Classification) và Hồi quy (Regression) Dạng phân loại kết quả thường là rời rạc và không có thứ tự (Ví dụ: mô hình dự đoán thời tiết dự đoán có hay không mưa vào một ngày cụ thể), dạng hồi quy thì dữ liệu có vector đặc trưng bao gồm cả thuộc tính dạng categorical và liên tục, có ý nghĩa (Ví dụ: một mô hình dự đoán lợi nhuận cho biết lợi nhuận có thể được tạo ra từ việc bán một sản phẩm)

Trong phạm vi đồ án này thì nhóm em sẽ tập trung vào mô hình hồi quy của cây quyết định (Decision Tree Regression)

Trang 5

Hình 1.2: Ví dụ về Decision Tree

c) Các công đoạn khác nhau của mô hình

Về cốt lõi, cây quyết định bao gồm 3 phần:

 Nút quyết định: Đại diện cho một quyết định

 Nút cơ hội: Đại diện cho xác suất hoặc sự không chắc chắn

 Nút kết thúc: Đại diện cho một kết quả

Kết nối các nút là các nhánh Các nút và nhánh có thể được sử dụng lặp đi lặp lại với nhiều cách kết hợp khác nhau để tạo ra cây có độ phức tạp khác nhau

Hình 1.3: Ví dụ về kết nối nút và nhánh

Trang 6

Về bản chất, cây phân loại hay cây hồi quy đều hoạt động dựa theo mô hình trên Điểm khác nhau giữa chúng là ở đầu ra Nếu mục tiêu dự đoán của cây là phân loại thì sẽ là cây phân loại, còn nếu là số thực thì sẽ là cây hồi quy

d) Ưu và nhược điểm của mô hình

Ưu điểm Decision Tree:

 Cây quyết định là một thuật toán đơn giản và phổ biến Mô hình sinh ra các quy tắc dễ hiểu cho người đọc, tạo ra bộ luật với mỗi nhánh lá là một luật của cây Cây có thể được trực quan hóa

 Dữ liệu cần chuẩn bị nhỏ Dữ liệu đầu vào có thể là là dữ liệu trống, không cần chuẩn hóa hoặc tạo biến giả

 Có thể làm việc với cả dữ liệu số và dữ liệu phân loại

 Có khả năng xử lý các vấn đề yêu cầu đa đầu ra

 Sử dụng mô hình hộp màu trắng Nếu một tình huống nhất định có thể quan sát được trong 1 mô hình, thì lời giải thích cho điều kiện đó dễ dàng được giải thích bằng logic boolean

 Có thể xác thực mô hình bằng cách sử dụng các kiểm tra thống kê

 Có khả năng là việc với dữ liệu lớn

Nhược điểm Decision Tree:

 Mô hình cây quyết định phụ thuộc rất lớn vào dữ liệu của bạn Thậm chí, với một sự thay đổi nhỏ trong bộ dữ liệu, cấu trúc mô hình cây quyết định có thể thay đổi hoàn toàn

 Mô hình cây quyết định có thể trở thành cây thiên vị nếu một số lớp chiếm ưu thế Do đó, nên cân bằng dữ liệu trước khi fitting

 Mô hình cây quyết định có thể tạo ra cây quá phức tạp, khiến cho việc tổng quan hóa dữ liệu không được tốt Vấn đề này gọi là overfitting Để tránh vấn đề này, các cơ chế như pruning, thiết lập số lượng mẫu tối thiểu tại một nút lá hoặc thiết lập độ sâu tối đa của cây là cần thiết

e) Ví dụ đơn giản về Decision Tree

Xét một ví dụ đơn giản thông qua mô hình sau:

Trang 7

Hình 1.4: Ví dụ minh họa

Ở đây, tùy thuộc vào các điều kiện mà ta sẽ quyết định xem công việc nào sẽ được thực hiện tiếp theo, cho đến khi ta đi đến kết luận cuối cùng Trọng tâm ở đây cũng được thể hiện rõ ràng (ăn hay không ăn, ăn cái gì), không có những thông tin không liên quan hoặc không cần thiết, tránh trường hợp cây bị overfitting

II Mục tiêu, ứng dụng của mô hình

Từ những ưu, nhược điểm kể trên, cây quyết định trở thành một công cụ mạnh

mẽ và phổ biến Chúng thường được dùng trong phân tích và dự đoán Chúng cũng là công cụ phổ biến cho máy học và trí tuệ nhân tạo, được 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, cây quyết định được sử dụng trong nhiều ngành công nghiệp khác nhau (Công nghệ, y tế, tài chính), để giải quyết nhiều vấn đề khác nhau Ví dụ như:

 Doanh nghiệp đánh giá cơ hội mở rộng, phát triển dựa trên việc phân tích dữ liệu bán hàng từ quá khứ

 Công ty quyết định chi tiêu cho ngân sách quảng cáo dựa trên sức mua của khách hàng

 Ngân hàng sử dụng dữ liệu khách hàng cung cấp để dự đoán xem khách hàng

đó có thể thanh toán khoảng vay hay không

III So sánh với các mô hình hồi quy khác

 Đối với Linear Regression:

Trang 8

o Cây quyết định hỗ trợ tính không tuyến tính, trong khi hồi quy tuyến

tính chi hỗ trợ giải pháp tuyến tính

o Khi có một số lượng lớn các feature với ít tập dữ liệu(với độ nhiễu

thấp), hồi quy tuyến tính có thể tốt hơn cây quyết định Trong các trường hợp chung, cây quyết định sẽ có độ chính xác trung bình tốt hơn

o Đối với các biến phân loại độc lập, cây quyết định tốt hơn so với hồi quy

tuyến tính

o Cây quyết định xử lý cột tốt hơn hồi quy tuyến tính.

 Đối với Logistic Regression:

o Cây quyết định xử lý cột tốt hơn.

o Cây quyết định không thể suy ra tầm quan trọng của tính năng, trong khi

Logistic Regression thì có

o Cây quyết định tốt hơn cho các giá trị phân loại so với LR.

IV Các đặc điểm trong Decision Tree Regression

a) Entropy

Entropy được dùng để đo tính thuần nhất của một tập dữ liệu, thể hiện mức độ hỗn loạn hay độ nhiễu của dữ liệu. Entropy càng cao thì độ tinh khiết (purity) càng thấp và tạp chất càng cao, được dùng trong các thuật toán ID3, C4.5 và C5.0

Công thức cho Entropy:

S=−

i=1

N

p i lo g2p i

Trong đó p i là xác suất trạng thái thứ i xuất hiện, S là tập con.

b) Information Gain

Information Gain là đại lượng dùng để đo tính hiệu quả của một thuộc tính được lựa chọn cho việc phân lớp, là yếu tố quyết định thuộc tính nào nên được chọn làm Root Node Công thức:

Information Gain=E (Y )−E(Y ∨ X )

Để hiểu sâu hơn thì ta làm một ví dụ tìm Root Node của cây:

Có 30 người ở chung một chung cư và có ý định đi tập gym vào buổi chiều nay Giả sử chỉ có 16 người đi và 14 người còn lại không đi tập gym Chúng ta có 2 thuộc tính quyết định họ có đi đến tập gym hay không, bao gồm: Energy có hai giá trị high và low, Motivation có hai giá trị low và high

Trước hết chúng ta tính toán entropy của Energy:

Trang 9

Sau đó ta có được kết quả của Information Gain là:

Information Gain=E ( parent )−E ( parent|energy)=0.99−0.62=0.37

Tương tự ta có kết quả Information Gain của thuộc tính Motivation là 0.13 Vì

kết quả của thuộc tính Energy lớn hơn nên ta sẽ chọn Energy làm Root Node

c) Chỉ số Gini

Gini là chỉ số thể hiện mức độ phân loại sai khi ta chọn ngẫu nhiên một phần tử

từ tập data, được sử dụng để đo lường mức độ bất bình đẳng trong phân phối của các lớp, được tính bằng cách lấy 1 trừ đi tổng bình phương tỷ lệ phần trăm ở mỗi lớp Công thức của Gini:

Gini=1−

i=1

C

p12

Trong đó: i là số các lớp có trong tập data, p ilà xác suất mà một phần tử ngẫu nhiên thuộc lớp i

Gini được dùng đối với các biến rời rạc có số lượng các trường hợp lớn vì nó

có tốc độ tính toán nhanh hơn so với hàm Entropy nên được sử dụng trong thuật toán CART thay cho Entropy

d) Điều kiện dừng

Để không xảy ra hiện tượng quá khớp và tiết kiệm chi phí khi tính toán, chúng

ta sẽ dừng việc phân chia của cây khi đạt điều kiện như:

 Độ sâu của cây chạm một 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 lá đạt ngưỡng tối thiểu ( dùng tham số min_samples_split để điều chỉnh)

Trang 10

 Node lá hoàn toàn thuộc về một nhóm duy nhất Tức là node phân chia hoàn toàn tinh khiết (purity)

 Số lượng các node phân chia đạt ngưỡng

 Số lượng các node lá đạt ngưỡng Số lượng node lá càng nhiều thì mô hình càng trở nên phức tạp

e) Pruning (cắt tỉa)

Pruning là một phương pháp giúp chúng ta tránh bị overfitting Nó giúp cải thiện hiệu suất của cây bằng cách loại bỏ các nút con không quan trọng, loại bỏ các nhánh có tầm quan trọng rất thấp

Chủ yếu có 2 cách để Pruning:

 Pre-pruning: ta loại bỏ một nút nếu nó có tầm quan trọng thấp trong khi phát triển cây

 Post-pruning: khi cây đã xây dựng đến độ sâu nhất định, ta bắt đầu loại bỏ các nút dựa trên ý nghĩa của chúng

V Siêu tham số, tuning siêu tham số

Siêu tham số của Decision Tree Regression bao gồm:

 criterion: {“squared_error”, “friedman_mse”, “absolute_error”, “poisson”},

default = “squared_error”: có chức năng đo lường chất lượng một lần tách (split)

o “squared_error” cho sai số bình phương trung bình(mean squared error) bằng với giảm phương sai làm tiêu chí lựa chọn tính năng và giảm thiểu tổn thất L2 bằng cách sử dụng giá trị trung bình của mỗi 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 của Friedman cho tiềm năng phân chia

o “absolute_error” cho sai số tuyệt đối trung bình, giảm thiểu tổn thất L1 bằng cách sử dụng giá trị trung bình của mỗi 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 được sử dụng để

chọn phần tách từ mỗi nút

o “best” để chọn phần tách tốt nhất

o “ramdom” để chọn phần tách ngẫu nhiên tốt nhất

 max_depth: int, default = None: Chiều sâu tối đa của cây Nếu là None, các nút

sẽ được mở rộng cho đến khi tất cả các lá được thêm hoặc cho đến khi tất cả

các lá chứa ít hơn số lượng min_samples_split Đối với mô hình bị quá khớp thì

chúng ta cần gia tăng max_depth (độ sâu)

Trang 11

 min_samples_split: Số lượng mẫu tối thiểu cần thiết để tách một nút nội bộ

Được sử dụng để tránh kích thước của node lá quá nhỏ nhằm giảm thiểu hiện tượng quá khớp

o Nếu là số nguyên, hãy coi min_samples_split là số nhỏ nhất.

o Nếu là số thực, min_samples_split là một phân số và ceil

(min_samples_split * n_samples) là số lượng mẫu tối thiểu mỗi lần tách.

 min_weight_fraction_leaf: float, default = 0.0: Phần có trọng số tối thiểu của

tổng trọng số (của tất cả các mẫu đầu vào) cần có ở một nút lá Các mẫu có

trọng lượng bằng nhau khi sample_weight không được cung cấp

 max_features: int, float hoặc {“auto”, “sqrt”, “log2”}, default = None: Số

lượng các tính năng cần xem xét khi tìm sự phân chia tốt nhất ở mỗi lượt phân chia

o Nếu là int, hãy xem xét số max_features tính năng tại mỗi lần phân chia.

o Nếu là float, max_features là một phân số và một số nguyên tính năng (max_features * n_features) được xem xét mỗi lần tách.

o Nếu là “auto”, max_features = n_features.

o Nếu là “sqrt”, max_features = sqrt(n_features).

o Nếu là “log2”, max_features = log2(n_features).

o Nếu là None, max_features = n_features.

 random_state: int, RamdomState instance hoặc None, default = None: Kiểm

soát tính ngẫu nhiên của công cụ ước tính Các tính năng luôn được hoán vị

ngẫu nhiên tại mỗi lần tách, ngay cả khi splitter được đặt là “best” Khi

max_features < n_features, thuật toán sẽ chọn max_features ngẫu nhiên tại mỗi

lần tách trước khi tìm ra phần tách tốt nhất trong số chúng Nhưng sự phân chia tốt nhất được tìm thấy có thể khác nhau mỗi các lần chạy khác nhau, ngay cả

khi max_features = n_features Đó là trường hợp, nếu sự cải tiến của tiêu chí

giống hệt nhau đối với một số phần tách và một phần tách phải được chọn ngẫu

nhiên Để có được một hành vi xác định trong khi điều chỉnh, random_state

phải được cố định thành một số nguyên

 max_leaf_nodes: int, default = None: Số lượng các node lá tối đa của cây

quyết định, được dùng khi muốn kiểm soát hiện tượng quá khớp Các nút tốt nhất được định nghĩa là giảm tạp chất tương đối Nếu None thì không giới hạn

số nút lá

 min_impurity_decrease: float, default = 0.0: Một nút sẽ bị tách nếu phân tách

làm giảm tạp chất lớn hơn hoặc bằng giá trị này, được sử dụng để tránh hiện tượng quá 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 đó

Trang 12

o N là tổng số mẫu, N_t là số mẫu tại nút hiện tại, N_t_L là số mẫu ở nút con bên trái và N_t_R là số mẫu ở nút con bên phải

o N, N_t, N_t_R và N_t_L đều tham chiếu đến tổng có trọng số, nếu sample_weight được thông qua

 ccp_alpha: non-negative float, default = 0.0: Tham số độ phức tạp được dùng

cho Minimal Cost-Complexity Pruning Cây con có chi phí độ phức tạp lớn

nhất nhỏ hơn ccp_alpha sẽ được chọn Nếu là default, không có thao tác cắt tỉa

nào được thực hiện

Những tham số có thể được 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) là giải thuật lâu đời được tạo ra bởi Ross Quinlan nhằm xây dựng cây quyết định phù hợp từ một bộ dữ liệu, áp dụng cho bài toán Phân loại (Classification) mà tất các 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ả, có thể tóm tắt các bước làm của ID3 như sau:

 Lấy tất cả các thuộc tính chưa được sử dụng và đếm entropy liên quan đến mẫu thử của các thuộc tính đó

 Chọn thuộc tính có entropy lớn nhất

 Nối node với thuộc tính đó

b) C4.5

C4.5 là thuật toán cải tiến hơn so với ID3, phân lớp dữ liệu dựa trên cây quyết định, hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ C4.5 xây dựng cây quyết định từ tập training data tương tự như ID3 và có một số ưu điểm như:

 Sử dụng Gain Ratio (thay vì dùng Information Gain) để chọn thuộc tính phân chia trong quá trình xây dựng cây

 Xử lý tốt cả hai dạng thuộc tính: rời rạc, liên tục Xử lý được những dữ liệu không đầy đủ (thiếu một số giá trị tại một số thuộc tính), các thuộc tính - giá trị

bị thiếu thay bằng dấu hỏi (?) và không được xem xét khi tính toán Gain Radio

 Cắt tỉa sau khi hoàn thành việc xây dựng cây: Loại bỏ những nhánh cây không quan trọng

c) Kết luận

Việc chọn thuật toán nào để có hiệu quả phân lớp cao tùy thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuật toán Chẳng hạn như thuật toán ID3 và CART (Classification And Regression

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

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Cấu trúc của DecisionTree - Báo cáo đồ án Decision Tree Regression
Hình 1.1 Cấu trúc của DecisionTree (Trang 4)
Hình 1.1: Cấu trúc của  Decision Tree - Báo cáo đồ án Decision Tree Regression
Hình 1.1 Cấu trúc của Decision Tree (Trang 4)
Hình 1.2: Ví dụ về DecisionTree - Báo cáo đồ án Decision Tree Regression
Hình 1.2 Ví dụ về DecisionTree (Trang 5)
c) Các công đoạn khác nhau của mô hình - Báo cáo đồ án Decision Tree Regression
c Các công đoạn khác nhau của mô hình (Trang 5)
Hình 1.3: Ví dụ về kết nối nút và nhánh - Báo cáo đồ án Decision Tree Regression
Hình 1.3 Ví dụ về kết nối nút và nhánh (Trang 5)
Hình 1.4: Ví dụ minh họa - Báo cáo đồ án Decision Tree Regression
Hình 1.4 Ví dụ minh họa (Trang 7)
Hình 1.4: Ví dụ minh họa - Báo cáo đồ án Decision Tree Regression
Hình 1.4 Ví dụ minh họa (Trang 7)
Nhóm em sử dụng mô hình DecisionTreeRegressor thuộc thư viện scikit-learn để đào tạo cây hồi quy.Ở đây, chúng em sử dụng các thông số mặc định, ngoài  - Báo cáo đồ án Decision Tree Regression
h óm em sử dụng mô hình DecisionTreeRegressor thuộc thư viện scikit-learn để đào tạo cây hồi quy.Ở đây, chúng em sử dụng các thông số mặc định, ngoài (Trang 15)
c) Huấn luyện mô hình - Báo cáo đồ án Decision Tree Regression
c Huấn luyện mô hình (Trang 15)
Trực quan hóa mô hình như sau: - Báo cáo đồ án Decision Tree Regression
r ực quan hóa mô hình như sau: (Trang 16)
Sau khi điều chỉnh tham số, kết quả của mô hình vẫn không có sự khác biệt quá lớn. Mô hình có kết quả tốt nhất có tham số là max_depth = 3, min_samples_leaf = 10. - Báo cáo đồ án Decision Tree Regression
au khi điều chỉnh tham số, kết quả của mô hình vẫn không có sự khác biệt quá lớn. Mô hình có kết quả tốt nhất có tham số là max_depth = 3, min_samples_leaf = 10 (Trang 16)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w