Menu
×

Được chứng nhận

Ghi lại kiến ​​thức của bạn

Đăng nhập Đăng ký

Tạo Tài khoản Example.com.vn miễn phí để cải thiện trải nghiệm học tập của bạn

Người tìm đường và việc học của tôi

Theo dõi tiến độ học tập của bạn tại Example.com.vn và thu thập phần thưởng

Nâng cấp

Trở thành người dùng PLUS và mở khóa các tính năng mạnh mẽ (không có quảng cáo, lưu trữ, hỗ trợ, ..)

Bắt đầu từ đâu

Bạn không chắc chắn muốn bắt đầu từ đâu? Đi theo con đường được hướng dẫn của chúng tôi

Trình chỉnh sửa mã (Dùng thử)

Với trình chỉnh sửa mã trực tuyến của chúng tôi, bạn có thể chỉnh sửa mã và xem kết quả trong trình duyệt của mình

Video

Tìm hiểu những điều cơ bản về HTML qua video hướng dẫn thú vị và hấp dẫn

Mẫu

Chúng tôi đã tạo một loạt mẫu trang web đáp ứng mà bạn có thể sử dụng - miễn phí!

Web hosting

Lưu trữ trang web của riêng bạn và chia sẻ nó với mọi người với Example.com.vn Spaces

Tạo một máy chủ

Tạo máy chủ của riêng bạn bằng Python, PHP, React.js, Node.js, Java, C#, v.v.

Làm thế nào để

Bộ sưu tập lớn các đoạn mã cho HTML, CSS và JavaScript

Khung CSS

Xây dựng các trang web nhanh và phản hồi bằng cách sử dụng khung W3.CSS miễn phí của chúng tôi

Thống kê trình duyệt

Đọc xu hướng dài hạn của việc sử dụng trình duyệt

Tốc độ gõ

Kiểm tra tốc độ đánh máy của bạn

Đào tạo AWS

Tìm hiểu dịch vụ web của Amazon

Bộ chọn màu

Sử dụng công cụ chọn màu của chúng tôi để tìm các màu RGB, HEX và HSL khác nhau. Bánh xe màu hình tròn thể hiện sự chuyển màu trong quang phổ

Trò chơi mã

Trò chơi mã hóa W3Schools! Giúp linh miêu thu thập nón thông Logo Lynx

Đặt mục tiêu

Nhận hành trình học tập được cá nhân hóa dựa trên các kỹ năng và mục tiêu hiện tại của bạn

Bản tin

Tham gia bản tin của chúng tôi và có quyền truy cập vào nội dung độc quyền mỗi tháng

Việc làm

Thuê những tài năng công nghệ hàng đầu. Hợp lý hóa quy trình tuyển dụng của bạn để có đội ngũ phù hợp hoàn hảo

Lớp học

Hãy liên hệ để sử dụng Example.com.vn Plus và các chứng chỉ với tư cách là một tổ chức giáo dục

×
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP CÁCH W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS AN NINH MẠNG DỮ LIỆU KHOA HỌC

Hướng dẫn Python

Python TRANG CHỦ Python Giới thiệu Python Python Bắt đầu Cú pháp Python Bình luận Python Biến Python Các kiểu dữ liệu Python Số Python Python Casting Chuỗi Python Python Booleans Toán tử Python Danh sách Python Bộ dữ liệu Python Bộ Python Từ điển Python Python If...Else Python While Loops Python For Loops Hàm Python Python Lambda Python Mảng Python Lớp/Đối tượng Python Kế thừa Python Vòng lặp Python Đa hình Python Phạm vi Python Mô-đun Python Python Ngày tháng Toán học Python Python JSON Python RegEx Python PIP Python Thử...Ngoại trừ người dùng Python Nhập định dạng chuỗi Python

Xử lý tập tin

Xử lý tệp Python Python Đọc tệp Python Viết/Tạo tệp Python Xóa tệp

Mô-đun Python

