HomeLập trìnhPythonLấy mẫu ngẫu...

Lấy mẫu ngẫu nhiên phân tầng là gì? Định nghĩa và ví dụ về Python


Khi chúng tôi muốn tiến hành một thử nghiệm trên dân số – ví dụ: toàn bộ dân số của một quốc gia – không phải lúc nào cũng thực tế hoặc thực tế để đưa mọi đối tượng (công dân) vào thử nghiệm.

Thay vào đó, chúng tôi dựa vào một mẫu, là một tập hợp con của tổng thể, sau đó đưa ra kết luận về tổng thể dựa trên kết quả của mẫu.

Giờ đây, việc lấy một mẫu từ dân số được gọi là kỹ thuật lấy mẫu và cách lấy mẫu là điều cần thiết cho kết quả.

Có rất nhiều kỹ thuật lấy mẫu, nhưng trong hướng dẫn này, chúng ta sẽ xem xét một trong số chúng được gọi là lấy mẫu ngẫu nhiên phân tầng và cách thức hoạt động của nó. Không chần chừ nữa, chúng ta hãy bắt đầu.

Lấy mẫu ngẫu nhiên phân tầng là gì?

Trước khi đi vào chi tiết về lấy mẫu ngẫu nhiên phân tầng, chúng ta hãy chia nhỏ thuật ngữ này thành từng phần nhỏ để chúng ta có thể nắm bắt nó tốt hơn. Hãy bắt đầu với phân tầng.

Trong bối cảnh lấy mẫu, phân tầng có nghĩa là chia dân số thành các nhóm hoặc tầng lớp nhỏ hơn dựa trên một đặc điểm. Nói cách khác, bạn chia dân số thành các nhóm dựa trên các đặc điểm của chúng.

Ngẫu nhiên lấy mẫu đòi hỏi phải chọn ngẫu nhiên các đối tượng (thực thể) từ dân số. Mỗi đối tượng có xác suất như nhau được chọn từ dân số để tạo thành một mẫu (quần thể con) của tổng thể.

Vì vậy, do đó, lấy mẫu ngẫu nhiên phân tầng là một phương pháp lấy mẫu trong đó dân số được tách thành các nhóm hoặc tầng tùy thuộc vào một đặc điểm cụ thể. Sau đó, các đối tượng từ mỗi tầng (số ít của các tầng) được lấy mẫu ngẫu nhiên.

Bạn chia dân số thành các nhóm dựa trên một đặc điểm và sau đó chọn ngẫu nhiên một chủ thể hoặc thực thể từ mỗi nhóm.

Đọc thêm  Nhận xét nhiều dòng trong Python – Cách nhận xét nhiều dòng trong Python

Các loại lấy mẫu ngẫu nhiên phân tầng

Lấy mẫu phân tầng được chia thành hai loại, đó là:

  • Lấy mẫu ngẫu nhiên phân tầng theo tỷ lệ.
  • Lấy mẫu ngẫu nhiên phân tầng không cân xứng.

Lấy mẫu ngẫu nhiên phân tầng theo tỷ lệ là một loại lấy mẫu trong đó kích thước của mẫu ngẫu nhiên thu được từ mỗi tầng tỷ lệ thuận với kích thước của tổng thể của toàn bộ tầng.

Nói cách khác, tỷ lệ của toàn bộ tầng bằng tỷ lệ của tầng mẫu. Hãy xem xét ví dụ sau:

students = {
    
    "Name": ["Ibrahim", "Ganiyat", "Joel", "Elijah", "Yusuf", "Nurain", 
            "Dayo", "David", "Olu", "Tobi"],
    
    "ID":  ['001', '002', '003', '004', '005', '006','007', '008', '009', '010'],
    
    "Grade": ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'A', 'B', 'A'],
    
    "Category": [1, 2, 2, 1, 3, 3, 1, 2, 3, 3]
}
df = pd.DataFrame(students)
>>
hinh-35

