Thắc mắc về việc tao test set (stratified sampling)

machine-learning

#1

Dạ em đang có một số thắc mắc khi đọc tới một phần trong cuốn Hands-On Machine Learning with Scikit-Learn and TensorFlow ạ (Part I > Chapter 2 > Get the Data > Create a Test Set) Đầu tiên, dữ liệu train là housing như thế này ạ

image

Một số dòng đầu của dữ liệu

Plot từng cột ra thì được như thế này ạ

Với trục hoành (ngang) là trục giá trị, còn trục tung (đứng) là số lượng. Việc tao train set với test set thì sách hướng dẫn là thông thường lấy 80% train, 20% test. Mình chỉ cần shuffle cái dữ liệu lên rồi lấy index tới range 80% cho train set, còn test set là phần còn lại (purely random sampling methods). Sau đó sách có lấy ví dụ nguyên văn như sau ạ

When a survey company decides to call 1,000 people to ask them a few questions, they don’t just pick 1,000 people randomly in a phone booth. They try to ensure that these 1,000 people are representative of the whole population. For example, the US population is com‐ posed of 51.3% female and 48.7% male, so a well-conducted survey in the US would try to maintain this ratio in the sample: 513 female and 487 male. This is called strati‐ fed sampling: the population is divided into homogeneous subgroups called strata, and the right number of instances is sampled from each stratum to guarantee that the test set is representative of the overall population. If they used purely random sam‐ pling, there would be about 12% chance of sampling a skewed test set with either less than 49% female or more than 54% female. Either way, the survey results would be significantly biased.

Đại ý ở đây em hiểu là việc random chọn ra test set như thế thì cái set đôi lúc không có khả năng thể hiện hết toàn bộ dữ liệu Cho tới đoạn tiếp theo là em không hiểu cái Histogram ở đâu ra và cụ thể income category ở đây có nghĩa là gì (em chưa thấy nó liên quan lắm tới cái ví dụ vừa dẫn ở trên).

Em cám ơn ạ


#2

Chào bạn, Mình đóng góp vài suy nghĩ thế này, dựa trên thông tin bạn cung cấp (do mình không có cuốn sách). Mình sẽ ghi 1 số từ với từ khóa tiếng Anh vì mình không biết chắc chắn từ tiếng Việt tương đương chính xác.

Cuốn sách đưa ví dụ về bài toán dự đoán giá nhà (predict median housing prices) dựa trên các thuộc tính (features) cho sẵn. Một trong bước quan trọng là tạo bộ dữ liệu huấn luyện (test set) có khả năng “đại diện” (representative) cho 1 phân bố lớn (the overall population) ta đang nghiên cứu.

Tác giả có đưa ra 1 ví dụ khác về lấy mẫu stratified để người đọc dễ hình dung “For example, the US population is com‐ posed of 51.3% female and 48.7% male, so a well-conducted survey in the US would try to maintain this ratio in the sample: 513 female and 487 male”. Đúng như bạn đã hiểu cho trường hợp trên, thì tương tự, ta cũng sẽ lấy mẫu stratified cho bài toán dự đoán giá nhà. Câu hỏi đặt ra là ta nên lấy mẫu theo feature nào? Theo feature mang thông tin quan trọng cho giá nhà, ở bài toán này là “the median income is a very important attribute to predict median housing prices”.

Stratified sampling theo thuộc tính “median income” sẽ được thực hiện trên “nhóm income” (income category) chứ không thực hiện trên giá trị “median income”. Lý do là vì income là 1 số thực dương liên tục, nên ta phải chia nhóm income, như bạn thấy mô tả ở hình 2.9. Hình 2.10 cho ta thấy cách lấy mẫu stratified như trên đại diện “representative” khá tốt cho toàn dữ liệu (the whole population) vì strat. %error hiện thị giá trị rất nhỏ, chấp nhận được.

Mong câu trả lời giúp ích cho bạn.


#3

À, em hiểu ra rồi ạ :grinning: ra là vậy. Dạ em cám ơn nhiều ạ. Trong ví dụ dẫn nó phân strat theo giới tính, còn với bài này thì ông “expert” bảo là median_income quan trọng cho việc predict nên mình phân strat theo cái feature đó.


#4

Sau khi dịch xong có khá nhiều điều chưa rõ được