Hướng dẫn NumPy Hướng dẫn Pandas Hướng dẫn SciPy Hướng dẫn Django

Python Matplotlib

Matplotlib Giới thiệu Matplotlib Bắt đầu Matplotlib Pyplot Matplotlib Vẽ đồ thị Matplotlib Dấu Matplotlib Dòng Matplotlib Nhãn Matplotlib Lưới Matplotlib Subplot Matplotlib Phân tán Thanh Matplotlib Matplotlib Biểu đồ Matplotlib Biểu đồ hình tròn

Học máy

Bắt đầu Chế độ trung bình trung bình Độ lệch chuẩn Phân vị phần trăm Phân phối dữ liệu Phân phối dữ liệu bình thường Phân tán Biểu đồ Hồi quy tuyến tính Hồi quy đa thức Đa hồi quy Thang đo Train/Test Cây quyết định Ma trận nhầm lẫn Phân cụm phân cấp Hồi quy logistic Tìm kiếm lưới Dữ liệu phân loại K-mean Bootstrap Tổng hợp Xác thực chéo AUC - ROC Curve K- hàng xóm gần nhất

Python MySQL

MySQL Bắt đầu MySQL Tạo cơ sở dữ liệu MySQL Tạo bảng MySQL Chèn MySQL Chọn MySQL Nơi MySQL Thứ tự theo MySQL Xóa MySQL Drop Table Cập nhật MySQL Giới hạn MySQL MySQL Tham gia

Python MongoDB

MongoDB Bắt đầu MongoDB Tạo DB Bộ sưu tập MongoDB MongoDB Chèn MongoDB Tìm Truy vấn MongoDB MongoDB Sắp xếp MongoDB Xóa Bộ sưu tập thả MongoDB Cập nhật MongoDB Giới hạn MongoDB

Tham khảo Python

Tổng quan về Python Các hàm dựng sẵn của Python Phương thức chuỗi Python Phương thức danh sách Python Phương thức từ điển Python Phương thức Tuple Python Phương thức Python Set Phương thức tệp Python Từ khóa Python Ngoại lệ Python Bảng thuật ngữ Python

Tham khảo mô-đun

Yêu cầu mô-đun ngẫu nhiên Mô-đun thống kê Mô-đun Toán học Mô-đun cMath

Python Cách thực hiện

Xóa danh sách trùng lặp Đảo ngược một chuỗi Thêm hai số

Ví dụ về Python

Ví dụ về Python Trình biên dịch Python Bài tập Python Bài kiểm tra Python Máy chủ Python Python Bootcamp Chứng chỉ Python

Học máy - Tổng hợp Bootstrap (Đóng gói)


Trên trang này, W3schools.com hợp tác với Học viện Khoa học Dữ liệu NYC để cung cấp nội dung đào tạo kỹ thuật số cho sinh viên của chúng tôi.


Đóng bao

Các phương pháp như Cây quyết định có thể dễ bị trang bị quá mức trên tập huấn luyện, dẫn đến dự đoán sai về dữ liệu mới.

Bootstrap Aggregation (đóng bao) là một phương pháp tập hợp nhằm giải quyết vấn đề trang bị quá mức cho các vấn đề phân loại hoặc hồi quy. Đóng bao nhằm mục đích cải thiện độ chính xác và hiệu suất của các thuật toán học máy. Nó thực hiện điều này bằng cách lấy các tập hợp con ngẫu nhiên của tập dữ liệu gốc, có thay thế và khớp với bộ phân loại (để phân loại) hoặc bộ hồi quy (để hồi quy) cho mỗi tập hợp con. Các dự đoán cho từng tập hợp con sau đó được tổng hợp thông qua phiếu bầu đa số để phân loại hoặc tính trung bình cho hồi quy, làm tăng độ chính xác của dự đoán.


Đánh giá một bộ phân loại cơ sở