Khung dữ liệu trên chứa tên, ID, điểm và danh mục của sinh viên. Giả sử chúng ta muốn phân tầng học sinh dựa trên đặc điểm lớp của họ và lấy mẫu 60% học sinh từ mỗi nhóm. Điều đó có nghĩa là chúng tôi sẽ có ba tầng trong khung dữ liệu trên, bởi vì chúng tôi có ba lớp khác nhau.

Chúng ta có thể lấy mẫu bằng cách gõ như sau:

df_sample = df.groupby("Grade", group_keys=False).apply(lambda x:x.sample(frac=0.6))

Bây giờ những gì chúng tôi đã làm ở trên là nhóm khung dữ liệu thành các tầng khác nhau bằng cách sử dụng groupby() phương pháp. Sau đó, chúng tôi vượt qua trong Grade tính năng. Đối với mỗi nhóm (tầng) chúng tôi lấy mẫu ngẫu nhiên 0.6(60%) của sự quan sát từ nó.

hình ảnh-36

Bây giờ nếu chúng ta nhìn vào tỷ lệ cho df_sampledfchúng ta sẽ thấy rằng tỷ lệ cho cả hai khung dữ liệu là như nhau.

hình ảnh-37

Lấy mẫu ngẫu nhiên phân tầng không cân xứngmặt khác, liên quan đến việc lựa chọn ngẫu nhiên các tầng mà không quan tâm đến tỷ lệ. Nói cách khác, việc lấy mẫu được thực hiện dựa trên một con số xác định. Hãy xem một ví dụ.

df.groupby('Grade', group_keys=False).apply(lambda x: x.sample(n=2))

Trong mã này, bạn có thể thấy rằng chúng tôi chỉ chỉ định số lượng mẫu thực tế mà chúng tôi muốn đạt được.

hình ảnh-38

Hầu hết thời gian, bạn sẽ sử dụng lấy mẫu phân tầng theo tỷ lệ. Không cân xứng đòi hỏi nhiều kiến ​​thức chuyên môn hơn. Khi thực hiện lấy mẫu phân tầng, rất có thể bạn sẽ sử dụng lấy mẫu theo tỷ lệ.

Đọc thêm  Cách xây dựng API JSON bằng Python

Ứng dụng lấy mẫu ngẫu nhiên phân tầng

1. Lấy mẫu dựa trên đặc điểm chung:

Khi một hoặc nhiều đối tượng trong một thử nghiệm chia sẻ các đặc điểm, điều đó cho thấy họ là thành viên của cùng một nhóm (một đối tượng chỉ có thể thuộc một nhóm cụ thể).

Ví dụ: giả sử 50 sinh viên làm bài kiểm tra và phạm vi điểm cho bài kiểm tra chỉ là AE. Vì vậy, chúng ta có thể có những học sinh trong cùng một nhóm lớp, chẳng hạn như những học sinh được điểm A (và không thể có một học sinh có hai điểm). Kết quả là, chúng có chung đặc điểm hoặc tính năng, đó là cấp độ.

Vì vậy, khi bạn muốn lấy mẫu các đối tượng dựa trên các đặc điểm chung, bạn nên sử dụng lấy mẫu ngẫu nhiên phân tầng. Điều này đảm bảo rằng một thành viên của một nhóm cụ thể sẽ được đưa vào.

Điều này là do lấy mẫu ngẫu nhiên phân tầng khác với lấy mẫu ngẫu nhiên đơn giản, đây cũng là một kỹ thuật lấy mẫu. Lấy mẫu ngẫu nhiên phân tầng lấy mẫu ngẫu nhiên trong tổng thể không có đặc điểm nào (nghĩa là mỗi đối tượng trong tổng thể đều có cơ hội được chọn như nhau).

