Phân chia dữ liệu
Để đánh giá mô hình một cách đúng đắn, bạn có thể chia dữ liệu thành tập huấn luyện (train) và tập kiểm tra (test). Tập huấn luyện chứa dữ liệu dùng để xây dựng mô hình, còn tập kiểm tra dùng để đánh giá mô hình. Việc chia này được thực hiện ngẫu nhiên, nhưng khi tỷ lệ mục tiêu (target incidence) thấp, có thể cần phân tầng (stratify), tức là đảm bảo tập huấn luyện và tập kiểm tra có cùng tỷ lệ mục tiêu.
Trong bài tập này, bạn sẽ phân chia dữ liệu với phân tầng và kiểm tra rằng tập huấn luyện và tập kiểm tra có cùng tỷ lệ mục tiêu. Phương thức train_test_split đã được nhập, và các DataFrame X và y đã có sẵn trong không gian làm việc của bạn.
Bài tập này là một phần của khóa học
Nhập môn Phân tích Dự đoán với Python
Hướng dẫn bài tập
- Phân tầng các DataFrame này bằng phương thức
train_test_split. Đảm bảo tập huấn luyện và tập kiểm tra có kích thước bằng nhau và có cùng tỷ lệ mục tiêu. - Tính tỷ lệ mục tiêu của tập huấn luyện. Đây là số lượng mục tiêu trong tập huấn luyện chia cho số lượng quan sát trong tập huấn luyện.
- Tính tỷ lệ mục tiêu của tập kiểm tra.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Load the partitioning module
from sklearn.model_selection import train_test_split
# Create DataFrames with variables and target
X = basetable.drop("target", 1)
y = basetable["target"]
# Carry out 50-50 partititioning with stratification
X_train, X_test, y_train, y_test = ____(X, y, test_size = ____, stratify = ____)
# Create the final train and test basetables
train = pd.concat([X_train, y_train], axis=1)
test = pd.concat([X_test, y_test], axis=1)
# Check whether train and test have same percentage targets
print(round(sum(train[____])/len(____), 2))
print(round(sum(test[____])/len(____), 2))