Để xem việc đóng bao có thể cải thiện hiệu suất của mô hình như thế nào, chúng ta phải bắt đầu bằng cách đánh giá cách thức hoạt động của trình phân loại cơ sở trên tập dữ liệu. Nếu bạn không biết cây quyết định là gì, hãy xem lại bài học về cây quyết định trước khi tiếp tục, vì đóng bao là phần tiếp theo của khái niệm.

Chúng tôi sẽ tìm cách xác định các loại rượu khác nhau được tìm thấy trong bộ dữ liệu rượu của Sklearn.

Hãy bắt đầu bằng cách nhập các mô-đun cần thiết.

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.tree import DecisionTreeClassifier

Tiếp theo, chúng ta cần tải dữ liệu và lưu trữ vào X (tính năng đầu vào) và y (đích). Tham số as_frame được đặt bằng True để chúng ta không bị mất tên tính năng khi tải dữ liệu. (phiên bản sklearn cũ hơn 0,23 phải bỏ qua đối số as_frame vì nó không được hỗ trợ)

data = datasets.load_wine(as_frame = True)

X = data.data
y = data.target

Để đánh giá chính xác mô hình của chúng tôi trên dữ liệu chưa nhìn thấy, chúng tôi cần chia X và y thành các tập huấn luyện và kiểm tra. Để biết thông tin về việc chia nhỏ dữ liệu, hãy xem bài Đào tạo/Kiểm tra.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 22)

Với dữ liệu đã được chuẩn bị, giờ đây chúng tôi có thể khởi tạo trình phân loại cơ sở và điều chỉnh nó phù hợp với dữ liệu huấn luyện.

dtree = DecisionTreeClassifier(random_state = 22)
dtree.fit(X_train,y_train)

Kết quả:

DecisionTreeClassifier(random_state=22)

Bây giờ chúng ta có thể dự đoán loại rượu qua tập kiểm tra chưa được nhìn thấy và đánh giá hiệu suất của mô hình.

y_pred = dtree.predict(X_test)

print("Train data accuracy:",accuracy_score(y_true = y_train, y_pred = dtree.predict(X_train)))
print("Test data accuracy:",accuracy_score(y_true = y_test, y_pred = y_pred))

Kết quả:

Train data accuracy: 1.0
Test data accuracy: 0.8222222222222222

Ví dụ

Nhập dữ liệu cần thiết và đánh giá hiệu suất phân loại cơ sở.

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.tree import DecisionTreeClassifier

data = datasets.load_wine(as_frame = True)

X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 22)

dtree = DecisionTreeClassifier(random_state = 22)
dtree.fit(X_train,y_train)

y_pred = dtree.predict(X_test)

print("Train data accuracy:",accuracy_score(y_true = y_train, y_pred = dtree.predict(X_train)))
print("Test data accuracy:",accuracy_score(y_true = y_test, y_pred = y_pred))
Chạy ví dụ »

Trình phân loại cơ sở hoạt động khá tốt trên tập dữ liệu đạt độ chính xác 82% trên tập dữ liệu thử nghiệm với các tham số hiện tại (Các kết quả khác nhau có thể xảy ra nếu bạn không đặt tham số random_state ).

Bây giờ chúng ta đã có độ chính xác cơ bản cho tập dữ liệu thử nghiệm, chúng ta có thể thấy Trình phân loại đóng bao thực hiện một Trình phân loại cây quyết định duy nhất như thế nào.


QUẢNG CÁO


Tạo một bộ phân loại đóng bao

Để đóng bao, chúng ta cần đặt tham số n_estimators, đây là số lượng bộ phân loại cơ sở mà mô hình của chúng ta sẽ tổng hợp lại với nhau.

Đối với tập dữ liệu mẫu này, số lượng ước tính tương đối thấp, thường xảy ra trường hợp khám phá phạm vi lớn hơn nhiều. Việc điều chỉnh siêu tham số thường được thực hiện bằng tìm kiếm dạng lưới , nhưng hiện tại, chúng tôi sẽ sử dụng một bộ giá trị được chọn cho số lượng công cụ ước tính.

