Lấy mẫu cụm trong Python

Tôi sẽ giới thiệu một số phương pháp này cho bạn trong bài viết này, hy vọng bạn có thể hiểu được một số cách lấy mẫu sau khi đọc bài viết này

Tại sao lấy mẫu?

Chúng tôi sử dụng phương pháp lấy mẫu để tiết kiệm thời gian và để có cái nhìn gần hơn về dân số

Nếu chúng ta chỉ nghiên cứu về dân số thì sẽ mất nhiều thời gian hơn, ví dụ như nghiên cứu về toàn bộ cư dân ở bang thống nhất…

Lấy mẫu cụm trong Python

Thuật toán phân cụm với Python
Ảnh của Lars Plougmann, bảo lưu một số quyền

Hướng dẫn tổng quan

Hướng dẫn này được chia thành ba phần;

  1. phân cụm
  2. Thuật toán phân cụm
  3. Ví dụ về thuật toán phân cụm
    1. Cài đặt thư viện
    2. Bộ dữ liệu phân cụm
    3. Tuyên truyền mối quan hệ
    4. Phân cụm kết tụ
    5. BẠCH DƯƠNG
    6. DBSCAN
    7. K-Means
    8. K-Means hàng loạt nhỏ
    9. trung bình thay đổi
    10. QUANG HỌC
    11. Phân cụm quang phổ
    12. Mô hình hỗn hợp Gaussian

phân cụm

Phân tích cụm hoặc phân cụm là một nhiệm vụ học máy không giám sát

Nó liên quan đến việc tự động khám phá nhóm tự nhiên trong dữ liệu. Không giống như học có giám sát (như mô hình dự đoán), các thuật toán phân cụm chỉ diễn giải dữ liệu đầu vào và tìm các nhóm hoặc cụm tự nhiên trong không gian đặc trưng

Các kỹ thuật phân cụm áp dụng khi không có lớp nào được dự đoán mà đúng hơn là khi các thể hiện được chia thành các nhóm tự nhiên

— Trang 141, Khai thác dữ liệu. Công cụ và kỹ thuật học máy thực tế, 2016

Một cụm thường là một vùng có mật độ trong không gian đặc trưng nơi các ví dụ từ miền (các quan sát hoặc hàng dữ liệu) gần cụm hơn các cụm khác. Cụm có thể có một trung tâm (tâm) là một mẫu hoặc một không gian đặc trưng điểm và có thể có một ranh giới hoặc phạm vi

Các cụm này có lẽ phản ánh một số cơ chế đang hoạt động trong miền mà từ đó các cá thể được rút ra, một cơ chế khiến một số cá thể có sự tương đồng mạnh mẽ hơn với nhau so với các cá thể còn lại

— Trang 141-142, Khai thác dữ liệu. Công cụ và kỹ thuật học máy thực tế, 2016

Phân cụm có thể hữu ích như một hoạt động phân tích dữ liệu để tìm hiểu thêm về miền vấn đề, được gọi là khám phá mẫu hoặc khám phá tri thức

Ví dụ

  • Cây phát sinh loài có thể được coi là kết quả của phân tích phân cụm thủ công
  • Việc tách dữ liệu bình thường khỏi các ngoại lệ hoặc bất thường có thể được coi là một vấn đề phân cụm
  • Tách các cụm dựa trên hành vi tự nhiên của chúng là một vấn đề về phân cụm, được gọi là phân khúc thị trường

Phân cụm cũng có thể hữu ích như một loại kỹ thuật tính năng, trong đó các ví dụ mới và hiện có có thể được ánh xạ và gắn nhãn là thuộc về một trong các cụm được xác định trong dữ liệu

Việc đánh giá các cụm được xác định là chủ quan và có thể yêu cầu một chuyên gia miền, mặc dù có nhiều biện pháp định lượng dành riêng cho cụm. Thông thường, các thuật toán phân cụm được so sánh về mặt học thuật trên các bộ dữ liệu tổng hợp với các cụm được xác định trước mà một thuật toán sẽ khám phá ra

Phân cụm là một kỹ thuật học tập không giám sát, vì vậy rất khó để đánh giá chất lượng đầu ra của bất kỳ phương pháp nào

— Trang 534, Máy học. Một góc nhìn xác suất, 2012

Thuật toán phân cụm

Có nhiều loại thuật toán phân cụm

Nhiều thuật toán sử dụng các phép đo độ tương tự hoặc khoảng cách giữa các ví dụ trong không gian đặc trưng với nỗ lực khám phá các vùng quan sát dày đặc. Do đó, thông thường nên chia tỷ lệ dữ liệu trước khi sử dụng thuật toán phân cụm

Trọng tâm của tất cả các mục tiêu của phân tích cụm là khái niệm về mức độ giống nhau (hoặc không giống nhau) giữa các đối tượng riêng lẻ được phân cụm. Phương pháp phân cụm cố gắng nhóm các đối tượng dựa trên định nghĩa về độ tương tự được cung cấp cho nó

— Trang 502, Các yếu tố của học tập thống kê. Khai thác dữ liệu, suy luận và dự đoán, 2016

Một số thuật toán phân cụm yêu cầu bạn chỉ định hoặc đoán số lượng cụm cần khám phá trong dữ liệu, trong khi các thuật toán khác yêu cầu xác định khoảng cách tối thiểu giữa các quan sát trong đó các ví dụ có thể được coi là "gần" hoặc "được kết nối". ”

Như vậy, phân tích cụm là một quá trình lặp đi lặp lại trong đó đánh giá chủ quan của các cụm đã xác định được đưa trở lại các thay đổi đối với cấu hình thuật toán cho đến khi đạt được kết quả mong muốn hoặc phù hợp

Thư viện scikit-learning cung cấp một bộ thuật toán phân cụm khác nhau để lựa chọn

Dưới đây là danh sách 10 thuật toán phổ biến hơn

  • Tuyên truyền mối quan hệ
  • Phân cụm kết tụ
  • BẠCH DƯƠNG
  • DBSCAN
  • K-Means
  • K-Means hàng loạt nhỏ
  • trung bình thay đổi
  • QUANG HỌC
  • Phân cụm quang phổ
  • Hỗn hợp của Gaussian

Mỗi thuật toán đưa ra một cách tiếp cận khác nhau đối với thách thức khám phá các nhóm tự nhiên trong dữ liệu

Không có thuật toán phân cụm tốt nhất và không có cách nào dễ dàng để tìm ra thuật toán tốt nhất cho dữ liệu của bạn mà không sử dụng các thử nghiệm được kiểm soát

Trong hướng dẫn này, chúng tôi sẽ xem xét cách sử dụng từng thuật toán trong số 10 thuật toán phân cụm phổ biến này từ thư viện scikit-learning

Các ví dụ sẽ cung cấp cơ sở để bạn sao chép-dán các ví dụ và kiểm tra các phương pháp trên dữ liệu của riêng bạn

Chúng tôi sẽ không đi sâu vào lý thuyết đằng sau cách thức hoạt động của các thuật toán hoặc so sánh chúng một cách trực tiếp. Đối với một điểm khởi đầu tốt về chủ đề này, xem

  • API phân cụm, scikit-learning

Hãy đi sâu vào

Ví dụ về thuật toán phân cụm

Trong phần này, chúng tôi sẽ xem xét cách sử dụng 10 thuật toán phân cụm phổ biến trong scikit-learning

Điều này bao gồm một ví dụ về điều chỉnh mô hình và một ví dụ về trực quan hóa kết quả

Các ví dụ được thiết kế để bạn sao chép-dán vào dự án của riêng bạn và áp dụng các phương pháp cho dữ liệu của riêng bạn

Cài đặt thư viện

Đầu tiên, hãy cài đặt thư viện

Đừng bỏ qua bước này vì bạn sẽ cần đảm bảo rằng mình đã cài đặt phiên bản mới nhất

Bạn có thể cài đặt thư viện scikit-learn bằng trình cài đặt pip Python, như sau

1

Sudo pip cài đặt scikit-learning

Để biết hướng dẫn cài đặt bổ sung dành riêng cho nền tảng của bạn, hãy xem

  • Cài đặt scikit-learning

Tiếp theo, hãy xác nhận rằng thư viện đã được cài đặt và bạn đang sử dụng phiên bản hiện đại

Chạy tập lệnh sau để in số phiên bản thư viện

1

2

3

# kiểm tra phiên bản scikit-learning

nhập sklearn

in(sklearn. __version__)

Chạy ví dụ này, bạn sẽ thấy số phiên bản sau hoặc cao hơn

1

0. 22. 1

Bộ dữ liệu phân cụm

Chúng tôi sẽ sử dụng hàm make_classification() để tạo tập dữ liệu phân loại nhị phân thử nghiệm

Bộ dữ liệu sẽ có 1.000 ví dụ, với hai tính năng đầu vào và một cụm cho mỗi lớp. Các cụm hiển thị rõ ràng theo hai chiều để chúng ta có thể vẽ biểu đồ dữ liệu bằng biểu đồ phân tán và tô màu các điểm trong biểu đồ theo cụm được chỉ định. Điều này sẽ giúp xem, ít nhất là trong vấn đề thử nghiệm, các cụm được xác định “tốt” như thế nào

Các cụm trong vấn đề thử nghiệm này dựa trên Gaussian đa biến và không phải tất cả các thuật toán phân cụm đều hiệu quả trong việc xác định các loại cụm này. Do đó, các kết quả trong hướng dẫn này không nên được sử dụng làm cơ sở để so sánh các phương pháp nói chung.

Một ví dụ về việc tạo và tóm tắt bộ dữ liệu phân cụm tổng hợp được liệt kê bên dưới

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# bộ dữ liệu phân loại tổng hợp

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, y = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# tạo biểu đồ phân tán cho các mẫu từ mỗi lớp

cho class_value trong phạm vi(2):

# lấy chỉ mục hàng cho các mẫu với lớp này

row_ix = ở đâu(y == class_value)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ này sẽ tạo tập dữ liệu phân cụm tổng hợp, sau đó tạo biểu đồ phân tán của dữ liệu đầu vào với các điểm được tô màu theo nhãn lớp (cụm lý tưởng hóa)

Chúng ta có thể thấy rõ ràng hai nhóm dữ liệu riêng biệt ở hai chiều và hy vọng rằng thuật toán phân cụm tự động có thể phát hiện các nhóm này

Lấy mẫu cụm trong Python

Biểu đồ phân tán của tập dữ liệu phân cụm tổng hợp với các điểm được tô màu theo cụm đã biết

Tiếp theo, chúng ta có thể bắt đầu xem xét các ví dụ về thuật toán phân cụm được áp dụng cho tập dữ liệu này

Tôi đã thực hiện một số nỗ lực tối thiểu để điều chỉnh từng phương pháp cho tập dữ liệu

Bạn có thể nhận được kết quả tốt hơn cho một trong các thuật toán không?
Hãy cho tôi biết trong các ý kiến ​​dưới đây

Tuyên truyền mối quan hệ

Tuyên truyền mối quan hệ liên quan đến việc tìm kiếm một tập hợp các mẫu tóm tắt dữ liệu tốt nhất

Chúng tôi đã nghĩ ra một phương pháp gọi là “lan truyền ái lực”, phương pháp này lấy đầu vào là thước đo độ tương tự giữa các cặp điểm dữ liệu. Các thông điệp có giá trị thực được trao đổi giữa các điểm dữ liệu cho đến khi một tập mẫu chất lượng cao và các cụm tương ứng dần xuất hiện

— Phân cụm bằng cách truyền tin nhắn giữa các điểm dữ liệu, 2007

Kỹ thuật này được mô tả trong bài báo

  • Phân cụm bằng cách truyền tin nhắn giữa các điểm dữ liệu, 2007

Nó được triển khai thông qua lớp AffinityPropagation và cấu hình chính để điều chỉnh là “giảm xóc” được đặt giữa 0. 5 và 1, và có lẽ “sở thích. ”

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# phân cụm lan truyền ái lực

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập Tuyên truyền mối quan hệ

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

mô hình = Tuyên truyền mối quan hệ(giảm xóc=0.9)

#phù hợp với mô hình

mô hình. phù hợp(X)

# gán một cụm cho mỗi ví dụ

yhat = mô hình. dự đoán(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, tôi không thể đạt được kết quả tốt

Lấy mẫu cụm trong Python

Biểu đồ phân tán của tập dữ liệu với các cụm được xác định bằng cách sử dụng tuyên truyền mối quan hệ

Phân cụm kết tụ

Phân cụm kết tụ liên quan đến việc hợp nhất các ví dụ cho đến khi đạt được số lượng cụm mong muốn

Nó là một phần của lớp phương pháp phân cụm theo thứ bậc rộng hơn và bạn có thể tìm hiểu thêm tại đây

  • Phân cụm theo thứ bậc, Wikipedia

Nó được triển khai thông qua lớp AgglomerativeClustering và cấu hình chính cần điều chỉnh là tập hợp “n_cluster”, ước tính số lượng cụm trong dữ liệu, e. g. 2

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# cụm kết tụ

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập Clustering kết tụ

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

model = AgglomerativeClustering(n_clusters=2)

# khớp mô hình và dự đoán cụm

yhat = mô hình. fit_predict(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, một nhóm hợp lý được tìm thấy

Lấy mẫu cụm trong Python

Biểu đồ phân tán của tập dữ liệu với các cụm được xác định bằng cách sử dụng phân cụm kết tụ

BẠCH DƯƠNG

Phân cụm BIRCH (BIRCH là viết tắt của Giảm lặp lại cân bằng và phân cụm bằng cách sử dụng
Hierarchies) liên quan đến việc xây dựng một cấu trúc cây mà từ đó các trọng tâm của cụm được trích xuất

BIRCH phân cụm động và tăng dần các điểm dữ liệu chỉ số đa chiều đến để cố gắng tạo ra phân cụm chất lượng tốt nhất với các tài nguyên có sẵn (i. e. , bộ nhớ khả dụng và các ràng buộc về thời gian)

— BẠCH DƯƠNG. Một phương pháp phân cụm dữ liệu hiệu quả cho cơ sở dữ liệu lớn, 1996

Kỹ thuật này được mô tả trong bài báo

  • BẠCH DƯƠNG. Một phương pháp phân cụm dữ liệu hiệu quả cho cơ sở dữ liệu lớn, 1996

Nó được triển khai thông qua lớp Birch và cấu hình chính để điều chỉnh là siêu tham số “ngưỡng” và “n_cluster”, cấu hình thứ hai cung cấp ước tính số lượng cụm

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# cụm bạch dương

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập Birch

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

mô hình = Birch(ngưỡng=0.01, n_cluster=2)

#phù hợp với mô hình

mô hình. phù hợp(X)

# gán một cụm cho mỗi ví dụ

yhat = mô hình. dự đoán(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, một nhóm tuyệt vời được tìm thấy

Lấy mẫu cụm trong Python

Sơ đồ phân tán của tập dữ liệu với các cụm được xác định bằng phân cụm BIRCH

DBSCAN

Phân cụm DBSCAN (trong đó DBSCAN là viết tắt của Phân cụm ứng dụng có tiếng ồn dựa trên không gian dựa trên mật độ) liên quan đến việc tìm các khu vực có mật độ cao trong miền và mở rộng các khu vực đó của không gian đặc trưng xung quanh chúng dưới dạng các cụm

… chúng tôi trình bày thuật toán phân cụm mới DBSCAN dựa trên khái niệm cụm dựa trên mật độ được thiết kế để khám phá các cụm có hình dạng tùy ý. DBSCAN chỉ yêu cầu một tham số đầu vào và hỗ trợ người dùng xác định giá trị phù hợp cho tham số đó

— Thuật toán dựa trên mật độ để khám phá các cụm trong cơ sở dữ liệu không gian lớn có nhiễu, 1996

Kỹ thuật này được mô tả trong bài báo

  • Thuật toán dựa trên mật độ để khám phá các cụm trong cơ sở dữ liệu không gian lớn có nhiễu, 1996

Nó được triển khai thông qua lớp DBSCAN và cấu hình chính để điều chỉnh là siêu tham số “eps” và “min_samples”

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# phân cụm dbscan

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập DBSCAN

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

model = DBSCAN(eps=0.30, min_samples=9)

# khớp mô hình và dự đoán cụm

yhat = mô hình. fit_predict(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, một nhóm hợp lý được tìm thấy, mặc dù cần điều chỉnh nhiều hơn

Lấy mẫu cụm trong Python

Biểu đồ phân tán của tập dữ liệu với các cụm được xác định bằng phân cụm DBSCAN

K-Means

K-Means Clustering có thể là thuật toán phân cụm được biết đến rộng rãi nhất và liên quan đến việc gán các ví dụ cho các cụm nhằm nỗ lực giảm thiểu phương sai trong mỗi cụm

Mục đích chính của bài viết này là mô tả một quá trình phân vùng một dân số N chiều thành k tập hợp trên cơ sở một mẫu. Quá trình, được gọi là 'k-mean', dường như cung cấp các phân vùng có hiệu quả hợp lý theo nghĩa phương sai trong lớp

— Một số phương pháp phân loại và phân tích các quan sát đa biến, 1967

Kỹ thuật này được mô tả ở đây

  • k-nghĩa là phân cụm, Wikipedia

Nó được triển khai thông qua lớp KMeans và cấu hình chính để điều chỉnh là siêu tham số “n_cluster” được đặt thành số cụm ước tính trong dữ liệu

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# k-nghĩa là phân cụm

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập KMeans

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

model = KMeans(n_clusters=2)

#phù hợp với mô hình

mô hình. phù hợp(X)

# gán một cụm cho mỗi ví dụ

yhat = mô hình. dự đoán(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, một nhóm hợp lý được tìm thấy, mặc dù phương sai bằng nhau không bằng nhau ở mỗi chiều làm cho phương pháp ít phù hợp hơn với tập dữ liệu này

Lấy mẫu cụm trong Python

Sơ đồ phân tán của tập dữ liệu với các cụm được xác định bằng phân cụm K-Means

K-Means hàng loạt nhỏ

Mini-Batch K-Means là một phiên bản sửa đổi của k-means giúp cập nhật các trọng tâm của cụm bằng cách sử dụng các lô mẫu nhỏ thay vì toàn bộ tập dữ liệu, điều này có thể giúp các tập dữ liệu lớn nhanh hơn và có lẽ mạnh mẽ hơn đối với nhiễu thống kê

… chúng tôi đề xuất sử dụng tối ưu hóa lô nhỏ cho phân cụm k-mean. Điều này làm giảm chi phí tính toán theo các bậc độ lớn so với thuật toán hàng loạt cổ điển trong khi mang lại các giải pháp tốt hơn đáng kể so với giải pháp giảm dần độ dốc ngẫu nhiên trực tuyến

- Phân cụm K-Means quy mô web, 2010

Kỹ thuật này được mô tả trong bài báo

  • Phân cụm K-Means quy mô web, 2010

Nó được triển khai thông qua lớp MiniBatchKMeans và cấu hình chính để điều chỉnh là siêu tham số “n_cluster” được đặt thành số cụm ước tính trong dữ liệu

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# mini-batch k-mean phân cụm

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập MiniBatchKMeans

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

model = MiniBatchKMeans(n_cluster=2)

#phù hợp với mô hình

mô hình. phù hợp(X)

# gán một cụm cho mỗi ví dụ

yhat = mô hình. dự đoán(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, một kết quả tương đương với thuật toán k-means tiêu chuẩn được tìm thấy

Lấy mẫu cụm trong Python

Biểu đồ phân tán tập dữ liệu với các cụm được xác định bằng cách sử dụng phân cụm K-Means hàng loạt nhỏ

trung bình thay đổi

Phân cụm dịch chuyển trung bình liên quan đến việc tìm và điều chỉnh trọng tâm dựa trên mật độ của các ví dụ trong không gian đặc trưng

Đối với dữ liệu rời rạc, chúng tôi chứng minh sự hội tụ của quy trình dịch chuyển trung bình đệ quy đến điểm dừng gần nhất của hàm mật độ cơ bản và do đó tiện ích của nó trong việc phát hiện các chế độ của mật độ

- Dịch chuyển trung bình. Một cách tiếp cận mạnh mẽ đối với phân tích không gian tính năng, 2002

Kỹ thuật này được mô tả trong bài báo

  • trung bình thay đổi. Một cách tiếp cận mạnh mẽ đối với phân tích không gian tính năng, 2002

Nó được triển khai thông qua lớp MeanShift và cấu hình chính để điều chỉnh là siêu tham số “băng thông”

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# phân cụm dịch chuyển trung bình

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập MeanShift

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

mô hình = Dịch chuyển trung bình()

# khớp mô hình và dự đoán cụm

yhat = mô hình. fit_predict(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, một tập hợp các cụm hợp lý được tìm thấy trong dữ liệu

Lấy mẫu cụm trong Python

Biểu đồ phân tán của tập dữ liệu với các cụm được xác định bằng cách sử dụng phân cụm thay đổi trung bình

QUANG HỌC

Phân cụm OPTICS (trong đó OPTICS là viết tắt của Đặt hàng các điểm để xác định cấu trúc phân cụm) là một phiên bản sửa đổi của DBSCAN được mô tả ở trên

Chúng tôi giới thiệu một thuật toán mới cho mục đích phân tích cụm mà không tạo ra một cụm dữ liệu một cách rõ ràng; . Thứ tự cụm này chứa thông tin tương đương với các cụm dựa trên mật độ tương ứng với một loạt các cài đặt tham số

— QUANG HỌC. sắp xếp các điểm để xác định cấu trúc phân cụm, 1999

Kỹ thuật này được mô tả trong bài báo

  • QUANG HỌC. sắp xếp các điểm để xác định cấu trúc phân cụm, 1999

Nó được triển khai thông qua lớp OPTICS và cấu hình chính để điều chỉnh là siêu tham số “eps” và “min_samples”

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# phân cụm quang học

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập QUANG HỌC

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

model = OPTICS(eps=0.8, min_samples=10)

# khớp mô hình và dự đoán cụm

yhat = mô hình. fit_predict(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, tôi không thể đạt được kết quả hợp lý trên bộ dữ liệu này

Lấy mẫu cụm trong Python

Sơ đồ phân tán của tập dữ liệu với các cụm được xác định bằng phân cụm OPTICS

Phân cụm quang phổ

Phân cụm quang phổ là một lớp chung của các phương pháp phân cụm, được rút ra từ đại số tuyến tính

Một giải pháp thay thế đầy hứa hẹn gần đây đã xuất hiện trong một số lĩnh vực là sử dụng các phương pháp quang phổ để phân cụm. Ở đây, người ta sử dụng các vectơ riêng hàng đầu của ma trận xuất phát từ khoảng cách giữa các điểm

— Trên phân cụm quang phổ. Phân tích và thuật toán, 2002

Kỹ thuật này được mô tả trong bài báo

  • Trên phân cụm quang phổ. Phân tích và thuật toán, 2002

Nó được triển khai thông qua lớp SpectralClustering và Spectral Clustering chính là một lớp chung của các phương pháp phân cụm, được rút ra từ đại số tuyến tính. để điều chỉnh là siêu tham số “n_clusters” được sử dụng để chỉ định số cụm ước tính trong dữ liệu

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# phân cụm quang phổ

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. cụm nhập Phân cụm quang phổ

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

mô hình = Phân cụm quang phổ(n_cluster=2)

# khớp mô hình và dự đoán cụm

yhat = mô hình. fit_predict(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, các cụm hợp lý đã được tìm thấy

Lấy mẫu cụm trong Python

Biểu đồ phân tán của tập dữ liệu với các cụm được xác định bằng cách sử dụng cụm phân cụm Spectra

Mô hình hỗn hợp Gaussian

Mô hình hỗn hợp Gaussian tóm tắt hàm mật độ xác suất đa biến với hỗn hợp các phân bố xác suất Gaussian như tên gọi của nó

Để biết thêm về mô hình, xem

  • Mô hình hỗn hợp, Wikipedia

Nó được triển khai thông qua lớp GaussianMixture và cấu hình chính để điều chỉnh là siêu tham số “n_cluster” được sử dụng để chỉ định số cụm ước tính trong dữ liệu

Ví dụ đầy đủ được liệt kê dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# phân cụm hỗn hợp gaussian

từ numpy nhập duy nhất

từ numpy nhập ở đâu

từ sklearn. bộ dữ liệu nhập make_classification

từ sklearn. hỗn hợp nhập Hỗn hợp Gaussian

từ matplotlib nhập pyplot

# xác định tập dữ liệu

X, _ = make_classification(n_samples=1000, n_features=2, n_informative=2, n_redundant=0, n_clusters_per_class=1, random_state=4)

# xác định mô hình

model = GaussianMixture(n_components=2)

#phù hợp với mô hình

mô hình. phù hợp(X)

# gán một cụm cho mỗi ví dụ

yhat = mô hình. dự đoán(X)

# truy xuất các cụm duy nhất

cụm = duy nhất(yhat)

# tạo biểu đồ phân tán cho các mẫu từ mỗi cụm

cho cụm trong cụm.

# lấy chỉ mục hàng cho các mẫu có cụm này

row_ix = ở đâu(yhat == cluster)

# tạo phân tán của các mẫu này

pyplot. phân tán(X[row_ix, 0], X[row_ix, 1])

# hiển thị cốt truyện

pyplot. hiển thị()

Chạy ví dụ phù hợp với mô hình trên tập dữ liệu huấn luyện và dự đoán một cụm cho từng ví dụ trong tập dữ liệu. Sau đó, một biểu đồ phân tán được tạo với các điểm được tô màu bởi cụm được chỉ định của chúng

Trong trường hợp này, chúng ta có thể thấy rằng các cụm được xác định hoàn hảo. Điều này không có gì đáng ngạc nhiên khi tập dữ liệu được tạo dưới dạng hỗn hợp của Gaussian

lấy mẫu cụm với ví dụ là gì?

Ví dụ về chọn mẫu cụm một giai đoạn – Một tổ chức phi chính phủ muốn tạo mẫu gồm các bé gái ở năm thị trấn lân cận để cung cấp dịch vụ giáo dục . Bằng phương pháp chọn mẫu một giai đoạn, tổ chức phi chính phủ chọn ngẫu nhiên các thị trấn (cụm) để tạo thành một mẫu và mở rộng trợ giúp cho các em gái bị thiệt thòi trong giáo dục ở các thị trấn đó.

Phương pháp lấy mẫu theo cụm là gì?

Lấy mẫu theo cụm là gì? . Lý tưởng nhất là các cụm nên là các đại diện nhỏ của toàn bộ dân số. a probability sampling method in which you divide a population into clusters, such as districts or schools, and then randomly select some of these clusters as your sample. The clusters should ideally each be mini-representations of the population as a whole.

Lấy mẫu cụm trong học máy là gì?

Lấy mẫu cụm là một loại lấy mẫu xác suất trong đó mọi phần tử của tổng thể được chọn như nhau, chúng tôi sử dụng các tập hợp con của tổng thể làm phần lấy mẫu thay vì các phần tử riêng lẻ để lấy mẫu

Ba loại lấy mẫu cụm là gì?

Có ba loại lấy mẫu cụm. phân cụm một giai đoạn, hai giai đoạn và nhiều giai đoạn . Trong cả ba loại, trước tiên bạn chia tổng thể thành các cụm, sau đó chọn ngẫu nhiên các cụm để sử dụng trong mẫu của bạn.