Kết quả là, lấy mẫu ngẫu nhiên đơn giản không thể đảm bảo rằng một thành viên nhất định của một nhóm cụ thể sẽ được đưa vào mẫu.

Hãy xem một ví dụ để xem những gì chúng ta đang nói về. Giả sử chúng ta muốn lấy mẫu 60% sinh viên bằng cách sử dụng cả lấy mẫu ngẫu nhiên phân tầng và lấy mẫu đơn giản.

Chúng ta có thể xem kết quả lấy mẫu ngẫu nhiên phân tầng dưới đây:

df.groupby('Grade', group_keys=False).apply(lambda x: x.sample(frac=0.6))
hình ảnh-39

Và đây là kết quả của việc lấy mẫu ngẫu nhiên đơn giản:

df.sample(frac= 0.6)
hinh-40

Chúng ta có thể thấy rằng những sinh viên có điểm C không được đưa vào mẫu. Điều này là do trong lấy mẫu ngẫu nhiên đơn giản, mọi quan sát đều có cơ hội được chọn như nhau vì chúng tôi không lấy mẫu dựa trên các đặc điểm. Điều này có nghĩa là có khả năng một quan sát sẽ không được chọn.

Đọc thêm  Nguyên tắc cơ bản về Python cho Khoa học dữ liệu

Mặt khác, trong lấy mẫu ngẫu nhiên phân tầng, chúng tôi xem xét tất cả các nhóm chúng tôi muốn lấy mẫu và sau đó lấy mẫu ngẫu nhiên từ mỗi nhóm.

2. Bộ dữ liệu không cân bằng:

Tập dữ liệu không cân bằng là một vấn đề phân loại học máy trong đó hai nhãn lớp trong biến mục tiêu không tỷ lệ với nhau. Nói cách khác, một lớp có số lượng cao hơn lớp kia, dẫn đến sự mất cân bằng.

Trong học máy, lấy mẫu phân tầng cũng được sử dụng để có được tỷ lệ mẫu giống nhau cho tập huấn luyện và tập kiểm tra nếu có sự mất cân bằng trong tập dữ liệu.

Ví dụ: tập dữ liệu bệnh mãn tính có nhãn mất cân bằng như bên dưới. Bạn có thể nhấp vào đây để tải xuống bộ dữ liệu.

df = pd.read_csv("kidney_disease.csv")
df.head()
hinh-41

Nếu chúng tôi kiểm tra tính năng nhãn tỷ lệ đó là classificationchúng ta có thể thấy rằng nó không cân bằng.

hình ảnh-42

Bây giờ, giả sử chúng ta muốn tách tập huấn luyện và tập kiểm tra bằng cách lấy mẫu ngẫu nhiên đơn giản. Chúng tôi sẽ không đạt được tỷ lệ tương tự cho tập huấn luyện và bài kiểm tra như tỷ lệ dân số.

from sklearn.model_selection import train_test_split
X = df.drop(columns = ["classification"])
y = df["classification"]
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8)
hinh-43

Chúng ta có thể thấy rằng tỷ lệ nhãn cho cả hai y_trainy_test không giống như tỷ lệ dân số. Để đạt được tỷ lệ tương tự, chúng ta có thể sử dụng stratify tham số trong train_test_split như hình dưới đây:

from sklearn.model_selection import train_test_split
X = df.drop(columns = ["classification"])
y = df["classification"]
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.8, stratify=y)

Đoạn mã trên cho thấy tập dữ liệu được phân tầng trên nhãn. Vì vậy, với điều đó, chúng ta sẽ đạt được tỷ lệ tương tự như tỷ lệ dân số.

hình ảnh-44

Phần kết luận

Trong hướng dẫn này, chúng tôi đã xem xét lấy mẫu phân tầng và cách bạn có thể sử dụng nó trong thống kê và học máy. Chúng tôi cũng đã xem xét các loại lấy mẫu phân tầng.

Cảm ơn bạn đã dành thời gian.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status