Chúng tôi bắt đầu bằng cách nhập mô hình cần thiết.

from sklearn.ensemble import BaggingClassifier

Bây giờ, hãy tạo một phạm vi giá trị đại diện cho số lượng công cụ ước tính mà chúng tôi muốn sử dụng trong mỗi tập hợp.

estimator_range = [2,4,6,8,10,12,14,16]

Để xem Trình phân loại đóng bao hoạt động như thế nào với các giá trị khác nhau của n_estimators, chúng ta cần một cách lặp lại trong phạm vi giá trị và lưu trữ kết quả từ mỗi nhóm. Để làm điều này, chúng ta sẽ tạo một vòng lặp for, lưu trữ các mô hình và điểm số trong các danh sách riêng biệt để hiển thị sau này.

Lưu ý: Tham số mặc định cho trình phân loại cơ sở trong BaggingClassifierDicisionTreeClassifier do đó chúng ta không cần đặt tham số này khi khởi tạo mô hình đóng bao.

models = []
scores = []

for n_estimators in estimator_range:

# Create bagging classifier
clf = BaggingClassifier(n_estimators = n_estimators, random_state = 22)

# Fit the model
clf.fit(X_train, y_train)

# Append the model and score to their respective list
models.append(clf)
scores.append(accuracy_score(y_true = y_test, y_pred = clf.predict(X_test)))

Với các mô hình và điểm số được lưu trữ, giờ đây chúng ta có thể hình dung được sự cải thiện về hiệu suất của mô hình.

import matplotlib.pyplot as plt

# Generate the plot of scores against number of estimators
plt.figure(figsize=(9,6))
plt.plot(estimator_range, scores)

# Adjust labels and font (to make visable)
plt.xlabel("n_estimators", fontsize = 18)
plt.ylabel("score", fontsize = 18)
plt.tick_params(labelsize = 16)

# Visualize plot
plt.show()

Ví dụ

Nhập dữ liệu cần thiết và đánh giá hiệu suất BaggingClassifier .

import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.ensemble import BaggingClassifier

data = datasets.load_wine(as_frame = True)

X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 22)

estimator_range = [2,4,6,8,10,12,14,16]

models = []
scores = []

for n_estimators in estimator_range:

    # Create bagging classifier
    clf = BaggingClassifier(n_estimators = n_estimators, random_state = 22)

    # Fit the model
    clf.fit(X_train, y_train)

    # Append the model and score to their respective list
    models.append(clf)
    scores.append(accuracy_score(y_true = y_test, y_pred = clf.predict(X_test)))

# Generate the plot of scores against number of estimators
plt.figure(figsize=(9,6))
plt.plot(estimator_range, scores)

# Adjust labels and font (to make visable)
plt.xlabel("n_estimators", fontsize = 18)
plt.ylabel("score", fontsize = 18)
plt.tick_params(labelsize = 16)

# Visualize plot
plt.show()

Kết quả

Chạy ví dụ »

Kết quả được giải thích

Bằng cách lặp qua các giá trị khác nhau cho số lượng công cụ ước tính, chúng ta có thể thấy hiệu suất mô hình tăng từ 82,2% lên 95,5%. Sau 14 công cụ ước tính, độ chính xác bắt đầu giảm, một lần nữa nếu bạn đặt random_state khác thì các giá trị bạn thấy sẽ thay đổi. Đó là lý do tại sao cách tốt nhất là sử dụng xác thực chéo để đảm bảo kết quả ổn định.

Trong trường hợp này, chúng tôi thấy độ chính xác tăng 13,3% khi xác định loại rượu.


Một hình thức đánh giá khác

Khi bootstrapping chọn các tập hợp con quan sát ngẫu nhiên để tạo các bộ phân loại, có những quan sát bị loại bỏ trong quá trình lựa chọn. Sau đó, những quan sát "ngoài túi" này có thể được sử dụng để đánh giá mô hình, tương tự như mô hình của bộ thử nghiệm. Hãy nhớ rằng ước tính tự dùng đó có thể đánh giá quá cao lỗi trong các vấn đề phân loại nhị phân và chỉ nên được sử dụng như một sự bổ sung cho các số liệu khác.

Chúng ta đã thấy trong bài tập trước rằng 12 công cụ ước tính mang lại độ chính xác cao nhất, vì vậy chúng ta sẽ sử dụng công cụ đó để tạo mô hình của mình. Lần này, đặt tham số oob_score thành true để đánh giá mô hình với điểm sẵn có.

Ví dụ

Tạo một mô hình với số liệu sẵn có.

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.ensemble import BaggingClassifier

data = datasets.load_wine(as_frame = True)

X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 22)

oob_model = BaggingClassifier(n_estimators = 12, oob_score = True,random_state = 22)

oob_model.fit(X_train, y_train)

print(oob_model.oob_score_)
Chạy ví dụ »

Vì các mẫu được sử dụng trong OOB và bộ kiểm tra là khác nhau và tập dữ liệu tương đối nhỏ nên có sự khác biệt về độ chính xác. Rất hiếm khi chúng giống hệt nhau, một lần nữa OOB nên được sử dụng là phương tiện nhanh chóng để ước tính lỗi nhưng không phải là thước đo đánh giá duy nhất.


Tạo cây quyết định từ phân loại đóng bao

Như đã thấy trong bài học Cây quyết định , có thể vẽ đồ thị cây quyết định mà mô hình đã tạo. Cũng có thể xem các cây quyết định riêng lẻ được đưa vào bộ phân loại tổng hợp. Điều này giúp chúng tôi hiểu rõ hơn về cách mô hình đóng bao đạt được dự đoán của nó.

Lưu ý: Tính năng này chỉ hoạt động với các tập dữ liệu nhỏ hơn, trong đó các cây tương đối nông và hẹp giúp dễ hình dung.

Chúng ta sẽ cần nhập plot_tree từ sklearn.tree . Các cây khác nhau có thể được vẽ biểu đồ bằng cách thay đổi công cụ ước tính mà bạn muốn hình dung.

Ví dụ

Tạo cây quyết định từ phân loại đóng bao

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.ensemble import BaggingClassifier
from sklearn.tree import plot_tree

X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 22)

clf = BaggingClassifier(n_estimators = 12, oob_score = True,random_state = 22)

clf.fit(X_train, y_train)

plt.figure(figsize=(30, 20))

plot_tree(clf.estimators_[0], feature_names = X.columns)

Kết quả

Chạy ví dụ »

Ở đây chúng ta chỉ có thể thấy cây quyết định đầu tiên được sử dụng để bỏ phiếu cho dự đoán cuối cùng. Một lần nữa, bằng cách thay đổi chỉ mục của bộ phân loại, bạn có thể thấy từng cây đã được tổng hợp.


×

Liên hệ bán hàng

Nếu bạn muốn sử dụng dịch vụ của Example.com.vn với tư cách là một tổ chức giáo dục, nhóm hoặc doanh nghiệp, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Báo cáo lỗi

Nếu bạn muốn báo cáo lỗi hoặc nếu bạn muốn đưa ra đề xuất, hãy gửi email cho chúng tôi:
[email được bảo vệ]

Example.com.vn được tối ưu hóa cho việc học tập và đào tạo. Các ví dụ có thể được đơn giản hóa để cải thiện khả năng đọc và học. Các hướng dẫn, tài liệu tham khảo và ví dụ liên tục được xem xét để tránh sai sót, nhưng chúng tôi không thể đảm bảo tính chính xác hoàn toàn của mọi nội dung. Khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng , chính sách cookie và quyền riêng tư của chúng tôi.

Bản quyền 1999-2024 của Refsnes Data. Đã đăng ký Bản quyền. Example.com.vn được cung cấp bởi W3.CSS .