Cây quyết định
Trong chương này, chúng tôi sẽ chỉ cho bạn cách tạo ra "cây quyết định". Một cây quyết định là một biểu đồ dòng chảy và có thể giúp bạn đưa ra quyết định dựa trên kinh nghiệm trước đó.
Trong ví dụ, một người sẽ cố gắng quyết định xem anh ấy/cô ấy có nên tham dự một chương trình hài hay không.
May mắn thay, người ví dụ của chúng tôi đã đăng ký mỗi khi có một chương trình hài trong thị trấn, và đăng ký một số thông tin về diễn viên hài, và cũng đã đăng ký nếu anh ấy/cô ấy đi hay không.
Tuổi tác | Trải qua | Thứ hạng | Quốc tịch | Đi |
36 | 10 | 9 | Vương quốc Anh | KHÔNG |
42 | 12 | 4 | Hoa Kỳ | KHÔNG |
23 | 4 | 6 | Hoa Kỳ | KHÔNG |
52 | 4 | 4 | Hoa Kỳ | KHÔNG |
43 | 21 | 8 | Hoa Kỳ | N |
44 | 14 | 5 | Vương quốc Anh | KHÔNG |
66 | 3 | 7 | Hoa Kỳ | N |
35 | 14 | 9 | Vương quốc Anh | N |
52 | 13 | 7 | Hoa Kỳ | N |
35 | 5 | 9 | Hoa Kỳ | N |
24 | 3 | 5 | Hoa Kỳ | KHÔNG |
18 | 3 | 7 | Vương quốc Anh | N |
45 | 9 | 9 | Vương quốc Anh | N |
VÂNG
Bây giờ, dựa trên bộ dữ liệu này, Python có thể tạo ra một cây quyết định có thể được sử dụng để quyết định xem có bất kỳ chương trình mới nào có đáng để tham dự hay không.
Làm thế nào nó hoạt động?
Đầu tiên, đọc bộ dữ liệu với gấu trúc:
Thí dụ
Đọc và in tập dữ liệu:
nhập khẩu gấu trúc
df = pandas.read_csv ["data.csv"]
In [DF]
Chạy ví dụ »
Để làm một cây quyết định, tất cả dữ liệu phải là số.
Chúng ta phải chuyển đổi các cột phi số 'quốc tịch' và 'đi' thành các giá trị số.
{'UK': 0, 'USA': 1, 'N': 2}
Pandas có phương thức map[]
lấy từ điển với thông tin về cách chuyển đổi các giá trị.
Đầu tiên, đọc bộ dữ liệu với gấu trúc:
Thí dụ
Đọc và in tập dữ liệu:
df['Nationality'] =
df['Nationality'].map[d]
d = {'YES': 1, 'NO': 0}
df['Go'] = df['Go'].map[d]
print[df]
In [DF]
Chạy ví dụ »
Để làm một cây quyết định, tất cả dữ liệu phải là số.
Đầu tiên, đọc bộ dữ liệu với gấu trúc:
Thí dụ
Đọc và in tập dữ liệu:
nhập khẩu gấu trúc
y = df['Go']
df = pandas.read_csv ["data.csv"]
print[y]
In [DF]
Chạy ví dụ »
Đầu tiên, đọc bộ dữ liệu với gấu trúc:
Thí dụ
Đọc và in tập dữ liệu:
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
nhập khẩu gấu trúc
df = pandas.read_csv ["data.csv"]
df['Nationality'] = df['Nationality'].map[d]
d = {'YES': 1, 'NO': 0}
df['Go'] = df['Go'].map[d]
Đọc và in tập dữ liệu:
nhập khẩu gấu trúc
y = df['Go']
df = pandas.read_csv ["data.csv"]
dtree =
dtree.fit[X, y]
In [DF]
In [DF]
Chạy ví dụ »
Để làm một cây quyết định, tất cả dữ liệu phải là số.
Chúng ta phải chuyển đổi các cột phi số 'quốc tịch' và 'đi' thành các giá trị số.
Pandas có phương thức map[]
lấy từ điển với thông tin về cách chuyển đổi các giá trị.
Có nghĩa là chuyển đổi các giá trị 'uk' thành 0, 'usa' thành 1 và 'n' thành 2.
Thay đổi giá trị chuỗi thành các giá trị số:
d = {'uk': 0, 'usa': 1, 'n': 2} df ['quốc tịch'] = DF ['Quốc tịch']. ': 0} df [' go '] = df [' go ']. Map [d]
Sau đó, chúng ta phải tách các cột tính năng khỏi cột đích.
Các cột tính năng là các cột mà chúng tôi cố gắng dự đoán và cột đích là cột với các giá trị chúng tôi cố gắng dự đoán.
X
là các cột tính năng, y
là cột đích:
các tính năng = ['tuổi', 'kinh nghiệm', 'cấp bậc', 'quốc tịch']]]]
{'UK': 0, 'USA': 1, 'N': 2}
0
X = df [tính năng] y = df ['go']]
{'UK': 0, 'USA': 1, 'N': 2}
4
in [x] in [y]
Bây giờ chúng tôi có thể tạo cây quyết định thực tế, phù hợp với nó với các chi tiết của chúng tôi. Bắt đầu bằng cách nhập các mô -đun chúng tôi cần:
Tạo và hiển thị một cây quyết định:
Nhập pandasfrom sklearn nhập cây từ sklearn.Tree
d = {'uk': 0, 'usa': 1, 'n': 2} df ['quốc tịch'] = DF ['Quốc tịch']. ': 0} df [' go '] = df [' go ']. Map [d]
X = df [tính năng] y = df ['go']]
dtree = Ra quyết định [] dtree = dtree.fit [x, y]
cây.plot_tree [dtree, feature_names = tính năng]
Kết quả giải thích
Cây quyết định sử dụng các quyết định trước đây của bạn để tính toán tỷ lệ cược để bạn muốn đi xem một diễn viên hài hay không.
Chúng ta hãy đọc các khía cạnh khác nhau của cây quyết định: